@opcua/for-node-red 3.0.0 → 3.1.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,12 +4,11 @@
4
4
  </style>
5
5
 
6
6
  <script type="text/javascript">
7
- function _0x410a(){const _0x3862fa=['style','attr','endpoint-tab-connection','Subscribe','config','<span>','publishable-key','namespaceAliases','endpoint-tab-namespace-aliases','3791810FxUSct','27MHPEtR','Connection','526020PCQWBB','invalid\x20securityMode\x20','260px','empty','length','err','status','map','apply','#editable-list-aliases-container','node-input-alias-namespace-uri','create','find','auto','invalid\x20endpoint','#node-input-receiveBufferSize','Sign','widget','readonly','/opcua-for-node-red/extract-namespace-aliases','<a\x20href=\x22https://www.sterfive.com/opcua/for-node-red\x22\x20target=”_blank”>Sterfive\x27s\x20website\x20</a>','<input/>','<a\x20href=\x22mailto:support@sterfive.com\x22\x20subject=\x22@opcua/for-node-red\x20support\x20request\x22>mailto:support@sterfive.com</a>','open','.input-publishingEnabled','</p>','#subscriptions-container','#extract-aliases','Default\x20Subscription','UserName','addTab','publishingEnabled','150px','.input-requestedPublishingInterval','FREEWARE','None','log','.input-priority','height:\x20100%\x20!important;','value','.section-userIdentityType-UserName','assign','-messages','namespaceUri','<p>','Anonymous','licenceInfo','#node-input-maxChunkCount','suppressed','connection','#section-Advanced','done','show','push','element','nodes','error','name','-success','script','alias','#node-config-input-userName','each','hide','#node-config-input-pkiName','686znPyvC','Fast\x20Subscription','Licence\x20has\x20expired','data-i','.input-isDefault','\x20-\x20','prop','#node-config-input-useTransport','html','#node-config-input-password','appendTo','\x20days.','<stripe-pricing-table/>','text','FAILED','disabled','25%','message','.subscription-id','type','Certificate','http://opcfoundation.org/UA/','opc.tcp://opcuademo.sterfive.com:26543/UA/SampleServer','val','node-input-alias-index','#node-config-input-userIdentityType','Freeware\x20licence','opc.tcp:','prctbl_1OJt49BCNccbzsVzkaANOgFL','POST','addClass','5arLUdP','removeClass','items','tabs','#test-connection','opcua\x20endpoint','src','.node-input-alias-namespace-uri','fa\x20fa-exclamation-circle','Your\x20license\x20has\x20expired.\x20Please\x20contact\x20our\x20support\x20team\x20or\x20visit\x20our\x20website\x20to\x20renew\x20your\x20license\x20and\x20regain\x20access\x20to\x20our\x20services.','btn\x20btn-primary','<div\x20class=\x22alias-entry\x22>','head','editableList','typedInput','licence-widget-icon','Subscriptions','This\x20is\x20a\x20freeware\x20licence,\x20and\x20have\x20some\x20limitations.\x0a','addItem','parameters','EXPIRED','css','14968KysMaS','priority','#node-input-sendBufferSize','.input-maxNotificationsPerPublish','.input-requestedLifetimeCount','#node-config-input-endpoint','.input-name','subscribe-button','\x20for\x20more\x20information.','#node-input-maxMessageSize','\x20or\x20visit\x20our\x20website\x20to\x20renew\x20your\x20license\x20and\x20regain\x20access\x20to\x20our\x20services.̀','requestedMaxKeepAliveCount','#toggleAdvancedSection','next','append','json','#node-config-input-securityPolicy','password','licenceWidget','join','.red-ui-editableList-item-remove','children','3641464tmptEH','/licenceInfo','20279xBnDfR','stringify','result','https://js.stripe.com/v3/pricing-table.js','SignAndEncrypt','then','height:\x20100%;max-height:\x20100%;','statusText','\x20days.\x0aBuy\x20online\x20and\x20visit\x20','change','#node-config-input-name','http://opcfoundation.org/DI/','OpcUa-Endpoint2','split','PROFESSIONAL','Your\x20license\x20is\x20currently\x20invalid.','isDefault','1399262ZfbZIY','#node-config-input-securityMode','async','extra','width','Basic256Sha256','click','toISOString','/opcua-for-node-red/client_certificate.json','invalid\x20userIdentityType\x20','/opcua-for-node-red','createElement','internal\x20error\x20','isArray','endpoint','.section-userIdentityType-Certificate','Slow\x20Subscription','application/json','function','The\x20Trial\x20will\x20expire\x20in\x20','#node-input-useTransport','subscriptions','<br>','fa\x20fa-calendar-time','pk_live_51HsE1sBCNccbzsVzt7zaq2uv20pkryWllAzvZgZd5AhwFI9A3qBIeOJvJwQF08lDoLpFqLjwmyA79wnPnYLsvKjt009f00VpCW','resize','match','licenceType','4768068ntqxCw','Namespace\x20Aliases','.section-securityPolicy','\x20It\x20will\x20expire\x20in\x20','.input-requestedMaxKeepAliveCount','removeAttr','Please\x20contact\x20','checked',':checked','#section-TransportSettings','#licenceWidget','/opcua-for-node-red/test-connection','catch'];_0x410a=function(){return _0x3862fa;};return _0x410a();}function _0x2fd4(_0x3307ba,_0x1be40f){const _0x410a38=_0x410a();return _0x2fd4=function(_0x2fd448,_0xf1b6ba){_0x2fd448=_0x2fd448-0x185;let _0x1d8625=_0x410a38[_0x2fd448];return _0x1d8625;},_0x2fd4(_0x3307ba,_0x1be40f);}(function(_0xa5b852,_0x469fd7){const _0x3b1180=_0x2fd4,_0x5b3237=_0xa5b852();while(!![]){try{const _0xba5fac=-parseInt(_0x3b1180(0x1ce))/0x1+-parseInt(_0x3b1180(0x1df))/0x2+parseInt(_0x3b1180(0x214))/0x3+parseInt(_0x3b1180(0x1cc))/0x4+parseInt(_0x3b1180(0x1a0))/0x5*(-parseInt(_0x3b1180(0x1fb))/0x6)+parseInt(_0x3b1180(0x255))/0x7*(-parseInt(_0x3b1180(0x1b6))/0x8)+parseInt(_0x3b1180(0x212))/0x9*(parseInt(_0x3b1180(0x211))/0xa);if(_0xba5fac===_0x469fd7)break;else _0x5b3237['push'](_0x5b3237['shift']());}catch(_0x254e23){_0x5b3237['push'](_0x5b3237['shift']());}}}(_0x410a,0x803f7),(function(){'use strict';const _0x2de8f6=_0x2fd4;function _0x11455(_0x4458c8,_0x231470,_0x4a142a,_0x1c2ad9){function _0x1e2391(_0xb7fe56){return _0xb7fe56 instanceof _0x4a142a?_0xb7fe56:new _0x4a142a(function(_0x23a786){_0x23a786(_0xb7fe56);});}return new(_0x4a142a||(_0x4a142a=Promise))(function(_0x6dd4e0,_0x5d5a09){const _0x2836e2=_0x2fd4;function _0x228e24(_0x6642a7){const _0xa1c04=_0x2fd4;try{_0x405bbf(_0x1c2ad9[_0xa1c04(0x1c3)](_0x6642a7));}catch(_0x405d7f){_0x5d5a09(_0x405d7f);}}function _0x2b0001(_0x220723){try{_0x405bbf(_0x1c2ad9['throw'](_0x220723));}catch(_0x515e31){_0x5d5a09(_0x515e31);}}function _0x405bbf(_0x29f3de){const _0x474f25=_0x2fd4;_0x29f3de[_0x474f25(0x247)]?_0x6dd4e0(_0x29f3de[_0x474f25(0x23b)]):_0x1e2391(_0x29f3de['value'])['then'](_0x228e24,_0x2b0001);}_0x405bbf((_0x1c2ad9=_0x1c2ad9[_0x2836e2(0x21c)](_0x4458c8,_0x231470||[]))['next']());});}typeof SuppressedError===_0x2de8f6(0x1f1)?SuppressedError:function(_0xf70139,_0x56fd63,_0x548c32){const _0x4fdb8d=_0x2de8f6;var _0x3fffc4=new Error(_0x548c32);return _0x3fffc4[_0x4fdb8d(0x24d)]='SuppressedError',_0x3fffc4[_0x4fdb8d(0x24c)]=_0xf70139,_0x3fffc4[_0x4fdb8d(0x244)]=_0x56fd63,_0x3fffc4;};function _0x1e9f0b(_0x2755b4,_0x487897,_0x174086,_0x4f1b4d){const _0x15e022=_0x2de8f6,_0x4e6fc3=$('#'+_0x2755b4+_0x15e022(0x24e)),_0x1e960e=$('#'+_0x2755b4+'-failure'),_0x4fc4d6=$('#'+_0x2755b4+'-pending'),_0x3e3eaa=$('#'+_0x2755b4+_0x15e022(0x23e));let _0x332526=![];_0x4e6fc3[_0x15e022(0x253)](),_0x1e960e['hide'](),_0x4fc4d6['hide'](),_0x487897['on']('click',()=>{const _0x1e5db5=_0x15e022;if(_0x332526)return;_0x332526=!![],_0x4fc4d6[_0x1e5db5(0x1a1)](_0x1e5db5(0x253)),_0x4fc4d6['html']('Testing\x20Connection\x20...'),_0x4e6fc3[_0x1e5db5(0x19f)](_0x1e5db5(0x253)),_0x1e960e['addClass'](_0x1e5db5(0x253)),_0x3e3eaa['html']('');const {body:_0x12047a,url:_0x456fb2}=_0x174086();fetch(_0x456fb2,{'method':_0x1e5db5(0x19e),'headers':{'Content-Type':'application/json'},'body':JSON[_0x1e5db5(0x1cf)](_0x12047a)})['then'](_0x4fcd57=>_0x4fcd57[_0x1e5db5(0x1c5)]())[_0x1e5db5(0x1d3)](_0x32b850=>{const _0x126873=_0x1e5db5;_0x332526=![],_0x4fc4d6[_0x126873(0x253)](),console['log'](JSON[_0x126873(0x1cf)](_0x32b850,null,'\x20'));if(_0x32b850[_0x126873(0x1d0)]==='ok')_0x4e6fc3[_0x126873(0x1a1)]('hide'),_0x1e960e[_0x126873(0x19f)](_0x126873(0x253)),_0x3e3eaa[_0x126873(0x189)](_0x32b850[_0x126873(0x192)]['replace']('\x0a',_0x126873(0x1f5)));else{const _0x3da8a7=_0x17c74c=>!_0x17c74c?'':_0x17c74c[_0x126873(0x1db)]('\x0a')['map'](_0x4baeb8=>_0x126873(0x240)+_0x4baeb8+_0x126873(0x22d))['join']('\x0a'),_0xd458b3=_0x42307f=>Array[_0x126873(0x1ec)](_0x42307f)?_0x42307f[_0x126873(0x21b)](_0x3da8a7)[_0x126873(0x1c9)]('\x0a'):_0x3da8a7(_0x42307f);_0x4e6fc3[_0x126873(0x19f)]('hide'),_0x1e960e[_0x126873(0x1a1)](_0x126873(0x253)),_0x3e3eaa['html'](_0xd458b3(_0x32b850['message'])+_0xd458b3(_0x32b850[_0x126873(0x1e2)])),_0x4f1b4d(new Error(_0x32b850[_0x126873(0x1d0)]),_0x32b850);}})[_0x1e5db5(0x207)](_0x338f8e=>{const _0x37398c=_0x1e5db5;_0x332526=![],_0x4fc4d6[_0x37398c(0x19f)](_0x37398c(0x253)),_0x4e6fc3['addClass'](_0x37398c(0x253)),_0x1e960e[_0x37398c(0x1a1)](_0x37398c(0x253)),_0x3e3eaa[_0x37398c(0x189)](_0x37398c(0x1eb)+_0x338f8e[_0x37398c(0x192)]),console['log'](_0x37398c(0x219),_0x338f8e);});});}const _0x391aae=_0x2de8f6(0x19d),_0x3da2da=_0x2de8f6(0x1f7);function _0x36a410(){return _0x11455(this,arguments,void 0x0,function*(_0x43dbe3=''){const _0x4e6d21=_0x2fd4,_0x2c72dc=_0x43dbe3+_0x4e6d21(0x1e9),_0x3f35fb=_0x2c72dc+_0x4e6d21(0x1cd),_0x14e04e=yield fetch(_0x3f35fb,{'method':_0x4e6d21(0x19e),'headers':{'Content-Type':_0x4e6d21(0x1f0)}}),_0xe7649f=new Date()[_0x4e6d21(0x1e6)]();if(_0x14e04e[_0x4e6d21(0x21a)]!==0xc8)return console[_0x4e6d21(0x238)]('fetching\x20failed\x20with\x20error',_0x14e04e[_0x4e6d21(0x21a)],_0x14e04e[_0x4e6d21(0x1d5)]),{'status':_0x4e6d21(0x18f),'type':'FREEWARE','licenceInfo':{'expiryDate':_0xe7649f}};const _0x39f8e1=yield _0x14e04e[_0x4e6d21(0x1c5)]();return _0x39f8e1;});}const _0x544456=()=>{const _0x15f471=_0x2de8f6;$[_0x15f471(0x225)]('sterfive.licenceWidget',{'options':{'baseUrl':''},'_create'(){const _0x2912e9=_0x15f471,_0x56fd92=this,_0x511892=_0x2912e9(0x22a),_0x36f6a8=_0x2912e9(0x228);_0x36a410(_0x56fd92['baseUrl'])[_0x2912e9(0x1d3)](_0x10e5aa=>{const _0x5407eb=_0x2912e9;let _0x4b77b7='',_0x36dba7='',_0x330766='';const _0x57fa1e=_0x10e5aa[_0x5407eb(0x21a)],_0x396877=_0x10e5aa['daysLeft'];switch(_0x57fa1e){case'AUTHORIZED':_0x4b77b7='fa\x20fa-check-circle';switch(_0x10e5aa[_0x5407eb(0x194)]){case'TRIAL':{_0x36dba7='Trial\x20licence',_0x330766=_0x5407eb(0x1f2)+_0x396877+_0x5407eb(0x1d6)+_0x36f6a8+'\x20to\x20acquire\x20a\x20license.';break;}case _0x5407eb(0x1dc):_0x36dba7='Your\x20licence\x20is\x20valid.';_0x396877<0x5a&&_0x396877>=0x0&&(_0x36dba7+=_0x5407eb(0x1fe)+_0x396877+_0x5407eb(0x18c));_0x330766=_0x10e5aa['licenceInfo'][_0x5407eb(0x1fa)]+_0x5407eb(0x186)+(_0x10e5aa[_0x5407eb(0x242)]['onPremiseServerHost']||'');break;case _0x5407eb(0x236):_0x36dba7=_0x5407eb(0x19b),_0x330766=_0x5407eb(0x1b1)+_0x36f6a8+_0x5407eb(0x1be);break;}break;case _0x5407eb(0x1b4):_0x4b77b7=_0x5407eb(0x1f6),_0x36dba7=_0x5407eb(0x257),_0x330766=_0x5407eb(0x1a9);break;case _0x5407eb(0x18f):default:_0x4b77b7=_0x5407eb(0x1a8),_0x36dba7=_0x5407eb(0x1dd),_0x330766=_0x5407eb(0x201)+_0x511892+_0x5407eb(0x1c0);break;}this[_0x5407eb(0x24a)][_0x5407eb(0x19f)]('licence-widget'),this[_0x5407eb(0x24a)]['addClass']('licence-widget-'+_0x57fa1e),this[_0x5407eb(0x24a)][_0x5407eb(0x1c4)]($(_0x5407eb(0x20d))[_0x5407eb(0x19f)](_0x5407eb(0x1af))[_0x5407eb(0x1c4)]($('<i>')[_0x5407eb(0x19f)](_0x4b77b7))),this[_0x5407eb(0x24a)][_0x5407eb(0x1c4)]($(_0x5407eb(0x20d))[_0x5407eb(0x19f)]('licence-widget-msg')['text'](_0x36dba7)),this[_0x5407eb(0x24a)]['append']($('<br>')),this[_0x5407eb(0x24a)][_0x5407eb(0x1c4)]($('<span>')[_0x5407eb(0x19f)]('licence-widget-details')[_0x5407eb(0x1c4)](_0x330766));if(_0x57fa1e===_0x5407eb(0x1b4)||_0x57fa1e==='FAILED'||_0x10e5aa['type']==='FREEWARE'||_0x10e5aa[_0x5407eb(0x194)]==='TRIAL'){const _0x5ac93e=$('<button/>');_0x5ac93e['attr']('id',_0x5407eb(0x1bd)),_0x5ac93e[_0x5407eb(0x209)]('class',_0x5407eb(0x1aa)),_0x5ac93e[_0x5407eb(0x209)](_0x5407eb(0x208),'margin-top:\x2020px;'),_0x5ac93e[_0x5407eb(0x18e)](_0x5407eb(0x20b)),this[_0x5407eb(0x24a)][_0x5407eb(0x1c4)](_0x5ac93e);const _0x15e5fc=document[_0x5407eb(0x1ea)](_0x5407eb(0x24f));_0x15e5fc[_0x5407eb(0x1a6)]=_0x5407eb(0x1d1),_0x15e5fc[_0x5407eb(0x1e1)]=!![],$(_0x5407eb(0x1ac))[_0x5407eb(0x1c4)](_0x15e5fc);const _0xa50865=$(_0x5407eb(0x18d));_0xa50865[_0x5407eb(0x209)]('pricing-table-id',_0x391aae),_0xa50865[_0x5407eb(0x209)](_0x5407eb(0x20e),_0x3da2da),_0xa50865['attr'](_0x5407eb(0x208),_0x5407eb(0x1d4)),_0xa50865[_0x5407eb(0x253)](),this[_0x5407eb(0x24a)][_0x5407eb(0x1c4)](_0xa50865),_0x5ac93e['on']('click',()=>{const _0x386cee=_0x5407eb;_0xa50865[_0x386cee(0x248)](),_0x5ac93e[_0x386cee(0x253)](),this[_0x386cee(0x24a)][_0x386cee(0x209)](_0x386cee(0x208),_0x386cee(0x23a));});}})[_0x2912e9(0x207)](_0x33f584=>{console['log'](_0x33f584);});}});};_0x544456();function _0xedd780(_0x3db85f){const _0x3bb8cb=_0x2de8f6;let _0x6777bb;try{_0x6777bb=new URL(_0x3db85f);}catch(_0x295175){return![];}return _0x6777bb['protocol']===_0x3bb8cb(0x19c);}const _0x1807e2={'publishingEnabled':!![],'requestedLifetimeCount':0x3e8,'requestedMaxKeepAliveCount':0xa,'requestedPublishingInterval':0x3e8,'maxNotificationsPerPublish':0x0,'priority':0x64};RED[_0x2de8f6(0x24b)]['registerType'](_0x2de8f6(0x1da),{'category':_0x2de8f6(0x20c),'paletteLabel':_0x2de8f6(0x1a5),'defaults':{'name':{'value':''},'endpoint':{'value':_0x2de8f6(0x197),'required':!![],'validate':_0xedd780},'securityMode':{'value':_0x2de8f6(0x237)},'securityPolicy':{'value':'None','validate':_0x5e34c6=>{if(!_0x5e34c6)return![];return!![];}},'userIdentityType':{'value':_0x2de8f6(0x241)},'pkiName':{'value':'','validate':_0x5bea7f=>!_0x5bea7f||_0x5bea7f[_0x2de8f6(0x1f9)](/[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':_0x2de8f6(0x230),'isDefault':!![],'parameters':Object[_0x2de8f6(0x23d)]({},_0x1807e2)},{'id':'s2','name':_0x2de8f6(0x1ef),'isDefault':![],'parameters':{'publishingEnabled':!![],'requestedLifetimeCount':0x64,'requestedMaxKeepAliveCount':0x3,'requestedPublishingInterval':0x1388,'maxNotificationsPerPublish':0x64,'priority':0xa}},{'id':'s3','name':_0x2de8f6(0x256),'isDefault':![],'parameters':{'publishingEnabled':!![],'requestedLifetimeCount':0xfa0,'requestedMaxKeepAliveCount':0x32,'requestedPublishingInterval':0xfa,'maxNotificationsPerPublish':0x64,'priority':0xc8}}],'required':![]},'namespaceAliases':{'value':[{'alias':'ua','namespaceUri':_0x2de8f6(0x196),'isWellKnown':!![],'isDefault':!![]},{'alias':'di','namespaceUri':_0x2de8f6(0x1d9),'isWellKnown':!![],'isDefault':!![]}],'required':![]}},'credentials':{'userName':{'type':_0x2de8f6(0x18e)},'password':{'type':_0x2de8f6(0x1c7)},'userCertificate':{'type':'text'},'userPrivatekey':{'type':_0x2de8f6(0x1c7)}},'label':function(){const _0x3b70f0=_0x2de8f6;return this['name']||this[_0x3b70f0(0x1ed)]||_0x3b70f0(0x222);},'oneditsave'(){const _0x5f4963=_0x2de8f6,_0x24e47e=$(_0x5f4963(0x1c6)),_0x5c4eb7=$(_0x5f4963(0x1e0));_0x24e47e['val']()===_0x5f4963(0x237)&&_0x5c4eb7[_0x5f4963(0x18e)](_0x5f4963(0x237));{const _0x436259=$(_0x5f4963(0x22e))[_0x5f4963(0x1ad)]('items'),_0x28ffcf=[],_0x5bbfb5=_0x46e75c=>_0x46e75c;_0x436259[_0x5f4963(0x252)](function(_0x5c01bb,_0x305993){const _0x55f05f=_0x5f4963,_0x39a025=$(this),_0x3ec487={'id':'s'+_0x5c01bb,'name':_0x39a025[_0x55f05f(0x220)]('.input-name')[_0x55f05f(0x198)](),'isDefault':!!_0x39a025[_0x55f05f(0x220)]('.input-isDefault')[_0x55f05f(0x198)](),'parameters':{'publishingEnabled':!!_0x39a025[_0x55f05f(0x220)](_0x55f05f(0x22c))['is'](_0x55f05f(0x203)),'requestedLifetimeCount':_0x5bbfb5(_0x39a025[_0x55f05f(0x220)](_0x55f05f(0x1ba))['val']()),'requestedMaxKeepAliveCount':_0x5bbfb5(_0x39a025['find'](_0x55f05f(0x1ff))[_0x55f05f(0x198)]()),'requestedPublishingInterval':_0x5bbfb5(_0x39a025[_0x55f05f(0x220)]('.input-requestedPublishingInterval')['val']()),'maxNotificationsPerPublish':_0x5bbfb5(_0x39a025['find']('.input-maxNotificationsPerPublish')[_0x55f05f(0x198)]()),'priority':_0x5bbfb5(_0x39a025[_0x55f05f(0x220)](_0x55f05f(0x239))[_0x55f05f(0x198)]())}};_0x3ec487['parameters'][_0x55f05f(0x233)]=!![],_0x3ec487[_0x55f05f(0x1de)]&&_0x3ec487['id']==='s0'&&(_0x3ec487[_0x55f05f(0x24d)]=_0x55f05f(0x230)),_0x28ffcf[_0x55f05f(0x249)](_0x3ec487);}),this[_0x5f4963(0x1f4)]=_0x28ffcf;}{const _0x17a1e8=$(_0x5f4963(0x21d))[_0x5f4963(0x1ad)](_0x5f4963(0x1a2)),_0x4f0795=[];_0x17a1e8['each'](function(_0x24613f,_0x2d8e5f){const _0x404b88=_0x5f4963,_0x550059=$(this),_0x144630={'namespaceUri':_0x550059['find'](_0x404b88(0x1a7))[_0x404b88(0x198)](),'alias':_0x550059[_0x404b88(0x220)]('.node-input-alias-alias')[_0x404b88(0x198)]()};_0x4f0795['push'](_0x144630);}),this[_0x5f4963(0x20f)]=_0x4f0795;}},'oneditprepare'(){const _0x5f07fb=_0x2de8f6,_0x54d3dc=this,_0x51ed8d=RED[_0x5f07fb(0x1a3)][_0x5f07fb(0x21f)]({'id':'node-config-endpoint-tabs','onchange':function(_0x1222cf){const _0x6a533a=_0x5f07fb;$('#node-config-endpoint-tabs-content')[_0x6a533a(0x1cb)]()[_0x6a533a(0x253)](),$('#'+_0x1222cf['id'])[_0x6a533a(0x248)]();}});_0x51ed8d[_0x5f07fb(0x232)]({'id':_0x5f07fb(0x20a),'label':_0x5f07fb(0x213)},0x0),_0x51ed8d['addTab']({'id':'endpoint-tab-subscriptions','label':_0x5f07fb(0x1b0)},0x1),_0x51ed8d['addTab']({'id':_0x5f07fb(0x210),'label':_0x5f07fb(0x1fc)},0x2),setTimeout(function(){const _0x545e6a=_0x5f07fb;_0x51ed8d[_0x545e6a(0x1f8)]();},0x0);{const _0x191995=_0x2479e3=>{const _0x3c04db=_0x5f07fb;switch(_0x2479e3){case null:case undefined:case'':case _0x3c04db(0x237):$(_0x3c04db(0x1fd))[_0x3c04db(0x253)]();break;case _0x3c04db(0x224):case _0x3c04db(0x1d2):{const _0x1ac2df=$(_0x3c04db(0x1fd));(_0x1ac2df[_0x3c04db(0x198)]()===_0x3c04db(0x237)||_0x1ac2df[_0x3c04db(0x198)]()==='')&&_0x1ac2df[_0x3c04db(0x198)](_0x3c04db(0x1e4)),$(_0x3c04db(0x1fd))['show']();}break;default:console[_0x3c04db(0x238)](_0x3c04db(0x215)+_0x2479e3);}};_0x191995(_0x54d3dc['securityMode']);const _0xb8d2d=$('#node-config-input-securityMode');_0xb8d2d['on'](_0x5f07fb(0x1d7),()=>{const _0x2adabc=_0x5f07fb,_0x4ccc9e=_0xb8d2d[_0x2adabc(0x198)]();_0x191995(_0x4ccc9e);});}const _0x17f80f=$(_0x5f07fb(0x205));_0x17f80f[_0x5f07fb(0x1c8)]({'baseUrl':''});{const _0xa5117a=$(_0x5f07fb(0x23c)),_0x4b364d=$(_0x5f07fb(0x1ee)),_0x467342=_0x37a75b=>{const _0x2b8218=_0x5f07fb;_0x37a75b=_0x37a75b||_0x2b8218(0x241);switch(_0x37a75b){case _0x2b8218(0x241):$('#node-config-input-userName')[_0x2b8218(0x198)](''),$(_0x2b8218(0x18a))[_0x2b8218(0x198)](''),_0xa5117a['hide'](),_0x4b364d[_0x2b8218(0x253)]();break;case _0x2b8218(0x231):_0xa5117a[_0x2b8218(0x248)](),_0x4b364d['hide']();break;case _0x2b8218(0x195):$(_0x2b8218(0x251))[_0x2b8218(0x198)](''),$('#node-config-input-password')['val'](''),_0x4b364d[_0x2b8218(0x248)](),_0xa5117a[_0x2b8218(0x253)]();break;default:console[_0x2b8218(0x238)](_0x2b8218(0x1e8)+_0x37a75b);}};_0x467342(_0x54d3dc['userIdentityType']);const _0x42848d=$(_0x5f07fb(0x19a));_0x42848d['on']('change',()=>{const _0x1eef0a=_0x5f07fb,_0xafa7bb=_0x42848d[_0x1eef0a(0x198)]();_0x467342(_0xafa7bb);});}{$(_0x5f07fb(0x246))[_0x5f07fb(0x253)](),$('#toggleAdvancedSection')[_0x5f07fb(0x187)]('checked',![]),$(_0x5f07fb(0x1c2))['on'](_0x5f07fb(0x1d7),function(){const _0x42f75d=_0x5f07fb;$(this)[_0x42f75d(0x187)](_0x42f75d(0x202))?$(_0x42f75d(0x246))[_0x42f75d(0x248)]():$(_0x42f75d(0x246))[_0x42f75d(0x253)]();});}const _0x2228f3=$(_0x5f07fb(0x188))[_0x5f07fb(0x187)](_0x5f07fb(0x202));_0x2228f3?$(_0x5f07fb(0x204))['show']():$(_0x5f07fb(0x204))[_0x5f07fb(0x253)]();$('#node-config-input-useTransport')['on'](_0x5f07fb(0x1d7),function(){const _0x269b08=_0x5f07fb;$(this)[_0x269b08(0x187)]('checked')?$(_0x269b08(0x204))['show']():$(_0x269b08(0x204))[_0x269b08(0x253)]();});{$('#checkCertificate')['on'](_0x5f07fb(0x1e5),()=>_0x11455(this,void 0x0,void 0x0,function*(){const _0x2dbd63=_0x5f07fb,_0x19a215=yield fetch(_0x2dbd63(0x1e7)),_0x5526c5=yield _0x19a215[_0x2dbd63(0x1c5)](),_0x1e9023=JSON['stringify'](_0x5526c5,null,'\x20');alert(_0x1e9023);}));}$('#goto-config')['on'](_0x5f07fb(0x1e5),()=>_0x11455(this,void 0x0,void 0x0,function*(){const _0x2cdccd=_0x5f07fb;window[_0x2cdccd(0x22b)]('/opcua-for-node-red/config','_blank');}));function _0x1ebcc9(){const _0x2cf76e=_0x5f07fb;var _0x50427e;return{'id':_0x54d3dc['id'],'endpoint':$(_0x2cf76e(0x1bb))['val'](),'name':$(_0x2cf76e(0x1d8))[_0x2cf76e(0x198)](),'pkiName':(_0x50427e=$(_0x2cf76e(0x254)))===null||_0x50427e===void 0x0?void 0x0:_0x50427e[_0x2cf76e(0x198)](),'securityMode':$(_0x2cf76e(0x1e0))[_0x2cf76e(0x198)](),'securityPolicy':$(_0x2cf76e(0x1c6))[_0x2cf76e(0x198)](),'userIdentityType':$(_0x2cf76e(0x19a))[_0x2cf76e(0x198)](),'userName':$(_0x2cf76e(0x251))['val'](),'password':$(_0x2cf76e(0x18a))[_0x2cf76e(0x198)](),'userCertificate':$('#node-config-input-userCertificate')[_0x2cf76e(0x198)](),'userPrivatekey':$('#node-config-input-userPrivatekey')['val'](),'certificate':$('#node-input-certificate')[_0x2cf76e(0x198)](),'useTransport':$(_0x2cf76e(0x1f3))['prop'](_0x2cf76e(0x202)),'maxChunkCount':$(_0x2cf76e(0x243))['val'](),'maxMessageSize':$(_0x2cf76e(0x1bf))[_0x2cf76e(0x198)](),'receiveBufferSize':$(_0x2cf76e(0x223))[_0x2cf76e(0x198)](),'sendBufferSize':$(_0x2cf76e(0x1b8))[_0x2cf76e(0x198)]()};}{_0x1e9f0b(_0x5f07fb(0x245),$(_0x5f07fb(0x1a4)),()=>({'url':_0x5f07fb(0x206),'body':{'endpointNode':_0x1ebcc9()}}),()=>{});}{const _0x21f9be=(_0xa1000e,_0x4b3b09)=>{const _0xdcf721=_0x5f07fb;var _0x111b25=_0xa1000e[_0xdcf721(0x1e3)]()||0x64;_0xa1000e[_0xdcf721(0x220)]('label')[_0xdcf721(0x1ae)](_0xdcf721(0x1e3),_0x111b25-0xf);},_0x18e63a=$(_0x5f07fb(0x22e))['css']({'min-height':_0x5f07fb(0x234),'min-width':_0x5f07fb(0x216)})[_0x5f07fb(0x1ad)]({'addItem':(_0x1d9326,_0x1462b2,_0xf317d9)=>{const _0x19615b=_0x5f07fb,_0x3c7b8c=_0xf317d9,_0x476ebf=$('#subscription-template')['clone']()[_0x19615b(0x18b)](_0x1d9326);_0x476ebf[_0x19615b(0x200)]('id')[_0x19615b(0x1a1)](_0x19615b(0x253))[_0x19615b(0x1a1)]('template')['attr'](_0x19615b(0x258),_0x1462b2),_0x476ebf[_0x19615b(0x220)](_0x19615b(0x1bc))[_0x19615b(0x198)](_0x3c7b8c[_0x19615b(0x24d)]),_0x476ebf[_0x19615b(0x220)](_0x19615b(0x235))['val'](_0x3c7b8c[_0x19615b(0x1b3)]['requestedPublishingInterval']),_0x476ebf[_0x19615b(0x220)]('.input-requestedMaxKeepAliveCount')[_0x19615b(0x198)](_0x3c7b8c['parameters'][_0x19615b(0x1c1)]),_0x476ebf[_0x19615b(0x220)](_0x19615b(0x1ba))[_0x19615b(0x198)](_0x3c7b8c[_0x19615b(0x1b3)]['requestedLifetimeCount']),_0x476ebf['find'](_0x19615b(0x1b9))[_0x19615b(0x198)](_0x3c7b8c[_0x19615b(0x1b3)]['maxNotificationsPerPublish']||0x0),_0x476ebf[_0x19615b(0x220)]('.input-priority')[_0x19615b(0x198)](_0x3c7b8c[_0x19615b(0x1b3)][_0x19615b(0x1b7)]||0x0),_0x476ebf[_0x19615b(0x220)](_0x19615b(0x193))['text'](''+_0x1462b2),_0x3c7b8c[_0x19615b(0x1de)]&&_0x476ebf[_0x19615b(0x220)](_0x19615b(0x1bc))[_0x19615b(0x187)](_0x19615b(0x226),!![]),_0x476ebf[_0x19615b(0x220)](_0x19615b(0x185))[_0x19615b(0x187)](_0x19615b(0x202),_0x3c7b8c[_0x19615b(0x1de)]),_0x3c7b8c[_0x19615b(0x1de)]&&(_0x1d9326[_0x19615b(0x220)](_0x19615b(0x1ca))['addClass'](_0x19615b(0x253)),setTimeout(()=>_0x476ebf[_0x19615b(0x220)](_0x19615b(0x185))['prop'](_0x19615b(0x190),!![]),0xa));},'removable':!![],'resizeItem':_0x21f9be}),_0x19488f=()=>{const _0x385057=_0x5f07fb,_0x79f1a9=_0x54d3dc[_0x385057(0x1f4)]||[];_0x79f1a9[_0x385057(0x218)]===0x0&&_0x79f1a9[_0x385057(0x249)]({'id':'s1','name':_0x385057(0x230),'isDefault':!![],'parameters':Object[_0x385057(0x23d)]({},_0x1807e2)});_0x18e63a[_0x385057(0x1ad)]('empty');for(const _0x76c97a of _0x79f1a9){_0x18e63a[_0x385057(0x1ad)](_0x385057(0x1b2),_0x76c97a);}};_0x19488f();}{function _0x5ec5a0(_0x1941e2,_0x51396c,_0x3374b0){const _0x28065e=_0x5f07fb,_0x351bf4=_0x3374b0,_0x448f2d=$(_0x28065e(0x1ab))[_0x28065e(0x18b)](_0x1941e2);$(_0x28065e(0x229),{'class':_0x28065e(0x199),'type':_0x28065e(0x18e)})[_0x28065e(0x198)](_0x3374b0[_0x28065e(0x250)]||'')[_0x28065e(0x1b5)]({'width':'5%'})[_0x28065e(0x18b)](_0x448f2d)[_0x28065e(0x198)](_0x51396c['toString']()),$('<input/>',{'class':'node-input-alias-alias','type':'text'})[_0x28065e(0x198)](_0x3374b0[_0x28065e(0x250)]||'')[_0x28065e(0x1b5)]({'width':_0x28065e(0x191)})[_0x28065e(0x18b)](_0x448f2d)[_0x28065e(0x198)](_0x351bf4[_0x28065e(0x250)]),$(_0x28065e(0x229),{'class':_0x28065e(0x21e),'type':_0x28065e(0x18e)})[_0x28065e(0x198)](_0x3374b0[_0x28065e(0x23f)]||'')['css']({'width':'70%'})['appendTo'](_0x448f2d)[_0x28065e(0x198)](_0x351bf4[_0x28065e(0x23f)]);}const _0x1d1885=$('#editable-list-aliases-container')['css']({'min-height':'150px','min-width':'260px'})[_0x5f07fb(0x1ad)]({'addButton':![],'removable':![],'height':_0x5f07fb(0x221),'scrollOnAdd':![],'addItem'(_0x481e5b,_0x4b7fe9,_0x2b3132){_0x5ec5a0(_0x481e5b,_0x4b7fe9,_0x2b3132);}});function _0x4c5426(){const _0x18e4bf=_0x5f07fb;_0x1d1885[_0x18e4bf(0x1ad)](_0x18e4bf(0x1a2)),_0x1d1885[_0x18e4bf(0x1ad)](_0x18e4bf(0x217));for(const _0xbd756e of _0x54d3dc[_0x18e4bf(0x20f)]||[]){_0x1d1885[_0x18e4bf(0x1ad)](_0x18e4bf(0x1b2),_0xbd756e);}}{$(_0x5f07fb(0x22f))['on']('click',()=>_0x11455(this,void 0x0,void 0x0,function*(){const _0x8a4726=_0x5f07fb,_0x4e1383={'endpointNode':_0x1ebcc9(),'namespaceAliases':_0x54d3dc[_0x8a4726(0x20f)]||[]},_0x386115=yield fetch(_0x8a4726(0x227),{'method':_0x8a4726(0x19e),'headers':{'Content-Type':_0x8a4726(0x1f0)},'body':JSON[_0x8a4726(0x1cf)](_0x4e1383)}),_0x98a2e5=yield _0x386115[_0x8a4726(0x1c5)](),_0x343dce=_0x98a2e5[_0x8a4726(0x20f)];console[_0x8a4726(0x238)](_0x8a4726(0x20f),_0x343dce),Array[_0x8a4726(0x1ec)](_0x343dce)&&(_0x54d3dc['namespaceAliases']=_0x343dce,_0x4c5426());})),_0x54d3dc['namespaceAliases']=_0x54d3dc[_0x5f07fb(0x20f)]||[{'alias':'ua','namespaceUri':_0x5f07fb(0x196),'isWellKnown':!![],'isDefault':!![]}];}_0x4c5426();}}});}()));
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNvdXJjZU1hcCJdLCJuYW1lcyI6WyJfMHgxMTQ1NSIsIl8weDQ0NThjOCIsIl8weDIzMTQ3MCIsIl8weDRhMTQyYSIsIl8weDFjMmFkOSIsIl8weDFlMjM5MSIsIl8weGI3ZmU1NiIsIl8weDIzYTc4NiIsIlByb21pc2UiLCJfMHg2ZGQ0ZTAiLCJfMHg1ZDVhMDkiLCJfMHgyMjhlMjQiLCJfMHg2NjQyYTciLCJfMHg0MDViYmYiLCJfMHg0MDVkN2YiLCJfMHgyYjAwMDEiLCJfMHgyMjA3MjMiLCJfMHg1MTVlMzEiLCJfMHgyOWYzZGUiLCJTdXBwcmVzc2VkRXJyb3IiLCJfMHhmNzAxMzkiLCJfMHg1NmZkNjMiLCJfMHg1NDhjMzIiLCJfMHgzZmZmYzQiLCJFcnJvciIsIl8weDFlOWYwYiIsIl8weDI3NTViNCIsIl8weDQ4Nzg5NyIsIl8weDE3NDA4NiIsIl8weDRmMWI0ZCIsIl8weDRlNmZjMyIsIiQiLCJfMHgxZTk2MGUiLCJfMHg0ZmM0ZDYiLCJfMHgzZTNlYWEiLCJfMHgzMzI1MjYiLCJib2R5IiwiXzB4MTIwNDdhIiwidXJsIiwiXzB4NDU2ZmIyIiwiZmV0Y2giLCJKU09OIiwiXzB4NGZjZDU3IiwiXzB4MzJiODUwIiwiY29uc29sZSIsIl8weDNkYThhNyIsIl8weDE3Yzc0YyIsIl8weDRiYWViOCIsIl8weGQ0NThiMyIsIl8weDQyMzA3ZiIsIkFycmF5IiwiXzB4MzM4ZjhlIiwiXzB4MzkxYWFlIiwiXzB4M2RhMmRhIiwiXzB4MzZhNDEwIiwiYXJndW1lbnRzIiwiXzB4NDNkYmUzIiwiXzB4MmM3MmRjIiwiXzB4M2YzNWZiIiwiXzB4MTRlMDRlIiwiXzB4ZTc2NDlmIiwiRGF0ZSIsIl8weDM5ZjhlMSIsIl8weDU0NDQ1NiIsIl8weDU2ZmQ5MiIsIl8weDUxMTg5MiIsIl8weDM2ZjZhOCIsIl8weDEwZTVhYSIsIl8weDRiNzdiNyIsIl8weDM2ZGJhNyIsIl8weDMzMDc2NiIsIl8weDU3ZmExZSIsIl8weDM5Njg3NyIsIl8weDVhYzkzZSIsIl8weDE1ZTVmYyIsImRvY3VtZW50IiwiXzB4YTUwODY1IiwiXzB4MzNmNTg0IiwiXzB4ZWRkNzgwIiwiXzB4M2RiODVmIiwiXzB4Njc3N2JiIiwiVVJMIiwiXzB4Mjk1MTc1IiwiXzB4MTgwN2UyIiwiUkVEIiwiXzB4NWUzNGM2IiwiXzB4NWJlYTdmIiwiT2JqZWN0IiwiXzB4MjRlNDdlIiwiXzB4NWM0ZWI3IiwiXzB4NDM2MjU5IiwiXzB4MjhmZmNmIiwiXzB4NWJiZmI1IiwiXzB4NDZlNzVjIiwiXzB4NWMwMWJiIiwiXzB4MzA1OTkzIiwiXzB4MzlhMDI1IiwiXzB4M2VjNDg3IiwiXzB4MTdhMWU4IiwiXzB4NGYwNzk1IiwiXzB4MjQ2MTNmIiwiXzB4MmQ4ZTVmIiwiXzB4NTUwMDU5IiwiXzB4MTQ0NjMwIiwiXzB4NTRkM2RjIiwiXzB4NTFlZDhkIiwiXzB4MTIyMmNmIiwic2V0VGltZW91dCIsIl8weDE5MTk5NSIsIl8weDI0NzllMyIsInVuZGVmaW5lZCIsIl8weDFhYzJkZiIsIl8weGI4ZDJkIiwiXzB4NGNjYzllIiwiXzB4MTdmODBmIiwiXzB4YTUxMTdhIiwiXzB4NGIzNjRkIiwiXzB4NDY3MzQyIiwiXzB4MzdhNzViIiwiXzB4NDI4NDhkIiwiXzB4YWZhN2JiIiwiXzB4MjIyOGYzIiwiXzB4MTlhMjE1IiwiXzB4NTUyNmM1IiwiXzB4MWU5MDIzIiwiYWxlcnQiLCJ3aW5kb3ciLCJfMHgxZWJjYzkiLCJfMHg1MDQyN2UiLCJfMHgyMWY5YmUiLCJfMHhhMTAwMGUiLCJfMHg0YjNiMDkiLCJfMHgxMTFiMjUiLCJfMHgxOGU2M2EiLCJfMHgxZDkzMjYiLCJfMHgxNDYyYjIiLCJfMHhmMzE3ZDkiLCJfMHgzYzdiOGMiLCJfMHg0NzZlYmYiLCJfMHgxOTQ4OGYiLCJfMHg3OWYxYTkiLCJfMHg3NmM5N2EiLCJfMHg1ZWM1YTAiLCJfMHgxOTQxZTIiLCJfMHg1MTM5NmMiLCJfMHgzMzc0YjAiLCJfMHgzNTFiZjQiLCJfMHg0NDhmMmQiLCJfMHgxZDE4ODUiLCJfMHg0ODFlNWIiLCJfMHg0YjdmZTkiLCJfMHgyYjMxMzIiLCJfMHg0YzU0MjYiLCJfMHhiZDc1NmUiLCJfMHg0ZTEzODMiLCJfMHgzODYxMTUiLCJfMHg5OGEyZTUiLCJfMHgzNDNkY2UiXSwibWFwcGluZ3MiOiIrc0tBQUEsQ0FBQyxVLENBQ0csYSx3QkFtQkEsU0FBU0EsUUFBVCxDQUFtQkMsU0FBbkIsQ0FBNEJDLFNBQTVCLENBQXdDQyxTQUF4QyxDQUEyQ0MsU0FBM0MsQyxDQUNJLFNBQVNDLFNBQVQsQ0FBZUMsU0FBZixDLFFBQStCQSxTQUFBLFlBQWlCSCxTQUFqQixDQUFxQkcsU0FBckIsQ0FBNkIsSUFBSUgsU0FBSixDQUFNLFNBQVVJLFNBQVYsQyxDQUFxQkEsU0FBQSxDQUFRRCxTQUFSLEMsRUFBM0IsQyxTQUNyRCxHQUFLLENBQUFILFNBQUEsRUFBTSxDQUFBQSxTQUFBLENBQUlLLE9BQUosQ0FBTixDQUFMLENBQXlCLFNBQVVDLFNBQVYsQ0FBbUJDLFNBQW5CLEMseUJBQzVCLFNBQVNDLFNBQVQsQ0FBbUJDLFNBQW5CLEMsd0JBQTRCLEcsQ0FBTUMsU0FBQSxDQUFLVCxTQUFBLEMsZUFBQSxFQUFlUSxTQUFmLENBQUwsQyxFQUErQixNQUFPRSxTQUFQLEMsQ0FBWUosU0FBQSxDQUFPSSxTQUFQLEMsR0FDN0UsU0FBU0MsU0FBVCxDQUFrQkMsU0FBbEIsQyxDQUEyQixHLENBQU1ILFNBQUEsQ0FBS1QsU0FBQSxDLE9BQUEsRUFBbUJZLFNBQW5CLENBQUwsQyxFQUFtQyxNQUFPQyxTQUFQLEMsQ0FBWVAsU0FBQSxDQUFPTyxTQUFQLEMsR0FDaEYsU0FBU0osU0FBVCxDQUFjSyxTQUFkLEMseUJBQXdCQSxTQUFBLEMsZ0JBQUEsRUFBY1QsU0FBQSxDQUFRUyxTQUFBLEMsZ0JBQUEsQ0FBUixDQUFkLENBQXNDYixTQUFBLENBQU1hLFNBQUEsQyxPQUFBLENBQU4sRSxNQUFBLEVBQXlCUCxTQUF6QixDQUFvQ0ksU0FBcEMsQyxFQUM5REYsU0FBQSxDQUFNLENBQUFULFNBQUEsQ0FBWUEsU0FBQSxDLGdCQUFBLEVBQWdCSCxTQUFoQixDQUF5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c0NvbnRlbnQiOlsiKGZ1bmN0aW9uICgpIHtcbiAgICAndXNlIHN0cmljdCc7XG5cbiAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbiAgICBDb3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbi5cclxuXHJcbiAgICBQZXJtaXNzaW9uIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBhbmQvb3IgZGlzdHJpYnV0ZSB0aGlzIHNvZnR3YXJlIGZvciBhbnlcclxuICAgIHB1cnBvc2Ugd2l0aCBvciB3aXRob3V0IGZlZSBpcyBoZXJlYnkgZ3JhbnRlZC5cclxuXHJcbiAgICBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiIEFORCBUSEUgQVVUSE9SIERJU0NMQUlNUyBBTEwgV0FSUkFOVElFUyBXSVRIXHJcbiAgICBSRUdBUkQgVE8gVEhJUyBTT0ZUV0FSRSBJTkNMVURJTkcgQUxMIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFlcclxuICAgIEFORCBGSVRORVNTLiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIFNQRUNJQUwsIERJUkVDVCxcclxuICAgIElORElSRUNULCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgT1IgQU5ZIERBTUFHRVMgV0hBVFNPRVZFUiBSRVNVTFRJTkcgRlJPTVxyXG4gICAgTE9TUyBPRiBVU0UsIERBVEEgT1IgUFJPRklUUywgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIE5FR0xJR0VOQ0UgT1JcclxuICAgIE9USEVSIFRPUlRJT1VTIEFDVElPTiwgQVJJU0lORyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBVU0UgT1JcclxuICAgIFBFUkZPUk1BTkNFIE9GIFRISVMgU09GVFdBUkUuXHJcbiAgICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqL1xyXG4gICAgLyogZ2xvYmFsIFJlZmxlY3QsIFByb21pc2UsIFN1cHByZXNzZWRFcnJvciwgU3ltYm9sLCBJdGVyYXRvciAqL1xyXG5cclxuXHJcbiAgICBmdW5jdGlvbiBfX2F3YWl0ZXIodGhpc0FyZywgX2FyZ3VtZW50cywgUCwgZ2VuZXJhdG9yKSB7XHJcbiAgICAgICAgZnVuY3Rpb24gYWRvcHQodmFsdWUpIHsgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgUCA/IHZhbHVlIDogbmV3IFAoZnVuY3Rpb24gKHJlc29sdmUpIHsgcmVzb2x2ZSh2YWx1ZSk7IH0pOyB9XHJcbiAgICAgICAgcmV0dXJuIG5ldyAoUCB8fCAoUCA9IFByb21pc2UpKShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XHJcbiAgICAgICAgICAgIGZ1bmN0aW9uIGZ1bGZpbGxlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvci5uZXh0KHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cclxuICAgICAgICAgICAgZnVuY3Rpb24gcmVqZWN0ZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3JbXCJ0aHJvd1wiXSh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XHJcbiAgICAgICAgICAgIGZ1bmN0aW9uIHN0ZXAocmVzdWx0KSB7IHJlc3VsdC5kb25lID8gcmVzb2x2ZShyZXN1bHQudmFsdWUpIDogYWRvcHQocmVzdWx0LnZhbHVlKS50aGVuKGZ1bGZpbGxlZCwgcmVqZWN0ZWQpOyB9XHJcbiAgICAgICAgICAgIHN0ZXAoKGdlbmVyYXRvciA9IGdlbmVyYXRvci5hcHBseSh0aGlzQXJnLCBfYXJndW1lbnRzIHx8IFtdKSkubmV4dCgpKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICB0eXBlb2YgU3VwcHJlc3NlZEVycm9yID09PSBcImZ1bmN0aW9uXCIgPyBTdXBwcmVzc2VkRXJyb3IgOiBmdW5jdGlvbiAoZXJyb3IsIHN1cHByZXNzZWQsIG1lc3NhZ2UpIHtcclxuICAgICAgICB2YXIgZSA9IG5ldyBFcnJvcihtZXNzYWdlKTtcclxuICAgICAgICByZXR1cm4gZS5uYW1lID0gXCJTdXBwcmVzc2VkRXJyb3JcIiwgZS5lcnJvciA9IGVycm9yLCBlLnN1cHByZXNzZWQgPSBzdXBwcmVzc2VkLCBlO1xyXG4gICAgfTtcblxuICAgIGZ1bmN0aW9uIG1hbmFnZUFQSUNhbGwocHJlZml4LCBidG4sIGZ1bmMsIG9uUmVzdWx0KSB7XG4gICAgICAgIGNvbnN0IHN1Y2Nlc3NJY29uID0gJChgIyR7cHJlZml4fS1zdWNjZXNzYCk7XG4gICAgICAgIGNvbnN0IGZhaWx1cmVJY29uID0gJChgIyR7cHJlZml4fS1mYWlsdXJlYCk7XG4gICAgICAgIGNvbnN0IHBlbmRpbmdJY29uID0gJChgIyR7cHJlZml4fS1wZW5kaW5nYCk7XG4gICAgICAgIGNvbnN0IG1lc3NhZ2VzID0gJChgIyR7cHJlZml4fS1tZXNzYWdlc2ApO1xuICAgICAgICBsZXQgYWN0aW9uUGVuZGluZyA9IGZhbHNlO1xuICAgICAgICBzdWNjZXNzSWNvbi5oaWRlKCk7XG4gICAgICAgIGZhaWx1cmVJY29uLmhpZGUoKTtcbiAgICAgICAgcGVuZGluZ0ljb24uaGlkZSgpO1xuICAgICAgICBidG4ub24oXCJjbGlja1wiLCAoKSA9PiB7XG4gICAgICAgICAgICBpZiAoYWN0aW9uUGVuZGluZylcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICBhY3Rpb25QZW5kaW5nID0gdHJ1ZTtcbiAgICAgICAgICAgIHBlbmRpbmdJY29uLnJlbW92ZUNsYXNzKFwiaGlkZVwiKTtcbiAgICAgICAgICAgIHBlbmRpbmdJY29uLmh0bWwoXCJUZXN0aW5nIENvbm5lY3Rpb24gLi4uXCIpO1xuICAgICAgICAgICAgc3VjY2Vzc0ljb24uYWRkQ2xhc3MoXCJoaWRlXCIpO1xuICAgICAgICAgICAgZmFpbHVyZUljb24uYWRkQ2xhc3MoXCJoaWRlXCIpO1xuICAgICAgICAgICAgbWVzc2FnZXMuaHRtbChcIlwiKTtcbiAgICAgICAgICAgIGNvbnN0IHsgYm9keSwgdXJsIH0gPSBmdW5jKCk7XG4gICAgICAgICAgICAvLyB4eCBjb25zb2xlLmxvZyhcInh4eHh4XCIsIGJvZHkpO1xuICAgICAgICAgICAgZmV0Y2godXJsLCB7XG4gICAgICAgICAgICAgICAgbWV0aG9kOiBcIlBPU1RcIixcbiAgICAgICAgICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgICAgICAgICAgIFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoYm9keSksXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIC50aGVuKChkYXRhKSA9PiBkYXRhLmpzb24oKSlcbiAgICAgICAgICAgICAgICAudGhlbigoanNvbikgPT4ge1xuICAgICAgICAgICAgICAgIGFjdGlvblBlbmRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICBwZW5kaW5nSWNvbi5oaWRlKCk7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coSlNPTi5zdHJpbmdpZnkoanNvbiwgbnVsbCwgXCIgXCIpKTtcbiAgICAgICAgICAgICAgICBpZiAoanNvbi5yZXN1bHQgPT09IFwib2tcIikge1xuICAgICAgICAgICAgICAgICAgICBzdWNjZXNzSWNvbi5yZW1vdmVDbGFzcyhcImhpZGVcIik7XG4gICAgICAgICAgICAgICAgICAgIGZhaWx1cmVJY29uLmFkZENsYXNzKFwiaGlkZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgbWVzc2FnZXMuaHRtbChqc29uLm1lc3NhZ2UucmVwbGFjZShcIlxcblwiLCBcIjxicj5cIikpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYWRhcHQgPSAoc3RyKSA9PiAhc3RyXG4gICAgICAgICAgICAgICAgICAgICAgICA/IFwiXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIDogc3RyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLnNwbGl0KFwiXFxuXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLm1hcCgoYSkgPT4gYDxwPiR7YX08L3A+YClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuam9pbihcIlxcblwiKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYWRhcHQyID0gKHN0cikgPT4gKEFycmF5LmlzQXJyYXkoc3RyKSA/IHN0ci5tYXAoYWRhcHQpLmpvaW4oXCJcXG5cIikgOiBhZGFwdChzdHIpKTtcbiAgICAgICAgICAgICAgICAgICAgc3VjY2Vzc0ljb24uYWRkQ2xhc3MoXCJoaWRlXCIpO1xuICAgICAgICAgICAgICAgICAgICBmYWlsdXJlSWNvbi5yZW1vdmVDbGFzcyhcImhpZGVcIik7XG4gICAgICAgICAgICAgICAgICAgIG1lc3NhZ2VzLmh0bWwoYWRhcHQyKGpzb24ubWVzc2FnZSkgKyBhZGFwdDIoanNvbi5leHRyYSkpO1xuICAgICAgICAgICAgICAgICAgICBvblJlc3VsdChuZXcgRXJyb3IoanNvbi5yZXN1bHQpLCBqc29uKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIC5jYXRjaCgoZXJyKSA9PiB7XG4gICAgICAgICAgICAgICAgYWN0aW9uUGVuZGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHBlbmRpbmdJY29uLmFkZENsYXNzKFwiaGlkZVwiKTtcbiAgICAgICAgICAgICAgICBzdWNjZXNzSWNvbi5hZGRDbGFzcyhcImhpZGVcIik7XG4gICAgICAgICAgICAgICAgZmFpbHVyZUljb24ucmVtb3ZlQ2xhc3MoXCJoaWRlXCIpO1xuICAgICAgICAgICAgICAgIG1lc3NhZ2VzLmh0bWwoXCJpbnRlcm5hbCBlcnJvciBcIiArIGVyci5tZXNzYWdlKTtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImVyclwiLCBlcnIpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGNvbnN0IHByaWNpbmdUYWJsZUlkID0gXCJwcmN0YmxfMU9KdDQ5QkNOY2NienNWemthQU5PZ0ZMXCI7XG4gICAgY29uc3QgcHVibGlzaGFibGVLZXkgPSBcInBrX2xpdmVfNTFIc0Uxc0JDTmNjYnpzVnp0N3phcTJ1djIwcGtyeVdsbEF6dlpnWmQ1QWh3Rkk5QTNxQkllT0p2SndRRjA4bERvTHBGcUxqd215QTc5d25QbllMc3ZLanQwMDlmMDBWcENXXCI7XG4gICAgZnVuY3Rpb24gZmV0Y2hMaWNlbmNlSW5mbygpIHtcbiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCBhcmd1bWVudHMsIHZvaWQgMCwgZnVuY3Rpb24qIChiYXNlVXJsID0gXCJcIikge1xuICAgICAgICAgICAgY29uc3Qgcm9vdCA9IGAke2Jhc2VVcmx9L29wY3VhLWZvci1ub2RlLXJlZGA7XG4gICAgICAgICAgICBjb25zdCB1cmwgPSBgJHtyb290fS9saWNlbmNlSW5mb2A7XG4gICAgICAgICAgICBjb25zdCBkYXRhID0geWllbGQgZmV0Y2godXJsLCB7XG4gICAgICAgICAgICAgICAgbWV0aG9kOiBcIlBPU1RcIixcbiAgICAgICAgICAgICAgICBoZWFkZXJzOiB7IFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiIH0sXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGNvbnN0IHRvZGF5ID0gbmV3IERhdGUoKS50b0lTT1N0cmluZygpO1xuICAgICAgICAgICAgaWYgKGRhdGEuc3RhdHVzICE9PSAyMDApIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImZldGNoaW5nIGZhaWxlZCB3aXRoIGVycm9yXCIsIGRhdGEuc3RhdHVzLCBkYXRhLnN0YXR1c1RleHQpO1xuICAgICAgICAgICAgICAgIHJldHVybiB7IHN0YXR1czogXCJGQUlMRURcIiwgdHlwZTogXCJGUkVFV0FSRVwiLCBsaWNlbmNlSW5mbzogeyBleHBpcnlEYXRlOiB0b2RheSB9IH07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBqc29uID0geWllbGQgZGF0YS5qc29uKCk7XG4gICAgICAgICAgICByZXR1cm4ganNvbjtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGNvbnN0IGRlY2xhcmVMaWNlbmNlV2lkZ2V0ID0gKCkgPT4ge1xuICAgICAgICAkLndpZGdldChcInN0ZXJmaXZlLmxpY2VuY2VXaWRnZXRcIiwge1xuICAgICAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgICAgIGJhc2VVcmw6IFwiXCIsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgX2NyZWF0ZSgpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICBjb25zdCBjb250YWN0TGluayA9IGA8YSBocmVmPVwibWFpbHRvOnN1cHBvcnRAc3RlcmZpdmUuY29tXCIgc3ViamVjdD1cIkBvcGN1YS9mb3Itbm9kZS1yZWQgc3VwcG9ydCByZXF1ZXN0XCI+bWFpbHRvOnN1cHBvcnRAc3RlcmZpdmUuY29tPC9hPmA7XG4gICAgICAgICAgICAgICAgY29uc3Qgd2Vic2l0ZUxpbmsgPSBgPGEgaHJlZj1cImh0dHBzOi8vd3d3LnN0ZXJmaXZlLmNvbS9vcGN1YS9mb3Itbm9kZS1yZWRcIiB0YXJnZXQ94oCdX2JsYW5r4oCdPlN0ZXJmaXZlJ3Mgd2Vic2l0ZSA8L2E+YDtcbiAgICAgICAgICAgICAgICBmZXRjaExpY2VuY2VJbmZvKHRoYXQuYmFzZVVybClcbiAgICAgICAgICAgICAgICAgICAgLnRoZW4oKGpzb24pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IGljb24gPSBcIlwiO1xuICAgICAgICAgICAgICAgICAgICBsZXQgbXNnID0gXCJcIjtcbiAgICAgICAgICAgICAgICAgICAgbGV0IGRldGFpbHMgPSBcIlwiO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBzdGF0dXMgPSBqc29uLnN0YXR1cztcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZGF5TGVmdCA9IGpzb24uZGF5c0xlZnQ7XG4gICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoc3RhdHVzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIFwiQVVUSE9SSVpFRFwiOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGljb24gPSBcImZhIGZhLWNoZWNrLWNpcmNsZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoanNvbi50eXBlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgXCJUUklBTFwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtc2cgPSBcIlRyaWFsIGxpY2VuY2VcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRldGFpbHMgPSBgVGhlIFRyaWFsIHdpbGwgZXhwaXJlIGluICR7ZGF5TGVmdH0gZGF5cy5cXG5CdXkgb25saW5lIGFuZCB2aXNpdCAke3dlYnNpdGVMaW5rfSB0byBhY3F1aXJlIGEgbGljZW5zZS5gO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBcIlBST0ZFU1NJT05BTFwiOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXNnID0gYFlvdXIgbGljZW5jZSBpcyB2YWxpZC5gO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRheUxlZnQgPCA5MCAmJiBkYXlMZWZ0ID49IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtc2cgKz0gYCBJdCB3aWxsIGV4cGlyZSBpbiAke2RheUxlZnR9IGRheXMuYDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGRldGFpbHMgPSBgJHt3ZWJzaXRlTGlua308YnI+JHtjb250YWN0TGlua31gO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGV0YWlscyA9IGpzb24ubGljZW5jZUluZm8ubGljZW5jZVR5cGUgKyBcIiAtIFwiICsgKGpzb24ubGljZW5jZUluZm8ub25QcmVtaXNlU2VydmVySG9zdCB8fCBcIlwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIFwiRlJFRVdBUkVcIjpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1zZyA9IFwiRnJlZXdhcmUgbGljZW5jZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGV0YWlscyA9IGBUaGlzIGlzIGEgZnJlZXdhcmUgbGljZW5jZSwgYW5kIGhhdmUgc29tZSBsaW1pdGF0aW9ucy5cXG4ke3dlYnNpdGVMaW5rfSBmb3IgbW9yZSBpbmZvcm1hdGlvbi5gO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBcIkVYUElSRURcIjpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpY29uID0gXCJmYSBmYS1jYWxlbmRhci10aW1lXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbXNnID0gXCJMaWNlbmNlIGhhcyBleHBpcmVkXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGV0YWlscyA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiWW91ciBsaWNlbnNlIGhhcyBleHBpcmVkLiBQbGVhc2UgY29udGFjdCBvdXIgc3VwcG9ydCB0ZWFtIG9yIHZpc2l0IG91ciB3ZWJzaXRlIHRvIHJlbmV3IHlvdXIgbGljZW5zZSBhbmQgcmVnYWluIGFjY2VzcyB0byBvdXIgc2VydmljZXMuXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIFwiRkFJTEVEXCI6XG4gICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGljb24gPSBcImZhIGZhLWV4Y2xhbWF0aW9uLWNpcmNsZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1zZyA9IFwiWW91ciBsaWNlbnNlIGlzIGN1cnJlbnRseSBpbnZhbGlkLlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRldGFpbHMgPSBgUGxlYXNlIGNvbnRhY3QgJHtjb250YWN0TGlua30gb3IgdmlzaXQgb3VyIHdlYnNpdGUgdG8gcmVuZXcgeW91ciBsaWNlbnNlIGFuZCByZWdhaW4gYWNjZXNzIHRvIG91ciBzZXJ2aWNlcy7MgGA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgLyoqICovXG4gICAgICAgICAgICAgICAgICAgIC8vIHRoaXMuZWxlbWVudC50ZXh0KFwiTGljZW5jZSBcIiArIEpTT04uc3RyaW5naWZ5KGpzb24pKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50LmFkZENsYXNzKFwibGljZW5jZS13aWRnZXRcIik7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudC5hZGRDbGFzcyhcImxpY2VuY2Utd2lkZ2V0LVwiICsgc3RhdHVzKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50LmFwcGVuZCgkKFwiPHNwYW4+XCIpLmFkZENsYXNzKFwibGljZW5jZS13aWRnZXQtaWNvblwiKS5hcHBlbmQoJChcIjxpPlwiKS5hZGRDbGFzcyhpY29uKSkpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnQuYXBwZW5kKCQoXCI8c3Bhbj5cIikuYWRkQ2xhc3MoXCJsaWNlbmNlLXdpZGdldC1tc2dcIikudGV4dChtc2cpKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50LmFwcGVuZCgkKFwiPGJyPlwiKSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudC5hcHBlbmQoJChcIjxzcGFuPlwiKS5hZGRDbGFzcyhcImxpY2VuY2Utd2lkZ2V0LWRldGFpbHNcIikuYXBwZW5kKGRldGFpbHMpKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHN0YXR1cyA9PT0gXCJFWFBJUkVEXCIgfHwgc3RhdHVzID09PSBcIkZBSUxFRFwiIHx8IGpzb24udHlwZSA9PT0gXCJGUkVFV0FSRVwiIHx8IGpzb24udHlwZSA9PT0gXCJUUklBTFwiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdWJzY3JpYmVCdXR0b24gPSAkKFwiPGJ1dHRvbi8+XCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3Vic2NyaWJlQnV0dG9uLmF0dHIoXCJpZFwiLCBcInN1YnNjcmliZS1idXR0b25cIik7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdWJzY3JpYmVCdXR0b24uYXR0cihcImNsYXNzXCIsIFwiYnRuIGJ0bi1wcmltYXJ5XCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3Vic2NyaWJlQnV0dG9uLmF0dHIoXCJzdHlsZVwiLCBcIm1hcmdpbi10b3A6IDIwcHg7XCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3Vic2NyaWJlQnV0dG9uLnRleHQoXCJTdWJzY3JpYmVcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnQuYXBwZW5kKHN1YnNjcmliZUJ1dHRvbik7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzY3JpcHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwic2NyaXB0XCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2V0IGF0dHJpYnV0ZXMgZm9yIHRoZSBzY3JpcHQgZWxlbWVudFxuICAgICAgICAgICAgICAgICAgICAgICAgc2NyaXB0LnNyYyA9IFwiaHR0cHM6Ly9qcy5zdHJpcGUuY29tL3YzL3ByaWNpbmctdGFibGUuanNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNjcmlwdC5hc3luYyA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBBcHBlbmQgdGhlIHNjcmlwdCBlbGVtZW50IHRvIHRoZSBoZWFkIChvciBib2R5KSBvZiB0aGUgZG9jdW1lbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICQoXCJoZWFkXCIpLmFwcGVuZChzY3JpcHQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RyaXBlUHJpY2luZ1RhYmxlID0gJChcIjxzdHJpcGUtcHJpY2luZy10YWJsZS8+XCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2V0IGF0dHJpYnV0ZXMgZm9yIHRoZSBlbGVtZW50XG4gICAgICAgICAgICAgICAgICAgICAgICBzdHJpcGVQcmljaW5nVGFibGUuYXR0cihcInByaWNpbmctdGFibGUtaWRcIiwgcHJpY2luZ1RhYmxlSWQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RyaXBlUHJpY2luZ1RhYmxlLmF0dHIoXCJwdWJsaXNoYWJsZS1rZXlcIiwgcHVibGlzaGFibGVLZXkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RyaXBlUHJpY2luZ1RhYmxlLmF0dHIoXCJzdHlsZVwiLCBcImhlaWdodDogMTAwJTttYXgtaGVpZ2h0OiAxMDAlO1wiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0cmlwZVByaWNpbmdUYWJsZS5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnQuYXBwZW5kKHN0cmlwZVByaWNpbmdUYWJsZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdWJzY3JpYmVCdXR0b24ub24oXCJjbGlja1wiLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyaXBlUHJpY2luZ1RhYmxlLnNob3coKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWJzY3JpYmVCdXR0b24uaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudC5hdHRyKFwic3R5bGVcIiwgXCJoZWlnaHQ6IDEwMCUgIWltcG9ydGFudDtcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgIC5jYXRjaCgoZXJyKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGVycik7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICB9O1xuXG4gICAgZGVjbGFyZUxpY2VuY2VXaWRnZXQoKTtcbiAgICBmdW5jdGlvbiBpc1ZhbGlkT1BDX1VBX1VSSShzdHIpIHtcbiAgICAgICAgbGV0IHVybDtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHVybCA9IG5ldyBVUkwoc3RyKTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoXykge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB1cmwucHJvdG9jb2wgPT09IFwib3BjLnRjcDpcIjtcbiAgICB9XG4gICAgY29uc3QgZGVmYXVsdFN1YnNjcmlwdGlvblBhcmFtZXRlcnMgPSB7XG4gICAgICAgIHB1Ymxpc2hpbmdFbmFibGVkOiB0cnVlLFxuICAgICAgICByZXF1ZXN0ZWRMaWZldGltZUNvdW50OiAxMDAwLFxuICAgICAgICByZXF1ZXN0ZWRNYXhLZWVwQWxpdmVDb3VudDogMTAsIC8vIGV2ZXJ5IDEwIHNlY29uZHNcbiAgICAgICAgcmVxdWVzdGVkUHVibGlzaGluZ0ludGVydmFsOiAxMDAwLFxuICAgICAgICBtYXhOb3RpZmljYXRpb25zUGVyUHVibGlzaDogMCxcbiAgICAgICAgcHJpb3JpdHk6IDEwMCxcbiAgICB9O1xuICAgIFJFRC5ub2Rlcy5yZWdpc3RlclR5cGUoXCJPcGNVYS1FbmRwb2ludDJcIiwge1xuICAgICAgICBjYXRlZ29yeTogXCJjb25maWdcIixcbiAgICAgICAgcGFsZXR0ZUxhYmVsOiBcIm9wY3VhIGVuZHBvaW50XCIsXG4gICAgICAgIGRlZmF1bHRzOiB7XG4gICAgICAgICAgICBuYW1lOiB7IHZhbHVlOiBcIlwiIH0sXG4gICAgICAgICAgICBlbmRwb2ludDoge1xuICAgICAgICAgICAgICAgIHZhbHVlOiBcIm9wYy50Y3A6Ly9vcGN1YWRlbW8uc3RlcmZpdmUuY29tOjI2NTQzL1VBL1NhbXBsZVNlcnZlclwiLFxuICAgICAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICAgICAgICAgIHZhbGlkYXRlOiBpc1ZhbGlkT1BDX1VBX1VSSSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAvLyBTZWN1cml0eSBNb2RlXG4gICAgICAgICAgICBzZWN1cml0eU1vZGU6IHsgdmFsdWU6IFwiTm9uZVwiIH0sXG4gICAgICAgICAgICBzZWN1cml0eVBvbGljeToge1xuICAgICAgICAgICAgICAgIHZhbHVlOiBcIk5vbmVcIixcbiAgICAgICAgICAgICAgICB2YWxpZGF0ZTogKHZhbHVlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghdmFsdWUpXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgdXNlcklkZW50aXR5VHlwZTogeyB2YWx1ZTogXCJBbm9ueW1vdXNcIiB9LFxuICAgICAgICAgICAgcGtpTmFtZTogeyB2YWx1ZTogXCJcIiwgdmFsaWRhdGU6ICh2YWx1ZSkgPT4gKCF2YWx1ZSB8fCB2YWx1ZS5tYXRjaCgvWzAtOWEtekEtWl0qLykgPyB0cnVlIDogZmFsc2UpIH0sXG4gICAgICAgICAgICAvLyB0byB1c2Ugd2hlbiB1c2VySWRlbnRpdHlUeXBlIGlzIFVzZXJOYW1lXG4gICAgICAgICAgICAvLyBjcmVkZW50aWFsczoge1xuICAgICAgICAgICAgLy8gICAgIHVzZXJOYW1lOiB7IHZhbHVlOiBcIlwiLCB0eXBlOiBcInRleHRcIiB9LFxuICAgICAgICAgICAgLy8gICAgIHBhc3N3b3JkOiB7IHZhbHVlOiBcIlwiLCB0eXBlOiBcInBhc3N3b3JkXCIgfSxcbiAgICAgICAgICAgIC8vICAgICAvLyB0byB1c2Ugd2hlbiB1c2VySWRlbnRpdHlUeXBlIGlzIENlcnRpZmljYXRlXG4gICAgICAgICAgICAvLyAgICAgdXNlckNlcnRpZmljYXRlOiB7IHZhbHVicm93c2VQYXRoZTogXCJcIiwgdHlwZTogXCJ0ZXh0XCIgfSxcbiAgICAgICAgICAgIC8vICAgICB1c2VyUHJpdmF0ZWtleTogeyB2YWx1ZTogXCJcIiAsIHR5cGU6IFwicGFzc3dvcmRcIn0sXG4gICAgICAgICAgICAvLyB9IGFzIGFueSAvKiBjaXJjdW12ZW50IGEgYnVnIGluIG5vZGUtcmVkICovLFxuICAgICAgICAgICAgLy8gdXNlcm5hbWVcbiAgICAgICAgICAgIHVzZVRyYW5zcG9ydDogeyB2YWx1ZTogZmFsc2UsIHJlcXVpcmVkOiBmYWxzZSB9LFxuICAgICAgICAgICAgbWF4Q2h1bmtDb3VudDogeyB2YWx1ZTogMSwgcmVxdWlyZWQ6IGZhbHNlIH0sXG4gICAgICAgICAgICBtYXhNZXNzYWdlU2l6ZTogeyB2YWx1ZTogODE5MiwgcmVxdWlyZWQ6IGZhbHNlIH0sIC8vIHNob3VsZCBiZSBhdCBsZWFzdCA4MTkyXG4gICAgICAgICAgICByZWNlaXZlQnVmZmVyU2l6ZTogeyB2YWx1ZTogODE5MiwgcmVxdWlyZWQ6IGZhbHNlIH0sXG4gICAgICAgICAgICBzZW5kQnVmZmVyU2l6ZTogeyB2YWx1ZTogODE5MiwgcmVxdWlyZWQ6IGZhbHNlIH0sXG4gICAgICAgICAgICBzdWJzY3JpcHRpb25zOiB7XG4gICAgICAgICAgICAgICAgdmFsdWU6IFtcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IFwiczFcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiRGVmYXVsdCBTdWJzY3JpcHRpb25cIixcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzRGVmYXVsdDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtZXRlcnM6IE9iamVjdC5hc3NpZ24oe30sIGRlZmF1bHRTdWJzY3JpcHRpb25QYXJhbWV0ZXJzKSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IFwiczJcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiU2xvdyBTdWJzY3JpcHRpb25cIixcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzRGVmYXVsdDogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVibGlzaGluZ0VuYWJsZWQ6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdGVkTGlmZXRpbWVDb3VudDogMTAwLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3RlZE1heEtlZXBBbGl2ZUNvdW50OiAzLCAvLyBldmVyeSAxNSBzZWNvbmRzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdGVkUHVibGlzaGluZ0ludGVydmFsOiA1MDAwLCAvL1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1heE5vdGlmaWNhdGlvbnNQZXJQdWJsaXNoOiAxMDAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpb3JpdHk6IDEwLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IFwiczNcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiRmFzdCBTdWJzY3JpcHRpb25cIixcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzRGVmYXVsdDogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVibGlzaGluZ0VuYWJsZWQ6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdGVkTGlmZXRpbWVDb3VudDogNDAwMCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0ZWRNYXhLZWVwQWxpdmVDb3VudDogNTAsIC8vIGV2ZXJ5IDEyLjUgc2Vjb25kc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3RlZFB1Ymxpc2hpbmdJbnRlcnZhbDogMjUwLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1heE5vdGlmaWNhdGlvbnNQZXJQdWJsaXNoOiAxMDAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpb3JpdHk6IDIwMCxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgbmFtZXNwYWNlQWxpYXNlczoge1xuICAgICAgICAgICAgICAgIHZhbHVlOiBbXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGFsaWFzOiBcInVhXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lc3BhY2VVcmk6IFwiaHR0cDovL29wY2ZvdW5kYXRpb24ub3JnL1VBL1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgaXNXZWxsS25vd246IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICBpc0RlZmF1bHQ6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGFsaWFzOiBcImRpXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lc3BhY2VVcmk6IFwiaHR0cDovL29wY2ZvdW5kYXRpb24ub3JnL0RJL1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgaXNXZWxsS25vd246IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICBpc0RlZmF1bHQ6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICBjcmVkZW50aWFsczoge1xuICAgICAgICAgICAgdXNlck5hbWU6IHsgdHlwZTogXCJ0ZXh0XCIgfSxcbiAgICAgICAgICAgIHBhc3N3b3JkOiB7IHR5cGU6IFwicGFzc3dvcmRcIiB9LFxuICAgICAgICAgICAgdXNlckNlcnRpZmljYXRlOiB7IHR5cGU6IFwidGV4dFwiIH0sXG4gICAgICAgICAgICB1c2VyUHJpdmF0ZWtleTogeyB0eXBlOiBcInBhc3N3b3JkXCIgfSxcbiAgICAgICAgfSxcbiAgICAgICAgbGFiZWw6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm5hbWUgfHwgdGhpcy5lbmRwb2ludCB8fCBcImludmFsaWQgZW5kcG9pbnRcIjtcbiAgICAgICAgfSxcbiAgICAgICAgb25lZGl0c2F2ZSgpIHtcbiAgICAgICAgICAgIGNvbnN0IF9zZWN1cml0eVBvbGljeSA9ICQoXCIjbm9kZS1jb25maWctaW5wdXQtc2VjdXJpdHlQb2xpY3lcIik7XG4gICAgICAgICAgICBjb25zdCBfc2VjdXJpdHlNb2RlID0gJChcIiNub2RlLWNvbmZpZy1pbnB1dC1zZWN1cml0eU1vZGVcIik7XG4gICAgICAgICAgICBpZiAoX3NlY3VyaXR5UG9saWN5LnZhbCgpID09PSBcIk5vbmVcIikge1xuICAgICAgICAgICAgICAgIF9zZWN1cml0eU1vZGUudGV4dChcIk5vbmVcIik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyAoKCgoKCgoKCgoIHJldHJpZXZlIHN1YnNjcmlwdGlvbiBkYXRhICkpKSkpKSkpKSlcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBjb25zdCBzdWJzY3JpcHRpb25JdGVtcyA9ICQoXCIjc3Vic2NyaXB0aW9ucy1jb250YWluZXJcIikuZWRpdGFibGVMaXN0KFwiaXRlbXNcIik7XG4gICAgICAgICAgICAgICAgY29uc3QgcyA9IFtdO1xuICAgICAgICAgICAgICAgIGNvbnN0IG4gPSAoeCkgPT4geDtcbiAgICAgICAgICAgICAgICBzdWJzY3JpcHRpb25JdGVtcy5lYWNoKGZ1bmN0aW9uIChpbmRleCwgaXRlbSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBlID0gJCh0aGlzKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYSA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBcInNcIiArIGluZGV4LFxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogZS5maW5kKFwiLmlucHV0LW5hbWVcIikudmFsKCksXG4gICAgICAgICAgICAgICAgICAgICAgICBpc0RlZmF1bHQ6ICEhZS5maW5kKFwiLmlucHV0LWlzRGVmYXVsdFwiKS52YWwoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdWJsaXNoaW5nRW5hYmxlZDogISFlLmZpbmQoXCIuaW5wdXQtcHVibGlzaGluZ0VuYWJsZWRcIikuaXMoXCI6Y2hlY2tlZFwiKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0ZWRMaWZldGltZUNvdW50OiBuKGUuZmluZChcIi5pbnB1dC1yZXF1ZXN0ZWRMaWZldGltZUNvdW50XCIpLnZhbCgpKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0ZWRNYXhLZWVwQWxpdmVDb3VudDogbihlLmZpbmQoXCIuaW5wdXQtcmVxdWVzdGVkTWF4S2VlcEFsaXZlQ291bnRcIikudmFsKCkpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3RlZFB1Ymxpc2hpbmdJbnRlcnZhbDogbihlLmZpbmQoXCIuaW5wdXQtcmVxdWVzdGVkUHVibGlzaGluZ0ludGVydmFsXCIpLnZhbCgpKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXhOb3RpZmljYXRpb25zUGVyUHVibGlzaDogbihlLmZpbmQoXCIuaW5wdXQtbWF4Tm90aWZpY2F0aW9uc1BlclB1Ymxpc2hcIikudmFsKCkpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW9yaXR5OiBuKGUuZmluZChcIi5pbnB1dC1wcmlvcml0eVwiKS52YWwoKSksXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICAvLyBmb3JjZSB0byBiZSB0cnVlXG4gICAgICAgICAgICAgICAgICAgIGEucGFyYW1ldGVycy5wdWJsaXNoaW5nRW5hYmxlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIGlmIChhLmlzRGVmYXVsdCAmJiBhLmlkID09PSBcInMwXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIG5vcm1hbGl6ZSBkZWZhdWx0IHN1YnNjcmlwdGlvbiBuYW1lXG4gICAgICAgICAgICAgICAgICAgICAgICBhLm5hbWUgPSBcIkRlZmF1bHQgU3Vic2NyaXB0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcy5wdXNoKGEpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucyA9IHM7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyAoKCgoKCgoKCgoIHJldHJpZXZlIG5hbWVzcGFjZSBhbGlhcyBkYXRhICkpKSkpKSkpKVxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIC8vIGFsaWFzZXNcbiAgICAgICAgICAgICAgICBjb25zdCBhbGlhc0l0ZW1zID0gJChcIiNlZGl0YWJsZS1saXN0LWFsaWFzZXMtY29udGFpbmVyXCIpLmVkaXRhYmxlTGlzdChcIml0ZW1zXCIpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHRtcCA9IFtdO1xuICAgICAgICAgICAgICAgIGFsaWFzSXRlbXMuZWFjaChmdW5jdGlvbiAoaW5kZXgsIGl0ZW0pIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZSA9ICQodGhpcyk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGEgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBpZDogXCJzXCIgKyBpbmRleCxcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWVzcGFjZVVyaTogZS5maW5kKFwiLm5vZGUtaW5wdXQtYWxpYXMtbmFtZXNwYWNlLXVyaVwiKS52YWwoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGFsaWFzOiBlLmZpbmQoXCIubm9kZS1pbnB1dC1hbGlhcy1hbGlhc1wiKS52YWwoKSxcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgdG1wLnB1c2goYSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgdGhpcy5uYW1lc3BhY2VBbGlhc2VzID0gdG1wO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBvbmVkaXRwcmVwYXJlKCkge1xuICAgICAgICAgICAgY29uc3Qgbm9kZSA9IHRoaXM7XG4gICAgICAgICAgICBjb25zdCB0YWJzID0gUkVELnRhYnMuY3JlYXRlKHtcbiAgICAgICAgICAgICAgICBpZDogXCJub2RlLWNvbmZpZy1lbmRwb2ludC10YWJzXCIsXG4gICAgICAgICAgICAgICAgb25jaGFuZ2U6IGZ1bmN0aW9uICh0YWIpIHtcbiAgICAgICAgICAgICAgICAgICAgJChcIiNub2RlLWNvbmZpZy1lbmRwb2ludC10YWJzLWNvbnRlbnRcIikuY2hpbGRyZW4oKS5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgICQoXCIjXCIgKyB0YWIuaWQpLnNob3coKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB0YWJzLmFkZFRhYih7XG4gICAgICAgICAgICAgICAgaWQ6IFwiZW5kcG9pbnQtdGFiLWNvbm5lY3Rpb25cIixcbiAgICAgICAgICAgICAgICBsYWJlbDogXCJDb25uZWN0aW9uXCIsXG4gICAgICAgICAgICB9LCAwKTtcbiAgICAgICAgICAgIHRhYnMuYWRkVGFiKHtcbiAgICAgICAgICAgICAgICBpZDogXCJlbmRwb2ludC10YWItc3Vic2NyaXB0aW9uc1wiLFxuICAgICAgICAgICAgICAgIGxhYmVsOiBcIlN1YnNjcmlwdGlvbnNcIixcbiAgICAgICAgICAgIH0sIDEpO1xuICAgICAgICAgICAgdGFicy5hZGRUYWIoe1xuICAgICAgICAgICAgICAgIGlkOiBcImVuZHBvaW50LXRhYi1uYW1lc3BhY2UtYWxpYXNlc1wiLFxuICAgICAgICAgICAgICAgIGxhYmVsOiBcIk5hbWVzcGFjZSBBbGlhc2VzXCIsXG4gICAgICAgICAgICB9LCAyKTtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHRhYnMucmVzaXplKCk7XG4gICAgICAgICAgICB9LCAwKTtcbiAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICAgICAvLyBoYW5kbGUgU2VjdXJpdHkgY29udHJvbHNcbiAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgY29uc3QgdXBkYXRlU2VjdXJpdHlDb250cm9sID0gKHNlY3VyaXR5TW9kZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKHNlY3VyaXR5TW9kZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBudWxsOlxuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSB1bmRlZmluZWQ6XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIFwiXCI6XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIFwiTm9uZVwiOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoXCIuc2VjdGlvbi1zZWN1cml0eVBvbGljeVwiKS5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIFwiU2lnblwiOlxuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBcIlNpZ25BbmRFbmNyeXB0XCI6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzcCA9ICQoXCIuc2VjdGlvbi1zZWN1cml0eVBvbGljeVwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHNwLnZhbCgpID09PSBcIk5vbmVcIiB8fCBzcC52YWwoKSA9PT0gXCJcIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3AudmFsKFwiQmFzaWMyNTZTaGEyNTZcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJChcIi5zZWN0aW9uLXNlY3VyaXR5UG9saWN5XCIpLnNob3coKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiaW52YWxpZCBzZWN1cml0eU1vZGUgXCIgKyBzZWN1cml0eU1vZGUpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICB1cGRhdGVTZWN1cml0eUNvbnRyb2wobm9kZS5zZWN1cml0eU1vZGUpO1xuICAgICAgICAgICAgICAgIGNvbnN0IF9zZWN1cml0eU1vZGUgPSAkKFwiI25vZGUtY29uZmlnLWlucHV0LXNlY3VyaXR5TW9kZVwiKTtcbiAgICAgICAgICAgICAgICBfc2VjdXJpdHlNb2RlLm9uKFwiY2hhbmdlXCIsICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbmV3U2VjdXJpdHlNb2RlID0gX3NlY3VyaXR5TW9kZS52YWwoKTtcbiAgICAgICAgICAgICAgICAgICAgdXBkYXRlU2VjdXJpdHlDb250cm9sKG5ld1NlY3VyaXR5TW9kZSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBsaWNlbmNlV2lkZ2V0ID0gJChcIiNsaWNlbmNlV2lkZ2V0XCIpO1xuICAgICAgICAgICAgbGljZW5jZVdpZGdldC5saWNlbmNlV2lkZ2V0KHtcbiAgICAgICAgICAgICAgICBiYXNlVXJsOiBcIlwiLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICAgICAgLy8gaGFuZGxlIHRoZSBVc2VyIElkZW50aXR5IENvbnRyb2xzXG4gICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGNvbnN0IGF1dGhSb3cgPSAkKFwiLnNlY3Rpb24tdXNlcklkZW50aXR5VHlwZS1Vc2VyTmFtZVwiKTtcbiAgICAgICAgICAgICAgICBjb25zdCBjZXJ0Um93ID0gJChcIi5zZWN0aW9uLXVzZXJJZGVudGl0eVR5cGUtQ2VydGlmaWNhdGVcIik7XG4gICAgICAgICAgICAgICAgY29uc3QgdXBkYXRlSWRlbnRpdHlDb250cm9scyA9ICh1c2VySWRlbnRpdHlUeXBlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHVzZXJJZGVudGl0eVR5cGUgPSB1c2VySWRlbnRpdHlUeXBlIHx8IFwiQW5vbnltb3VzXCI7XG4gICAgICAgICAgICAgICAgICAgIHN3aXRjaCAodXNlcklkZW50aXR5VHlwZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBcIkFub255bW91c1wiOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoXCIjbm9kZS1jb25maWctaW5wdXQtdXNlck5hbWVcIikudmFsKFwiXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoXCIjbm9kZS1jb25maWctaW5wdXQtcGFzc3dvcmRcIikudmFsKFwiXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhSb3cuaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlcnRSb3cuaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBcIlVzZXJOYW1lXCI6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0aFJvdy5zaG93KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VydFJvdy5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIFwiQ2VydGlmaWNhdGVcIjpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKFwiI25vZGUtY29uZmlnLWlucHV0LXVzZXJOYW1lXCIpLnZhbChcIlwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKFwiI25vZGUtY29uZmlnLWlucHV0LXBhc3N3b3JkXCIpLnZhbChcIlwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZXJ0Um93LnNob3coKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoUm93LmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJpbnZhbGlkIHVzZXJJZGVudGl0eVR5cGUgXCIgKyB1c2VySWRlbnRpdHlUeXBlKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgdXBkYXRlSWRlbnRpdHlDb250cm9scyhub2RlLnVzZXJJZGVudGl0eVR5cGUpO1xuICAgICAgICAgICAgICAgIGNvbnN0IF91c2VySWRlbnRpdHlUeXBlID0gJChcIiNub2RlLWNvbmZpZy1pbnB1dC11c2VySWRlbnRpdHlUeXBlXCIpO1xuICAgICAgICAgICAgICAgIF91c2VySWRlbnRpdHlUeXBlLm9uKFwiY2hhbmdlXCIsICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbmV3SWRlbnRpdHlUeXBlID0gX3VzZXJJZGVudGl0eVR5cGUudmFsKCk7XG4gICAgICAgICAgICAgICAgICAgIHVwZGF0ZUlkZW50aXR5Q29udHJvbHMobmV3SWRlbnRpdHlUeXBlKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICAgICAvLyBoYW5kbGUgYWR2YW5jZWQgY29udHJvbHNcbiAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgJChcIiNzZWN0aW9uLUFkdmFuY2VkXCIpLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAkKFwiI3RvZ2dsZUFkdmFuY2VkU2VjdGlvblwiKS5wcm9wKFwiY2hlY2tlZFwiLCBmYWxzZSk7XG4gICAgICAgICAgICAgICAgJChcIiN0b2dnbGVBZHZhbmNlZFNlY3Rpb25cIikub24oXCJjaGFuZ2VcIiwgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoJCh0aGlzKS5wcm9wKFwiY2hlY2tlZFwiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gSWYgdGhlIGNoZWNrYm94IGlzIGNoZWNrZWQsIHNob3cgdGhlIGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgJChcIiNzZWN0aW9uLUFkdmFuY2VkXCIpLnNob3coKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIE90aGVyd2lzZSwgaGlkZSBpdFxuICAgICAgICAgICAgICAgICAgICAgICAgJChcIiNzZWN0aW9uLUFkdmFuY2VkXCIpLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgdXNlVHJhbnNwb3J0U2V0dGluZyA9ICQoXCIjbm9kZS1jb25maWctaW5wdXQtdXNlVHJhbnNwb3J0XCIpLnByb3AoXCJjaGVja2VkXCIpO1xuICAgICAgICAgICAgaWYgKHVzZVRyYW5zcG9ydFNldHRpbmcpIHtcbiAgICAgICAgICAgICAgICAkKFwiI3NlY3Rpb24tVHJhbnNwb3J0U2V0dGluZ3NcIikuc2hvdygpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgJChcIiNzZWN0aW9uLVRyYW5zcG9ydFNldHRpbmdzXCIpLmhpZGUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICQoXCIjbm9kZS1jb25maWctaW5wdXQtdXNlVHJhbnNwb3J0XCIpLm9uKFwiY2hhbmdlXCIsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICBpZiAoJCh0aGlzKS5wcm9wKFwiY2hlY2tlZFwiKSkge1xuICAgICAgICAgICAgICAgICAgICAvLyBJZiB0aGUgY2hlY2tib3ggaXMgY2hlY2tlZCwgc2hvdyB0aGUgZGl2XG4gICAgICAgICAgICAgICAgICAgICQoXCIjc2VjdGlvbi1UcmFuc3BvcnRTZXR0aW5nc1wiKS5zaG93KCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAvLyBPdGhlcndpc2UsIGhpZGUgaXRcbiAgICAgICAgICAgICAgICAgICAgJChcIiNzZWN0aW9uLVRyYW5zcG9ydFNldHRpbmdzXCIpLmhpZGUoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICAgICAvLyBjaGVja0NlcnRpZmljYXRlXG4gICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICQoXCIjY2hlY2tDZXJ0aWZpY2F0ZVwiKS5vbihcImNsaWNrXCIsICgpID0+IF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IHlpZWxkIGZldGNoKFwiL29wY3VhLWZvci1ub2RlLXJlZC9jbGllbnRfY2VydGlmaWNhdGUuanNvblwiKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgaW5mbyA9IHlpZWxkIGRhdGEuanNvbigpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB0ID0gSlNPTi5zdHJpbmdpZnkoaW5mbywgbnVsbCwgXCIgXCIpO1xuICAgICAgICAgICAgICAgICAgICBhbGVydCh0KTtcbiAgICAgICAgICAgICAgICB9KSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICAgICAgLy8gaGFuZGxlIGNvbmZpZyBidXR0b25cbiAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICAgICAkKFwiI2dvdG8tY29uZmlnXCIpLm9uKFwiY2xpY2tcIiwgKCkgPT4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgICAgIHdpbmRvdy5vcGVuKFwiL29wY3VhLWZvci1ub2RlLXJlZC9jb25maWdcIiwgXCJfYmxhbmtcIik7XG4gICAgICAgICAgICB9KSk7XG4gICAgICAgICAgICBmdW5jdGlvbiBleHRyYWN0RW5kcG9pbnREYXRhKCkge1xuICAgICAgICAgICAgICAgIHZhciBfYTtcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICBpZDogbm9kZS5pZCxcbiAgICAgICAgICAgICAgICAgICAgZW5kcG9pbnQ6ICQoXCIjbm9kZS1jb25maWctaW5wdXQtZW5kcG9pbnRcIikudmFsKCksXG4gICAgICAgICAgICAgICAgICAgIG5hbWU6ICQoXCIjbm9kZS1jb25maWctaW5wdXQtbmFtZVwiKS52YWwoKSxcbiAgICAgICAgICAgICAgICAgICAgcGtpTmFtZTogKF9hID0gJChcIiNub2RlLWNvbmZpZy1pbnB1dC1wa2lOYW1lXCIpKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EudmFsKCksXG4gICAgICAgICAgICAgICAgICAgIHNlY3VyaXR5TW9kZTogJChcIiNub2RlLWNvbmZpZy1pbnB1dC1zZWN1cml0eU1vZGVcIikudmFsKCksXG4gICAgICAgICAgICAgICAgICAgIHNlY3VyaXR5UG9saWN5OiAkKFwiI25vZGUtY29uZmlnLWlucHV0LXNlY3VyaXR5UG9saWN5XCIpLnZhbCgpLFxuICAgICAgICAgICAgICAgICAgICB1c2VySWRlbnRpdHlUeXBlOiAkKFwiI25vZGUtY29uZmlnLWlucHV0LXVzZXJJZGVudGl0eVR5cGVcIikudmFsKCksXG4gICAgICAgICAgICAgICAgICAgIHVzZXJOYW1lOiAkKFwiI25vZGUtY29uZmlnLWlucHV0LXVzZXJOYW1lXCIpLnZhbCgpLFxuICAgICAgICAgICAgICAgICAgICBwYXNzd29yZDogJChcIiNub2RlLWNvbmZpZy1pbnB1dC1wYXNzd29yZFwiKS52YWwoKSxcbiAgICAgICAgICAgICAgICAgICAgdXNlckNlcnRpZmljYXRlOiAkKFwiI25vZGUtY29uZmlnLWlucHV0LXVzZXJDZXJ0aWZpY2F0ZVwiKS52YWwoKSxcbiAgICAgICAgICAgICAgICAgICAgdXNlclByaXZhdGVrZXk6ICQoXCIjbm9kZS1jb25maWctaW5wdXQtdXNlclByaXZhdGVrZXlcIikudmFsKCksXG4gICAgICAgICAgICAgICAgICAgIC8vLyBub3QgdGVzdGVkIHlldCAuLi46XG4gICAgICAgICAgICAgICAgICAgIGNlcnRpZmljYXRlOiAkKFwiI25vZGUtaW5wdXQtY2VydGlmaWNhdGVcIikudmFsKCksXG4gICAgICAgICAgICAgICAgICAgIHVzZVRyYW5zcG9ydDogJChcIiNub2RlLWlucHV0LXVzZVRyYW5zcG9ydFwiKS5wcm9wKFwiY2hlY2tlZFwiKSxcbiAgICAgICAgICAgICAgICAgICAgbWF4Q2h1bmtDb3VudDogJChcIiNub2RlLWlucHV0LW1heENodW5rQ291bnRcIikudmFsKCksXG4gICAgICAgICAgICAgICAgICAgIG1heE1lc3NhZ2VTaXplOiAkKFwiI25vZGUtaW5wdXQtbWF4TWVzc2FnZVNpemVcIikudmFsKCksXG4gICAgICAgICAgICAgICAgICAgIHJlY2VpdmVCdWZmZXJTaXplOiAkKFwiI25vZGUtaW5wdXQtcmVjZWl2ZUJ1ZmZlclNpemVcIikudmFsKCksXG4gICAgICAgICAgICAgICAgICAgIHNlbmRCdWZmZXJTaXplOiAkKFwiI25vZGUtaW5wdXQtc2VuZEJ1ZmZlclNpemVcIikudmFsKCksXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICAgICAvLyBoYW5kbGUgdGhlIFRlc3QgYnV0dG9uXG4gICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIG1hbmFnZUFQSUNhbGwoXCJjb25uZWN0aW9uXCIsICQoXCIjdGVzdC1jb25uZWN0aW9uXCIpLCAoKSA9PiAoe1xuICAgICAgICAgICAgICAgICAgICB1cmw6IFwiL29wY3VhLWZvci1ub2RlLXJlZC90ZXN0LWNvbm5lY3Rpb25cIixcbiAgICAgICAgICAgICAgICAgICAgYm9keToge1xuICAgICAgICAgICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlOiBleHRyYWN0RW5kcG9pbnREYXRhKCksXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSksICgpID0+IHsgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICAgICAgLy8gIEluc3RhbGwgc3Vic2NyaXB0aW9ucyBMaXN0IG1hbmFnZW1lbnRcbiAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVzaXplVG9waWNzID0gKHRvcGljLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB2YXIgbmV3V2lkdGggPSB0b3BpYy53aWR0aCgpIHx8IDEwMDtcbiAgICAgICAgICAgICAgICAgICAgdG9waWMuZmluZChcImxhYmVsXCIpLnR5cGVkSW5wdXQoXCJ3aWR0aFwiLCBuZXdXaWR0aCAtIDE1KTtcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIGNvbnN0IHN1YnNjcmlwdGlvbkxpc3QgPSAkKFwiI3N1YnNjcmlwdGlvbnMtY29udGFpbmVyXCIpXG4gICAgICAgICAgICAgICAgICAgIC5jc3MoeyBcIm1pbi1oZWlnaHRcIjogXCIxNTBweFwiLCBcIm1pbi13aWR0aFwiOiBcIjI2MHB4XCIgfSlcbiAgICAgICAgICAgICAgICAgICAgLmVkaXRhYmxlTGlzdCh7XG4gICAgICAgICAgICAgICAgICAgIGFkZEl0ZW06IChjb250YWluZXIsIGluZGV4LCBkYXRhKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBfZGF0YSA9IGRhdGE7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBlbGVtZW50ID0gJChcIiNzdWJzY3JpcHRpb24tdGVtcGxhdGVcIikuY2xvbmUoKS5hcHBlbmRUbyhjb250YWluZXIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5yZW1vdmVBdHRyKFwiaWRcIikucmVtb3ZlQ2xhc3MoXCJoaWRlXCIpLnJlbW92ZUNsYXNzKFwidGVtcGxhdGVcIikuYXR0cihcImRhdGEtaVwiLCBpbmRleCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmZpbmQoXCIuaW5wdXQtbmFtZVwiKS52YWwoX2RhdGEubmFtZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmZpbmQoXCIuaW5wdXQtcmVxdWVzdGVkUHVibGlzaGluZ0ludGVydmFsXCIpLnZhbChfZGF0YS5wYXJhbWV0ZXJzLnJlcXVlc3RlZFB1Ymxpc2hpbmdJbnRlcnZhbCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmZpbmQoXCIuaW5wdXQtcmVxdWVzdGVkTWF4S2VlcEFsaXZlQ291bnRcIikudmFsKF9kYXRhLnBhcmFtZXRlcnMucmVxdWVzdGVkTWF4S2VlcEFsaXZlQ291bnQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5maW5kKFwiLmlucHV0LXJlcXVlc3RlZExpZmV0aW1lQ291bnRcIikudmFsKF9kYXRhLnBhcmFtZXRlcnMucmVxdWVzdGVkTGlmZXRpbWVDb3VudCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmZpbmQoXCIuaW5wdXQtbWF4Tm90aWZpY2F0aW9uc1BlclB1Ymxpc2hcIikudmFsKF9kYXRhLnBhcmFtZXRlcnMubWF4Tm90aWZpY2F0aW9uc1BlclB1Ymxpc2ggfHwgMCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmZpbmQoXCIuaW5wdXQtcHJpb3JpdHlcIikudmFsKF9kYXRhLnBhcmFtZXRlcnMucHJpb3JpdHkgfHwgMCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmZpbmQoXCIuc3Vic2NyaXB0aW9uLWlkXCIpLnRleHQoXCJcIiArIGluZGV4KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChfZGF0YS5pc0RlZmF1bHQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmZpbmQoXCIuaW5wdXQtbmFtZVwiKS5wcm9wKFwicmVhZG9ubHlcIiwgdHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmZpbmQoXCIuaW5wdXQtaXNEZWZhdWx0XCIpLnByb3AoXCJjaGVja2VkXCIsIF9kYXRhLmlzRGVmYXVsdCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBtYWtlIHN1cmUgdGhhdCBkZWZhdWx0IHN1YnNjcmlwdGlvbiBjYW5ub3QgYmUgYWNjaWRlbnRhbGx5IHJlbW92ZWRcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChfZGF0YS5pc0RlZmF1bHQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250YWluZXIuZmluZChcIi5yZWQtdWktZWRpdGFibGVMaXN0LWl0ZW0tcmVtb3ZlXCIpLmFkZENsYXNzKFwiaGlkZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IGVsZW1lbnQuZmluZChcIi5pbnB1dC1pc0RlZmF1bHRcIikucHJvcChcImRpc2FibGVkXCIsIHRydWUpLCAxMCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIC8vIHNvcnRhYmxlOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICByZW1vdmFibGU6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIHJlc2l6ZUl0ZW06IHJlc2l6ZVRvcGljcyxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBjb25zdCBmaWxsU3Vic2NyaXB0aW9ucyA9ICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3Vic2NyaXB0aW9ucyA9IG5vZGUuc3Vic2NyaXB0aW9ucyB8fCBbXTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHN1YnNjcmlwdGlvbnMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBhZGQgbWlzc2luZyBkZWZhdWx0IHN1YnNjcmlwdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgc3Vic2NyaXB0aW9ucy5wdXNoKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZDogXCJzMVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiRGVmYXVsdCBTdWJzY3JpcHRpb25cIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc0RlZmF1bHQ6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1ldGVyczogT2JqZWN0LmFzc2lnbih7fSwgZGVmYXVsdFN1YnNjcmlwdGlvblBhcmFtZXRlcnMpLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgc3Vic2NyaXB0aW9uTGlzdC5lZGl0YWJsZUxpc3QoXCJlbXB0eVwiKTtcbiAgICAgICAgICAgICAgICAgICAgZm9yIChjb25zdCBzdWJzY3JpcHRpb24gb2Ygc3Vic2NyaXB0aW9ucykge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gc3Vic2NyaXB0aW9uLmlzRGVmYXVsdCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3Vic2NyaXB0aW9uTGlzdC5lZGl0YWJsZUxpc3QoXCJhZGRJdGVtXCIsIHN1YnNjcmlwdGlvbik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIGZpbGxTdWJzY3JpcHRpb25zKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICAgICAgLy8gIEluc3RhbGwgbmFtZXNwYWNlIGFsaWFzIExpc3QgbWFuYWdlbWVudFxuICAgICAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAvLyBkZWJ1Z2dlcjtcbiAgICAgICAgICAgICAgICBmdW5jdGlvbiBhZGRBbGlhc0N0cmwoY29udGFpbmVyLCBpbmRleCwgYXJnKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGRhdGEgPSBhcmc7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJvdyA9ICQoJzxkaXYgY2xhc3M9XCJhbGlhcy1lbnRyeVwiPicpLmFwcGVuZFRvKGNvbnRhaW5lcik7XG4gICAgICAgICAgICAgICAgICAgIC8vIGNvbnRhaW5lci5kYXRhKFwiZGF0YVwiLCBhcmcpO1xuICAgICAgICAgICAgICAgICAgICAkKFwiPGlucHV0Lz5cIiwge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M6IFwibm9kZS1pbnB1dC1hbGlhcy1pbmRleFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJ0ZXh0XCIsXG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICAudmFsKGFyZy5hbGlhcyB8fCBcIlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgLmNzcyh7IHdpZHRoOiBcIjUlXCIgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgIC5hcHBlbmRUbyhyb3cpXG4gICAgICAgICAgICAgICAgICAgICAgICAudmFsKGluZGV4LnRvU3RyaW5nKCkpO1xuICAgICAgICAgICAgICAgICAgICAkKFwiPGlucHV0Lz5cIiwge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M6IFwibm9kZS1pbnB1dC1hbGlhcy1hbGlhc1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJ0ZXh0XCIsXG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICAudmFsKGFyZy5hbGlhcyB8fCBcIlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgLmNzcyh7IHdpZHRoOiBcIjI1JVwiIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICAuYXBwZW5kVG8ocm93KVxuICAgICAgICAgICAgICAgICAgICAgICAgLnZhbChkYXRhLmFsaWFzKTtcbiAgICAgICAgICAgICAgICAgICAgJChcIjxpbnB1dC8+XCIsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzOiBcIm5vZGUtaW5wdXQtYWxpYXMtbmFtZXNwYWNlLXVyaVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJ0ZXh0XCIsXG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICAudmFsKGFyZy5uYW1lc3BhY2VVcmkgfHwgXCJcIilcbiAgICAgICAgICAgICAgICAgICAgICAgIC5jc3MoeyB3aWR0aDogXCI3MCVcIiB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgLmFwcGVuZFRvKHJvdylcbiAgICAgICAgICAgICAgICAgICAgICAgIC52YWwoZGF0YS5uYW1lc3BhY2VVcmkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb25zdCBhbGlhc2VzTGlzdCA9ICQoXCIjZWRpdGFibGUtbGlzdC1hbGlhc2VzLWNvbnRhaW5lclwiKVxuICAgICAgICAgICAgICAgICAgICAuY3NzKHsgXCJtaW4taGVpZ2h0XCI6IFwiMTUwcHhcIiwgXCJtaW4td2lkdGhcIjogXCIyNjBweFwiIH0pXG4gICAgICAgICAgICAgICAgICAgIC5lZGl0YWJsZUxpc3Qoe1xuICAgICAgICAgICAgICAgICAgICBhZGRCdXR0b246IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICByZW1vdmFibGU6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IFwiYXV0b1wiLFxuICAgICAgICAgICAgICAgICAgICBzY3JvbGxPbkFkZDogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIGFkZEl0ZW0oY29udGFpbmVyLCBpLCBpdGVtKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBhZGRBbGlhc0N0cmwoY29udGFpbmVyLCBpLCBpdGVtKTtcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBmdW5jdGlvbiBmaWxsTmFtZXNwYWNlQWxpYXNlcygpIHtcbiAgICAgICAgICAgICAgICAgICAgYWxpYXNlc0xpc3QuZWRpdGFibGVMaXN0KFwiaXRlbXNcIik7XG4gICAgICAgICAgICAgICAgICAgIGFsaWFzZXNMaXN0LmVkaXRhYmxlTGlzdChcImVtcHR5XCIpO1xuICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGFsaWFzIG9mIG5vZGUubmFtZXNwYWNlQWxpYXNlcyB8fCBbXSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYWxpYXNlc0xpc3QuZWRpdGFibGVMaXN0KFwiYWRkSXRlbVwiLCBhbGlhcyk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLy8gQnV0dG9uXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAkKFwiI2V4dHJhY3QtYWxpYXNlc1wiKS5vbihcImNsaWNrXCIsICgpID0+IF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG9wdGlvbnMgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlOiBleHRyYWN0RW5kcG9pbnREYXRhKCksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZXNwYWNlQWxpYXNlczogbm9kZS5uYW1lc3BhY2VBbGlhc2VzIHx8IFtdLFxuICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGRhdGEgPSB5aWVsZCBmZXRjaChcIi9vcGN1YS1mb3Itbm9kZS1yZWQvZXh0cmFjdC1uYW1lc3BhY2UtYWxpYXNlc1wiLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWV0aG9kOiBcIlBPU1RcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiB7IFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkob3B0aW9ucyksXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGluZm8gPSB5aWVsZCBkYXRhLmpzb24oKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG5hbWVzcGFjZUFsaWFzZXMgPSBpbmZvLm5hbWVzcGFjZUFsaWFzZXM7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIm5hbWVzcGFjZUFsaWFzZXNcIiwgbmFtZXNwYWNlQWxpYXNlcyk7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShuYW1lc3BhY2VBbGlhc2VzKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vZGUubmFtZXNwYWNlQWxpYXNlcyA9IG5hbWVzcGFjZUFsaWFzZXM7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbE5hbWVzcGFjZUFsaWFzZXMoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSkpO1xuICAgICAgICAgICAgICAgICAgICBub2RlLm5hbWVzcGFjZUFsaWFzZXMgPSBub2RlLm5hbWVzcGFjZUFsaWFzZXMgfHwgW1xuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsaWFzOiBcInVhXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZXNwYWNlVXJpOiBcImh0dHA6Ly9vcGNmb3VuZGF0aW9uLm9yZy9VQS9cIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc1dlbGxLbm93bjogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc0RlZmF1bHQ6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBdO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBmaWxsTmFtZXNwYWNlQWxpYXNlcygpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgIH0pO1xuXG59KSgpOyJdfQ==
7
+ function _0x52a9(_0x9ae56d,_0x36a5e0){const _0x5c9917=_0x5c99();return _0x52a9=function(_0x52a991,_0x7d425d){_0x52a991=_0x52a991-0x156;let _0x3760b0=_0x5c9917[_0x52a991];return _0x3760b0;},_0x52a9(_0x9ae56d,_0x36a5e0);}(function(_0x13a4a3,_0x4904ac){const _0x2bbede=_0x52a9,_0x5d287a=_0x13a4a3();while(!![]){try{const _0x192b3c=-parseInt(_0x2bbede(0x17e))/0x1+-parseInt(_0x2bbede(0x16e))/0x2+-parseInt(_0x2bbede(0x217))/0x3+parseInt(_0x2bbede(0x225))/0x4*(parseInt(_0x2bbede(0x21c))/0x5)+-parseInt(_0x2bbede(0x1f2))/0x6+-parseInt(_0x2bbede(0x162))/0x7+-parseInt(_0x2bbede(0x1dd))/0x8*(-parseInt(_0x2bbede(0x18e))/0x9);if(_0x192b3c===_0x4904ac)break;else _0x5d287a['push'](_0x5d287a['shift']());}catch(_0x3ccae6){_0x5d287a['push'](_0x5d287a['shift']());}}}(_0x5c99,0x72f7d),(function(){'use strict';const _0x2e90c5=_0x52a9;function _0x31c429(_0x3b1a48,_0x38ff30,_0x2a1f5d,_0x3a1c3c){function _0x5dc53a(_0x1f0b09){return _0x1f0b09 instanceof _0x2a1f5d?_0x1f0b09:new _0x2a1f5d(function(_0x4432c7){_0x4432c7(_0x1f0b09);});}return new(_0x2a1f5d||(_0x2a1f5d=Promise))(function(_0x8da8db,_0x226db5){const _0x3b7cca=_0x52a9;function _0x2e2353(_0x171745){try{_0x53a611(_0x3a1c3c['next'](_0x171745));}catch(_0x51095e){_0x226db5(_0x51095e);}}function _0x3d1798(_0x3e99bc){const _0x4e725e=_0x52a9;try{_0x53a611(_0x3a1c3c[_0x4e725e(0x18c)](_0x3e99bc));}catch(_0x22d2d7){_0x226db5(_0x22d2d7);}}function _0x53a611(_0x3493c6){const _0x4d2a75=_0x52a9;_0x3493c6['done']?_0x8da8db(_0x3493c6[_0x4d2a75(0x1db)]):_0x5dc53a(_0x3493c6['value'])[_0x4d2a75(0x15a)](_0x2e2353,_0x3d1798);}_0x53a611((_0x3a1c3c=_0x3a1c3c[_0x3b7cca(0x1b9)](_0x3b1a48,_0x38ff30||[]))[_0x3b7cca(0x176)]());});}typeof SuppressedError===_0x2e90c5(0x21f)?SuppressedError:function(_0x21f3cf,_0x4269cc,_0x47fe1d){const _0xcd9010=_0x2e90c5;var _0x521bde=new Error(_0x47fe1d);return _0x521bde[_0xcd9010(0x1c4)]=_0xcd9010(0x20c),_0x521bde[_0xcd9010(0x1c1)]=_0x21f3cf,_0x521bde['suppressed']=_0x4269cc,_0x521bde;};function _0x3c4061(_0xf4ab6a,_0x60defb,_0x3550dc,_0x11c9d8){const _0x35c963=_0x2e90c5,_0x1e264c=$('#'+_0xf4ab6a+'-success'),_0x4e8e5c=$('#'+_0xf4ab6a+_0x35c963(0x233)),_0x3102aa=$('#'+_0xf4ab6a+'-pending'),_0x36db83=$('#'+_0xf4ab6a+_0x35c963(0x223));let _0xd3cc54=![];_0x1e264c[_0x35c963(0x180)](),_0x4e8e5c[_0x35c963(0x180)](),_0x3102aa[_0x35c963(0x180)](),_0x60defb['on']('click',()=>{const _0x36405a=_0x35c963;if(_0xd3cc54)return;_0xd3cc54=!![],_0x3102aa[_0x36405a(0x193)](_0x36405a(0x180)),_0x3102aa[_0x36405a(0x173)]('Testing\x20Connection\x20...'),_0x1e264c['addClass'](_0x36405a(0x180)),_0x4e8e5c['addClass']('hide'),_0x36db83['html']('');const {body:_0x12c3cd,url:_0x37e031}=_0x3550dc();fetch(_0x37e031,{'method':_0x36405a(0x231),'headers':{'Content-Type':_0x36405a(0x205)},'body':JSON['stringify'](_0x12c3cd)})[_0x36405a(0x15a)](_0x11ac99=>_0x11ac99[_0x36405a(0x1fd)]())[_0x36405a(0x15a)](_0x305e67=>{const _0x500a83=_0x36405a;_0xd3cc54=![],_0x3102aa['hide'](),console[_0x500a83(0x1f8)](JSON[_0x500a83(0x1dc)](_0x305e67,null,'\x20'));if(_0x305e67['result']==='ok')_0x1e264c[_0x500a83(0x193)](_0x500a83(0x180)),_0x4e8e5c[_0x500a83(0x1e8)](_0x500a83(0x180)),_0x36db83[_0x500a83(0x173)](_0x305e67[_0x500a83(0x158)]['replace']('\x0a',_0x500a83(0x1b2)));else{const _0x58bf22=_0x34eda4=>!_0x34eda4?'':_0x34eda4[_0x500a83(0x198)]('\x0a')['map'](_0x128df4=>'<p>'+_0x128df4+_0x500a83(0x224))['join']('\x0a'),_0x506ee7=_0x2bf442=>Array[_0x500a83(0x228)](_0x2bf442)?_0x2bf442[_0x500a83(0x215)](_0x58bf22)['join']('\x0a'):_0x58bf22(_0x2bf442);_0x1e264c[_0x500a83(0x1e8)](_0x500a83(0x180)),_0x4e8e5c['removeClass'](_0x500a83(0x180)),_0x36db83[_0x500a83(0x173)](_0x506ee7(_0x305e67[_0x500a83(0x158)])+_0x506ee7(_0x305e67[_0x500a83(0x222)])),_0x11c9d8(new Error(_0x305e67[_0x500a83(0x15b)]),_0x305e67);}})[_0x36405a(0x1ec)](_0x349ac0=>{const _0x16149a=_0x36405a;_0xd3cc54=![],_0x3102aa[_0x16149a(0x1e8)](_0x16149a(0x180)),_0x1e264c[_0x16149a(0x1e8)](_0x16149a(0x180)),_0x4e8e5c[_0x16149a(0x193)](_0x16149a(0x180)),_0x36db83[_0x16149a(0x173)](_0x16149a(0x1bf)+_0x349ac0[_0x16149a(0x158)]),console[_0x16149a(0x1f8)](_0x16149a(0x161),_0x349ac0);});});}const _0xc97fac='prctbl_1OJt49BCNccbzsVzkaANOgFL',_0x42c03b=_0x2e90c5(0x1da);function _0x330e0e(){return _0x31c429(this,arguments,void 0x0,function*(_0x530262=''){const _0xa6fe79=_0x52a9,_0x32e8bc=_0x530262+_0xa6fe79(0x1f3),_0x4f2cdd=_0x32e8bc+_0xa6fe79(0x163),_0x2898d1=yield fetch(_0x4f2cdd,{'method':_0xa6fe79(0x231),'headers':{'Content-Type':_0xa6fe79(0x205)}}),_0x4631c1=new Date()[_0xa6fe79(0x211)]();if(_0x2898d1[_0xa6fe79(0x22e)]!==0xc8)return console[_0xa6fe79(0x1f8)](_0xa6fe79(0x1be),_0x2898d1['status'],_0x2898d1[_0xa6fe79(0x197)]),{'status':_0xa6fe79(0x1a8),'type':_0xa6fe79(0x209),'licenceInfo':{'expiryDate':_0x4631c1}};const _0x247a19=yield _0x2898d1[_0xa6fe79(0x1fd)]();return _0x247a19;});}const _0x2b3dc3=()=>{const _0x280d85=_0x2e90c5;$['widget'](_0x280d85(0x22c),{'options':{'baseUrl':''},'_create'(){const _0x502313=_0x280d85,_0x31f3ec=this,_0x4192f0='<a\x20href=\x22mailto:support@sterfive.com\x22\x20subject=\x22@opcua/for-node-red\x20support\x20request\x22>mailto:support@sterfive.com</a>',_0x167fdb=_0x502313(0x15f);_0x330e0e(_0x31f3ec[_0x502313(0x199)])[_0x502313(0x15a)](_0x5eab54=>{const _0xb8a1eb=_0x502313;let _0x2d2d32='',_0x4602c9='',_0x56177e='';const _0x59c621=_0x5eab54[_0xb8a1eb(0x22e)],_0x1f72a0=_0x5eab54[_0xb8a1eb(0x1d4)];switch(_0x59c621){case _0xb8a1eb(0x1e5):_0x2d2d32=_0xb8a1eb(0x1f5);switch(_0x5eab54[_0xb8a1eb(0x1e4)]){case'TRIAL':{_0x4602c9='Trial\x20licence',_0x56177e='The\x20Trial\x20will\x20expire\x20in\x20'+_0x1f72a0+_0xb8a1eb(0x1c2)+_0x167fdb+_0xb8a1eb(0x1af);break;}case _0xb8a1eb(0x21e):_0x4602c9=_0xb8a1eb(0x1c3);_0x1f72a0<0x5a&&_0x1f72a0>=0x0&&(_0x4602c9+=_0xb8a1eb(0x21d)+_0x1f72a0+'\x20days.');_0x56177e=_0x5eab54[_0xb8a1eb(0x1d0)][_0xb8a1eb(0x1b8)]+_0xb8a1eb(0x1ef)+(_0x5eab54['licenceInfo']['onPremiseServerHost']||'');break;case _0xb8a1eb(0x209):_0x4602c9=_0xb8a1eb(0x1cd),_0x56177e='This\x20is\x20a\x20freeware\x20licence,\x20and\x20have\x20some\x20limitations.\x0a'+_0x167fdb+_0xb8a1eb(0x181);break;}break;case'EXPIRED':_0x2d2d32=_0xb8a1eb(0x15e),_0x4602c9=_0xb8a1eb(0x1cb),_0x56177e=_0xb8a1eb(0x218);break;case _0xb8a1eb(0x1a8):default:_0x2d2d32=_0xb8a1eb(0x159),_0x4602c9='Your\x20license\x20is\x20currently\x20invalid.',_0x56177e=_0xb8a1eb(0x20b)+_0x4192f0+_0xb8a1eb(0x1c8);break;}this[_0xb8a1eb(0x1ba)][_0xb8a1eb(0x1e8)]('licence-widget'),this[_0xb8a1eb(0x1ba)][_0xb8a1eb(0x1e8)](_0xb8a1eb(0x182)+_0x59c621),this[_0xb8a1eb(0x1ba)][_0xb8a1eb(0x1b3)]($('<span>')[_0xb8a1eb(0x1e8)]('licence-widget-icon')[_0xb8a1eb(0x1b3)]($(_0xb8a1eb(0x20a))[_0xb8a1eb(0x1e8)](_0x2d2d32))),this[_0xb8a1eb(0x1ba)]['append']($('<span>')[_0xb8a1eb(0x1e8)](_0xb8a1eb(0x1a5))['text'](_0x4602c9)),this['element'][_0xb8a1eb(0x1b3)]($('<br>')),this[_0xb8a1eb(0x1ba)][_0xb8a1eb(0x1b3)]($('<span>')[_0xb8a1eb(0x1e8)]('licence-widget-details')[_0xb8a1eb(0x1b3)](_0x56177e));if(_0x59c621===_0xb8a1eb(0x206)||_0x59c621===_0xb8a1eb(0x1a8)||_0x5eab54[_0xb8a1eb(0x1e4)]===_0xb8a1eb(0x209)||_0x5eab54[_0xb8a1eb(0x1e4)]==='TRIAL'){const _0x285610=$(_0xb8a1eb(0x201));_0x285610['attr']('id',_0xb8a1eb(0x1eb)),_0x285610['attr'](_0xb8a1eb(0x1ca),_0xb8a1eb(0x221)),_0x285610['attr']('style',_0xb8a1eb(0x165)),_0x285610['text'](_0xb8a1eb(0x172)),this[_0xb8a1eb(0x1ba)]['append'](_0x285610);const _0x44b2b3=document[_0xb8a1eb(0x234)](_0xb8a1eb(0x1d9));_0x44b2b3[_0xb8a1eb(0x18b)]='https://js.stripe.com/v3/pricing-table.js',_0x44b2b3['async']=!![],$('head')[_0xb8a1eb(0x1b3)](_0x44b2b3);const _0xcf0d0c=$(_0xb8a1eb(0x1e1));_0xcf0d0c['attr'](_0xb8a1eb(0x19c),_0xc97fac),_0xcf0d0c[_0xb8a1eb(0x1a7)](_0xb8a1eb(0x1cc),_0x42c03b),_0xcf0d0c[_0xb8a1eb(0x1a7)](_0xb8a1eb(0x185),'height:\x20100%;max-height:\x20100%;'),_0xcf0d0c[_0xb8a1eb(0x180)](),this[_0xb8a1eb(0x1ba)][_0xb8a1eb(0x1b3)](_0xcf0d0c),_0x285610['on']('click',()=>{const _0x4c0fff=_0xb8a1eb;_0xcf0d0c[_0x4c0fff(0x178)](),_0x285610['hide'](),this['element'][_0x4c0fff(0x1a7)](_0x4c0fff(0x185),'height:\x20100%\x20!important;');});}})[_0x502313(0x1ec)](_0x4178eb=>{const _0x5cfbb2=_0x502313;console[_0x5cfbb2(0x1f8)](_0x4178eb);});}});},_0x3cec14=()=>{const _0xf0c87d=_0x2e90c5;debugger;const _0x40442f=$(_0xf0c87d(0x1b4));console['log'](_0xf0c87d(0x17a),_0x40442f[_0xf0c87d(0x19d)]);if(_0x40442f[_0xf0c87d(0x19d)]){console[_0xf0c87d(0x1f8)](_0xf0c87d(0x179));const _0x3e04ae=$(_0xf0c87d(0x200),{'src':'/opcua-for-node-red/support-frame.html','scrolling':'no','style':_0xf0c87d(0x235),'allowtransparency':_0xf0c87d(0x1de),'width':_0xf0c87d(0x22a),'height':'30px'});_0x40442f[_0xf0c87d(0x1b3)](_0x3e04ae),_0x3e04ae[_0xf0c87d(0x207)]({'position':_0xf0c87d(0x175),'right':_0xf0c87d(0x1a9),'bottom':'16px'});}};_0x2b3dc3();function _0x1d58ea(_0x5c3b81){const _0x1f2f2d=_0x2e90c5;let _0x142126;try{_0x142126=new URL(_0x5c3b81);}catch(_0x50941a){return![];}return _0x142126[_0x1f2f2d(0x216)]===_0x1f2f2d(0x20d);}const _0x140c4a={'publishingEnabled':!![],'requestedLifetimeCount':0x3e8,'requestedMaxKeepAliveCount':0xa,'requestedPublishingInterval':0x3e8,'maxNotificationsPerPublish':0x0,'priority':0x64};RED[_0x2e90c5(0x15c)][_0x2e90c5(0x20e)](_0x2e90c5(0x1a0),{'category':_0x2e90c5(0x1b5),'paletteLabel':_0x2e90c5(0x1ae),'defaults':{'name':{'value':''},'endpoint':{'value':_0x2e90c5(0x174),'required':!![],'validate':_0x1d58ea},'securityMode':{'value':_0x2e90c5(0x20f)},'securityPolicy':{'value':_0x2e90c5(0x20f),'validate':_0x1675c5=>{if(!_0x1675c5)return![];return!![];}},'userIdentityType':{'value':_0x2e90c5(0x22f)},'pkiName':{'value':'','validate':_0x3ea7ae=>!_0x3ea7ae||_0x3ea7ae['match'](/[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':_0x2e90c5(0x230),'isDefault':!![],'parameters':Object['assign']({},_0x140c4a)},{'id':'s2','name':_0x2e90c5(0x1e9),'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':![]},'namespaceAliases':{'value':[{'alias':'ua','namespaceUri':_0x2e90c5(0x212),'isWellKnown':!![],'isDefault':!![]},{'alias':'di','namespaceUri':'http://opcfoundation.org/DI/','isWellKnown':!![],'isDefault':!![]}],'required':![]}},'credentials':{'userName':{'type':_0x2e90c5(0x214)},'password':{'type':'password'},'userCertificate':{'type':_0x2e90c5(0x214)},'userPrivatekey':{'type':_0x2e90c5(0x1fa)}},'label':function(){const _0x430db4=_0x2e90c5;return this[_0x430db4(0x1c4)]||this[_0x430db4(0x1e7)]||_0x430db4(0x236);},'oneditsave'(){const _0x318ec0=_0x2e90c5,_0x3ce51b=$(_0x318ec0(0x17c)),_0x31896e=$(_0x318ec0(0x187));_0x3ce51b[_0x318ec0(0x1e2)]()===_0x318ec0(0x20f)&&_0x31896e[_0x318ec0(0x214)]('None');{const _0x1d8cc9=$(_0x318ec0(0x226))[_0x318ec0(0x1f4)](_0x318ec0(0x1c6)),_0xfceacc=[],_0x5e3367=_0x239afa=>_0x239afa;_0x1d8cc9[_0x318ec0(0x1f0)](function(_0x506d6d,_0x3c7918){const _0x1fcc67=_0x318ec0,_0x7c7858=$(this),_0x27538={'id':'s'+_0x506d6d,'name':_0x7c7858['find'](_0x1fcc67(0x195))['val'](),'isDefault':!!_0x7c7858[_0x1fcc67(0x1df)]('.input-isDefault')[_0x1fcc67(0x1e2)](),'parameters':{'publishingEnabled':!!_0x7c7858['find'](_0x1fcc67(0x1a6))['is'](':checked'),'requestedLifetimeCount':_0x5e3367(_0x7c7858[_0x1fcc67(0x1df)](_0x1fcc67(0x22b))[_0x1fcc67(0x1e2)]()),'requestedMaxKeepAliveCount':_0x5e3367(_0x7c7858[_0x1fcc67(0x1df)](_0x1fcc67(0x1d1))[_0x1fcc67(0x1e2)]()),'requestedPublishingInterval':_0x5e3367(_0x7c7858[_0x1fcc67(0x1df)]('.input-requestedPublishingInterval')[_0x1fcc67(0x1e2)]()),'maxNotificationsPerPublish':_0x5e3367(_0x7c7858[_0x1fcc67(0x1df)](_0x1fcc67(0x157))[_0x1fcc67(0x1e2)]()),'priority':_0x5e3367(_0x7c7858['find'](_0x1fcc67(0x1bc))[_0x1fcc67(0x1e2)]())}};_0x27538[_0x1fcc67(0x227)][_0x1fcc67(0x22d)]=!![],_0x27538['isDefault']&&_0x27538['id']==='s0'&&(_0x27538[_0x1fcc67(0x1c4)]=_0x1fcc67(0x230)),_0xfceacc[_0x1fcc67(0x21b)](_0x27538);}),this[_0x318ec0(0x194)]=_0xfceacc;}{const _0x18cac2=$(_0x318ec0(0x1aa))[_0x318ec0(0x1f4)]('items'),_0x32b730=[];_0x18cac2[_0x318ec0(0x1f0)](function(_0x3c9bfd,_0x354d6c){const _0x4b3440=_0x318ec0,_0xa58881=$(this),_0xd8e9cf={'namespaceUri':_0xa58881[_0x4b3440(0x1df)]('.node-input-alias-namespace-uri')[_0x4b3440(0x1e2)](),'alias':_0xa58881['find'](_0x4b3440(0x160))[_0x4b3440(0x1e2)]()};_0x32b730[_0x4b3440(0x21b)](_0xd8e9cf);}),this[_0x318ec0(0x219)]=_0x32b730;}},'oneditprepare'(){const _0x1b2deb=_0x2e90c5,_0x1c1f80=this;_0x3cec14();const _0x185769=RED[_0x1b2deb(0x16a)][_0x1b2deb(0x16b)]({'id':'node-config-endpoint-tabs','onchange':function(_0x329c16){const _0x2713b3=_0x1b2deb;$(_0x2713b3(0x18a))[_0x2713b3(0x1f7)]()[_0x2713b3(0x180)](),$('#'+_0x329c16['id'])[_0x2713b3(0x178)]();}});_0x185769[_0x1b2deb(0x19e)]({'id':_0x1b2deb(0x1f9),'label':_0x1b2deb(0x164)},0x0),_0x185769['addTab']({'id':_0x1b2deb(0x1bd),'label':_0x1b2deb(0x191)},0x1),_0x185769['addTab']({'id':_0x1b2deb(0x1e6),'label':_0x1b2deb(0x167)},0x2),setTimeout(function(){const _0x2a3a60=_0x1b2deb;_0x185769[_0x2a3a60(0x1bb)]();},0x0);{const _0x6f7632=_0x3efbc5=>{const _0x1e57f3=_0x1b2deb;switch(_0x3efbc5){case null:case undefined:case'':case'None':$(_0x1e57f3(0x16c))[_0x1e57f3(0x180)]();break;case'Sign':case _0x1e57f3(0x1d3):{const _0x4ee48f=$(_0x1e57f3(0x16c));(_0x4ee48f[_0x1e57f3(0x1e2)]()===_0x1e57f3(0x20f)||_0x4ee48f['val']()==='')&&_0x4ee48f[_0x1e57f3(0x1e2)](_0x1e57f3(0x1c0)),$(_0x1e57f3(0x16c))[_0x1e57f3(0x178)]();}break;default:console[_0x1e57f3(0x1f8)](_0x1e57f3(0x204)+_0x3efbc5);}};_0x6f7632(_0x1c1f80[_0x1b2deb(0x1fb)]);const _0x2dd334=$('#node-config-input-securityMode');_0x2dd334['on']('change',()=>{const _0x449b23=_0x2dd334['val']();_0x6f7632(_0x449b23);});}const _0x167098=$(_0x1b2deb(0x1ac));_0x167098[_0x1b2deb(0x18f)]({'baseUrl':''});{const _0xa489b8=$(_0x1b2deb(0x196)),_0x4043c2=$(_0x1b2deb(0x183)),_0x5592b4=_0x4bc22e=>{const _0x2d12cf=_0x1b2deb;_0x4bc22e=_0x4bc22e||_0x2d12cf(0x22f);switch(_0x4bc22e){case _0x2d12cf(0x22f):$(_0x2d12cf(0x17d))['val'](''),$('#node-config-input-password')[_0x2d12cf(0x1e2)](''),_0xa489b8['hide'](),_0x4043c2[_0x2d12cf(0x180)]();break;case _0x2d12cf(0x1ea):_0xa489b8['show'](),_0x4043c2['hide']();break;case'Certificate':$(_0x2d12cf(0x17d))[_0x2d12cf(0x1e2)](''),$(_0x2d12cf(0x1c7))[_0x2d12cf(0x1e2)](''),_0x4043c2[_0x2d12cf(0x178)](),_0xa489b8['hide']();break;default:console[_0x2d12cf(0x1f8)](_0x2d12cf(0x17b)+_0x4bc22e);}};_0x5592b4(_0x1c1f80[_0x1b2deb(0x1f6)]);const _0x24a214=$(_0x1b2deb(0x1a2));_0x24a214['on']('change',()=>{const _0x1b8ec1=_0x24a214['val']();_0x5592b4(_0x1b8ec1);});}{$(_0x1b2deb(0x213))[_0x1b2deb(0x180)](),$(_0x1b2deb(0x17f))['prop'](_0x1b2deb(0x1d6),![]),$(_0x1b2deb(0x17f))['on'](_0x1b2deb(0x177),function(){const _0x441270=_0x1b2deb;$(this)['prop']('checked')?$(_0x441270(0x213))[_0x441270(0x178)]():$('#section-Advanced')[_0x441270(0x180)]();});}const _0x78cded=$(_0x1b2deb(0x1e3))[_0x1b2deb(0x189)](_0x1b2deb(0x1d6));_0x78cded?$(_0x1b2deb(0x1d7))['show']():$(_0x1b2deb(0x1d7))[_0x1b2deb(0x180)]();$(_0x1b2deb(0x1e3))['on'](_0x1b2deb(0x177),function(){const _0x4b561f=_0x1b2deb;$(this)['prop'](_0x4b561f(0x1d6))?$(_0x4b561f(0x1d7))[_0x4b561f(0x178)]():$(_0x4b561f(0x1d7))[_0x4b561f(0x180)]();});{$(_0x1b2deb(0x1c9))['on'](_0x1b2deb(0x1d8),()=>_0x31c429(this,void 0x0,void 0x0,function*(){const _0x1fd0bb=_0x1b2deb,_0x177e3d=yield fetch(_0x1fd0bb(0x1e0)),_0x3bd7f6=yield _0x177e3d[_0x1fd0bb(0x1fd)](),_0x2c40bc=JSON[_0x1fd0bb(0x1dc)](_0x3bd7f6,null,'\x20');alert(_0x2c40bc);}));}$(_0x1b2deb(0x1ab))['on']('click',()=>_0x31c429(this,void 0x0,void 0x0,function*(){const _0xda2a82=_0x1b2deb;window[_0xda2a82(0x190)](_0xda2a82(0x229),_0xda2a82(0x208));}));function _0x36caa0(){const _0x58706d=_0x1b2deb;var _0x41d5c4;return{'id':_0x1c1f80['id'],'endpoint':$(_0x58706d(0x1ee))[_0x58706d(0x1e2)](),'name':$(_0x58706d(0x192))['val'](),'pkiName':(_0x41d5c4=$('#node-config-input-pkiName'))===null||_0x41d5c4===void 0x0?void 0x0:_0x41d5c4[_0x58706d(0x1e2)](),'securityMode':$(_0x58706d(0x187))[_0x58706d(0x1e2)](),'securityPolicy':$(_0x58706d(0x17c))['val'](),'userIdentityType':$(_0x58706d(0x1a2))['val'](),'userName':$(_0x58706d(0x17d))[_0x58706d(0x1e2)](),'password':$(_0x58706d(0x1c7))[_0x58706d(0x1e2)](),'userCertificate':$(_0x58706d(0x1b6))[_0x58706d(0x1e2)](),'userPrivatekey':$(_0x58706d(0x1b7))[_0x58706d(0x1e2)](),'certificate':$('#node-input-certificate')[_0x58706d(0x1e2)](),'useTransport':$('#node-input-useTransport')[_0x58706d(0x189)](_0x58706d(0x1d6)),'maxChunkCount':$('#node-input-maxChunkCount')[_0x58706d(0x1e2)](),'maxMessageSize':$(_0x58706d(0x18d))[_0x58706d(0x1e2)](),'receiveBufferSize':$(_0x58706d(0x232))[_0x58706d(0x1e2)](),'sendBufferSize':$(_0x58706d(0x21a))[_0x58706d(0x1e2)]()};}{_0x3c4061(_0x1b2deb(0x1ce),$('#test-connection'),()=>({'url':_0x1b2deb(0x170),'body':{'endpointNode':_0x36caa0()}}),()=>{});}{const _0x2433f9=(_0x128328,_0x403a02)=>{const _0x21d839=_0x1b2deb;var _0x3b152a=_0x128328['width']()||0x64;_0x128328[_0x21d839(0x1df)](_0x21d839(0x19f))[_0x21d839(0x19b)](_0x21d839(0x184),_0x3b152a-0xf);},_0x2f5468=$(_0x1b2deb(0x226))[_0x1b2deb(0x207)]({'min-height':_0x1b2deb(0x220),'min-width':'260px'})[_0x1b2deb(0x1f4)]({'addItem':(_0x55b400,_0x566266,_0x1ab0ef)=>{const _0x31bac1=_0x1b2deb,_0x7e9944=_0x1ab0ef,_0x18cddf=$('#subscription-template')[_0x31bac1(0x168)]()[_0x31bac1(0x1b0)](_0x55b400);_0x18cddf['removeAttr']('id')[_0x31bac1(0x193)](_0x31bac1(0x180))[_0x31bac1(0x193)](_0x31bac1(0x1cf))[_0x31bac1(0x1a7)](_0x31bac1(0x1a1),_0x566266),_0x18cddf[_0x31bac1(0x1df)]('.input-name')[_0x31bac1(0x1e2)](_0x7e9944['name']),_0x18cddf[_0x31bac1(0x1df)](_0x31bac1(0x1b1))['val'](_0x7e9944[_0x31bac1(0x227)][_0x31bac1(0x1a3)]),_0x18cddf[_0x31bac1(0x1df)](_0x31bac1(0x1d1))[_0x31bac1(0x1e2)](_0x7e9944[_0x31bac1(0x227)][_0x31bac1(0x15d)]),_0x18cddf['find'](_0x31bac1(0x22b))[_0x31bac1(0x1e2)](_0x7e9944['parameters'][_0x31bac1(0x171)]),_0x18cddf['find'](_0x31bac1(0x157))['val'](_0x7e9944[_0x31bac1(0x227)]['maxNotificationsPerPublish']||0x0),_0x18cddf['find'](_0x31bac1(0x1bc))[_0x31bac1(0x1e2)](_0x7e9944['parameters'][_0x31bac1(0x1fe)]||0x0),_0x18cddf[_0x31bac1(0x1df)](_0x31bac1(0x156))[_0x31bac1(0x214)](''+_0x566266),_0x7e9944['isDefault']&&_0x18cddf[_0x31bac1(0x1df)](_0x31bac1(0x195))[_0x31bac1(0x189)]('readonly',!![]),_0x18cddf[_0x31bac1(0x1df)](_0x31bac1(0x16d))[_0x31bac1(0x189)](_0x31bac1(0x1d6),_0x7e9944[_0x31bac1(0x188)]),_0x7e9944[_0x31bac1(0x188)]&&(_0x55b400[_0x31bac1(0x1df)](_0x31bac1(0x202))[_0x31bac1(0x1e8)](_0x31bac1(0x180)),setTimeout(()=>_0x18cddf[_0x31bac1(0x1df)](_0x31bac1(0x16d))['prop'](_0x31bac1(0x186),!![]),0xa));},'removable':!![],'resizeItem':_0x2433f9}),_0x5418ab=()=>{const _0x2c2be3=_0x1b2deb,_0xa7a1=_0x1c1f80[_0x2c2be3(0x194)]||[];_0xa7a1['length']===0x0&&_0xa7a1['push']({'id':'s1','name':'Default\x20Subscription','isDefault':!![],'parameters':Object[_0x2c2be3(0x16f)]({},_0x140c4a)});_0x2f5468[_0x2c2be3(0x1f4)](_0x2c2be3(0x203));for(const _0x1e527f of _0xa7a1){_0x2f5468['editableList'](_0x2c2be3(0x1ff),_0x1e527f);}};_0x5418ab();}{function _0x394b52(_0x4d28ff,_0x5da293,_0x118ee8){const _0x4383a7=_0x1b2deb,_0x262adf=_0x118ee8,_0x5066c7=$('<div\x20class=\x22alias-entry\x22>')['appendTo'](_0x4d28ff);$(_0x4383a7(0x1fc),{'class':_0x4383a7(0x1ed),'type':_0x4383a7(0x214)})[_0x4383a7(0x1e2)](_0x118ee8[_0x4383a7(0x1ad)]||'')['css']({'width':'5%'})[_0x4383a7(0x1b0)](_0x5066c7)[_0x4383a7(0x1e2)](_0x5da293[_0x4383a7(0x1f1)]()),$('<input/>',{'class':_0x4383a7(0x1a4),'type':_0x4383a7(0x214)})[_0x4383a7(0x1e2)](_0x118ee8['alias']||'')[_0x4383a7(0x207)]({'width':_0x4383a7(0x169)})[_0x4383a7(0x1b0)](_0x5066c7)[_0x4383a7(0x1e2)](_0x262adf[_0x4383a7(0x1ad)]),$('<input/>',{'class':_0x4383a7(0x1d5),'type':_0x4383a7(0x214)})[_0x4383a7(0x1e2)](_0x118ee8['namespaceUri']||'')[_0x4383a7(0x207)]({'width':_0x4383a7(0x210)})['appendTo'](_0x5066c7)[_0x4383a7(0x1e2)](_0x262adf[_0x4383a7(0x166)]);}const _0x4456e0=$(_0x1b2deb(0x1aa))[_0x1b2deb(0x207)]({'min-height':_0x1b2deb(0x220),'min-width':'260px'})['editableList']({'addButton':![],'removable':![],'height':_0x1b2deb(0x1d2),'scrollOnAdd':![],'addItem'(_0x929554,_0x9b6e73,_0x545ee7){_0x394b52(_0x929554,_0x9b6e73,_0x545ee7);}});function _0x248932(){const _0x450f93=_0x1b2deb;_0x4456e0[_0x450f93(0x1f4)]('items'),_0x4456e0['editableList'](_0x450f93(0x203));for(const _0x4f3897 of _0x1c1f80['namespaceAliases']||[]){_0x4456e0[_0x450f93(0x1f4)](_0x450f93(0x1ff),_0x4f3897);}}{$(_0x1b2deb(0x19a))['on'](_0x1b2deb(0x1d8),()=>_0x31c429(this,void 0x0,void 0x0,function*(){const _0x1d45d8=_0x1b2deb,_0x33027c={'endpointNode':_0x36caa0(),'namespaceAliases':_0x1c1f80[_0x1d45d8(0x219)]||[]},_0x563a54=yield fetch(_0x1d45d8(0x1c5),{'method':'POST','headers':{'Content-Type':_0x1d45d8(0x205)},'body':JSON['stringify'](_0x33027c)}),_0x279a8d=yield _0x563a54['json'](),_0xbd7ba0=_0x279a8d[_0x1d45d8(0x219)];console['log']('namespaceAliases',_0xbd7ba0),Array['isArray'](_0xbd7ba0)&&(_0x1c1f80[_0x1d45d8(0x219)]=_0xbd7ba0,_0x248932());})),_0x1c1f80[_0x1b2deb(0x219)]=_0x1c1f80['namespaceAliases']||[{'alias':'ua','namespaceUri':'http://opcfoundation.org/UA/','isWellKnown':!![],'isDefault':!![]}];}_0x248932();}}});}()));function _0x5c99(){const _0x2c8606=['.input-isDefault','823986zMFOde','assign','/opcua-for-node-red/test-connection','requestedLifetimeCount','Subscribe','html','opc.tcp://opcuademo.sterfive.com:26543/UA/SampleServer','absolute','next','change','show','installing\x20iframe','installFeedbackWidget\x20','invalid\x20userIdentityType\x20','#node-config-input-securityPolicy','#node-config-input-userName','928647LCDVeu','#toggleAdvancedSection','hide','\x20for\x20more\x20information.','licence-widget-','.section-userIdentityType-Certificate','width','style','disabled','#node-config-input-securityMode','isDefault','prop','#node-config-endpoint-tabs-content','src','throw','#node-input-maxMessageSize','9pCPSQN','licenceWidget','open','Subscriptions','#node-config-input-name','removeClass','subscriptions','.input-name','.section-userIdentityType-UserName','statusText','split','baseUrl','#extract-aliases','typedInput','pricing-table-id','length','addTab','label','OpcUa-Endpoint2','data-i','#node-config-input-userIdentityType','requestedPublishingInterval','node-input-alias-alias','licence-widget-msg','.input-publishingEnabled','attr','FAILED','20px','#editable-list-aliases-container','#goto-config','#licenceWidget','alias','opcua\x20endpoint','\x20to\x20acquire\x20a\x20license.','appendTo','.input-requestedPublishingInterval','<br>','append','.red-ui-tray-body','config','#node-config-input-userCertificate','#node-config-input-userPrivatekey','licenceType','apply','element','resize','.input-priority','endpoint-tab-subscriptions','fetching\x20failed\x20with\x20error','internal\x20error\x20','Basic256Sha256','error','\x20days.\x0aBuy\x20online\x20and\x20visit\x20','Your\x20licence\x20is\x20valid.','name','/opcua-for-node-red/extract-namespace-aliases','items','#node-config-input-password','\x20or\x20visit\x20our\x20website\x20to\x20renew\x20your\x20license\x20and\x20regain\x20access\x20to\x20our\x20services.̀','#checkCertificate','class','Licence\x20has\x20expired','publishable-key','Freeware\x20licence','connection','template','licenceInfo','.input-requestedMaxKeepAliveCount','auto','SignAndEncrypt','daysLeft','node-input-alias-namespace-uri','checked','#section-TransportSettings','click','script','pk_live_51HsE1sBCNccbzsVzt7zaq2uv20pkryWllAzvZgZd5AhwFI9A3qBIeOJvJwQF08lDoLpFqLjwmyA79wnPnYLsvKjt009f00VpCW','value','stringify','14089576BZcoTN','true','find','/opcua-for-node-red/client_certificate.json','<stripe-pricing-table/>','val','#node-config-input-useTransport','type','AUTHORIZED','endpoint-tab-namespace-aliases','endpoint','addClass','Slow\x20Subscription','UserName','subscribe-button','catch','node-input-alias-index','#node-config-input-endpoint','\x20-\x20','each','toString','629904JOQrvZ','/opcua-for-node-red','editableList','fa\x20fa-check-circle','userIdentityType','children','log','endpoint-tab-connection','password','securityMode','<input/>','json','priority','addItem','<iframe></iframe>','<button/>','.red-ui-editableList-item-remove','empty','invalid\x20securityMode\x20','application/json','EXPIRED','css','_blank','FREEWARE','<i>','Please\x20contact\x20','SuppressedError','opc.tcp:','registerType','None','70%','toISOString','http://opcfoundation.org/UA/','#section-Advanced','text','map','protocol','18537VFrkLo','Your\x20license\x20has\x20expired.\x20Please\x20contact\x20our\x20support\x20team\x20or\x20visit\x20our\x20website\x20to\x20renew\x20your\x20license\x20and\x20regain\x20access\x20to\x20our\x20services.','namespaceAliases','#node-input-sendBufferSize','push','4018720llEHEX','\x20It\x20will\x20expire\x20in\x20','PROFESSIONAL','function','150px','btn\x20btn-primary','extra','-messages','</p>','4oWRuSx','#subscriptions-container','parameters','isArray','/opcua-for-node-red/config','180px','.input-requestedLifetimeCount','sterfive.licenceWidget','publishingEnabled','status','Anonymous','Default\x20Subscription','POST','#node-input-receiveBufferSize','-failure','createElement','background-color:transparent;overflow:hidden;border:3px','invalid\x20endpoint','.subscription-id','.input-maxNotificationsPerPublish','message','fa\x20fa-exclamation-circle','then','result','nodes','requestedMaxKeepAliveCount','fa\x20fa-calendar-time','<a\x20href=\x22https://www.sterfive.com/opcua/for-node-red\x22\x20target=”_blank”>Sterfive\x27s\x20website\x20</a>','.node-input-alias-alias','err','4495603pFohKr','/licenceInfo','Connection','margin-top:\x2020px;','namespaceUri','Namespace\x20Aliases','clone','25%','tabs','create','.section-securityPolicy'];_0x5c99=function(){return _0x2c8606;};return _0x5c99();}
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNvdXJjZU1hcCJdLCJuYW1lcyI6WyJfMHgzMWM0MjkiLCJfMHgzYjFhNDgiLCJfMHgzOGZmMzAiLCJfMHgyYTFmNWQiLCJfMHgzYTFjM2MiLCJfMHg1ZGM1M2EiLCJfMHgxZjBiMDkiLCJfMHg0NDMyYzciLCJQcm9taXNlIiwiXzB4OGRhOGRiIiwiXzB4MjI2ZGI1IiwiXzB4MmUyMzUzIiwiXzB4MTcxNzQ1IiwiXzB4NTNhNjExIiwiXzB4NTEwOTVlIiwiXzB4M2QxNzk4IiwiXzB4M2U5OWJjIiwiXzB4MjJkMmQ3IiwiXzB4MzQ5M2M2IiwiU3VwcHJlc3NlZEVycm9yIiwiXzB4MjFmM2NmIiwiXzB4NDI2OWNjIiwiXzB4NDdmZTFkIiwiXzB4NTIxYmRlIiwiRXJyb3IiLCJfMHgzYzQwNjEiLCJfMHhmNGFiNmEiLCJfMHg2MGRlZmIiLCJfMHgzNTUwZGMiLCJfMHgxMWM5ZDgiLCJfMHgxZTI2NGMiLCIkIiwiXzB4NGU4ZTVjIiwiXzB4MzEwMmFhIiwiXzB4MzZkYjgzIiwiXzB4ZDNjYzU0IiwiYm9keSIsIl8weDEyYzNjZCIsInVybCIsIl8weDM3ZTAzMSIsImZldGNoIiwiSlNPTiIsIl8weDExYWM5OSIsIl8weDMwNWU2NyIsImNvbnNvbGUiLCJfMHg1OGJmMjIiLCJfMHgzNGVkYTQiLCJfMHgxMjhkZjQiLCJfMHg1MDZlZTciLCJfMHgyYmY0NDIiLCJBcnJheSIsIl8weDM0OWFjMCIsIl8weGM5N2ZhYyIsIl8weDQyYzAzYiIsIl8weDMzMGUwZSIsImFyZ3VtZW50cyIsIl8weDUzMDI2MiIsIl8weDMyZThiYyIsIl8weDRmMmNkZCIsIl8weDI4OThkMSIsIl8weDQ2MzFjMSIsIkRhdGUiLCJfMHgyNDdhMTkiLCJfMHgyYjNkYzMiLCJfMHgzMWYzZWMiLCJfMHg0MTkyZjAiLCJfMHgxNjdmZGIiLCJfMHg1ZWFiNTQiLCJfMHgyZDJkMzIiLCJfMHg0NjAyYzkiLCJfMHg1NjE3N2UiLCJfMHg1OWM2MjEiLCJfMHgxZjcyYTAiLCJfMHgyODU2MTAiLCJfMHg0NGIyYjMiLCJkb2N1bWVudCIsIl8weGNmMGQwYyIsIl8weDQxNzhlYiIsIl8weDNjZWMxNCIsIl8weDQwNDQyZiIsIl8weDNlMDRhZSIsIl8weDFkNThlYSIsIl8weDVjM2I4MSIsIl8weDE0MjEyNiIsIlVSTCIsIl8weDUwOTQxYSIsIl8weDE0MGM0YSIsIlJFRCIsIl8weDE2NzVjNSIsIl8weDNlYTdhZSIsIk9iamVjdCIsIl8weDNjZTUxYiIsIl8weDMxODk2ZSIsIl8weDFkOGNjOSIsIl8weGZjZWFjYyIsIl8weDVlMzM2NyIsIl8weDIzOWFmYSIsIl8weDUwNmQ2ZCIsIl8weDNjNzkxOCIsIl8weDdjNzg1OCIsIl8weDI3NTM4IiwiXzB4MThjYWMyIiwiXzB4MzJiNzMwIiwiXzB4M2M5YmZkIiwiXzB4MzU0ZDZjIiwiXzB4YTU4ODgxIiwiXzB4ZDhlOWNmIiwiXzB4MWMxZjgwIiwiXzB4MTg1NzY5IiwiXzB4MzI5YzE2Iiwic2V0VGltZW91dCIsIl8weDZmNzYzMiIsIl8weDNlZmJjNSIsInVuZGVmaW5lZCIsIl8weDRlZTQ4ZiIsIl8weDJkZDMzNCIsIl8weDQ0OWIyMyIsIl8weDE2NzA5OCIsIl8weGE0ODliOCIsIl8weDQwNDNjMiIsIl8weDU1OTJiNCIsIl8weDRiYzIyZSIsIl8weDI0YTIxNCIsIl8weDFiOGVjMSIsIl8weDc4Y2RlZCIsIl8weDE3N2UzZCIsIl8weDNiZDdmNiIsIl8weDJjNDBiYyIsImFsZXJ0Iiwid2luZG93IiwiXzB4MzZjYWEwIiwiXzB4NDFkNWM0IiwiXzB4MjQzM2Y5IiwiXzB4MTI4MzI4IiwiXzB4NDAzYTAyIiwiXzB4M2IxNTJhIiwiXzB4MmY1NDY4IiwiXzB4NTViNDAwIiwiXzB4NTY2MjY2IiwiXzB4MWFiMGVmIiwiXzB4N2U5OTQ0IiwiXzB4MThjZGRmIiwiXzB4NTQxOGFiIiwiXzB4YTdhMSIsIl8weDFlNTI3ZiIsIl8weDM5NGI1MiIsIl8weDRkMjhmZiIsIl8weDVkYTI5MyIsIl8weDExOGVlOCIsIl8weDI2MmFkZiIsIl8weDUwNjZjNyIsIl8weDQ0NTZlMCIsIl8weDkyOTU1NCIsIl8weDliNmU3MyIsIl8weDU0NWVlNyIsIl8weDI0ODkzMiIsIl8weDRmMzg5NyIsIl8weDMzMDI3YyIsIl8weDU2M2E1NCIsIl8weDI3OWE4ZCIsIl8weGJkN2JhMCJdLCJtYXBwaW5ncyI6InF3QkFBQSxDQUFDLFUsQ0FDRyxhLHdCQW1CQSxTQUFTQSxTQUFULENBQW1CQyxTQUFuQixDQUE0QkMsU0FBNUIsQ0FBd0NDLFNBQXhDLENBQTJDQyxTQUEzQyxDLENBQ0ksU0FBU0MsU0FBVCxDQUFlQyxTQUFmLEMsUUFBK0JBLFNBQUEsWUFBaUJILFNBQWpCLENBQXFCRyxTQUFyQixDQUE2QixJQUFJSCxTQUFKLENBQU0sU0FBVUksU0FBVixDLENBQXFCQSxTQUFBLENBQVFELFNBQVIsQyxFQUEzQixDLFNBQ3JELEdBQUssQ0FBQUgsU0FBQSxFQUFNLENBQUFBLFNBQUEsQ0FBSUssT0FBSixDQUFOLENBQUwsQ0FBeUIsU0FBVUMsU0FBVixDQUFtQkMsU0FBbkIsQyx5QkFDNUIsU0FBU0MsU0FBVCxDQUFtQkMsU0FBbkIsQyxDQUE0QixHLENBQU1DLFNBQUEsQ0FBS1QsU0FBQSxDLE1BQUEsRUFBZVEsU0FBZixDQUFMLEMsRUFBK0IsTUFBT0UsU0FBUCxDLENBQVlKLFNBQUEsQ0FBT0ksU0FBUCxDLEdBQzdFLFNBQVNDLFNBQVQsQ0FBa0JDLFNBQWxCLEMseUJBQTJCLEcsQ0FBTUgsU0FBQSxDQUFLVCxTQUFBLEMsZ0JBQUEsRUFBbUJZLFNBQW5CLENBQUwsQyxFQUFtQyxNQUFPQyxTQUFQLEMsQ0FBWVAsU0FBQSxDQUFPTyxTQUFQLEMsR0FDaEYsU0FBU0osU0FBVCxDQUFjSyxTQUFkLEMseUJBQXdCQSxTQUFBLEMsTUFBQSxFQUFjVCxTQUFBLENBQVFTLFNBQUEsQyxnQkFBQSxDQUFSLENBQWQsQ0FBc0NiLFNBQUEsQ0FBTWEsU0FBQSxDLE9BQUEsQ0FBTixFLGdCQUFBLEVBQXlCUCxTQUF6QixDQUFvQ0ksU0FBcEMsQyxFQUM5REYsU0FBQSxDQUFNLENBQUFULFNBQUEs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QUFBLENBQU8sTUFBTXRILEtBQUEsQyxnQkFBQSxDQUF1RCxDLFFBQ3RFLEMsTUFEc0UsQyxTQUV0RSxDQUFTLEMsY0FBRSxDLGdCQUFGLENBRjZELEMsTUFHdEUsQ0FBTUMsSUFBQSxDLFdBQUEsRUFBZW9ILFNBQWYsQ0FIZ0UsQ0FBdkQsQyxDQUtiRSxTQUFBLENBQU8sTUFBTUQsU0FBQSxDLE1BQUEsRyxDQUNiRSxTQUFBLENBQW1CRCxTQUFBLEMsZ0JBQUEsQyxDQUN6Qm5ILE9BQUEsQyxLQUFBLEUsa0JBQUEsQ0FBZ0NvSCxTQUFoQyxDLENBQ0k5RyxLQUFBLEMsU0FBQSxFQUFjOEcsU0FBZCxDLEdBQ0FyRCxTQUFBLEMsZ0JBQUEsRUFBd0JxRCxTLENBQ3hCTCxTQUFBLEUsR0FmZ0MsQ0FBeEMsQyxDQWtCQWhELFNBQUEsQyxnQkFBQSxFQUF3QkEsU0FBQSxDLGtCQUFBLEdBQXlCLENBQzdDLEMsT0FDSSxDLElBREosQyxjQUVJLEMsOEJBRkosQyxhQUdJLEMsSUFISixDLFdBSUksQyxJQUpKLENBRDZDLEMsRUFTckRnRCxTQUFBLEUsR0F4ZDhCLENBQTFDLEMsRUEvUEosRyIsInNvdXJjZXNDb250ZW50IjpbIihmdW5jdGlvbiAoKSB7XG4gICAgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4gICAgQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQgQ29ycG9yYXRpb24uXHJcblxyXG4gICAgUGVybWlzc2lvbiB0byB1c2UsIGNvcHksIG1vZGlmeSwgYW5kL29yIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZSBmb3IgYW55XHJcbiAgICBwdXJwb3NlIHdpdGggb3Igd2l0aG91dCBmZWUgaXMgaGVyZWJ5IGdyYW50ZWQuXHJcblxyXG4gICAgVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiBBTkQgVEhFIEFVVEhPUiBESVNDTEFJTVMgQUxMIFdBUlJBTlRJRVMgV0lUSFxyXG4gICAgUkVHQVJEIFRPIFRISVMgU09GVFdBUkUgSU5DTFVESU5HIEFMTCBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZXHJcbiAgICBBTkQgRklUTkVTUy4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWSBTUEVDSUFMLCBESVJFQ1QsXHJcbiAgICBJTkRJUkVDVCwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIE9SIEFOWSBEQU1BR0VTIFdIQVRTT0VWRVIgUkVTVUxUSU5HIEZST01cclxuICAgIExPU1MgT0YgVVNFLCBEQVRBIE9SIFBST0ZJVFMsIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBORUdMSUdFTkNFIE9SXHJcbiAgICBPVEhFUiBUT1JUSU9VUyBBQ1RJT04sIEFSSVNJTkcgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgVVNFIE9SXHJcbiAgICBQRVJGT1JNQU5DRSBPRiBUSElTIFNPRlRXQVJFLlxyXG4gICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogKi9cclxuICAgIC8qIGdsb2JhbCBSZWZsZWN0LCBQcm9taXNlLCBTdXBwcmVzc2VkRXJyb3IsIFN5bWJvbCwgSXRlcmF0b3IgKi9cclxuXHJcblxyXG4gICAgZnVuY3Rpb24gX19hd2FpdGVyKHRoaXNBcmcsIF9hcmd1bWVudHMsIFAsIGdlbmVyYXRvcikge1xyXG4gICAgICAgIGZ1bmN0aW9uIGFkb3B0KHZhbHVlKSB7IHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFAgPyB2YWx1ZSA6IG5ldyBQKGZ1bmN0aW9uIChyZXNvbHZlKSB7IHJlc29sdmUodmFsdWUpOyB9KTsgfVxyXG4gICAgICAgIHJldHVybiBuZXcgKFAgfHwgKFAgPSBQcm9taXNlKSkoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xyXG4gICAgICAgICAgICBmdW5jdGlvbiBmdWxmaWxsZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XHJcbiAgICAgICAgICAgIGZ1bmN0aW9uIHJlamVjdGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yW1widGhyb3dcIl0odmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxyXG4gICAgICAgICAgICBmdW5jdGlvbiBzdGVwKHJlc3VsdCkgeyByZXN1bHQuZG9uZSA/IHJlc29sdmUocmVzdWx0LnZhbHVlKSA6IGFkb3B0KHJlc3VsdC52YWx1ZSkudGhlbihmdWxmaWxsZWQsIHJlamVjdGVkKTsgfVxyXG4gICAgICAgICAgICBzdGVwKChnZW5lcmF0b3IgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSkpLm5leHQoKSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgdHlwZW9mIFN1cHByZXNzZWRFcnJvciA9PT0gXCJmdW5jdGlvblwiID8gU3VwcHJlc3NlZEVycm9yIDogZnVuY3Rpb24gKGVycm9yLCBzdXBwcmVzc2VkLCBtZXNzYWdlKSB7XHJcbiAgICAgICAgdmFyIGUgPSBuZXcgRXJyb3IobWVzc2FnZSk7XHJcbiAgICAgICAgcmV0dXJuIGUubmFtZSA9IFwiU3VwcHJlc3NlZEVycm9yXCIsIGUuZXJyb3IgPSBlcnJvciwgZS5zdXBwcmVzc2VkID0gc3VwcHJlc3NlZCwgZTtcclxuICAgIH07XG5cbiAgICBmdW5jdGlvbiBtYW5hZ2VBUElDYWxsKHByZWZpeCwgYnRuLCBmdW5jLCBvblJlc3VsdCkge1xuICAgICAgICBjb25zdCBzdWNjZXNzSWNvbiA9ICQoYCMke3ByZWZpeH0tc3VjY2Vzc2ApO1xuICAgICAgICBjb25zdCBmYWlsdXJlSWNvbiA9ICQoYCMke3ByZWZpeH0tZmFpbHVyZWApO1xuICAgICAgICBjb25zdCBwZW5kaW5nSWNvbiA9ICQoYCMke3ByZWZpeH0tcGVuZGluZ2ApO1xuICAgICAgICBjb25zdCBtZXNzYWdlcyA9ICQoYCMke3ByZWZpeH0tbWVzc2FnZXNgKTtcbiAgICAgICAgbGV0IGFjdGlvblBlbmRpbmcgPSBmYWxzZTtcbiAgICAgICAgc3VjY2Vzc0ljb24uaGlkZSgpO1xuICAgICAgICBmYWlsdXJlSWNvbi5oaWRlKCk7XG4gICAgICAgIHBlbmRpbmdJY29uLmhpZGUoKTtcbiAgICAgICAgYnRuLm9uKFwiY2xpY2tcIiwgKCkgPT4ge1xuICAgICAgICAgICAgaWYgKGFjdGlvblBlbmRpbmcpXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgYWN0aW9uUGVuZGluZyA9IHRydWU7XG4gICAgICAgICAgICBwZW5kaW5nSWNvbi5yZW1vdmVDbGFzcyhcImhpZGVcIik7XG4gICAgICAgICAgICBwZW5kaW5nSWNvbi5odG1sKFwiVGVzdGluZyBDb25uZWN0aW9uIC4uLlwiKTtcbiAgICAgICAgICAgIHN1Y2Nlc3NJY29uLmFkZENsYXNzKFwiaGlkZVwiKTtcbiAgICAgICAgICAgIGZhaWx1cmVJY29uLmFkZENsYXNzKFwiaGlkZVwiKTtcbiAgICAgICAgICAgIG1lc3NhZ2VzLmh0bWwoXCJcIik7XG4gICAgICAgICAgICBjb25zdCB7IGJvZHksIHVybCB9ID0gZnVuYygpO1xuICAgICAgICAgICAgLy8geHggY29uc29sZS5sb2coXCJ4eHh4eFwiLCBib2R5KTtcbiAgICAgICAgICAgIGZldGNoKHVybCwge1xuICAgICAgICAgICAgICAgIG1ldGhvZDogXCJQT1NUXCIsXG4gICAgICAgICAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICAgICAgICAgICBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIixcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KGJvZHkpLFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAudGhlbigoZGF0YSkgPT4gZGF0YS5qc29uKCkpXG4gICAgICAgICAgICAgICAgLnRoZW4oKGpzb24pID0+IHtcbiAgICAgICAgICAgICAgICBhY3Rpb25QZW5kaW5nID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgcGVuZGluZ0ljb24uaGlkZSgpO1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKEpTT04uc3RyaW5naWZ5KGpzb24sIG51bGwsIFwiIFwiKSk7XG4gICAgICAgICAgICAgICAgaWYgKGpzb24ucmVzdWx0ID09PSBcIm9rXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgc3VjY2Vzc0ljb24ucmVtb3ZlQ2xhc3MoXCJoaWRlXCIpO1xuICAgICAgICAgICAgICAgICAgICBmYWlsdXJlSWNvbi5hZGRDbGFzcyhcImhpZGVcIik7XG4gICAgICAgICAgICAgICAgICAgIG1lc3NhZ2VzLmh0bWwoanNvbi5tZXNzYWdlLnJlcGxhY2UoXCJcXG5cIiwgXCI8YnI+XCIpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGFkYXB0ID0gKHN0cikgPT4gIXN0clxuICAgICAgICAgICAgICAgICAgICAgICAgPyBcIlwiXG4gICAgICAgICAgICAgICAgICAgICAgICA6IHN0clxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5zcGxpdChcIlxcblwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5tYXAoKGEpID0+IGA8cD4ke2F9PC9wPmApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLmpvaW4oXCJcXG5cIik7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGFkYXB0MiA9IChzdHIpID0+IChBcnJheS5pc0FycmF5KHN0cikgPyBzdHIubWFwKGFkYXB0KS5qb2luKFwiXFxuXCIpIDogYWRhcHQoc3RyKSk7XG4gICAgICAgICAgICAgICAgICAgIHN1Y2Nlc3NJY29uLmFkZENsYXNzKFwiaGlkZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgZmFpbHVyZUljb24ucmVtb3ZlQ2xhc3MoXCJoaWRlXCIpO1xuICAgICAgICAgICAgICAgICAgICBtZXNzYWdlcy5odG1sKGFkYXB0Mihqc29uLm1lc3NhZ2UpICsgYWRhcHQyKGpzb24uZXh0cmEpKTtcbiAgICAgICAgICAgICAgICAgICAgb25SZXN1bHQobmV3IEVycm9yKGpzb24ucmVzdWx0KSwganNvbik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAuY2F0Y2goKGVycikgPT4ge1xuICAgICAgICAgICAgICAgIGFjdGlvblBlbmRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICBwZW5kaW5nSWNvbi5hZGRDbGFzcyhcImhpZGVcIik7XG4gICAgICAgICAgICAgICAgc3VjY2Vzc0ljb24uYWRkQ2xhc3MoXCJoaWRlXCIpO1xuICAgICAgICAgICAgICAgIGZhaWx1cmVJY29uLnJlbW92ZUNsYXNzKFwiaGlkZVwiKTtcbiAgICAgICAgICAgICAgICBtZXNzYWdlcy5odG1sKFwiaW50ZXJuYWwgZXJyb3IgXCIgKyBlcnIubWVzc2FnZSk7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJlcnJcIiwgZXJyKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBjb25zdCBwcmljaW5nVGFibGVJZCA9IFwicHJjdGJsXzFPSnQ0OUJDTmNjYnpzVnprYUFOT2dGTFwiO1xuICAgIGNvbnN0IHB1Ymxpc2hhYmxlS2V5ID0gXCJwa19saXZlXzUxSHNFMXNCQ05jY2J6c1Z6dDd6YXEydXYyMHBrcnlXbGxBenZaZ1pkNUFod0ZJOUEzcUJJZU9Kdkp3UUYwOGxEb0xwRnFMandteUE3OXduUG5ZTHN2S2p0MDA5ZjAwVnBDV1wiO1xuICAgIGZ1bmN0aW9uIGZldGNoTGljZW5jZUluZm8oKSB7XG4gICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgYXJndW1lbnRzLCB2b2lkIDAsIGZ1bmN0aW9uKiAoYmFzZVVybCA9IFwiXCIpIHtcbiAgICAgICAgICAgIGNvbnN0IHJvb3QgPSBgJHtiYXNlVXJsfS9vcGN1YS1mb3Itbm9kZS1yZWRgO1xuICAgICAgICAgICAgY29uc3QgdXJsID0gYCR7cm9vdH0vbGljZW5jZUluZm9gO1xuICAgICAgICAgICAgY29uc3QgZGF0YSA9IHlpZWxkIGZldGNoKHVybCwge1xuICAgICAgICAgICAgICAgIG1ldGhvZDogXCJQT1NUXCIsXG4gICAgICAgICAgICAgICAgaGVhZGVyczogeyBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIiB9LFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBjb25zdCB0b2RheSA9IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKTtcbiAgICAgICAgICAgIGlmIChkYXRhLnN0YXR1cyAhPT0gMjAwKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJmZXRjaGluZyBmYWlsZWQgd2l0aCBlcnJvclwiLCBkYXRhLnN0YXR1cywgZGF0YS5zdGF0dXNUZXh0KTtcbiAgICAgICAgICAgICAgICByZXR1cm4geyBzdGF0dXM6IFwiRkFJTEVEXCIsIHR5cGU6IFwiRlJFRVdBUkVcIiwgbGljZW5jZUluZm86IHsgZXhwaXJ5RGF0ZTogdG9kYXkgfSB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QganNvbiA9IHlpZWxkIGRhdGEuanNvbigpO1xuICAgICAgICAgICAgcmV0dXJuIGpzb247XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBjb25zdCBkZWNsYXJlTGljZW5jZVdpZGdldCA9ICgpID0+IHtcbiAgICAgICAgJC53aWRnZXQoXCJzdGVyZml2ZS5saWNlbmNlV2lkZ2V0XCIsIHtcbiAgICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgICBiYXNlVXJsOiBcIlwiLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF9jcmVhdGUoKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgY29uc3QgY29udGFjdExpbmsgPSBgPGEgaHJlZj1cIm1haWx0bzpzdXBwb3J0QHN0ZXJmaXZlLmNvbVwiIHN1YmplY3Q9XCJAb3BjdWEvZm9yLW5vZGUtcmVkIHN1cHBvcnQgcmVxdWVzdFwiPm1haWx0bzpzdXBwb3J0QHN0ZXJmaXZlLmNvbTwvYT5gO1xuICAgICAgICAgICAgICAgIGNvbnN0IHdlYnNpdGVMaW5rID0gYDxhIGhyZWY9XCJodHRwczovL3d3dy5zdGVyZml2ZS5jb20vb3BjdWEvZm9yLW5vZGUtcmVkXCIgdGFyZ2V0PeKAnV9ibGFua+KAnT5TdGVyZml2ZSdzIHdlYnNpdGUgPC9hPmA7XG4gICAgICAgICAgICAgICAgZmV0Y2hMaWNlbmNlSW5mbyh0aGF0LmJhc2VVcmwpXG4gICAgICAgICAgICAgICAgICAgIC50aGVuKChqc29uKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGxldCBpY29uID0gXCJcIjtcbiAgICAgICAgICAgICAgICAgICAgbGV0IG1zZyA9IFwiXCI7XG4gICAgICAgICAgICAgICAgICAgIGxldCBkZXRhaWxzID0gXCJcIjtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RhdHVzID0ganNvbi5zdGF0dXM7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGRheUxlZnQgPSBqc29uLmRheXNMZWZ0O1xuICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKHN0YXR1cykge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBcIkFVVEhPUklaRURcIjpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpY29uID0gXCJmYSBmYS1jaGVjay1jaXJjbGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKGpzb24udHlwZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIFwiVFJJQUxcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXNnID0gXCJUcmlhbCBsaWNlbmNlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXRhaWxzID0gYFRoZSBUcmlhbCB3aWxsIGV4cGlyZSBpbiAke2RheUxlZnR9IGRheXMuXFxuQnV5IG9ubGluZSBhbmQgdmlzaXQgJHt3ZWJzaXRlTGlua30gdG8gYWNxdWlyZSBhIGxpY2Vuc2UuYDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgXCJQUk9GRVNTSU9OQUxcIjpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1zZyA9IGBZb3VyIGxpY2VuY2UgaXMgdmFsaWQuYDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkYXlMZWZ0IDwgOTAgJiYgZGF5TGVmdCA+PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXNnICs9IGAgSXQgd2lsbCBleHBpcmUgaW4gJHtkYXlMZWZ0fSBkYXlzLmA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBkZXRhaWxzID0gYCR7d2Vic2l0ZUxpbmt9PGJyPiR7Y29udGFjdExpbmt9YDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRldGFpbHMgPSBqc29uLmxpY2VuY2VJbmZvLmxpY2VuY2VUeXBlICsgXCIgLSBcIiArIChqc29uLmxpY2VuY2VJbmZvLm9uUHJlbWlzZVNlcnZlckhvc3QgfHwgXCJcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBcIkZSRUVXQVJFXCI6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtc2cgPSBcIkZyZWV3YXJlIGxpY2VuY2VcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRldGFpbHMgPSBgVGhpcyBpcyBhIGZyZWV3YXJlIGxpY2VuY2UsIGFuZCBoYXZlIHNvbWUgbGltaXRhdGlvbnMuXFxuJHt3ZWJzaXRlTGlua30gZm9yIG1vcmUgaW5mb3JtYXRpb24uYDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgXCJFWFBJUkVEXCI6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWNvbiA9IFwiZmEgZmEtY2FsZW5kYXItdGltZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1zZyA9IFwiTGljZW5jZSBoYXMgZXhwaXJlZFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRldGFpbHMgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIllvdXIgbGljZW5zZSBoYXMgZXhwaXJlZC4gUGxlYXNlIGNvbnRhY3Qgb3VyIHN1cHBvcnQgdGVhbSBvciB2aXNpdCBvdXIgd2Vic2l0ZSB0byByZW5ldyB5b3VyIGxpY2Vuc2UgYW5kIHJlZ2FpbiBhY2Nlc3MgdG8gb3VyIHNlcnZpY2VzLlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBcIkZBSUxFRFwiOlxuICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpY29uID0gXCJmYSBmYS1leGNsYW1hdGlvbi1jaXJjbGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtc2cgPSBcIllvdXIgbGljZW5zZSBpcyBjdXJyZW50bHkgaW52YWxpZC5cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXRhaWxzID0gYFBsZWFzZSBjb250YWN0ICR7Y29udGFjdExpbmt9IG9yIHZpc2l0IG91ciB3ZWJzaXRlIHRvIHJlbmV3IHlvdXIgbGljZW5zZSBhbmQgcmVnYWluIGFjY2VzcyB0byBvdXIgc2VydmljZXMuzIBgO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIC8qKiAqL1xuICAgICAgICAgICAgICAgICAgICAvLyB0aGlzLmVsZW1lbnQudGV4dChcIkxpY2VuY2UgXCIgKyBKU09OLnN0cmluZ2lmeShqc29uKSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudC5hZGRDbGFzcyhcImxpY2VuY2Utd2lkZ2V0XCIpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnQuYWRkQ2xhc3MoXCJsaWNlbmNlLXdpZGdldC1cIiArIHN0YXR1cyk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudC5hcHBlbmQoJChcIjxzcGFuPlwiKS5hZGRDbGFzcyhcImxpY2VuY2Utd2lkZ2V0LWljb25cIikuYXBwZW5kKCQoXCI8aT5cIikuYWRkQ2xhc3MoaWNvbikpKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50LmFwcGVuZCgkKFwiPHNwYW4+XCIpLmFkZENsYXNzKFwibGljZW5jZS13aWRnZXQtbXNnXCIpLnRleHQobXNnKSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudC5hcHBlbmQoJChcIjxicj5cIikpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnQuYXBwZW5kKCQoXCI8c3Bhbj5cIikuYWRkQ2xhc3MoXCJsaWNlbmNlLXdpZGdldC1kZXRhaWxzXCIpLmFwcGVuZChkZXRhaWxzKSk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChzdGF0dXMgPT09IFwiRVhQSVJFRFwiIHx8IHN0YXR1cyA9PT0gXCJGQUlMRURcIiB8fCBqc29uLnR5cGUgPT09IFwiRlJFRVdBUkVcIiB8fCBqc29uLnR5cGUgPT09IFwiVFJJQUxcIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3Vic2NyaWJlQnV0dG9uID0gJChcIjxidXR0b24vPlwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN1YnNjcmliZUJ1dHRvbi5hdHRyKFwiaWRcIiwgXCJzdWJzY3JpYmUtYnV0dG9uXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3Vic2NyaWJlQnV0dG9uLmF0dHIoXCJjbGFzc1wiLCBcImJ0biBidG4tcHJpbWFyeVwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN1YnNjcmliZUJ1dHRvbi5hdHRyKFwic3R5bGVcIiwgXCJtYXJnaW4tdG9wOiAyMHB4O1wiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN1YnNjcmliZUJ1dHRvbi50ZXh0KFwiU3Vic2NyaWJlXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50LmFwcGVuZChzdWJzY3JpYmVCdXR0b24pO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc2NyaXB0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcInNjcmlwdFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNldCBhdHRyaWJ1dGVzIGZvciB0aGUgc2NyaXB0IGVsZW1lbnRcbiAgICAgICAgICAgICAgICAgICAgICAgIHNjcmlwdC5zcmMgPSBcImh0dHBzOi8vanMuc3RyaXBlLmNvbS92My9wcmljaW5nLXRhYmxlLmpzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICBzY3JpcHQuYXN5bmMgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gQXBwZW5kIHRoZSBzY3JpcHQgZWxlbWVudCB0byB0aGUgaGVhZCAob3IgYm9keSkgb2YgdGhlIGRvY3VtZW50XG4gICAgICAgICAgICAgICAgICAgICAgICAkKFwiaGVhZFwiKS5hcHBlbmQoc2NyaXB0KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cmlwZVByaWNpbmdUYWJsZSA9ICQoXCI8c3RyaXBlLXByaWNpbmctdGFibGUvPlwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNldCBhdHRyaWJ1dGVzIGZvciB0aGUgZWxlbWVudFxuICAgICAgICAgICAgICAgICAgICAgICAgc3RyaXBlUHJpY2luZ1RhYmxlLmF0dHIoXCJwcmljaW5nLXRhYmxlLWlkXCIsIHByaWNpbmdUYWJsZUlkKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0cmlwZVByaWNpbmdUYWJsZS5hdHRyKFwicHVibGlzaGFibGUta2V5XCIsIHB1Ymxpc2hhYmxlS2V5KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0cmlwZVByaWNpbmdUYWJsZS5hdHRyKFwic3R5bGVcIiwgXCJoZWlnaHQ6IDEwMCU7bWF4LWhlaWdodDogMTAwJTtcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdHJpcGVQcmljaW5nVGFibGUuaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50LmFwcGVuZChzdHJpcGVQcmljaW5nVGFibGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3Vic2NyaWJlQnV0dG9uLm9uKFwiY2xpY2tcIiwgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmlwZVByaWNpbmdUYWJsZS5zaG93KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Vic2NyaWJlQnV0dG9uLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnQuYXR0cihcInN0eWxlXCIsIFwiaGVpZ2h0OiAxMDAlICFpbXBvcnRhbnQ7XCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAuY2F0Y2goKGVycikgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhlcnIpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgfSk7XG4gICAgfTtcblxuICAgIGNvbnN0IGluc3RhbGxGZWVkYmFja1dpZGdldCA9ICgpID0+IHtcbiAgICAgICAgZGVidWdnZXI7XG4gICAgICAgIGNvbnN0IHRyYXlDb250ZW50ID0gJChcIi5yZWQtdWktdHJheS1ib2R5XCIpO1xuICAgICAgICBjb25zb2xlLmxvZyhcImluc3RhbGxGZWVkYmFja1dpZGdldCBcIiwgdHJheUNvbnRlbnQubGVuZ3RoKTtcbiAgICAgICAgaWYgKHRyYXlDb250ZW50Lmxlbmd0aCkge1xuICAgICAgICAgICAgY29uc29sZS5sb2coXCJpbnN0YWxsaW5nIGlmcmFtZVwiKTtcbiAgICAgICAgICAgIC8vIENyZWF0ZSB0aGUgaWZyYW1lIGVsZW1lbnRcbiAgICAgICAgICAgIGNvbnN0IGlmcmFtZSA9ICQoXCI8aWZyYW1lPjwvaWZyYW1lPlwiLCB7XG4gICAgICAgICAgICAgICAgc3JjOiBcIi9vcGN1YS1mb3Itbm9kZS1yZWQvc3VwcG9ydC1mcmFtZS5odG1sXCIsXG4gICAgICAgICAgICAgICAgc2Nyb2xsaW5nOiBcIm5vXCIsXG4gICAgICAgICAgICAgICAgc3R5bGU6IFwiYmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtvdmVyZmxvdzpoaWRkZW47Ym9yZGVyOjNweFwiLFxuICAgICAgICAgICAgICAgIGFsbG93dHJhbnNwYXJlbmN5OiBcInRydWVcIixcbiAgICAgICAgICAgICAgICB3aWR0aDogXCIxODBweFwiLFxuICAgICAgICAgICAgICAgIGhlaWdodDogXCIzMHB4XCIsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIC8vIEFwcGVuZCB0aGUgaWZyYW1lIHRvIHRoZSBmZWVkYmFjayBlbGVtZW50XG4gICAgICAgICAgICB0cmF5Q29udGVudC5hcHBlbmQoaWZyYW1lKTtcbiAgICAgICAgICAgIC8vIFBvc2l0aW9uIHRoZSBmZWVkYmFjayBlbGVtZW50IGF0IHRoZSBib3R0b20gcmlnaHQgb2YgdGhlIHRyYXkgY29udGVudFxuICAgICAgICAgICAgaWZyYW1lLmNzcyh7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IFwiYWJzb2x1dGVcIixcbiAgICAgICAgICAgICAgICByaWdodDogXCIyMHB4XCIsXG4gICAgICAgICAgICAgICAgYm90dG9tOiBcIjE2cHhcIixcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfTtcblxuICAgIGRlY2xhcmVMaWNlbmNlV2lkZ2V0KCk7XG4gICAgZnVuY3Rpb24gaXNWYWxpZE9QQ19VQV9VUkkoc3RyKSB7XG4gICAgICAgIGxldCB1cmw7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICB1cmwgPSBuZXcgVVJMKHN0cik7XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKF8pIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdXJsLnByb3RvY29sID09PSBcIm9wYy50Y3A6XCI7XG4gICAgfVxuICAgIGNvbnN0IGRlZmF1bHRTdWJzY3JpcHRpb25QYXJhbWV0ZXJzID0ge1xuICAgICAgICBwdWJsaXNoaW5nRW5hYmxlZDogdHJ1ZSxcbiAgICAgICAgcmVxdWVzdGVkTGlmZXRpbWVDb3VudDogMTAwMCxcbiAgICAgICAgcmVxdWVzdGVkTWF4S2VlcEFsaXZlQ291bnQ6IDEwLCAvLyBldmVyeSAxMCBzZWNvbmRzXG4gICAgICAgIHJlcXVlc3RlZFB1Ymxpc2hpbmdJbnRlcnZhbDogMTAwMCxcbiAgICAgICAgbWF4Tm90aWZpY2F0aW9uc1BlclB1Ymxpc2g6IDAsXG4gICAgICAgIHByaW9yaXR5OiAxMDAsXG4gICAgfTtcbiAgICBSRUQubm9kZXMucmVnaXN0ZXJUeXBlKFwiT3BjVWEtRW5kcG9pbnQyXCIsIHtcbiAgICAgICAgY2F0ZWdvcnk6IFwiY29uZmlnXCIsXG4gICAgICAgIHBhbGV0dGVMYWJlbDogXCJvcGN1YSBlbmRwb2ludFwiLFxuICAgICAgICBkZWZhdWx0czoge1xuICAgICAgICAgICAgbmFtZTogeyB2YWx1ZTogXCJcIiB9LFxuICAgICAgICAgICAgZW5kcG9pbnQ6IHtcbiAgICAgICAgICAgICAgICB2YWx1ZTogXCJvcGMudGNwOi8vb3BjdWFkZW1vLnN0ZXJmaXZlLmNvbToyNjU0My9VQS9TYW1wbGVTZXJ2ZXJcIixcbiAgICAgICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICB2YWxpZGF0ZTogaXNWYWxpZE9QQ19VQV9VUkksXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgLy8gU2VjdXJpdHkgTW9kZVxuICAgICAgICAgICAgc2VjdXJpdHlNb2RlOiB7IHZhbHVlOiBcIk5vbmVcIiB9LFxuICAgICAgICAgICAgc2VjdXJpdHlQb2xpY3k6IHtcbiAgICAgICAgICAgICAgICB2YWx1ZTogXCJOb25lXCIsXG4gICAgICAgICAgICAgICAgdmFsaWRhdGU6ICh2YWx1ZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoIXZhbHVlKVxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHVzZXJJZGVudGl0eVR5cGU6IHsgdmFsdWU6IFwiQW5vbnltb3VzXCIgfSxcbiAgICAgICAgICAgIHBraU5hbWU6IHsgdmFsdWU6IFwiXCIsIHZhbGlkYXRlOiAodmFsdWUpID0+ICghdmFsdWUgfHwgdmFsdWUubWF0Y2goL1swLTlhLXpBLVpdKi8pID8gdHJ1ZSA6IGZhbHNlKSB9LFxuICAgICAgICAgICAgLy8gdG8gdXNlIHdoZW4gdXNlcklkZW50aXR5VHlwZSBpcyBVc2VyTmFtZVxuICAgICAgICAgICAgLy8gY3JlZGVudGlhbHM6IHtcbiAgICAgICAgICAgIC8vICAgICB1c2VyTmFtZTogeyB2YWx1ZTogXCJcIiwgdHlwZTogXCJ0ZXh0XCIgfSxcbiAgICAgICAgICAgIC8vICAgICBwYXNzd29yZDogeyB2YWx1ZTogXCJcIiwgdHlwZTogXCJwYXNzd29yZFwiIH0sXG4gICAgICAgICAgICAvLyAgICAgLy8gdG8gdXNlIHdoZW4gdXNlcklkZW50aXR5VHlwZSBpcyBDZXJ0aWZpY2F0ZVxuICAgICAgICAgICAgLy8gICAgIHVzZXJDZXJ0aWZpY2F0ZTogeyB2YWx1YnJvd3NlUGF0aGU6IFwiXCIsIHR5cGU6IFwidGV4dFwiIH0sXG4gICAgICAgICAgICAvLyAgICAgdXNlclByaXZhdGVrZXk6IHsgdmFsdWU6IFwiXCIgLCB0eXBlOiBcInBhc3N3b3JkXCJ9LFxuICAgICAgICAgICAgLy8gfSBhcyBhbnkgLyogY2lyY3VtdmVudCBhIGJ1ZyBpbiBub2RlLXJlZCAqLyxcbiAgICAgICAgICAgIC8vIHVzZXJuYW1lXG4gICAgICAgICAgICB1c2VUcmFuc3BvcnQ6IHsgdmFsdWU6IGZhbHNlLCByZXF1aXJlZDogZmFsc2UgfSxcbiAgICAgICAgICAgIG1heENodW5rQ291bnQ6IHsgdmFsdWU6IDEsIHJlcXVpcmVkOiBmYWxzZSB9LFxuICAgICAgICAgICAgbWF4TWVzc2FnZVNpemU6IHsgdmFsdWU6IDgxOTIsIHJlcXVpcmVkOiBmYWxzZSB9LCAvLyBzaG91bGQgYmUgYXQgbGVhc3QgODE5MlxuICAgICAgICAgICAgcmVjZWl2ZUJ1ZmZlclNpemU6IHsgdmFsdWU6IDgxOTIsIHJlcXVpcmVkOiBmYWxzZSB9LFxuICAgICAgICAgICAgc2VuZEJ1ZmZlclNpemU6IHsgdmFsdWU6IDgxOTIsIHJlcXVpcmVkOiBmYWxzZSB9LFxuICAgICAgICAgICAgc3Vic2NyaXB0aW9uczoge1xuICAgICAgICAgICAgICAgIHZhbHVlOiBbXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBcInMxXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBcIkRlZmF1bHQgU3Vic2NyaXB0aW9uXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBpc0RlZmF1bHQ6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICBwYXJhbWV0ZXJzOiBPYmplY3QuYXNzaWduKHt9LCBkZWZhdWx0U3Vic2NyaXB0aW9uUGFyYW1ldGVycyksXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBcInMyXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBcIlNsb3cgU3Vic2NyaXB0aW9uXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBpc0RlZmF1bHQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1ldGVyczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1Ymxpc2hpbmdFbmFibGVkOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3RlZExpZmV0aW1lQ291bnQ6IDEwMCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0ZWRNYXhLZWVwQWxpdmVDb3VudDogMywgLy8gZXZlcnkgMTUgc2Vjb25kc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3RlZFB1Ymxpc2hpbmdJbnRlcnZhbDogNTAwMCwgLy9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXhOb3RpZmljYXRpb25zUGVyUHVibGlzaDogMTAwLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW9yaXR5OiAxMCxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBcInMzXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBcIkZhc3QgU3Vic2NyaXB0aW9uXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBpc0RlZmF1bHQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1ldGVyczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1Ymxpc2hpbmdFbmFibGVkOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3RlZExpZmV0aW1lQ291bnQ6IDQwMDAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdGVkTWF4S2VlcEFsaXZlQ291bnQ6IDUwLCAvLyBldmVyeSAxMi41IHNlY29uZHNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0ZWRQdWJsaXNoaW5nSW50ZXJ2YWw6IDI1MCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXhOb3RpZmljYXRpb25zUGVyUHVibGlzaDogMTAwLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW9yaXR5OiAyMDAsXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIG5hbWVzcGFjZUFsaWFzZXM6IHtcbiAgICAgICAgICAgICAgICB2YWx1ZTogW1xuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBhbGlhczogXCJ1YVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZXNwYWNlVXJpOiBcImh0dHA6Ly9vcGNmb3VuZGF0aW9uLm9yZy9VQS9cIixcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzV2VsbEtub3duOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgaXNEZWZhdWx0OiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBhbGlhczogXCJkaVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZXNwYWNlVXJpOiBcImh0dHA6Ly9vcGNmb3VuZGF0aW9uLm9yZy9ESS9cIixcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzV2VsbEtub3duOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgaXNEZWZhdWx0OiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgY3JlZGVudGlhbHM6IHtcbiAgICAgICAgICAgIHVzZXJOYW1lOiB7IHR5cGU6IFwidGV4dFwiIH0sXG4gICAgICAgICAgICBwYXNzd29yZDogeyB0eXBlOiBcInBhc3N3b3JkXCIgfSxcbiAgICAgICAgICAgIHVzZXJDZXJ0aWZpY2F0ZTogeyB0eXBlOiBcInRleHRcIiB9LFxuICAgICAgICAgICAgdXNlclByaXZhdGVrZXk6IHsgdHlwZTogXCJwYXNzd29yZFwiIH0sXG4gICAgICAgIH0sXG4gICAgICAgIGxhYmVsOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5uYW1lIHx8IHRoaXMuZW5kcG9pbnQgfHwgXCJpbnZhbGlkIGVuZHBvaW50XCI7XG4gICAgICAgIH0sXG4gICAgICAgIG9uZWRpdHNhdmUoKSB7XG4gICAgICAgICAgICBjb25zdCBfc2VjdXJpdHlQb2xpY3kgPSAkKFwiI25vZGUtY29uZmlnLWlucHV0LXNlY3VyaXR5UG9saWN5XCIpO1xuICAgICAgICAgICAgY29uc3QgX3NlY3VyaXR5TW9kZSA9ICQoXCIjbm9kZS1jb25maWctaW5wdXQtc2VjdXJpdHlNb2RlXCIpO1xuICAgICAgICAgICAgaWYgKF9zZWN1cml0eVBvbGljeS52YWwoKSA9PT0gXCJOb25lXCIpIHtcbiAgICAgICAgICAgICAgICBfc2VjdXJpdHlNb2RlLnRleHQoXCJOb25lXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gKCgoKCgoKCgoKCByZXRyaWV2ZSBzdWJzY3JpcHRpb24gZGF0YSApKSkpKSkpKSkpXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgY29uc3Qgc3Vic2NyaXB0aW9uSXRlbXMgPSAkKFwiI3N1YnNjcmlwdGlvbnMtY29udGFpbmVyXCIpLmVkaXRhYmxlTGlzdChcIml0ZW1zXCIpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHMgPSBbXTtcbiAgICAgICAgICAgICAgICBjb25zdCBuID0gKHgpID0+IHg7XG4gICAgICAgICAgICAgICAgc3Vic2NyaXB0aW9uSXRlbXMuZWFjaChmdW5jdGlvbiAoaW5kZXgsIGl0ZW0pIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZSA9ICQodGhpcyk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGEgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZDogXCJzXCIgKyBpbmRleCxcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IGUuZmluZChcIi5pbnB1dC1uYW1lXCIpLnZhbCgpLFxuICAgICAgICAgICAgICAgICAgICAgICAgaXNEZWZhdWx0OiAhIWUuZmluZChcIi5pbnB1dC1pc0RlZmF1bHRcIikudmFsKCksXG4gICAgICAgICAgICAgICAgICAgICAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVibGlzaGluZ0VuYWJsZWQ6ICEhZS5maW5kKFwiLmlucHV0LXB1Ymxpc2hpbmdFbmFibGVkXCIpLmlzKFwiOmNoZWNrZWRcIiksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdGVkTGlmZXRpbWVDb3VudDogbihlLmZpbmQoXCIuaW5wdXQtcmVxdWVzdGVkTGlmZXRpbWVDb3VudFwiKS52YWwoKSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdGVkTWF4S2VlcEFsaXZlQ291bnQ6IG4oZS5maW5kKFwiLmlucHV0LXJlcXVlc3RlZE1heEtlZXBBbGl2ZUNvdW50XCIpLnZhbCgpKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0ZWRQdWJsaXNoaW5nSW50ZXJ2YWw6IG4oZS5maW5kKFwiLmlucHV0LXJlcXVlc3RlZFB1Ymxpc2hpbmdJbnRlcnZhbFwiKS52YWwoKSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4Tm90aWZpY2F0aW9uc1BlclB1Ymxpc2g6IG4oZS5maW5kKFwiLmlucHV0LW1heE5vdGlmaWNhdGlvbnNQZXJQdWJsaXNoXCIpLnZhbCgpKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmlvcml0eTogbihlLmZpbmQoXCIuaW5wdXQtcHJpb3JpdHlcIikudmFsKCkpLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgLy8gZm9yY2UgdG8gYmUgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICBhLnBhcmFtZXRlcnMucHVibGlzaGluZ0VuYWJsZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICBpZiAoYS5pc0RlZmF1bHQgJiYgYS5pZCA9PT0gXCJzMFwiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBub3JtYWxpemUgZGVmYXVsdCBzdWJzY3JpcHRpb24gbmFtZVxuICAgICAgICAgICAgICAgICAgICAgICAgYS5uYW1lID0gXCJEZWZhdWx0IFN1YnNjcmlwdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHMucHVzaChhKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbnMgPSBzO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gKCgoKCgoKCgoKCByZXRyaWV2ZSBuYW1lc3BhY2UgYWxpYXMgZGF0YSApKSkpKSkpKSlcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAvLyBhbGlhc2VzXG4gICAgICAgICAgICAgICAgY29uc3QgYWxpYXNJdGVtcyA9ICQoXCIjZWRpdGFibGUtbGlzdC1hbGlhc2VzLWNvbnRhaW5lclwiKS5lZGl0YWJsZUxpc3QoXCJpdGVtc1wiKTtcbiAgICAgICAgICAgICAgICBjb25zdCB0bXAgPSBbXTtcbiAgICAgICAgICAgICAgICBhbGlhc0l0ZW1zLmVhY2goZnVuY3Rpb24gKGluZGV4LCBpdGVtKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGUgPSAkKHRoaXMpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBhID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gaWQ6IFwic1wiICsgaW5kZXgsXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lc3BhY2VVcmk6IGUuZmluZChcIi5ub2RlLWlucHV0LWFsaWFzLW5hbWVzcGFjZS11cmlcIikudmFsKCksXG4gICAgICAgICAgICAgICAgICAgICAgICBhbGlhczogZS5maW5kKFwiLm5vZGUtaW5wdXQtYWxpYXMtYWxpYXNcIikudmFsKCksXG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgIHRtcC5wdXNoKGEpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHRoaXMubmFtZXNwYWNlQWxpYXNlcyA9IHRtcDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgb25lZGl0cHJlcGFyZSgpIHtcbiAgICAgICAgICAgIGNvbnN0IG5vZGUgPSB0aGlzO1xuICAgICAgICAgICAgaW5zdGFsbEZlZWRiYWNrV2lkZ2V0KCk7XG4gICAgICAgICAgICBjb25zdCB0YWJzID0gUkVELnRhYnMuY3JlYXRlKHtcbiAgICAgICAgICAgICAgICBpZDogXCJub2RlLWNvbmZpZy1lbmRwb2ludC10YWJzXCIsXG4gICAgICAgICAgICAgICAgb25jaGFuZ2U6IGZ1bmN0aW9uICh0YWIpIHtcbiAgICAgICAgICAgICAgICAgICAgJChcIiNub2RlLWNvbmZpZy1lbmRwb2ludC10YWJzLWNvbnRlbnRcIikuY2hpbGRyZW4oKS5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgICQoXCIjXCIgKyB0YWIuaWQpLnNob3coKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB0YWJzLmFkZFRhYih7XG4gICAgICAgICAgICAgICAgaWQ6IFwiZW5kcG9pbnQtdGFiLWNvbm5lY3Rpb25cIixcbiAgICAgICAgICAgICAgICBsYWJlbDogXCJDb25uZWN0aW9uXCIsXG4gICAgICAgICAgICB9LCAwKTtcbiAgICAgICAgICAgIHRhYnMuYWRkVGFiKHtcbiAgICAgICAgICAgICAgICBpZDogXCJlbmRwb2ludC10YWItc3Vic2NyaXB0aW9uc1wiLFxuICAgICAgICAgICAgICAgIGxhYmVsOiBcIlN1YnNjcmlwdGlvbnNcIixcbiAgICAgICAgICAgIH0sIDEpO1xuICAgICAgICAgICAgdGFicy5hZGRUYWIoe1xuICAgICAgICAgICAgICAgIGlkOiBcImVuZHBvaW50LXRhYi1uYW1lc3BhY2UtYWxpYXNlc1wiLFxuICAgICAgICAgICAgICAgIGxhYmVsOiBcIk5hbWVzcGFjZSBBbGlhc2VzXCIsXG4gICAgICAgICAgICB9LCAyKTtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHRhYnMucmVzaXplKCk7XG4gICAgICAgICAgICB9LCAwKTtcbiAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICAgICAvLyBoYW5kbGUgU2VjdXJpdHkgY29udHJvbHNcbiAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgY29uc3QgdXBkYXRlU2VjdXJpdHlDb250cm9sID0gKHNlY3VyaXR5TW9kZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKHNlY3VyaXR5TW9kZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBudWxsOlxuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSB1bmRlZmluZWQ6XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIFwiXCI6XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIFwiTm9uZVwiOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoXCIuc2VjdGlvbi1zZWN1cml0eVBvbGljeVwiKS5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIFwiU2lnblwiOlxuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBcIlNpZ25BbmRFbmNyeXB0XCI6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzcCA9ICQoXCIuc2VjdGlvbi1zZWN1cml0eVBvbGljeVwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHNwLnZhbCgpID09PSBcIk5vbmVcIiB8fCBzcC52YWwoKSA9PT0gXCJcIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3AudmFsKFwiQmFzaWMyNTZTaGEyNTZcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJChcIi5zZWN0aW9uLXNlY3VyaXR5UG9saWN5XCIpLnNob3coKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiaW52YWxpZCBzZWN1cml0eU1vZGUgXCIgKyBzZWN1cml0eU1vZGUpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICB1cGRhdGVTZWN1cml0eUNvbnRyb2wobm9kZS5zZWN1cml0eU1vZGUpO1xuICAgICAgICAgICAgICAgIGNvbnN0IF9zZWN1cml0eU1vZGUgPSAkKFwiI25vZGUtY29uZmlnLWlucHV0LXNlY3VyaXR5TW9kZVwiKTtcbiAgICAgICAgICAgICAgICBfc2VjdXJpdHlNb2RlLm9uKFwiY2hhbmdlXCIsICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbmV3U2VjdXJpdHlNb2RlID0gX3NlY3VyaXR5TW9kZS52YWwoKTtcbiAgICAgICAgICAgICAgICAgICAgdXBkYXRlU2VjdXJpdHlDb250cm9sKG5ld1NlY3VyaXR5TW9kZSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBsaWNlbmNlV2lkZ2V0ID0gJChcIiNsaWNlbmNlV2lkZ2V0XCIpO1xuICAgICAgICAgICAgbGljZW5jZVdpZGdldC5saWNlbmNlV2lkZ2V0KHtcbiAgICAgICAgICAgICAgICBiYXNlVXJsOiBcIlwiLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICAgICAgLy8gaGFuZGxlIHRoZSBVc2VyIElkZW50aXR5IENvbnRyb2xzXG4gICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGNvbnN0IGF1dGhSb3cgPSAkKFwiLnNlY3Rpb24tdXNlcklkZW50aXR5VHlwZS1Vc2VyTmFtZVwiKTtcbiAgICAgICAgICAgICAgICBjb25zdCBjZXJ0Um93ID0gJChcIi5zZWN0aW9uLXVzZXJJZGVudGl0eVR5cGUtQ2VydGlmaWNhdGVcIik7XG4gICAgICAgICAgICAgICAgY29uc3QgdXBkYXRlSWRlbnRpdHlDb250cm9scyA9ICh1c2VySWRlbnRpdHlUeXBlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHVzZXJJZGVudGl0eVR5cGUgPSB1c2VySWRlbnRpdHlUeXBlIHx8IFwiQW5vbnltb3VzXCI7XG4gICAgICAgICAgICAgICAgICAgIHN3aXRjaCAodXNlcklkZW50aXR5VHlwZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBcIkFub255bW91c1wiOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoXCIjbm9kZS1jb25maWctaW5wdXQtdXNlck5hbWVcIikudmFsKFwiXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoXCIjbm9kZS1jb25maWctaW5wdXQtcGFzc3dvcmRcIikudmFsKFwiXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhSb3cuaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlcnRSb3cuaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBcIlVzZXJOYW1lXCI6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0aFJvdy5zaG93KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VydFJvdy5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIFwiQ2VydGlmaWNhdGVcIjpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKFwiI25vZGUtY29uZmlnLWlucHV0LXVzZXJOYW1lXCIpLnZhbChcIlwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKFwiI25vZGUtY29uZmlnLWlucHV0LXBhc3N3b3JkXCIpLnZhbChcIlwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZXJ0Um93LnNob3coKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoUm93LmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJpbnZhbGlkIHVzZXJJZGVudGl0eVR5cGUgXCIgKyB1c2VySWRlbnRpdHlUeXBlKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgdXBkYXRlSWRlbnRpdHlDb250cm9scyhub2RlLnVzZXJJZGVudGl0eVR5cGUpO1xuICAgICAgICAgICAgICAgIGNvbnN0IF91c2VySWRlbnRpdHlUeXBlID0gJChcIiNub2RlLWNvbmZpZy1pbnB1dC11c2VySWRlbnRpdHlUeXBlXCIpO1xuICAgICAgICAgICAgICAgIF91c2VySWRlbnRpdHlUeXBlLm9uKFwiY2hhbmdlXCIsICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbmV3SWRlbnRpdHlUeXBlID0gX3VzZXJJZGVudGl0eVR5cGUudmFsKCk7XG4gICAgICAgICAgICAgICAgICAgIHVwZGF0ZUlkZW50aXR5Q29udHJvbHMobmV3SWRlbnRpdHlUeXBlKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICAgICAvLyBoYW5kbGUgYWR2YW5jZWQgY29udHJvbHNcbiAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgJChcIiNzZWN0aW9uLUFkdmFuY2VkXCIpLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAkKFwiI3RvZ2dsZUFkdmFuY2VkU2VjdGlvblwiKS5wcm9wKFwiY2hlY2tlZFwiLCBmYWxzZSk7XG4gICAgICAgICAgICAgICAgJChcIiN0b2dnbGVBZHZhbmNlZFNlY3Rpb25cIikub24oXCJjaGFuZ2VcIiwgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoJCh0aGlzKS5wcm9wKFwiY2hlY2tlZFwiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gSWYgdGhlIGNoZWNrYm94IGlzIGNoZWNrZWQsIHNob3cgdGhlIGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgJChcIiNzZWN0aW9uLUFkdmFuY2VkXCIpLnNob3coKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIE90aGVyd2lzZSwgaGlkZSBpdFxuICAgICAgICAgICAgICAgICAgICAgICAgJChcIiNzZWN0aW9uLUFkdmFuY2VkXCIpLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgdXNlVHJhbnNwb3J0U2V0dGluZyA9ICQoXCIjbm9kZS1jb25maWctaW5wdXQtdXNlVHJhbnNwb3J0XCIpLnByb3AoXCJjaGVja2VkXCIpO1xuICAgICAgICAgICAgaWYgKHVzZVRyYW5zcG9ydFNldHRpbmcpIHtcbiAgICAgICAgICAgICAgICAkKFwiI3NlY3Rpb24tVHJhbnNwb3J0U2V0dGluZ3NcIikuc2hvdygpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgJChcIiNzZWN0aW9uLVRyYW5zcG9ydFNldHRpbmdzXCIpLmhpZGUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICQoXCIjbm9kZS1jb25maWctaW5wdXQtdXNlVHJhbnNwb3J0XCIpLm9uKFwiY2hhbmdlXCIsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICBpZiAoJCh0aGlzKS5wcm9wKFwiY2hlY2tlZFwiKSkge1xuICAgICAgICAgICAgICAgICAgICAvLyBJZiB0aGUgY2hlY2tib3ggaXMgY2hlY2tlZCwgc2hvdyB0aGUgZGl2XG4gICAgICAgICAgICAgICAgICAgICQoXCIjc2VjdGlvbi1UcmFuc3BvcnRTZXR0aW5nc1wiKS5zaG93KCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAvLyBPdGhlcndpc2UsIGhpZGUgaXRcbiAgICAgICAgICAgICAgICAgICAgJChcIiNzZWN0aW9uLVRyYW5zcG9ydFNldHRpbmdzXCIpLmhpZGUoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICAgICAvLyBjaGVja0NlcnRpZmljYXRlXG4gICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICQoXCIjY2hlY2tDZXJ0aWZpY2F0ZVwiKS5vbihcImNsaWNrXCIsICgpID0+IF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IHlpZWxkIGZldGNoKFwiL29wY3VhLWZvci1ub2RlLXJlZC9jbGllbnRfY2VydGlmaWNhdGUuanNvblwiKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgaW5mbyA9IHlpZWxkIGRhdGEuanNvbigpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB0ID0gSlNPTi5zdHJpbmdpZnkoaW5mbywgbnVsbCwgXCIgXCIpO1xuICAgICAgICAgICAgICAgICAgICBhbGVydCh0KTtcbiAgICAgICAgICAgICAgICB9KSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICAgICAgLy8gaGFuZGxlIGNvbmZpZyBidXR0b25cbiAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICAgICAkKFwiI2dvdG8tY29uZmlnXCIpLm9uKFwiY2xpY2tcIiwgKCkgPT4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgICAgIHdpbmRvdy5vcGVuKFwiL29wY3VhLWZvci1ub2RlLXJlZC9jb25maWdcIiwgXCJfYmxhbmtcIik7XG4gICAgICAgICAgICB9KSk7XG4gICAgICAgICAgICBmdW5jdGlvbiBleHRyYWN0RW5kcG9pbnREYXRhKCkge1xuICAgICAgICAgICAgICAgIHZhciBfYTtcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICBpZDogbm9kZS5pZCxcbiAgICAgICAgICAgICAgICAgICAgZW5kcG9pbnQ6ICQoXCIjbm9kZS1jb25maWctaW5wdXQtZW5kcG9pbnRcIikudmFsKCksXG4gICAgICAgICAgICAgICAgICAgIG5hbWU6ICQoXCIjbm9kZS1jb25maWctaW5wdXQtbmFtZVwiKS52YWwoKSxcbiAgICAgICAgICAgICAgICAgICAgcGtpTmFtZTogKF9hID0gJChcIiNub2RlLWNvbmZpZy1pbnB1dC1wa2lOYW1lXCIpKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EudmFsKCksXG4gICAgICAgICAgICAgICAgICAgIHNlY3VyaXR5TW9kZTogJChcIiNub2RlLWNvbmZpZy1pbnB1dC1zZWN1cml0eU1vZGVcIikudmFsKCksXG4gICAgICAgICAgICAgICAgICAgIHNlY3VyaXR5UG9saWN5OiAkKFwiI25vZGUtY29uZmlnLWlucHV0LXNlY3VyaXR5UG9saWN5XCIpLnZhbCgpLFxuICAgICAgICAgICAgICAgICAgICB1c2VySWRlbnRpdHlUeXBlOiAkKFwiI25vZGUtY29uZmlnLWlucHV0LXVzZXJJZGVudGl0eVR5cGVcIikudmFsKCksXG4gICAgICAgICAgICAgICAgICAgIHVzZXJOYW1lOiAkKFwiI25vZGUtY29uZmlnLWlucHV0LXVzZXJOYW1lXCIpLnZhbCgpLFxuICAgICAgICAgICAgICAgICAgICBwYXNzd29yZDogJChcIiNub2RlLWNvbmZpZy1pbnB1dC1wYXNzd29yZFwiKS52YWwoKSxcbiAgICAgICAgICAgICAgICAgICAgdXNlckNlcnRpZmljYXRlOiAkKFwiI25vZGUtY29uZmlnLWlucHV0LXVzZXJDZXJ0aWZpY2F0ZVwiKS52YWwoKSxcbiAgICAgICAgICAgICAgICAgICAgdXNlclByaXZhdGVrZXk6ICQoXCIjbm9kZS1jb25maWctaW5wdXQtdXNlclByaXZhdGVrZXlcIikudmFsKCksXG4gICAgICAgICAgICAgICAgICAgIC8vLyBub3QgdGVzdGVkIHlldCAuLi46XG4gICAgICAgICAgICAgICAgICAgIGNlcnRpZmljYXRlOiAkKFwiI25vZGUtaW5wdXQtY2VydGlmaWNhdGVcIikudmFsKCksXG4gICAgICAgICAgICAgICAgICAgIHVzZVRyYW5zcG9ydDogJChcIiNub2RlLWlucHV0LXVzZVRyYW5zcG9ydFwiKS5wcm9wKFwiY2hlY2tlZFwiKSxcbiAgICAgICAgICAgICAgICAgICAgbWF4Q2h1bmtDb3VudDogJChcIiNub2RlLWlucHV0LW1heENodW5rQ291bnRcIikudmFsKCksXG4gICAgICAgICAgICAgICAgICAgIG1heE1lc3NhZ2VTaXplOiAkKFwiI25vZGUtaW5wdXQtbWF4TWVzc2FnZVNpemVcIikudmFsKCksXG4gICAgICAgICAgICAgICAgICAgIHJlY2VpdmVCdWZmZXJTaXplOiAkKFwiI25vZGUtaW5wdXQtcmVjZWl2ZUJ1ZmZlclNpemVcIikudmFsKCksXG4gICAgICAgICAgICAgICAgICAgIHNlbmRCdWZmZXJTaXplOiAkKFwiI25vZGUtaW5wdXQtc2VuZEJ1ZmZlclNpemVcIikudmFsKCksXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICAgICAvLyBoYW5kbGUgdGhlIFRlc3QgYnV0dG9uXG4gICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIG1hbmFnZUFQSUNhbGwoXCJjb25uZWN0aW9uXCIsICQoXCIjdGVzdC1jb25uZWN0aW9uXCIpLCAoKSA9PiAoe1xuICAgICAgICAgICAgICAgICAgICB1cmw6IFwiL29wY3VhLWZvci1ub2RlLXJlZC90ZXN0LWNvbm5lY3Rpb25cIixcbiAgICAgICAgICAgICAgICAgICAgYm9keToge1xuICAgICAgICAgICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlOiBleHRyYWN0RW5kcG9pbnREYXRhKCksXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSksICgpID0+IHsgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICAgICAgLy8gIEluc3RhbGwgc3Vic2NyaXB0aW9ucyBMaXN0IG1hbmFnZW1lbnRcbiAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVzaXplVG9waWNzID0gKHRvcGljLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB2YXIgbmV3V2lkdGggPSB0b3BpYy53aWR0aCgpIHx8IDEwMDtcbiAgICAgICAgICAgICAgICAgICAgdG9waWMuZmluZChcImxhYmVsXCIpLnR5cGVkSW5wdXQoXCJ3aWR0aFwiLCBuZXdXaWR0aCAtIDE1KTtcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIGNvbnN0IHN1YnNjcmlwdGlvbkxpc3QgPSAkKFwiI3N1YnNjcmlwdGlvbnMtY29udGFpbmVyXCIpXG4gICAgICAgICAgICAgICAgICAgIC5jc3MoeyBcIm1pbi1oZWlnaHRcIjogXCIxNTBweFwiLCBcIm1pbi13aWR0aFwiOiBcIjI2MHB4XCIgfSlcbiAgICAgICAgICAgICAgICAgICAgLmVkaXRhYmxlTGlzdCh7XG4gICAgICAgICAgICAgICAgICAgIGFkZEl0ZW06IChjb250YWluZXIsIGluZGV4LCBkYXRhKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBfZGF0YSA9IGRhdGE7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBlbGVtZW50ID0gJChcIiNzdWJzY3JpcHRpb24tdGVtcGxhdGVcIikuY2xvbmUoKS5hcHBlbmRUbyhjb250YWluZXIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5yZW1vdmVBdHRyKFwiaWRcIikucmVtb3ZlQ2xhc3MoXCJoaWRlXCIpLnJlbW92ZUNsYXNzKFwidGVtcGxhdGVcIikuYXR0cihcImRhdGEtaVwiLCBpbmRleCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmZpbmQoXCIuaW5wdXQtbmFtZVwiKS52YWwoX2RhdGEubmFtZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmZpbmQoXCIuaW5wdXQtcmVxdWVzdGVkUHVibGlzaGluZ0ludGVydmFsXCIpLnZhbChfZGF0YS5wYXJhbWV0ZXJzLnJlcXVlc3RlZFB1Ymxpc2hpbmdJbnRlcnZhbCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmZpbmQoXCIuaW5wdXQtcmVxdWVzdGVkTWF4S2VlcEFsaXZlQ291bnRcIikudmFsKF9kYXRhLnBhcmFtZXRlcnMucmVxdWVzdGVkTWF4S2VlcEFsaXZlQ291bnQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5maW5kKFwiLmlucHV0LXJlcXVlc3RlZExpZmV0aW1lQ291bnRcIikudmFsKF9kYXRhLnBhcmFtZXRlcnMucmVxdWVzdGVkTGlmZXRpbWVDb3VudCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmZpbmQoXCIuaW5wdXQtbWF4Tm90aWZpY2F0aW9uc1BlclB1Ymxpc2hcIikudmFsKF9kYXRhLnBhcmFtZXRlcnMubWF4Tm90aWZpY2F0aW9uc1BlclB1Ymxpc2ggfHwgMCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmZpbmQoXCIuaW5wdXQtcHJpb3JpdHlcIikudmFsKF9kYXRhLnBhcmFtZXRlcnMucHJpb3JpdHkgfHwgMCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmZpbmQoXCIuc3Vic2NyaXB0aW9uLWlkXCIpLnRleHQoXCJcIiArIGluZGV4KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChfZGF0YS5pc0RlZmF1bHQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmZpbmQoXCIuaW5wdXQtbmFtZVwiKS5wcm9wKFwicmVhZG9ubHlcIiwgdHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmZpbmQoXCIuaW5wdXQtaXNEZWZhdWx0XCIpLnByb3AoXCJjaGVja2VkXCIsIF9kYXRhLmlzRGVmYXVsdCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBtYWtlIHN1cmUgdGhhdCBkZWZhdWx0IHN1YnNjcmlwdGlvbiBjYW5ub3QgYmUgYWNjaWRlbnRhbGx5IHJlbW92ZWRcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChfZGF0YS5pc0RlZmF1bHQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250YWluZXIuZmluZChcIi5yZWQtdWktZWRpdGFibGVMaXN0LWl0ZW0tcmVtb3ZlXCIpLmFkZENsYXNzKFwiaGlkZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IGVsZW1lbnQuZmluZChcIi5pbnB1dC1pc0RlZmF1bHRcIikucHJvcChcImRpc2FibGVkXCIsIHRydWUpLCAxMCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIC8vIHNvcnRhYmxlOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICByZW1vdmFibGU6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIHJlc2l6ZUl0ZW06IHJlc2l6ZVRvcGljcyxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBjb25zdCBmaWxsU3Vic2NyaXB0aW9ucyA9ICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3Vic2NyaXB0aW9ucyA9IG5vZGUuc3Vic2NyaXB0aW9ucyB8fCBbXTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHN1YnNjcmlwdGlvbnMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBhZGQgbWlzc2luZyBkZWZhdWx0IHN1YnNjcmlwdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgc3Vic2NyaXB0aW9ucy5wdXNoKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZDogXCJzMVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiRGVmYXVsdCBTdWJzY3JpcHRpb25cIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc0RlZmF1bHQ6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1ldGVyczogT2JqZWN0LmFzc2lnbih7fSwgZGVmYXVsdFN1YnNjcmlwdGlvblBhcmFtZXRlcnMpLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgc3Vic2NyaXB0aW9uTGlzdC5lZGl0YWJsZUxpc3QoXCJlbXB0eVwiKTtcbiAgICAgICAgICAgICAgICAgICAgZm9yIChjb25zdCBzdWJzY3JpcHRpb24gb2Ygc3Vic2NyaXB0aW9ucykge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gc3Vic2NyaXB0aW9uLmlzRGVmYXVsdCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3Vic2NyaXB0aW9uTGlzdC5lZGl0YWJsZUxpc3QoXCJhZGRJdGVtXCIsIHN1YnNjcmlwdGlvbik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIGZpbGxTdWJzY3JpcHRpb25zKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICAgICAgLy8gIEluc3RhbGwgbmFtZXNwYWNlIGFsaWFzIExpc3QgbWFuYWdlbWVudFxuICAgICAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAvLyBkZWJ1Z2dlcjtcbiAgICAgICAgICAgICAgICBmdW5jdGlvbiBhZGRBbGlhc0N0cmwoY29udGFpbmVyLCBpbmRleCwgYXJnKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGRhdGEgPSBhcmc7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJvdyA9ICQoJzxkaXYgY2xhc3M9XCJhbGlhcy1lbnRyeVwiPicpLmFwcGVuZFRvKGNvbnRhaW5lcik7XG4gICAgICAgICAgICAgICAgICAgIC8vIGNvbnRhaW5lci5kYXRhKFwiZGF0YVwiLCBhcmcpO1xuICAgICAgICAgICAgICAgICAgICAkKFwiPGlucHV0Lz5cIiwge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M6IFwibm9kZS1pbnB1dC1hbGlhcy1pbmRleFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJ0ZXh0XCIsXG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICAudmFsKGFyZy5hbGlhcyB8fCBcIlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgLmNzcyh7IHdpZHRoOiBcIjUlXCIgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgIC5hcHBlbmRUbyhyb3cpXG4gICAgICAgICAgICAgICAgICAgICAgICAudmFsKGluZGV4LnRvU3RyaW5nKCkpO1xuICAgICAgICAgICAgICAgICAgICAkKFwiPGlucHV0Lz5cIiwge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M6IFwibm9kZS1pbnB1dC1hbGlhcy1hbGlhc1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJ0ZXh0XCIsXG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICAudmFsKGFyZy5hbGlhcyB8fCBcIlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgLmNzcyh7IHdpZHRoOiBcIjI1JVwiIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICAuYXBwZW5kVG8ocm93KVxuICAgICAgICAgICAgICAgICAgICAgICAgLnZhbChkYXRhLmFsaWFzKTtcbiAgICAgICAgICAgICAgICAgICAgJChcIjxpbnB1dC8+XCIsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzOiBcIm5vZGUtaW5wdXQtYWxpYXMtbmFtZXNwYWNlLXVyaVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJ0ZXh0XCIsXG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICAudmFsKGFyZy5uYW1lc3BhY2VVcmkgfHwgXCJcIilcbiAgICAgICAgICAgICAgICAgICAgICAgIC5jc3MoeyB3aWR0aDogXCI3MCVcIiB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgLmFwcGVuZFRvKHJvdylcbiAgICAgICAgICAgICAgICAgICAgICAgIC52YWwoZGF0YS5uYW1lc3BhY2VVcmkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb25zdCBhbGlhc2VzTGlzdCA9ICQoXCIjZWRpdGFibGUtbGlzdC1hbGlhc2VzLWNvbnRhaW5lclwiKVxuICAgICAgICAgICAgICAgICAgICAuY3NzKHsgXCJtaW4taGVpZ2h0XCI6IFwiMTUwcHhcIiwgXCJtaW4td2lkdGhcIjogXCIyNjBweFwiIH0pXG4gICAgICAgICAgICAgICAgICAgIC5lZGl0YWJsZUxpc3Qoe1xuICAgICAgICAgICAgICAgICAgICBhZGRCdXR0b246IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICByZW1vdmFibGU6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IFwiYXV0b1wiLFxuICAgICAgICAgICAgICAgICAgICBzY3JvbGxPbkFkZDogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIGFkZEl0ZW0oY29udGFpbmVyLCBpLCBpdGVtKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBhZGRBbGlhc0N0cmwoY29udGFpbmVyLCBpLCBpdGVtKTtcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBmdW5jdGlvbiBmaWxsTmFtZXNwYWNlQWxpYXNlcygpIHtcbiAgICAgICAgICAgICAgICAgICAgYWxpYXNlc0xpc3QuZWRpdGFibGVMaXN0KFwiaXRlbXNcIik7XG4gICAgICAgICAgICAgICAgICAgIGFsaWFzZXNMaXN0LmVkaXRhYmxlTGlzdChcImVtcHR5XCIpO1xuICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGFsaWFzIG9mIG5vZGUubmFtZXNwYWNlQWxpYXNlcyB8fCBbXSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYWxpYXNlc0xpc3QuZWRpdGFibGVMaXN0KFwiYWRkSXRlbVwiLCBhbGlhcyk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLy8gQnV0dG9uXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAkKFwiI2V4dHJhY3QtYWxpYXNlc1wiKS5vbihcImNsaWNrXCIsICgpID0+IF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG9wdGlvbnMgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlOiBleHRyYWN0RW5kcG9pbnREYXRhKCksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZXNwYWNlQWxpYXNlczogbm9kZS5uYW1lc3BhY2VBbGlhc2VzIHx8IFtdLFxuICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGRhdGEgPSB5aWVsZCBmZXRjaChcIi9vcGN1YS1mb3Itbm9kZS1yZWQvZXh0cmFjdC1uYW1lc3BhY2UtYWxpYXNlc1wiLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWV0aG9kOiBcIlBPU1RcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiB7IFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkob3B0aW9ucyksXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGluZm8gPSB5aWVsZCBkYXRhLmpzb24oKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG5hbWVzcGFjZUFsaWFzZXMgPSBpbmZvLm5hbWVzcGFjZUFsaWFzZXM7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIm5hbWVzcGFjZUFsaWFzZXNcIiwgbmFtZXNwYWNlQWxpYXNlcyk7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShuYW1lc3BhY2VBbGlhc2VzKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vZGUubmFtZXNwYWNlQWxpYXNlcyA9IG5hbWVzcGFjZUFsaWFzZXM7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbE5hbWVzcGFjZUFsaWFzZXMoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSkpO1xuICAgICAgICAgICAgICAgICAgICBub2RlLm5hbWVzcGFjZUFsaWFzZXMgPSBub2RlLm5hbWVzcGFjZUFsaWFzZXMgfHwgW1xuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsaWFzOiBcInVhXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZXNwYWNlVXJpOiBcImh0dHA6Ly9vcGNmb3VuZGF0aW9uLm9yZy9VQS9cIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc1dlbGxLbm93bjogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc0RlZmF1bHQ6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBdO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBmaWxsTmFtZXNwYWNlQWxpYXNlcygpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgIH0pO1xuXG59KSgpOyJdfQ==
9
9
  </script>
10
10
  <script type="text/x-red" data-template-name="OpcUa-Endpoint2">
11
11
  <div id="licenceWidget"></div>
12
-
13
12
  <div class="form-row">
14
13
  <label for="node-config-input-name"><i class="fa fa-tag"></i>Name</label>
15
14
  <input type="text" id="node-config-input-name" placeholder="enter the friendly name of the connection" />
@@ -26,18 +25,17 @@ function _0x410a(){const _0x3862fa=['style','attr','endpoint-tab-connection','Su
26
25
  <input type="text" id="node-config-input-endpoint" placeholder="opc.tcp://opcuademo.sterfive.com:26543" />
27
26
  </div>
28
27
  <div class="form-row">
29
- <div class="form-tips">
30
- <span
31
- >Tip: ensure that you have deploy your flow at least once with this endpoint connection settingsto take
32
- advantage of OPCUA for NodeRed advanced browse and node selection capability</span
33
- >
28
+ <div class="form-tips" style="width: 100%">
29
+ Tip: ensure that you have deploy your flow at least once with this endpoint connection settings to take advantage of
30
+ OPCUA for NodeRed advanced browse and node selection capability
34
31
  </div>
35
32
  </div>
36
33
  <div class="form-row">
37
34
  <button id="test-connection" class="btn btn-primary" style="margin-left: 10px">
38
35
  <i class="fa fa-flask"></i> Check Connection
39
36
  </button>
40
- &nbsp;<button id="goto-config" class="btn btn-primary" style="margin-left: 10px">
37
+ &nbsp;
38
+ <button id="goto-config" class="btn btn-primary" style="margin-left: 10px">
41
39
  <i class="fa fa-lock"></i> Check Licence
42
40
  </button>
43
41
  &nbsp;
@@ -156,7 +154,6 @@ function _0x410a(){const _0x3862fa=['style','attr','endpoint-tab-connection','Su
156
154
  <label style="width: 35%" for="node-config-input-userCertificate"
157
155
  ><i class="fa fa-certificate"></i> Certificate</label
158
156
  >
159
- <input style="width: 65%" type="text" id="node-config-input-userCertificate" />
160
157
  </div>
161
158
  <div class="form-row">
162
159
  <label style="width: 35%" for="node-config-input-userPrivatekey"><i class="fa fa-key"></i> Private key</label>
@@ -315,20 +312,19 @@ function _0x410a(){const _0x3862fa=['style','attr','endpoint-tab-connection','Su
315
312
  </div>
316
313
  </div>
317
314
  </div>
318
- </div>
319
- <div id="endpoint-tab-subscriptions" style="display: none">
320
- <div class="form-row">
321
- <ol class="DebugMe" id="subscriptions-container"></ol>
315
+ <div id="endpoint-tab-subscriptions" style="display: none">
316
+ <div class="form-row">
317
+ <ol class="DebugMe" id="subscriptions-container"></ol>
318
+ </div>
322
319
  </div>
323
- </div>
324
- <div id="endpoint-tab-namespace-aliases" style="display: none">
325
- <div class="form-row">
326
- <button id="extract-aliases"><i class="fa fa-copy">Extract namespace table</i></button>
327
- <ol id="editable-list-aliases-container"></ol>
320
+ <div id="endpoint-tab-namespace-aliases" style="display: none">
321
+ <div class="form-row">
322
+ <button id="extract-aliases"><i class="fa fa-copy">Extract namespace table</i></button>
323
+ <ol id="editable-list-aliases-container"></ol>
324
+ </div>
328
325
  </div>
329
326
  </div>
330
327
  </div>
331
-
332
328
  <!--
333
329
  the template for the subscription
334
330
  -->