diff --git a/main.js b/main.js index 779a168..e5d86e9 100644 --- a/main.js +++ b/main.js @@ -17274,4 +17274,3 @@ var CodeStylerPlugin = class extends import_obsidian4.Plugin { @simonwep/pickr/dist/pickr.min.js: (*! Pickr 1.8.2 MIT | https://github.com/Simonwep/pickr *) */ -//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsibm9kZV9tb2R1bGVzL0BzaW1vbndlcC9waWNrci9kaXN0L3dlYnBhY2s6L3dlYnBhY2svdW5pdmVyc2FsTW9kdWxlRGVmaW5pdGlvbiIsICJub2RlX21vZHVsZXMvQHNpbW9ud2VwL3BpY2tyL2Rpc3Qvd2VicGFjazovd2VicGFjay9ib290c3RyYXAiLCAibm9kZV9tb2R1bGVzL0BzaW1vbndlcC9waWNrci9kaXN0L3dlYnBhY2s6L3dlYnBhY2svcnVudGltZS9kZWZpbmUgcHJvcGVydHkgZ2V0dGVycyIsICJub2RlX21vZHVsZXMvQHNpbW9ud2VwL3BpY2tyL2Rpc3Qvd2VicGFjazovd2VicGFjay9ydW50aW1lL2hhc093blByb3BlcnR5IHNob3J0aGFuZCIsICJub2RlX21vZHVsZXMvQHNpbW9ud2VwL3BpY2tyL2Rpc3Qvd2VicGFjazovd2VicGFjay9ydW50aW1lL21ha2UgbmFtZXNwYWNlIG9iamVjdCIsICJub2RlX21vZHVsZXMvQHNpbW9ud2VwL3BpY2tyL2Rpc3Qvd2VicGFjazovc3JjL2pzL3V0aWxzL3V0aWxzLmpzIiwgIm5vZGVfbW9kdWxlcy9Ac2ltb253ZXAvcGlja3IvZGlzdC93ZWJwYWNrOi9zcmMvanMvdXRpbHMvY29sb3IuanMiLCAibm9kZV9tb2R1bGVzL0BzaW1vbndlcC9waWNrci9kaXN0L3dlYnBhY2s6L3NyYy9qcy91dGlscy9oc3ZhY29sb3IuanMiLCAibm9kZV9tb2R1bGVzL0BzaW1vbndlcC9waWNrci9kaXN0L3dlYnBhY2s6L3NyYy9qcy9saWJzL21vdmVhYmxlLmpzIiwgIm5vZGVfbW9kdWxlcy9Ac2ltb253ZXAvcGlja3IvZGlzdC93ZWJwYWNrOi9zcmMvanMvbGlicy9zZWxlY3RhYmxlLmpzIiwgIm5vZGVfbW9kdWxlcy9Ac2ltb253ZXAvcGlja3IvZGlzdC93ZWJwYWNrOi9zcmMvanMvdGVtcGxhdGUuanMiLCAibm9kZV9tb2R1bGVzL0BzaW1vbndlcC9waWNrci9kaXN0L3NyYy9OYW5vUG9wLnRzIiwgIm5vZGVfbW9kdWxlcy9Ac2ltb253ZXAvcGlja3IvZGlzdC93ZWJwYWNrOi9zcmMvanMvcGlja3IuanMiLCAic3JjL21haW4udHMiLCAic3JjL1NldHRpbmdzLnRzIiwgInNyYy9TZXR0aW5nc1RhYi50cyIsICJub2RlX21vZHVsZXMvY29sb3J0cmFuc2xhdG9yL2VzbS9pbmRleC5qcyIsICJzcmMvQXBwbHlTdHlsaW5nLnRzIiwgInNyYy9FZGl0aW5nVmlldy50cyIsICJzcmMvQ29kZWJsb2NrUGFyc2luZy50cyIsICJzcmMvQ29kZWJsb2NrRGVjb3JhdGluZy50cyIsICJzcmMvUmVhZGluZ1ZpZXcudHMiLCAibm9kZV9tb2R1bGVzL3VuaXN0LXV0aWwtaXMvbGliL2luZGV4LmpzIiwgIm5vZGVfbW9kdWxlcy91bmlzdC11dGlsLXZpc2l0LXBhcmVudHMvbGliL2NvbG9yLmpzIiwgIm5vZGVfbW9kdWxlcy91bmlzdC11dGlsLXZpc2l0LXBhcmVudHMvbGliL2luZGV4LmpzIiwgIm5vZGVfbW9kdWxlcy9kZXZsb3AvbGliL2RlZmF1bHQuanMiLCAibm9kZV9tb2R1bGVzL3Byb3BlcnR5LWluZm9ybWF0aW9uL2xpYi91dGlsL3NjaGVtYS5qcyIsICJub2RlX21vZHVsZXMvcHJvcGVydHktaW5mb3JtYXRpb24vbGliL3V0aWwvbWVyZ2UuanMiLCAibm9kZV9tb2R1bGVzL3Byb3BlcnR5LWluZm9ybWF0aW9uL2xpYi9ub3JtYWxpemUuanMiLCAibm9kZV9tb2R1bGVzL3Byb3BlcnR5LWluZm9ybWF0aW9uL2xpYi91dGlsL2luZm8uanMiLCAibm9kZV9tb2R1bGVzL3Byb3BlcnR5LWluZm9ybWF0aW9uL2xpYi91dGlsL3R5cGVzLmpzIiwgIm5vZGVfbW9kdWxlcy9wcm9wZXJ0eS1pbmZvcm1hdGlvbi9saWIvdXRpbC9kZWZpbmVkLWluZm8uanMiLCAibm9kZV9tb2R1bGVzL3Byb3BlcnR5LWluZm9ybWF0aW9uL2xpYi91dGlsL2NyZWF0ZS5qcyIsICJub2RlX21vZHVsZXMvcHJvcGVydHktaW5mb3JtYXRpb24vbGliL3hsaW5rLmpzIiwgIm5vZGVfbW9kdWxlcy9wcm9wZXJ0eS1pbmZvcm1hdGlvbi9saWIveG1sLmpzIiwgIm5vZGVfbW9kdWxlcy9wcm9wZXJ0eS1pbmZvcm1hdGlvbi9saWIvdXRpbC9jYXNlLXNlbnNpdGl2ZS10cmFuc2Zvcm0uanMiLCAibm9kZV9tb2R1bGVzL3Byb3BlcnR5LWluZm9ybWF0aW9uL2xpYi91dGlsL2Nhc2UtaW5zZW5zaXRpdmUtdHJhbnNmb3JtLmpzIiwgIm5vZGVfbW9kdWxlcy9wcm9wZXJ0eS1pbmZvcm1hdGlvbi9saWIveG1sbnMuanMiLCAibm9kZV9tb2R1bGVzL3Byb3BlcnR5LWluZm9ybWF0aW9uL2xpYi9hcmlhLmpzIiwgIm5vZGVfbW9kdWxlcy9wcm9wZXJ0eS1pbmZvcm1hdGlvbi9saWIvaHRtbC5qcyIsICJub2RlX21vZHVsZXMvcHJvcGVydHktaW5mb3JtYXRpb24vbGliL3N2Zy5qcyIsICJub2RlX21vZHVsZXMvcHJvcGVydHktaW5mb3JtYXRpb24vbGliL2ZpbmQuanMiLCAibm9kZV9tb2R1bGVzL3Byb3BlcnR5LWluZm9ybWF0aW9uL2luZGV4LmpzIiwgIm5vZGVfbW9kdWxlcy9jb21tYS1zZXBhcmF0ZWQtdG9rZW5zL2luZGV4LmpzIiwgIm5vZGVfbW9kdWxlcy9oYXN0LXV0aWwtcGFyc2Utc2VsZWN0b3IvbGliL2luZGV4LmpzIiwgIm5vZGVfbW9kdWxlcy9zcGFjZS1zZXBhcmF0ZWQtdG9rZW5zL2luZGV4LmpzIiwgIm5vZGVfbW9kdWxlcy9oYXN0c2NyaXB0L2xpYi9jcmVhdGUtaC5qcyIsICJub2RlX21vZHVsZXMvaGFzdHNjcmlwdC9saWIvc3ZnLWNhc2Utc2Vuc2l0aXZlLXRhZy1uYW1lcy5qcyIsICJub2RlX21vZHVsZXMvaGFzdHNjcmlwdC9saWIvaW5kZXguanMiLCAibm9kZV9tb2R1bGVzL2hhc3QtdXRpbC1mcm9tLXBhcnNlNS9ub2RlX21vZHVsZXMvdmZpbGUtbG9jYXRpb24vbGliL2luZGV4LmpzIiwgIm5vZGVfbW9kdWxlcy93ZWItbmFtZXNwYWNlcy9pbmRleC5qcyIsICJub2RlX21vZHVsZXMvaGFzdC11dGlsLWZyb20tcGFyc2U1L2xpYi9pbmRleC5qcyIsICJub2RlX21vZHVsZXMvcGFyc2U1L2Rpc3QvY29tbW9uL3VuaWNvZGUuanMiLCAibm9kZV9tb2R1bGVzL3BhcnNlNS9kaXN0L2NvbW1vbi9lcnJvci1jb2Rlcy5qcyIsICJub2RlX21vZHVsZXMvcGFyc2U1L2Rpc3QvdG9rZW5pemVyL3ByZXByb2Nlc3Nvci5qcyIsICJub2RlX21vZHVsZXMvcGFyc2U1L2Rpc3QvY29tbW9uL3Rva2VuLmpzIiwgIm5vZGVfbW9kdWxlcy9wYXJzZTUvbm9kZV9tb2R1bGVzL2VudGl0aWVzL2xpYi9lc20vZ2VuZXJhdGVkL2dlbmVyYXRlZC9kZWNvZGUtZGF0YS1odG1sLnRzIiwgIm5vZGVfbW9kdWxlcy9wYXJzZTUvbm9kZV9tb2R1bGVzL2VudGl0aWVzL2xpYi9lc20vZ2VuZXJhdGVkL2dlbmVyYXRlZC9kZWNvZGUtZGF0YS14bWwudHMiLCAibm9kZV9tb2R1bGVzL3BhcnNlNS9ub2RlX21vZHVsZXMvZW50aXRpZXMvbGliL2VzbS9kZWNvZGVfY29kZXBvaW50LnRzIiwgIm5vZGVfbW9kdWxlcy9wYXJzZTUvbm9kZV9tb2R1bGVzL2VudGl0aWVzL2xpYi9lc20vZGVjb2RlLnRzIiwgIm5vZGVfbW9kdWxlcy9wYXJzZTUvZGlzdC9jb21tb24vaHRtbC5qcyIsICJub2RlX21vZHVsZXMvcGFyc2U1L2Rpc3QvdG9rZW5pemVyL2luZGV4LmpzIiwgIm5vZGVfbW9kdWxlcy9wYXJzZTUvZGlzdC9wYXJzZXIvb3Blbi1lbGVtZW50LXN0YWNrLmpzIiwgIm5vZGVfbW9kdWxlcy9wYXJzZTUvZGlzdC9wYXJzZXIvZm9ybWF0dGluZy1lbGVtZW50LWxpc3QuanMiLCAibm9kZV9tb2R1bGVzL3BhcnNlNS9kaXN0L3RyZWUtYWRhcHRlcnMvZGVmYXVsdC5qcyIsICJub2RlX21vZHVsZXMvcGFyc2U1L2Rpc3QvY29tbW9uL2RvY3R5cGUuanMiLCAibm9kZV9tb2R1bGVzL3BhcnNlNS9kaXN0L2NvbW1vbi9mb3JlaWduLWNvbnRlbnQuanMiLCAibm9kZV9tb2R1bGVzL3BhcnNlNS9kaXN0L3BhcnNlci9pbmRleC5qcyIsICJub2RlX21vZHVsZXMvcGFyc2U1L25vZGVfbW9kdWxlcy9lbnRpdGllcy9saWIvZXNtL2VzY2FwZS50cyIsICJub2RlX21vZHVsZXMvcGFyc2U1L2Rpc3Qvc2VyaWFsaXplci9pbmRleC5qcyIsICJub2RlX21vZHVsZXMvcGFyc2U1L2Rpc3QvaW5kZXguanMiLCAibm9kZV9tb2R1bGVzL2hhc3QtdXRpbC1mcm9tLWh0bWwvbm9kZV9tb2R1bGVzL3VuaXN0LXV0aWwtc3RyaW5naWZ5LXBvc2l0aW9uL2xpYi9pbmRleC5qcyIsICJub2RlX21vZHVsZXMvaGFzdC11dGlsLWZyb20taHRtbC9ub2RlX21vZHVsZXMvdmZpbGUtbWVzc2FnZS9saWIvaW5kZXguanMiLCAibm9kZV9tb2R1bGVzL2hhc3QtdXRpbC1mcm9tLWh0bWwvbm9kZV9tb2R1bGVzL3ZmaWxlL2xpYi9taW5wYXRoLmJyb3dzZXIuanMiLCAibm9kZV9tb2R1bGVzL2hhc3QtdXRpbC1mcm9tLWh0bWwvbm9kZV9tb2R1bGVzL3ZmaWxlL2xpYi9taW5wcm9jLmJyb3dzZXIuanMiLCAibm9kZV9tb2R1bGVzL2hhc3QtdXRpbC1mcm9tLWh0bWwvbm9kZV9tb2R1bGVzL3ZmaWxlL2xpYi9taW51cmwuc2hhcmVkLmpzIiwgIm5vZGVfbW9kdWxlcy9oYXN0LXV0aWwtZnJvbS1odG1sL25vZGVfbW9kdWxlcy92ZmlsZS9saWIvbWludXJsLmJyb3dzZXIuanMiLCAibm9kZV9tb2R1bGVzL2hhc3QtdXRpbC1mcm9tLWh0bWwvbm9kZV9tb2R1bGVzL3ZmaWxlL2xpYi9pbmRleC5qcyIsICJub2RlX21vZHVsZXMvaGFzdC11dGlsLWZyb20taHRtbC9saWIvZXJyb3JzLmpzIiwgIm5vZGVfbW9kdWxlcy9oYXN0LXV0aWwtZnJvbS1odG1sL2xpYi9pbmRleC5qcyIsICJub2RlX21vZHVsZXMvaHRtbC12b2lkLWVsZW1lbnRzL2luZGV4LmpzIiwgIm5vZGVfbW9kdWxlcy96d2l0Y2gvaW5kZXguanMiLCAibm9kZV9tb2R1bGVzL2hhc3QtdXRpbC10by1odG1sL25vZGVfbW9kdWxlcy9zdHJpbmdpZnktZW50aXRpZXMvbGliL2NvcmUuanMiLCAibm9kZV9tb2R1bGVzL2hhc3QtdXRpbC10by1odG1sL25vZGVfbW9kdWxlcy9zdHJpbmdpZnktZW50aXRpZXMvbGliL3V0aWwvdG8taGV4YWRlY2ltYWwuanMiLCAibm9kZV9tb2R1bGVzL2hhc3QtdXRpbC10by1odG1sL25vZGVfbW9kdWxlcy9zdHJpbmdpZnktZW50aXRpZXMvbGliL3V0aWwvdG8tZGVjaW1hbC5qcyIsICJub2RlX21vZHVsZXMvaGFzdC11dGlsLXRvLWh0bWwvbm9kZV9tb2R1bGVzL2NoYXJhY3Rlci1lbnRpdGllcy1sZWdhY3kvaW5kZXguanMiLCAibm9kZV9tb2R1bGVzL2hhc3QtdXRpbC10by1odG1sL25vZGVfbW9kdWxlcy9jaGFyYWN0ZXItZW50aXRpZXMtaHRtbDQvaW5kZXguanMiLCAibm9kZV9tb2R1bGVzL2hhc3QtdXRpbC10by1odG1sL25vZGVfbW9kdWxlcy9zdHJpbmdpZnktZW50aXRpZXMvbGliL2NvbnN0YW50L2Rhbmdlcm91cy5qcyIsICJub2RlX21vZHVsZXMvaGFzdC11dGlsLXRvLWh0bWwvbm9kZV9tb2R1bGVzL3N0cmluZ2lmeS1lbnRpdGllcy9saWIvdXRpbC90by1uYW1lZC5qcyIsICJub2RlX21vZHVsZXMvaGFzdC11dGlsLXRvLWh0bWwvbm9kZV9tb2R1bGVzL3N0cmluZ2lmeS1lbnRpdGllcy9saWIvdXRpbC9mb3JtYXQtc21hcnQuanMiLCAibm9kZV9tb2R1bGVzL2hhc3QtdXRpbC10by1odG1sL25vZGVfbW9kdWxlcy9zdHJpbmdpZnktZW50aXRpZXMvbGliL2luZGV4LmpzIiwgIm5vZGVfbW9kdWxlcy9oYXN0LXV0aWwtdG8taHRtbC9saWIvaGFuZGxlL2NvbW1lbnQuanMiLCAibm9kZV9tb2R1bGVzL2hhc3QtdXRpbC10by1odG1sL2xpYi9oYW5kbGUvZG9jdHlwZS5qcyIsICJub2RlX21vZHVsZXMvaGFzdC11dGlsLXRvLWh0bWwvbm9kZV9tb2R1bGVzL2Njb3VudC9pbmRleC5qcyIsICJub2RlX21vZHVsZXMvaGFzdC11dGlsLXdoaXRlc3BhY2UvbGliL2luZGV4LmpzIiwgIm5vZGVfbW9kdWxlcy9oYXN0LXV0aWwtdG8taHRtbC9saWIvb21pc3Npb24vdXRpbC9zaWJsaW5ncy5qcyIsICJub2RlX21vZHVsZXMvaGFzdC11dGlsLXRvLWh0bWwvbGliL29taXNzaW9uL29taXNzaW9uLmpzIiwgIm5vZGVfbW9kdWxlcy9oYXN0LXV0aWwtdG8taHRtbC9saWIvb21pc3Npb24vY2xvc2luZy5qcyIsICJub2RlX21vZHVsZXMvaGFzdC11dGlsLXRvLWh0bWwvbGliL29taXNzaW9uL29wZW5pbmcuanMiLCAibm9kZV9tb2R1bGVzL2hhc3QtdXRpbC10by1odG1sL2xpYi9oYW5kbGUvZWxlbWVudC5qcyIsICJub2RlX21vZHVsZXMvaGFzdC11dGlsLXRvLWh0bWwvbGliL2hhbmRsZS90ZXh0LmpzIiwgIm5vZGVfbW9kdWxlcy9oYXN0LXV0aWwtdG8taHRtbC9saWIvaGFuZGxlL3Jhdy5qcyIsICJub2RlX21vZHVsZXMvaGFzdC11dGlsLXRvLWh0bWwvbGliL2hhbmRsZS9yb290LmpzIiwgIm5vZGVfbW9kdWxlcy9oYXN0LXV0aWwtdG8taHRtbC9saWIvaGFuZGxlL2luZGV4LmpzIiwgIm5vZGVfbW9kdWxlcy9oYXN0LXV0aWwtdG8taHRtbC9saWIvaW5kZXguanMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIihmdW5jdGlvbiB3ZWJwYWNrVW5pdmVyc2FsTW9kdWxlRGVmaW5pdGlvbihyb290LCBmYWN0b3J5KSB7XG5cdGlmKHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlID09PSAnb2JqZWN0Jylcblx0XHRtb2R1bGUuZXhwb3J0cyA9IGZhY3RvcnkoKTtcblx0ZWxzZSBpZih0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQpXG5cdFx0ZGVmaW5lKFtdLCBmYWN0b3J5KTtcblx0ZWxzZSBpZih0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcpXG5cdFx0ZXhwb3J0c1tcIlBpY2tyXCJdID0gZmFjdG9yeSgpO1xuXHRlbHNlXG5cdFx0cm9vdFtcIlBpY2tyXCJdID0gZmFjdG9yeSgpO1xufSkoc2VsZiwgZnVuY3Rpb24oKSB7XG5yZXR1cm4gIiwgIi8vIFRoZSByZXF1aXJlIHNjb3BlXG52YXIgX193ZWJwYWNrX3JlcXVpcmVfXyA9IHt9O1xuXG4iLCAiLy8gZGVmaW5lIGdldHRlciBmdW5jdGlvbnMgZm9yIGhhcm1vbnkgZXhwb3J0c1xuX193ZWJwYWNrX3JlcXVpcmVfXy5kID0gKGV4cG9ydHMsIGRlZmluaXRpb24pID0+IHtcblx0Zm9yKHZhciBrZXkgaW4gZGVmaW5pdGlvbikge1xuXHRcdGlmKF9fd2VicGFja19yZXF1aXJlX18ubyhkZWZpbml0aW9uLCBrZXkpICYmICFfX3dlYnBhY2tfcmVxdWlyZV9fLm8oZXhwb3J0cywga2V5KSkge1xuXHRcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIGtleSwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGRlZmluaXRpb25ba2V5XSB9KTtcblx0XHR9XG5cdH1cbn07IiwgIl9fd2VicGFja19yZXF1aXJlX18ubyA9IChvYmosIHByb3ApID0+IChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqLCBwcm9wKSkiLCAiLy8gZGVmaW5lIF9fZXNNb2R1bGUgb24gZXhwb3J0c1xuX193ZWJwYWNrX3JlcXVpcmVfXy5yID0gKGV4cG9ydHMpID0+IHtcblx0aWYodHlwZW9mIFN5bWJvbCAhPT0gJ3VuZGVmaW5lZCcgJiYgU3ltYm9sLnRvU3RyaW5nVGFnKSB7XG5cdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFN5bWJvbC50b1N0cmluZ1RhZywgeyB2YWx1ZTogJ01vZHVsZScgfSk7XG5cdH1cblx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsICdfX2VzTW9kdWxlJywgeyB2YWx1ZTogdHJ1ZSB9KTtcbn07IiwgIi8qIGVzbGludC1kaXNhYmxlIHByZWZlci1yZXN0LXBhcmFtcyAqL1xyXG5mdW5jdGlvbiBldmVudExpc3RlbmVyKG1ldGhvZCwgZWxlbWVudHMsIGV2ZW50cywgZm4sIG9wdGlvbnMgPSB7fSkge1xyXG5cclxuICAgIC8vIE5vcm1hbGl6ZSBhcnJheVxyXG4gICAgaWYgKGVsZW1lbnRzIGluc3RhbmNlb2YgSFRNTENvbGxlY3Rpb24gfHwgZWxlbWVudHMgaW5zdGFuY2VvZiBOb2RlTGlzdCkge1xyXG4gICAgICAgIGVsZW1lbnRzID0gQXJyYXkuZnJvbShlbGVtZW50cyk7XHJcbiAgICB9IGVsc2UgaWYgKCFBcnJheS5pc0FycmF5KGVsZW1lbnRzKSkge1xyXG4gICAgICAgIGVsZW1lbnRzID0gW2VsZW1lbnRzXTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkoZXZlbnRzKSkge1xyXG4gICAgICAgIGV2ZW50cyA9IFtldmVudHNdO1xyXG4gICAgfVxyXG5cclxuICAgIGZvciAoY29uc3QgZWwgb2YgZWxlbWVudHMpIHtcclxuICAgICAgICBmb3IgKGNvbnN0IGV2IG9mIGV2ZW50cykge1xyXG4gICAgICAgICAgICBlbFttZXRob2RdKGV2LCBmbiwge2NhcHR1cmU6IGZhbHNlLCAuLi5vcHRpb25zfSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsIDEpO1xyXG59XHJcblxyXG4vKipcclxuICogQWRkIGV2ZW50KHMpIHRvIGVsZW1lbnQocykuXHJcbiAqIEBwYXJhbSBlbGVtZW50cyBET00tRWxlbWVudHNcclxuICogQHBhcmFtIGV2ZW50cyBFdmVudCBuYW1lc1xyXG4gKiBAcGFyYW0gZm4gQ2FsbGJhY2tcclxuICogQHBhcmFtIG9wdGlvbnMgT3B0aW9uYWwgb3B0aW9uc1xyXG4gKiBAcmV0dXJuIEFycmF5IHBhc3NlZCBhcmd1bWVudHNcclxuICovXHJcbmV4cG9ydCBjb25zdCBvbiA9IGV2ZW50TGlzdGVuZXIuYmluZChudWxsLCAnYWRkRXZlbnRMaXN0ZW5lcicpO1xyXG5cclxuLyoqXHJcbiAqIFJlbW92ZSBldmVudChzKSBmcm9tIGVsZW1lbnQocykuXHJcbiAqIEBwYXJhbSBlbGVtZW50cyBET00tRWxlbWVudHNcclxuICogQHBhcmFtIGV2ZW50cyBFdmVudCBuYW1lc1xyXG4gKiBAcGFyYW0gZm4gQ2FsbGJhY2tcclxuICogQHBhcmFtIG9wdGlvbnMgT3B0aW9uYWwgb3B0aW9uc1xyXG4gKiBAcmV0dXJuIEFycmF5IHBhc3NlZCBhcmd1bWVudHNcclxuICovXHJcbmV4cG9ydCBjb25zdCBvZmYgPSBldmVudExpc3RlbmVyLmJpbmQobnVsbCwgJ3JlbW92ZUV2ZW50TGlzdGVuZXInKTtcclxuXHJcbi8qKlxyXG4gKiBDcmVhdGVzIGFuIERPTS1FbGVtZW50IG91dCBvZiBhIHN0cmluZyAoU2luZ2xlIGVsZW1lbnQpLlxyXG4gKiBAcGFyYW0gaHRtbCBIVE1MIHJlcHJlc2VudGluZyBhIHNpbmdsZSBlbGVtZW50XHJcbiAqIEByZXR1cm5zIHtFbGVtZW50IHwgbnVsbH0gVGhlIGVsZW1lbnQuXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlRWxlbWVudEZyb21TdHJpbmcoaHRtbCkge1xyXG4gICAgY29uc3QgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XHJcbiAgICBkaXYuaW5uZXJIVE1MID0gaHRtbC50cmltKCk7XHJcbiAgICByZXR1cm4gZGl2LmZpcnN0RWxlbWVudENoaWxkO1xyXG59XHJcblxyXG4vKipcclxuICogQ3JlYXRlcyBhIG5ldyBodG1sIGVsZW1lbnQsIGV2ZXJ5IGVsZW1lbnQgd2hpY2ggaGFzXHJcbiAqIGEgJzpyZWYnIGF0dHJpYnV0ZSB3aWxsIGJlIHNhdmVkIGluIGEgb2JqZWN0ICh3aGljaCB3aWxsIGJlIHJldHVybmVkKVxyXG4gKiB3aGVyZSB0aGUgdmFsdWUgb2YgJzpyZWYnIGlzIHRoZSBvYmplY3Qta2V5IGFuZCB0aGUgdmFsdWUgdGhlIEhUTUxFbGVtZW50LlxyXG4gKlxyXG4gKiBJdCdzIHBvc3NpYmxlIHRvIGNyZWF0ZSBhIGhpZXJhcmNoeSBpZiB5b3UgYWRkIGEgJzpvYmonIGF0dHJpYnV0ZS4gRXZlcnlcclxuICogc2libGluZyB3aWxsIGJlIGFkZGVkIHRvIHRoZSBvYmplY3Qgd2hpY2ggd2lsbCBnZXQgdGhlIG5hbWUgZnJvbSB0aGUgJ2RhdGEtY29uJyBhdHRyaWJ1dGUuXHJcbiAqXHJcbiAqIElmIHlvdSB3YW50IHRvIGNyZWF0ZSBhbiBBcnJheSBvdXQgb2YgbXVsdGlwbGUgZWxlbWVudHMsIHlvdSBjYW4gdXNlIHRoZSAnOmFycicgYXR0cmlidXRlLFxyXG4gKiB0aGUgdmFsdWUgZGVmaW5lcyB0aGUga2V5IGFuZCBhbGwgZWxlbWVudHMsIHdoaWNoIGhhcyB0aGUgc2FtZSBwYXJlbnQgYW5kIHRoZSBzYW1lICdkYXRhLWFycicgYXR0cmlidXRlLFxyXG4gKiB3b3VsZCBiZSBhZGRlZCB0byBpdC5cclxuICpcclxuICogQHBhcmFtIHN0ciAtIFRoZSBIVE1MIFN0cmluZy5cclxuICovXHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlRnJvbVRlbXBsYXRlKHN0cikge1xyXG5cclxuICAgIC8vIFJlbW92ZXMgYW4gYXR0cmlidXRlIGZyb20gYSBIVE1MRWxlbWVudCBhbmQgcmV0dXJucyB0aGUgdmFsdWUuXHJcbiAgICBjb25zdCByZW1vdmVBdHRyaWJ1dGUgPSAoZWwsIG5hbWUpID0+IHtcclxuICAgICAgICBjb25zdCB2YWx1ZSA9IGVsLmdldEF0dHJpYnV0ZShuYW1lKTtcclxuICAgICAgICBlbC5yZW1vdmVBdHRyaWJ1dGUobmFtZSk7XHJcbiAgICAgICAgcmV0dXJuIHZhbHVlO1xyXG4gICAgfTtcclxuXHJcbiAgICAvLyBSZWN1cnNpdmUgZnVuY3Rpb24gdG8gcmVzb2x2ZSB0ZW1wbGF0ZVxyXG4gICAgY29uc3QgcmVzb2x2ZSA9IChlbGVtZW50LCBiYXNlID0ge30pID0+IHtcclxuXHJcbiAgICAgICAgLy8gQ2hlY2sga2V5IGFuZCBjb250YWluZXIgYXR0cmlidXRlXHJcbiAgICAgICAgY29uc3QgY29uID0gcmVtb3ZlQXR0cmlidXRlKGVsZW1lbnQsICc6b2JqJyk7XHJcbiAgICAgICAgY29uc3Qga2V5ID0gcmVtb3ZlQXR0cmlidXRlKGVsZW1lbnQsICc6cmVmJyk7XHJcbiAgICAgICAgY29uc3Qgc3VidHJlZSA9IGNvbiA/IChiYXNlW2Nvbl0gPSB7fSkgOiBiYXNlO1xyXG5cclxuICAgICAgICAvLyBDaGVjayBhbmQgc2F2ZSBlbGVtZW50XHJcbiAgICAgICAga2V5ICYmIChiYXNlW2tleV0gPSBlbGVtZW50KTtcclxuICAgICAgICBmb3IgKGNvbnN0IGNoaWxkIG9mIEFycmF5LmZyb20oZWxlbWVudC5jaGlsZHJlbikpIHtcclxuICAgICAgICAgICAgY29uc3QgYXJyID0gcmVtb3ZlQXR0cmlidXRlKGNoaWxkLCAnOmFycicpO1xyXG4gICAgICAgICAgICBjb25zdCBzdWIgPSByZXNvbHZlKGNoaWxkLCBhcnIgPyB7fSA6IHN1YnRyZWUpO1xyXG5cclxuICAgICAgICAgICAgaWYgKGFycikge1xyXG5cclxuICAgICAgICAgICAgICAgIC8vIENoZWNrIGlmIHRoZXJlIGlzIGFscmVhZHkgYW4gYXJyYXkgYW5kIGFkZCBlbGVtZW50XHJcbiAgICAgICAgICAgICAgICAoc3VidHJlZVthcnJdIHx8IChzdWJ0cmVlW2Fycl0gPSBbXSkpXHJcbiAgICAgICAgICAgICAgICAgICAgLnB1c2goT2JqZWN0LmtleXMoc3ViKS5sZW5ndGggPyBzdWIgOiBjaGlsZCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBiYXNlO1xyXG4gICAgfTtcclxuXHJcbiAgICByZXR1cm4gcmVzb2x2ZShjcmVhdGVFbGVtZW50RnJvbVN0cmluZyhzdHIpKTtcclxufVxyXG5cclxuLyoqXHJcbiAqIFBvbHlmaWxsIGZvciBzYWZhcmkgJiBmaXJlZm94IGZvciB0aGUgZXZlbnRQYXRoIGV2ZW50IHByb3BlcnR5LlxyXG4gKiBAcGFyYW0gZXZ0IFRoZSBldmVudCBvYmplY3QuXHJcbiAqIEByZXR1cm4gW1N0cmluZ10gZXZlbnQgcGF0aC5cclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBldmVudFBhdGgoZXZ0KSB7XHJcbiAgICBsZXQgcGF0aCA9IGV2dC5wYXRoIHx8IChldnQuY29tcG9zZWRQYXRoICYmIGV2dC5jb21wb3NlZFBhdGgoKSk7XHJcbiAgICBpZiAocGF0aCkge1xyXG4gICAgICAgIHJldHVybiBwYXRoO1xyXG4gICAgfVxyXG5cclxuICAgIGxldCBlbCA9IGV2dC50YXJnZXQucGFyZW50RWxlbWVudDtcclxuICAgIHBhdGggPSBbZXZ0LnRhcmdldCwgZWxdO1xyXG4gICAgd2hpbGUgKGVsID0gZWwucGFyZW50RWxlbWVudCkge1xyXG4gICAgICAgIHBhdGgucHVzaChlbCk7XHJcbiAgICB9XHJcblxyXG4gICAgcGF0aC5wdXNoKGRvY3VtZW50LCB3aW5kb3cpO1xyXG4gICAgcmV0dXJuIHBhdGg7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBSZXNvbHZlcyBhIEhUTUxFbGVtZW50IGJ5IHF1ZXJ5LlxyXG4gKiBAcGFyYW0gdmFsXHJcbiAqIEByZXR1cm5zIHtudWxsfERvY3VtZW50fEVsZW1lbnR9XHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZUVsZW1lbnQodmFsKSB7XHJcbiAgICBpZiAodmFsIGluc3RhbmNlb2YgRWxlbWVudCkge1xyXG4gICAgICAgIHJldHVybiB2YWw7XHJcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiB2YWwgPT09ICdzdHJpbmcnKSB7XHJcbiAgICAgICAgcmV0dXJuIHZhbC5zcGxpdCgvPj4vZykucmVkdWNlKChwdiwgY3YsIGNpLCBhKSA9PiB7XHJcbiAgICAgICAgICAgIHB2ID0gcHYucXVlcnlTZWxlY3Rvcihjdik7XHJcbiAgICAgICAgICAgIHJldHVybiBjaSA8IGEubGVuZ3RoIC0gMSA/IHB2LnNoYWRvd1Jvb3QgOiBwdjtcclxuICAgICAgICB9LCBkb2N1bWVudCk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIG51bGw7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBDcmVhdGVzIHRoZSBhYmlsaXR5IHRvIGNoYW5nZSBudW1iZXJzIGluIGFuIGlucHV0IGZpZWxkIHdpdGggdGhlIHNjcm9sbC13aGVlbC5cclxuICogQHBhcmFtIGVsXHJcbiAqIEBwYXJhbSBtYXBwZXJcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBhZGp1c3RhYmxlSW5wdXROdW1iZXJzKGVsLCBtYXBwZXIgPSB2ID0+IHYpIHtcclxuXHJcbiAgICBmdW5jdGlvbiBoYW5kbGVTY3JvbGwoZSkge1xyXG4gICAgICAgIGNvbnN0IGluYyA9IChbMC4wMDEsIDAuMDEsIDAuMV0pW051bWJlcihlLnNoaWZ0S2V5IHx8IGUuY3RybEtleSAqIDIpXSAqIChlLmRlbHRhWSA8IDAgPyAxIDogLTEpO1xyXG5cclxuICAgICAgICBsZXQgaW5kZXggPSAwO1xyXG4gICAgICAgIGxldCBvZmYgPSBlbC5zZWxlY3Rpb25TdGFydDtcclxuICAgICAgICBlbC52YWx1ZSA9IGVsLnZhbHVlLnJlcGxhY2UoL1tcXGQuXSsvZywgKHYsIGkpID0+IHtcclxuXHJcbiAgICAgICAgICAgIC8vIENoZWNrIGlmIG51bWJlciBpcyBpbiBjdXJzb3IgcmFuZ2UgYW5kIGluY3JlYXNlIGl0XHJcbiAgICAgICAgICAgIGlmIChpIDw9IG9mZiAmJiBpICsgdi5sZW5ndGggPj0gb2ZmKSB7XHJcbiAgICAgICAgICAgICAgICBvZmYgPSBpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIG1hcHBlcihOdW1iZXIodiksIGluYywgaW5kZXgpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpbmRleCsrO1xyXG4gICAgICAgICAgICByZXR1cm4gdjtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgZWwuZm9jdXMoKTtcclxuICAgICAgICBlbC5zZXRTZWxlY3Rpb25SYW5nZShvZmYsIG9mZik7XHJcblxyXG4gICAgICAgIC8vIFByZXZlbnQgZGVmYXVsdCBhbmQgdHJpZ2dlciBpbnB1dCBldmVudFxyXG4gICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICBlbC5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgnaW5wdXQnKSk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gQmluZCBldmVudHNcclxuICAgIG9uKGVsLCAnZm9jdXMnLCAoKSA9PiBvbih3aW5kb3csICd3aGVlbCcsIGhhbmRsZVNjcm9sbCwge3Bhc3NpdmU6IGZhbHNlfSkpO1xyXG4gICAgb24oZWwsICdibHVyJywgKCkgPT4gb2ZmKHdpbmRvdywgJ3doZWVsJywgaGFuZGxlU2Nyb2xsKSk7XHJcbn1cclxuIiwgIi8vIFNob3J0aGFuZHNcclxuY29uc3Qge21pbiwgbWF4LCBmbG9vciwgcm91bmR9ID0gTWF0aDtcclxuXHJcbi8qKlxyXG4gKiBUcmllcyB0byBjb252ZXJ0IGEgY29sb3IgbmFtZSB0byByZ2IvYSBoZXggcmVwcmVzZW50YXRpb25cclxuICogQHBhcmFtIG5hbWVcclxuICogQHJldHVybnMge3N0cmluZyB8IENhbnZhc0dyYWRpZW50IHwgQ2FudmFzUGF0dGVybn1cclxuICovXHJcbmZ1bmN0aW9uIHN0YW5kYXJkaXplQ29sb3IobmFtZSkge1xyXG5cclxuICAgIC8vIFNpbmNlIGludmFsaWQgY29sb3IncyB3aWxsIGJlIHBhcnNlZCBhcyBibGFjaywgZmlsdGVyIHRoZW0gb3V0XHJcbiAgICBpZiAobmFtZS50b0xvd2VyQ2FzZSgpID09PSAnYmxhY2snKSB7XHJcbiAgICAgICAgcmV0dXJuICcjMDAwJztcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBjdHggPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdjYW52YXMnKS5nZXRDb250ZXh0KCcyZCcpO1xyXG4gICAgY3R4LmZpbGxTdHlsZSA9IG5hbWU7XHJcbiAgICByZXR1cm4gY3R4LmZpbGxTdHlsZSA9PT0gJyMwMDAnID8gbnVsbCA6IGN0eC5maWxsU3R5bGU7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBDb252ZXJ0IEhTViBzcGVjdHJ1bSB0byBSR0IuXHJcbiAqIEBwYXJhbSBoIEh1ZVxyXG4gKiBAcGFyYW0gcyBTYXR1cmF0aW9uXHJcbiAqIEBwYXJhbSB2IFZhbHVlXHJcbiAqIEByZXR1cm5zIHtudW1iZXJbXX0gQXJyYXkgd2l0aCByZ2IgdmFsdWVzLlxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGhzdlRvUmdiKGgsIHMsIHYpIHtcclxuICAgIGggPSAoaCAvIDM2MCkgKiA2O1xyXG4gICAgcyAvPSAxMDA7XHJcbiAgICB2IC89IDEwMDtcclxuXHJcbiAgICBjb25zdCBpID0gZmxvb3IoaCk7XHJcblxyXG4gICAgY29uc3QgZiA9IGggLSBpO1xyXG4gICAgY29uc3QgcCA9IHYgKiAoMSAtIHMpO1xyXG4gICAgY29uc3QgcSA9IHYgKiAoMSAtIGYgKiBzKTtcclxuICAgIGNvbnN0IHQgPSB2ICogKDEgLSAoMSAtIGYpICogcyk7XHJcblxyXG4gICAgY29uc3QgbW9kID0gaSAlIDY7XHJcbiAgICBjb25zdCByID0gW3YsIHEsIHAsIHAsIHQsIHZdW21vZF07XHJcbiAgICBjb25zdCBnID0gW3QsIHYsIHYsIHEsIHAsIHBdW21vZF07XHJcbiAgICBjb25zdCBiID0gW3AsIHAsIHQsIHYsIHYsIHFdW21vZF07XHJcblxyXG4gICAgcmV0dXJuIFtcclxuICAgICAgICByICogMjU1LFxyXG4gICAgICAgIGcgKiAyNTUsXHJcbiAgICAgICAgYiAqIDI1NVxyXG4gICAgXTtcclxufVxyXG5cclxuLyoqXHJcbiAqIENvbnZlcnQgSFNWIHNwZWN0cnVtIHRvIEhleC5cclxuICogQHBhcmFtIGggSHVlXHJcbiAqIEBwYXJhbSBzIFNhdHVyYXRpb25cclxuICogQHBhcmFtIHYgVmFsdWVcclxuICogQHJldHVybnMge3N0cmluZ1tdfSBIZXggdmFsdWVzXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gaHN2VG9IZXgoaCwgcywgdikge1xyXG4gICAgcmV0dXJuIGhzdlRvUmdiKGgsIHMsIHYpLm1hcCh2ID0+XHJcbiAgICAgICAgcm91bmQodikudG9TdHJpbmcoMTYpLnBhZFN0YXJ0KDIsICcwJylcclxuICAgICk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBDb252ZXJ0IEhTViBzcGVjdHJ1bSB0byBDTVlLLlxyXG4gKiBAcGFyYW0gaCBIdWVcclxuICogQHBhcmFtIHMgU2F0dXJhdGlvblxyXG4gKiBAcGFyYW0gdiBWYWx1ZVxyXG4gKiBAcmV0dXJucyB7bnVtYmVyW119IENNWUsgdmFsdWVzXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gaHN2VG9DbXlrKGgsIHMsIHYpIHtcclxuICAgIGNvbnN0IHJnYiA9IGhzdlRvUmdiKGgsIHMsIHYpO1xyXG4gICAgY29uc3QgciA9IHJnYlswXSAvIDI1NTtcclxuICAgIGNvbnN0IGcgPSByZ2JbMV0gLyAyNTU7XHJcbiAgICBjb25zdCBiID0gcmdiWzJdIC8gMjU1O1xyXG5cclxuICAgIGNvbnN0IGsgPSBtaW4oMSAtIHIsIDEgLSBnLCAxIC0gYik7XHJcbiAgICBjb25zdCBjID0gayA9PT0gMSA/IDAgOiAoMSAtIHIgLSBrKSAvICgxIC0gayk7XHJcbiAgICBjb25zdCBtID0gayA9PT0gMSA/IDAgOiAoMSAtIGcgLSBrKSAvICgxIC0gayk7XHJcbiAgICBjb25zdCB5ID0gayA9PT0gMSA/IDAgOiAoMSAtIGIgLSBrKSAvICgxIC0gayk7XHJcblxyXG4gICAgcmV0dXJuIFtcclxuICAgICAgICBjICogMTAwLFxyXG4gICAgICAgIG0gKiAxMDAsXHJcbiAgICAgICAgeSAqIDEwMCxcclxuICAgICAgICBrICogMTAwXHJcbiAgICBdO1xyXG59XHJcblxyXG4vKipcclxuICogQ29udmVydCBIU1Ygc3BlY3RydW0gdG8gSFNMLlxyXG4gKiBAcGFyYW0gaCBIdWVcclxuICogQHBhcmFtIHMgU2F0dXJhdGlvblxyXG4gKiBAcGFyYW0gdiBWYWx1ZVxyXG4gKiBAcmV0dXJucyB7bnVtYmVyW119IEhTTCB2YWx1ZXNcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBoc3ZUb0hzbChoLCBzLCB2KSB7XHJcbiAgICBzIC89IDEwMDtcclxuICAgIHYgLz0gMTAwO1xyXG5cclxuICAgIGNvbnN0IGwgPSAoMiAtIHMpICogdiAvIDI7XHJcblxyXG4gICAgaWYgKGwgIT09IDApIHtcclxuICAgICAgICBpZiAobCA9PT0gMSkge1xyXG4gICAgICAgICAgICBzID0gMDtcclxuICAgICAgICB9IGVsc2UgaWYgKGwgPCAwLjUpIHtcclxuICAgICAgICAgICAgcyA9IHMgKiB2IC8gKGwgKiAyKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBzID0gcyAqIHYgLyAoMiAtIGwgKiAyKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIFtcclxuICAgICAgICBoLFxyXG4gICAgICAgIHMgKiAxMDAsXHJcbiAgICAgICAgbCAqIDEwMFxyXG4gICAgXTtcclxufVxyXG5cclxuLyoqXHJcbiAqIENvbnZlcnQgUkdCIHRvIEhTVi5cclxuICogQHBhcmFtIHIgUmVkXHJcbiAqIEBwYXJhbSBnIEdyZWVuXHJcbiAqIEBwYXJhbSBiIEJsdWVcclxuICogQHJldHVybiB7bnVtYmVyW119IEhTViB2YWx1ZXMuXHJcbiAqL1xyXG5mdW5jdGlvbiByZ2JUb0hzdihyLCBnLCBiKSB7XHJcbiAgICByIC89IDI1NTtcclxuICAgIGcgLz0gMjU1O1xyXG4gICAgYiAvPSAyNTU7XHJcblxyXG4gICAgY29uc3QgbWluVmFsID0gbWluKHIsIGcsIGIpO1xyXG4gICAgY29uc3QgbWF4VmFsID0gbWF4KHIsIGcsIGIpO1xyXG4gICAgY29uc3QgZGVsdGEgPSBtYXhWYWwgLSBtaW5WYWw7XHJcblxyXG4gICAgbGV0IGgsIHM7XHJcbiAgICBjb25zdCB2ID0gbWF4VmFsO1xyXG4gICAgaWYgKGRlbHRhID09PSAwKSB7XHJcbiAgICAgICAgaCA9IHMgPSAwO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgICBzID0gZGVsdGEgLyBtYXhWYWw7XHJcbiAgICAgICAgY29uc3QgZHIgPSAoKChtYXhWYWwgLSByKSAvIDYpICsgKGRlbHRhIC8gMikpIC8gZGVsdGE7XHJcbiAgICAgICAgY29uc3QgZGcgPSAoKChtYXhWYWwgLSBnKSAvIDYpICsgKGRlbHRhIC8gMikpIC8gZGVsdGE7XHJcbiAgICAgICAgY29uc3QgZGIgPSAoKChtYXhWYWwgLSBiKSAvIDYpICsgKGRlbHRhIC8gMikpIC8gZGVsdGE7XHJcblxyXG4gICAgICAgIGlmIChyID09PSBtYXhWYWwpIHtcclxuICAgICAgICAgICAgaCA9IGRiIC0gZGc7XHJcbiAgICAgICAgfSBlbHNlIGlmIChnID09PSBtYXhWYWwpIHtcclxuICAgICAgICAgICAgaCA9ICgxIC8gMykgKyBkciAtIGRiO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoYiA9PT0gbWF4VmFsKSB7XHJcbiAgICAgICAgICAgIGggPSAoMiAvIDMpICsgZGcgLSBkcjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChoIDwgMCkge1xyXG4gICAgICAgICAgICBoICs9IDE7XHJcbiAgICAgICAgfSBlbHNlIGlmIChoID4gMSkge1xyXG4gICAgICAgICAgICBoIC09IDE7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBbXHJcbiAgICAgICAgaCAqIDM2MCxcclxuICAgICAgICBzICogMTAwLFxyXG4gICAgICAgIHYgKiAxMDBcclxuICAgIF07XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBDb252ZXJ0IENNWUsgdG8gSFNWLlxyXG4gKiBAcGFyYW0gYyBDeWFuXHJcbiAqIEBwYXJhbSBtIE1hZ2VudGFcclxuICogQHBhcmFtIHkgWWVsbG93XHJcbiAqIEBwYXJhbSBrIEtleSAoQmxhY2spXHJcbiAqIEByZXR1cm4ge251bWJlcltdfSBIU1YgdmFsdWVzLlxyXG4gKi9cclxuZnVuY3Rpb24gY215a1RvSHN2KGMsIG0sIHksIGspIHtcclxuICAgIGMgLz0gMTAwO1xyXG4gICAgbSAvPSAxMDA7XHJcbiAgICB5IC89IDEwMDtcclxuICAgIGsgLz0gMTAwO1xyXG5cclxuICAgIGNvbnN0IHIgPSAoMSAtIG1pbigxLCBjICogKDEgLSBrKSArIGspKSAqIDI1NTtcclxuICAgIGNvbnN0IGcgPSAoMSAtIG1pbigxLCBtICogKDEgLSBrKSArIGspKSAqIDI1NTtcclxuICAgIGNvbnN0IGIgPSAoMSAtIG1pbigxLCB5ICogKDEgLSBrKSArIGspKSAqIDI1NTtcclxuXHJcbiAgICByZXR1cm4gWy4uLnJnYlRvSHN2KHIsIGcsIGIpXTtcclxufVxyXG5cclxuLyoqXHJcbiAqIENvbnZlcnQgSFNMIHRvIEhTVi5cclxuICogQHBhcmFtIGggSHVlXHJcbiAqIEBwYXJhbSBzIFNhdHVyYXRpb25cclxuICogQHBhcmFtIGwgTGlnaHRuZXNzXHJcbiAqIEByZXR1cm4ge251bWJlcltdfSBIU1YgdmFsdWVzLlxyXG4gKi9cclxuZnVuY3Rpb24gaHNsVG9Ic3YoaCwgcywgbCkge1xyXG4gICAgcyAvPSAxMDA7XHJcbiAgICBsIC89IDEwMDtcclxuICAgIHMgKj0gbCA8IDAuNSA/IGwgOiAxIC0gbDtcclxuXHJcbiAgICBjb25zdCBucyA9ICgyICogcyAvIChsICsgcykpICogMTAwO1xyXG4gICAgY29uc3QgdiA9IChsICsgcykgKiAxMDA7XHJcbiAgICByZXR1cm4gW2gsIGlzTmFOKG5zKSA/IDAgOiBucywgdl07XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBDb252ZXJ0IEhFWCB0byBIU1YuXHJcbiAqIEBwYXJhbSBoZXggSGV4YWRlY2ltYWwgc3RyaW5nIG9mIHJnYiBjb2xvcnMsIGNhbiBoYXZlIGxlbmd0aCAzIG9yIDYuXHJcbiAqIEByZXR1cm4ge251bWJlcltdfSBIU1YgdmFsdWVzLlxyXG4gKi9cclxuZnVuY3Rpb24gaGV4VG9Ic3YoaGV4KSB7XHJcbiAgICByZXR1cm4gcmdiVG9Ic3YoLi4uaGV4Lm1hdGNoKC8uezJ9L2cpLm1hcCh2ID0+IHBhcnNlSW50KHYsIDE2KSkpO1xyXG59XHJcblxyXG4vKipcclxuICogVHJ5J3MgdG8gcGFyc2UgYSBzdHJpbmcgd2hpY2ggcmVwcmVzZW50cyBhIGNvbG9yIHRvIGEgSFNWIGFycmF5LlxyXG4gKiBDdXJyZW50IHN1cHBvcnRlZCB0eXBlcyBhcmUgY215aywgcmdiYSwgaHNsYSBhbmQgaGV4YWRlY2ltYWwuXHJcbiAqIEBwYXJhbSBzdHJcclxuICogQHJldHVybiB7Kn1cclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBwYXJzZVRvSFNWQShzdHIpIHtcclxuXHJcbiAgICAvLyBDaGVjayBpZiBzdHJpbmcgaXMgYSBjb2xvci1uYW1lXHJcbiAgICBzdHIgPSBzdHIubWF0Y2goL15bYS16QS1aXSskLykgPyBzdGFuZGFyZGl6ZUNvbG9yKHN0cikgOiBzdHI7XHJcblxyXG4gICAgLy8gUmVndWxhciBleHByZXNzaW9ucyB0byBtYXRjaCBkaWZmZXJlbnQgdHlwZXMgb2YgY29sb3IgcmVwcmVzZW50aW9uXHJcbiAgICBjb25zdCByZWdleCA9IHtcclxuICAgICAgICBjbXlrOiAvXmNteWtbXFxEXSsoW1xcZC5dKylbXFxEXSsoW1xcZC5dKylbXFxEXSsoW1xcZC5dKylbXFxEXSsoW1xcZC5dKykvaSxcclxuICAgICAgICByZ2JhOiAvXigocmdiYSl8cmdiKVtcXERdKyhbXFxkLl0rKVtcXERdKyhbXFxkLl0rKVtcXERdKyhbXFxkLl0rKVtcXERdKj8oW1xcZC5dK3wkKS9pLFxyXG4gICAgICAgIGhzbGE6IC9eKChoc2xhKXxoc2wpW1xcRF0rKFtcXGQuXSspW1xcRF0rKFtcXGQuXSspW1xcRF0rKFtcXGQuXSspW1xcRF0qPyhbXFxkLl0rfCQpL2ksXHJcbiAgICAgICAgaHN2YTogL14oKGhzdmEpfGhzdilbXFxEXSsoW1xcZC5dKylbXFxEXSsoW1xcZC5dKylbXFxEXSsoW1xcZC5dKylbXFxEXSo/KFtcXGQuXSt8JCkvaSxcclxuICAgICAgICBoZXhhOiAvXiM/KChbXFxkQS1GYS1mXXszLDR9KXwoW1xcZEEtRmEtZl17Nn0pfChbXFxkQS1GYS1mXXs4fSkpJC9pXHJcbiAgICB9O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGFrZXMgYW4gQXJyYXkgb2YgYW55IHR5cGUsIGNvbnZlcnQgc3RyaW5ncyB3aGljaCByZXByZXNlbnRzXHJcbiAgICAgKiBhIG51bWJlciB0byBhIG51bWJlciBhbiBhbnl0aGluZyBlbHNlIHRvIHVuZGVmaW5lZC5cclxuICAgICAqIEBwYXJhbSBhcnJheVxyXG4gICAgICogQHJldHVybiB7Kn1cclxuICAgICAqL1xyXG4gICAgY29uc3QgbnVtYXJpemUgPSBhcnJheSA9PiBhcnJheS5tYXAodiA9PiAvXih8XFxkKylcXC5cXGQrfFxcZCskLy50ZXN0KHYpID8gTnVtYmVyKHYpIDogdW5kZWZpbmVkKTtcclxuXHJcbiAgICBsZXQgbWF0Y2g7XHJcbiAgICBpbnZhbGlkOiBmb3IgKGNvbnN0IHR5cGUgaW4gcmVnZXgpIHtcclxuXHJcbiAgICAgICAgLy8gQ2hlY2sgaWYgY3VycmVudCBzY2hlbWUgcGFzc2VkXHJcbiAgICAgICAgaWYgKCEobWF0Y2ggPSByZWdleFt0eXBlXS5leGVjKHN0cikpKSB7XHJcbiAgICAgICAgICAgIGNvbnRpbnVlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gTWF0Y2hbMl0gZG9lcyBvbmx5IGNvbnRhaW4gYSB0cnVseSB2YWx1ZSBpZiByZ2JhLCBoc2xhLCBvciBoc2xhIGdvdCBtYXRjaGVkXHJcbiAgICAgICAgY29uc3QgYWxwaGFWYWxpZCA9IGEgPT4gKCEhbWF0Y2hbMl0gPT09ICh0eXBlb2YgYSA9PT0gJ251bWJlcicpKTtcclxuXHJcbiAgICAgICAgLy8gVHJ5IHRvIGNvbnZlcnRcclxuICAgICAgICBzd2l0Y2ggKHR5cGUpIHtcclxuICAgICAgICAgICAgY2FzZSAnY215ayc6IHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IFssIGMsIG0sIHksIGtdID0gbnVtYXJpemUobWF0Y2gpO1xyXG5cclxuICAgICAgICAgICAgICAgIGlmIChjID4gMTAwIHx8IG0gPiAxMDAgfHwgeSA+IDEwMCB8fCBrID4gMTAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWsgaW52YWxpZDtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICByZXR1cm4ge3ZhbHVlczogY215a1RvSHN2KGMsIG0sIHksIGspLCB0eXBlfTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjYXNlICdyZ2JhJzoge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgWywgLCAsIHIsIGcsIGIsIGFdID0gbnVtYXJpemUobWF0Y2gpO1xyXG5cclxuICAgICAgICAgICAgICAgIGlmIChyID4gMjU1IHx8IGcgPiAyNTUgfHwgYiA+IDI1NSB8fCBhIDwgMCB8fCBhID4gMSB8fCAhYWxwaGFWYWxpZChhKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrIGludmFsaWQ7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHt2YWx1ZXM6IFsuLi5yZ2JUb0hzdihyLCBnLCBiKSwgYV0sIGEsIHR5cGV9O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNhc2UgJ2hleGEnOiB7XHJcbiAgICAgICAgICAgICAgICBsZXQgWywgaGV4XSA9IG1hdGNoO1xyXG5cclxuICAgICAgICAgICAgICAgIGlmIChoZXgubGVuZ3RoID09PSA0IHx8IGhleC5sZW5ndGggPT09IDMpIHtcclxuICAgICAgICAgICAgICAgICAgICBoZXggPSBoZXguc3BsaXQoJycpLm1hcCh2ID0+IHYgKyB2KS5qb2luKCcnKTtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBjb25zdCByYXcgPSBoZXguc3Vic3RyaW5nKDAsIDYpO1xyXG4gICAgICAgICAgICAgICAgbGV0IGEgPSBoZXguc3Vic3RyaW5nKDYpO1xyXG5cclxuICAgICAgICAgICAgICAgIC8vIENvbnZlcnQgMCAtIDI1NSB0byAwIC0gMSBmb3Igb3BhY2l0eVxyXG4gICAgICAgICAgICAgICAgYSA9IGEgPyAocGFyc2VJbnQoYSwgMTYpIC8gMjU1KSA6IHVuZGVmaW5lZDtcclxuXHJcbiAgICAgICAgICAgICAgICByZXR1cm4ge3ZhbHVlczogWy4uLmhleFRvSHN2KHJhdyksIGFdLCBhLCB0eXBlfTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjYXNlICdoc2xhJzoge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgWywgLCAsIGgsIHMsIGwsIGFdID0gbnVtYXJpemUobWF0Y2gpO1xyXG5cclxuICAgICAgICAgICAgICAgIGlmIChoID4gMzYwIHx8IHMgPiAxMDAgfHwgbCA+IDEwMCB8fCBhIDwgMCB8fCBhID4gMSB8fCAhYWxwaGFWYWxpZChhKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrIGludmFsaWQ7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHt2YWx1ZXM6IFsuLi5oc2xUb0hzdihoLCBzLCBsKSwgYV0sIGEsIHR5cGV9O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNhc2UgJ2hzdmEnOiB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBbLCAsICwgaCwgcywgdiwgYV0gPSBudW1hcml6ZShtYXRjaCk7XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKGggPiAzNjAgfHwgcyA+IDEwMCB8fCB2ID4gMTAwIHx8IGEgPCAwIHx8IGEgPiAxIHx8ICFhbHBoYVZhbGlkKGEpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWsgaW52YWxpZDtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICByZXR1cm4ge3ZhbHVlczogW2gsIHMsIHYsIGFdLCBhLCB0eXBlfTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4ge3ZhbHVlczogbnVsbCwgdHlwZTogbnVsbH07XHJcbn1cclxuIiwgImltcG9ydCB7aHN2VG9DbXlrLCBoc3ZUb0hleCwgaHN2VG9Ic2wsIGhzdlRvUmdifSBmcm9tICcuL2NvbG9yJztcclxuXHJcbi8qKlxyXG4gKiBTaW1wbGUgY2xhc3Mgd2hpY2ggaG9sZHMgdGhlIHByb3BlcnRpZXNcclxuICogb2YgdGhlIGNvbG9yIHJlcHJlc2VudGlvbiBtb2RlbCBoc2xhIChodWUgc2F0dXJhdGlvbiBsaWdodG5lc3MgYWxwaGEpXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gSFNWYUNvbG9yKGggPSAwLCBzID0gMCwgdiA9IDAsIGEgPSAxKSB7XHJcbiAgICBjb25zdCBtYXBwZXIgPSAob3JpZ2luYWwsIG5leHQpID0+IChwcmVjaXNpb24gPSAtMSkgPT4ge1xyXG4gICAgICAgIHJldHVybiBuZXh0KH5wcmVjaXNpb24gPyBvcmlnaW5hbC5tYXAodiA9PiBOdW1iZXIodi50b0ZpeGVkKHByZWNpc2lvbikpKSA6IG9yaWdpbmFsKTtcclxuICAgIH07XHJcblxyXG4gICAgY29uc3QgdGhhdCA9IHtcclxuICAgICAgICBoLCBzLCB2LCBhLFxyXG5cclxuICAgICAgICB0b0hTVkEoKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGhzdmEgPSBbdGhhdC5oLCB0aGF0LnMsIHRoYXQudiwgdGhhdC5hXTtcclxuICAgICAgICAgICAgaHN2YS50b1N0cmluZyA9IG1hcHBlcihoc3ZhLCBhcnIgPT4gYGhzdmEoJHthcnJbMF19LCAke2FyclsxXX0lLCAke2FyclsyXX0lLCAke3RoYXQuYX0pYCk7XHJcbiAgICAgICAgICAgIHJldHVybiBoc3ZhO1xyXG4gICAgICAgIH0sXHJcblxyXG4gICAgICAgIHRvSFNMQSgpIHtcclxuICAgICAgICAgICAgY29uc3QgaHNsYSA9IFsuLi5oc3ZUb0hzbCh0aGF0LmgsIHRoYXQucywgdGhhdC52KSwgdGhhdC5hXTtcclxuICAgICAgICAgICAgaHNsYS50b1N0cmluZyA9IG1hcHBlcihoc2xhLCBhcnIgPT4gYGhzbGEoJHthcnJbMF19LCAke2FyclsxXX0lLCAke2FyclsyXX0lLCAke3RoYXQuYX0pYCk7XHJcbiAgICAgICAgICAgIHJldHVybiBoc2xhO1xyXG4gICAgICAgIH0sXHJcblxyXG4gICAgICAgIHRvUkdCQSgpIHtcclxuICAgICAgICAgICAgY29uc3QgcmdiYSA9IFsuLi5oc3ZUb1JnYih0aGF0LmgsIHRoYXQucywgdGhhdC52KSwgdGhhdC5hXTtcclxuICAgICAgICAgICAgcmdiYS50b1N0cmluZyA9IG1hcHBlcihyZ2JhLCBhcnIgPT4gYHJnYmEoJHthcnJbMF19LCAke2FyclsxXX0sICR7YXJyWzJdfSwgJHt0aGF0LmF9KWApO1xyXG4gICAgICAgICAgICByZXR1cm4gcmdiYTtcclxuICAgICAgICB9LFxyXG5cclxuICAgICAgICB0b0NNWUsoKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGNteWsgPSBoc3ZUb0NteWsodGhhdC5oLCB0aGF0LnMsIHRoYXQudik7XHJcbiAgICAgICAgICAgIGNteWsudG9TdHJpbmcgPSBtYXBwZXIoY215aywgYXJyID0+IGBjbXlrKCR7YXJyWzBdfSUsICR7YXJyWzFdfSUsICR7YXJyWzJdfSUsICR7YXJyWzNdfSUpYCk7XHJcbiAgICAgICAgICAgIHJldHVybiBjbXlrO1xyXG4gICAgICAgIH0sXHJcblxyXG4gICAgICAgIHRvSEVYQSgpIHtcclxuICAgICAgICAgICAgY29uc3QgaGV4ID0gaHN2VG9IZXgodGhhdC5oLCB0aGF0LnMsIHRoYXQudik7XHJcblxyXG4gICAgICAgICAgICAvLyBDaGVjayBpZiBhbHBoYSBjaGFubmVsIG1ha2Ugc2Vuc2UsIGNvbnZlcnQgaXQgdG8gMjU1IG51bWJlciBzcGFjZSwgY29udmVydFxyXG4gICAgICAgICAgICAvLyBUbyBoZXggYW5kIHBhZCBpdCB3aXRoIHplcm9zIGlmIG5lZWRldC5cclxuICAgICAgICAgICAgY29uc3QgYWxwaGEgPSB0aGF0LmEgPj0gMSA/ICcnIDogTnVtYmVyKCh0aGF0LmEgKiAyNTUpLnRvRml4ZWQoMCkpXHJcbiAgICAgICAgICAgICAgICAudG9TdHJpbmcoMTYpXHJcbiAgICAgICAgICAgICAgICAudG9VcHBlckNhc2UoKS5wYWRTdGFydCgyLCAnMCcpO1xyXG5cclxuICAgICAgICAgICAgYWxwaGEgJiYgaGV4LnB1c2goYWxwaGEpO1xyXG4gICAgICAgICAgICBoZXgudG9TdHJpbmcgPSAoKSA9PiBgIyR7aGV4LmpvaW4oJycpLnRvVXBwZXJDYXNlKCl9YDtcclxuICAgICAgICAgICAgcmV0dXJuIGhleDtcclxuICAgICAgICB9LFxyXG5cclxuICAgICAgICBjbG9uZTogKCkgPT4gSFNWYUNvbG9yKHRoYXQuaCwgdGhhdC5zLCB0aGF0LnYsIHRoYXQuYSlcclxuICAgIH07XHJcblxyXG4gICAgcmV0dXJuIHRoYXQ7XHJcbn1cclxuIiwgImltcG9ydCAqIGFzIF8gZnJvbSAnLi4vdXRpbHMvdXRpbHMnO1xyXG5cclxuY29uc3QgY2xhbXAgPSB2ID0+IE1hdGgubWF4KE1hdGgubWluKHYsIDEpLCAwKTtcclxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gTW92ZWFibGUob3B0KSB7XHJcblxyXG4gICAgY29uc3QgdGhhdCA9IHtcclxuXHJcbiAgICAgICAgLy8gQXNzaWduIGRlZmF1bHQgdmFsdWVzXHJcbiAgICAgICAgb3B0aW9uczogT2JqZWN0LmFzc2lnbih7XHJcbiAgICAgICAgICAgIGxvY2s6IG51bGwsXHJcbiAgICAgICAgICAgIG9uY2hhbmdlOiAoKSA9PiAwLFxyXG4gICAgICAgICAgICBvbnN0b3A6ICgpID0+IDBcclxuICAgICAgICB9LCBvcHQpLFxyXG5cclxuICAgICAgICBfa2V5Ym9hcmQoZSkge1xyXG4gICAgICAgICAgICBjb25zdCB7b3B0aW9uc30gPSB0aGF0O1xyXG4gICAgICAgICAgICBjb25zdCB7dHlwZSwga2V5fSA9IGU7XHJcblxyXG4gICAgICAgICAgICAvLyBDaGVjayB0byBzZWUgaWYgdGhlIE1vdmFibGUgaXMgZm9jdXNlZCBhbmQgdGhlbiBtb3ZlIGl0IGJhc2VkIG9uIGFycm93IGtleSBpbnB1dHNcclxuICAgICAgICAgICAgLy8gRm9yIGltcHJvdmVkIGFjY2Vzc2liaWxpdHlcclxuICAgICAgICAgICAgaWYgKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgPT09IG9wdGlvbnMud3JhcHBlcikge1xyXG4gICAgICAgICAgICAgICAgY29uc3Qge2xvY2t9ID0gdGhhdC5vcHRpb25zO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgdXAgPSBrZXkgPT09ICdBcnJvd1VwJztcclxuICAgICAgICAgICAgICAgIGNvbnN0IHJpZ2h0ID0ga2V5ID09PSAnQXJyb3dSaWdodCc7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBkb3duID0ga2V5ID09PSAnQXJyb3dEb3duJztcclxuICAgICAgICAgICAgICAgIGNvbnN0IGxlZnQgPSBrZXkgPT09ICdBcnJvd0xlZnQnO1xyXG5cclxuICAgICAgICAgICAgICAgIGlmICh0eXBlID09PSAna2V5ZG93bicgJiYgKHVwIHx8IHJpZ2h0IHx8IGRvd24gfHwgbGVmdCkpIHtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgeG0gPSAwO1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCB5bSA9IDA7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGlmIChsb2NrID09PSAndicpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgeG0gPSAodXAgfHwgcmlnaHQpID8gMSA6IC0xO1xyXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAobG9jayA9PT0gJ2gnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHhtID0gKHVwIHx8IHJpZ2h0KSA/IC0xIDogMTtcclxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB5bSA9IHVwID8gLTEgOiAoZG93biA/IDEgOiAwKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgeG0gPSBsZWZ0ID8gLTEgOiAocmlnaHQgPyAxIDogMCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICB0aGF0LnVwZGF0ZShcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhbXAodGhhdC5jYWNoZS54ICsgKDAuMDEgKiB4bSkpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFtcCh0aGF0LmNhY2hlLnkgKyAoMC4wMSAqIHltKSlcclxuICAgICAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoa2V5LnN0YXJ0c1dpdGgoJ0Fycm93JykpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGF0Lm9wdGlvbnMub25zdG9wKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuXHJcbiAgICAgICAgX3RhcHN0YXJ0KGV2dCkge1xyXG4gICAgICAgICAgICBfLm9uKGRvY3VtZW50LCBbJ21vdXNldXAnLCAndG91Y2hlbmQnLCAndG91Y2hjYW5jZWwnXSwgdGhhdC5fdGFwc3RvcCk7XHJcbiAgICAgICAgICAgIF8ub24oZG9jdW1lbnQsIFsnbW91c2Vtb3ZlJywgJ3RvdWNobW92ZSddLCB0aGF0Ll90YXBtb3ZlKTtcclxuXHJcbiAgICAgICAgICAgIGlmIChldnQuY2FuY2VsYWJsZSkge1xyXG4gICAgICAgICAgICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIC8vIFRyaWdnZXJcclxuICAgICAgICAgICAgdGhhdC5fdGFwbW92ZShldnQpO1xyXG4gICAgICAgIH0sXHJcblxyXG4gICAgICAgIF90YXBtb3ZlKGV2dCkge1xyXG4gICAgICAgICAgICBjb25zdCB7b3B0aW9ucywgY2FjaGV9ID0gdGhhdDtcclxuICAgICAgICAgICAgY29uc3Qge2xvY2ssIGVsZW1lbnQsIHdyYXBwZXJ9ID0gb3B0aW9ucztcclxuICAgICAgICAgICAgY29uc3QgYiA9IHdyYXBwZXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcblxyXG4gICAgICAgICAgICBsZXQgeCA9IDAsIHkgPSAwO1xyXG4gICAgICAgICAgICBpZiAoZXZ0KSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCB0b3VjaCA9IGV2dCAmJiBldnQudG91Y2hlcyAmJiBldnQudG91Y2hlc1swXTtcclxuICAgICAgICAgICAgICAgIHggPSBldnQgPyAodG91Y2ggfHwgZXZ0KS5jbGllbnRYIDogMDtcclxuICAgICAgICAgICAgICAgIHkgPSBldnQgPyAodG91Y2ggfHwgZXZ0KS5jbGllbnRZIDogMDtcclxuXHJcbiAgICAgICAgICAgICAgICAvLyBSZXNldCB0byBib3VuZHNcclxuICAgICAgICAgICAgICAgIGlmICh4IDwgYi5sZWZ0KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgeCA9IGIubGVmdDtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoeCA+IGIubGVmdCArIGIud2lkdGgpIHtcclxuICAgICAgICAgICAgICAgICAgICB4ID0gYi5sZWZ0ICsgYi53aWR0aDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGlmICh5IDwgYi50b3ApIHtcclxuICAgICAgICAgICAgICAgICAgICB5ID0gYi50b3A7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHkgPiBiLnRvcCArIGIuaGVpZ2h0KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgeSA9IGIudG9wICsgYi5oZWlnaHQ7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgLy8gTm9ybWFsaXplXHJcbiAgICAgICAgICAgICAgICB4IC09IGIubGVmdDtcclxuICAgICAgICAgICAgICAgIHkgLT0gYi50b3A7XHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoY2FjaGUpIHtcclxuICAgICAgICAgICAgICAgIHggPSBjYWNoZS54ICogYi53aWR0aDtcclxuICAgICAgICAgICAgICAgIHkgPSBjYWNoZS55ICogYi5oZWlnaHQ7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGlmIChsb2NrICE9PSAnaCcpIHtcclxuICAgICAgICAgICAgICAgIGVsZW1lbnQuc3R5bGUubGVmdCA9IGBjYWxjKCR7eCAvIGIud2lkdGggKiAxMDB9JSAtICR7ZWxlbWVudC5vZmZzZXRXaWR0aCAvIDJ9cHgpYDtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYgKGxvY2sgIT09ICd2Jykge1xyXG4gICAgICAgICAgICAgICAgZWxlbWVudC5zdHlsZS50b3AgPSBgY2FsYygke3kgLyBiLmhlaWdodCAqIDEwMH0lIC0gJHtlbGVtZW50Lm9mZnNldEhlaWdodCAvIDJ9cHgpYDtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgdGhhdC5jYWNoZSA9IHt4OiB4IC8gYi53aWR0aCwgeTogeSAvIGIuaGVpZ2h0fTtcclxuICAgICAgICAgICAgY29uc3QgY3ggPSBjbGFtcCh4IC8gYi53aWR0aCk7XHJcbiAgICAgICAgICAgIGNvbnN0IGN5ID0gY2xhbXAoeSAvIGIuaGVpZ2h0KTtcclxuXHJcbiAgICAgICAgICAgIHN3aXRjaCAobG9jaykge1xyXG4gICAgICAgICAgICAgICAgY2FzZSAndic6XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9wdGlvbnMub25jaGFuZ2UoY3gpO1xyXG4gICAgICAgICAgICAgICAgY2FzZSAnaCc6XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9wdGlvbnMub25jaGFuZ2UoY3kpO1xyXG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gb3B0aW9ucy5vbmNoYW5nZShjeCwgY3kpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuXHJcbiAgICAgICAgX3RhcHN0b3AoKSB7XHJcbiAgICAgICAgICAgIHRoYXQub3B0aW9ucy5vbnN0b3AoKTtcclxuICAgICAgICAgICAgXy5vZmYoZG9jdW1lbnQsIFsnbW91c2V1cCcsICd0b3VjaGVuZCcsICd0b3VjaGNhbmNlbCddLCB0aGF0Ll90YXBzdG9wKTtcclxuICAgICAgICAgICAgXy5vZmYoZG9jdW1lbnQsIFsnbW91c2Vtb3ZlJywgJ3RvdWNobW92ZSddLCB0aGF0Ll90YXBtb3ZlKTtcclxuICAgICAgICB9LFxyXG5cclxuICAgICAgICB0cmlnZ2VyKCkge1xyXG4gICAgICAgICAgICB0aGF0Ll90YXBtb3ZlKCk7XHJcbiAgICAgICAgfSxcclxuXHJcbiAgICAgICAgdXBkYXRlKHggPSAwLCB5ID0gMCkge1xyXG4gICAgICAgICAgICBjb25zdCB7bGVmdCwgdG9wLCB3aWR0aCwgaGVpZ2h0fSA9IHRoYXQub3B0aW9ucy53cmFwcGVyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG5cclxuICAgICAgICAgICAgaWYgKHRoYXQub3B0aW9ucy5sb2NrID09PSAnaCcpIHtcclxuICAgICAgICAgICAgICAgIHkgPSB4O1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICB0aGF0Ll90YXBtb3ZlKHtcclxuICAgICAgICAgICAgICAgIGNsaWVudFg6IGxlZnQgKyB3aWR0aCAqIHgsXHJcbiAgICAgICAgICAgICAgICBjbGllbnRZOiB0b3AgKyBoZWlnaHQgKiB5XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0sXHJcblxyXG4gICAgICAgIGRlc3Ryb3koKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHtvcHRpb25zLCBfdGFwc3RhcnQsIF9rZXlib2FyZH0gPSB0aGF0O1xyXG4gICAgICAgICAgICBfLm9mZihkb2N1bWVudCwgWydrZXlkb3duJywgJ2tleXVwJ10sIF9rZXlib2FyZCk7XHJcbiAgICAgICAgICAgIF8ub2ZmKFtvcHRpb25zLndyYXBwZXIsIG9wdGlvbnMuZWxlbWVudF0sICdtb3VzZWRvd24nLCBfdGFwc3RhcnQpO1xyXG4gICAgICAgICAgICBfLm9mZihbb3B0aW9ucy53cmFwcGVyLCBvcHRpb25zLmVsZW1lbnRdLCAndG91Y2hzdGFydCcsIF90YXBzdGFydCwge1xyXG4gICAgICAgICAgICAgICAgcGFzc2l2ZTogZmFsc2VcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuXHJcbiAgICAvLyBJbml0aWxpemVcclxuICAgIGNvbnN0IHtvcHRpb25zLCBfdGFwc3RhcnQsIF9rZXlib2FyZH0gPSB0aGF0O1xyXG4gICAgXy5vbihbb3B0aW9ucy53cmFwcGVyLCBvcHRpb25zLmVsZW1lbnRdLCAnbW91c2Vkb3duJywgX3RhcHN0YXJ0KTtcclxuICAgIF8ub24oW29wdGlvbnMud3JhcHBlciwgb3B0aW9ucy5lbGVtZW50XSwgJ3RvdWNoc3RhcnQnLCBfdGFwc3RhcnQsIHtcclxuICAgICAgICBwYXNzaXZlOiBmYWxzZVxyXG4gICAgfSk7XHJcblxyXG4gICAgXy5vbihkb2N1bWVudCwgWydrZXlkb3duJywgJ2tleXVwJ10sIF9rZXlib2FyZCk7XHJcblxyXG4gICAgcmV0dXJuIHRoYXQ7XHJcbn1cclxuIiwgImltcG9ydCAqIGFzIF8gZnJvbSAnLi4vdXRpbHMvdXRpbHMnO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBTZWxlY3RhYmxlKG9wdCA9IHt9KSB7XG4gICAgb3B0ID0gT2JqZWN0LmFzc2lnbih7XG4gICAgICAgIG9uY2hhbmdlOiAoKSA9PiAwLFxuICAgICAgICBjbGFzc05hbWU6ICcnLFxuICAgICAgICBlbGVtZW50czogW11cbiAgICB9LCBvcHQpO1xuXG4gICAgY29uc3Qgb25UYXAgPSBfLm9uKG9wdC5lbGVtZW50cywgJ2NsaWNrJywgZXZ0ID0+IHtcbiAgICAgICAgb3B0LmVsZW1lbnRzLmZvckVhY2goZSA9PlxuICAgICAgICAgICAgZS5jbGFzc0xpc3RbZXZ0LnRhcmdldCA9PT0gZSA/ICdhZGQnIDogJ3JlbW92ZSddKG9wdC5jbGFzc05hbWUpXG4gICAgICAgICk7XG5cbiAgICAgICAgb3B0Lm9uY2hhbmdlKGV2dCk7XG5cbiAgICAgICAgLy8gRml4IGZvciBodHRwczovL2dpdGh1Yi5jb20vU2ltb253ZXAvcGlja3IvaXNzdWVzLzI0M1xuICAgICAgICBldnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgfSk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgICBkZXN0cm95OiAoKSA9PiBfLm9mZiguLi5vblRhcClcbiAgICB9O1xufVxuIiwgImltcG9ydCAqIGFzIF8gZnJvbSAnLi91dGlscy91dGlscyc7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBpbnN0YW5jZSA9PiB7XHJcblxyXG4gICAgY29uc3Qge1xyXG4gICAgICAgIGNvbXBvbmVudHMsXHJcbiAgICAgICAgdXNlQXNCdXR0b24sXHJcbiAgICAgICAgaW5saW5lLFxyXG4gICAgICAgIGFwcENsYXNzLFxyXG4gICAgICAgIHRoZW1lLFxyXG4gICAgICAgIGxvY2tPcGFjaXR5XHJcbiAgICB9ID0gaW5zdGFuY2Uub3B0aW9ucztcclxuXHJcbiAgICAvLyBVdGlsc1xyXG4gICAgY29uc3QgaGlkZGVuID0gY29uID0+IGNvbiA/ICcnIDogJ3N0eWxlPVwiZGlzcGxheTpub25lXCIgaGlkZGVuJztcclxuICAgIGNvbnN0IHQgPSBzdHIgPT4gaW5zdGFuY2UuX3Qoc3RyKTtcclxuXHJcbiAgICBjb25zdCByb290ID0gXy5jcmVhdGVGcm9tVGVtcGxhdGUoYFxyXG4gICAgICA8ZGl2IDpyZWY9XCJyb290XCIgY2xhc3M9XCJwaWNrclwiPlxyXG5cclxuICAgICAgICAke3VzZUFzQnV0dG9uID8gJycgOiAnPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgOnJlZj1cImJ1dHRvblwiIGNsYXNzPVwicGNyLWJ1dHRvblwiPjwvYnV0dG9uPid9XHJcblxyXG4gICAgICAgIDxkaXYgOnJlZj1cImFwcFwiIGNsYXNzPVwicGNyLWFwcCAke2FwcENsYXNzIHx8ICcnfVwiIGRhdGEtdGhlbWU9XCIke3RoZW1lfVwiICR7aW5saW5lID8gJ3N0eWxlPVwicG9zaXRpb246IHVuc2V0XCInIDogJyd9IGFyaWEtbGFiZWw9XCIke3QoJ3VpOmRpYWxvZycsICdjb2xvciBwaWNrZXIgZGlhbG9nJyl9XCIgcm9sZT1cIndpbmRvd1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInBjci1zZWxlY3Rpb25cIiAke2hpZGRlbihjb21wb25lbnRzLnBhbGV0dGUpfT5cclxuICAgICAgICAgICAgPGRpdiA6b2JqPVwicHJldmlld1wiIGNsYXNzPVwicGNyLWNvbG9yLXByZXZpZXdcIiAke2hpZGRlbihjb21wb25lbnRzLnByZXZpZXcpfT5cclxuICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiA6cmVmPVwibGFzdENvbG9yXCIgY2xhc3M9XCJwY3ItbGFzdC1jb2xvclwiIGFyaWEtbGFiZWw9XCIke3QoJ2J0bjpsYXN0LWNvbG9yJyl9XCI+PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgPGRpdiA6cmVmPVwiY3VycmVudENvbG9yXCIgY2xhc3M9XCJwY3ItY3VycmVudC1jb2xvclwiPjwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDxkaXYgOm9iaj1cInBhbGV0dGVcIiBjbGFzcz1cInBjci1jb2xvci1wYWxldHRlXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiA6cmVmPVwicGlja2VyXCIgY2xhc3M9XCJwY3ItcGlja2VyXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiA6cmVmPVwicGFsZXR0ZVwiIGNsYXNzPVwicGNyLXBhbGV0dGVcIiB0YWJpbmRleD1cIjBcIiBhcmlhLWxhYmVsPVwiJHt0KCdhcmlhOnBhbGV0dGUnKX1cIiByb2xlPVwibGlzdGJveFwiPjwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDxkaXYgOm9iaj1cImh1ZVwiIGNsYXNzPVwicGNyLWNvbG9yLWNob29zZXJcIiAke2hpZGRlbihjb21wb25lbnRzLmh1ZSl9PlxyXG4gICAgICAgICAgICAgIDxkaXYgOnJlZj1cInBpY2tlclwiIGNsYXNzPVwicGNyLXBpY2tlclwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgOnJlZj1cInNsaWRlclwiIGNsYXNzPVwicGNyLWh1ZSBwY3Itc2xpZGVyXCIgdGFiaW5kZXg9XCIwXCIgYXJpYS1sYWJlbD1cIiR7dCgnYXJpYTpodWUnKX1cIiByb2xlPVwic2xpZGVyXCI+PC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgPGRpdiA6b2JqPVwib3BhY2l0eVwiIGNsYXNzPVwicGNyLWNvbG9yLW9wYWNpdHlcIiAke2hpZGRlbihjb21wb25lbnRzLm9wYWNpdHkpfT5cclxuICAgICAgICAgICAgICA8ZGl2IDpyZWY9XCJwaWNrZXJcIiBjbGFzcz1cInBjci1waWNrZXJcIj48L2Rpdj5cclxuICAgICAgICAgICAgICA8ZGl2IDpyZWY9XCJzbGlkZXJcIiBjbGFzcz1cInBjci1vcGFjaXR5IHBjci1zbGlkZXJcIiB0YWJpbmRleD1cIjBcIiBhcmlhLWxhYmVsPVwiJHt0KCdhcmlhOm9wYWNpdHknLCAnb3BhY2l0eSBzZWxlY3Rpb24gc2xpZGVyJyl9XCIgcm9sZT1cInNsaWRlclwiPjwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJwY3Itc3dhdGNoZXMgJHtjb21wb25lbnRzLnBhbGV0dGUgPyAnJyA6ICdwY3ItbGFzdCd9XCIgOnJlZj1cInN3YXRjaGVzXCI+PC9kaXY+XHJcblxyXG4gICAgICAgICAgPGRpdiA6b2JqPVwiaW50ZXJhY3Rpb25cIiBjbGFzcz1cInBjci1pbnRlcmFjdGlvblwiICR7aGlkZGVuKE9iamVjdC5rZXlzKGNvbXBvbmVudHMuaW50ZXJhY3Rpb24pLmxlbmd0aCl9PlxyXG4gICAgICAgICAgICA8aW5wdXQgOnJlZj1cInJlc3VsdFwiIGNsYXNzPVwicGNyLXJlc3VsdFwiIHR5cGU9XCJ0ZXh0XCIgc3BlbGxjaGVjaz1cImZhbHNlXCIgJHtoaWRkZW4oY29tcG9uZW50cy5pbnRlcmFjdGlvbi5pbnB1dCl9IGFyaWEtbGFiZWw9XCIke3QoJ2FyaWE6aW5wdXQnLCAnY29sb3IgaW5wdXQgZmllbGQnKX1cIj5cclxuXHJcbiAgICAgICAgICAgIDxpbnB1dCA6YXJyPVwib3B0aW9uc1wiIGNsYXNzPVwicGNyLXR5cGVcIiBkYXRhLXR5cGU9XCJIRVhBXCIgdmFsdWU9XCIke2xvY2tPcGFjaXR5ID8gJ0hFWCcgOiAnSEVYQSd9XCIgdHlwZT1cImJ1dHRvblwiICR7aGlkZGVuKGNvbXBvbmVudHMuaW50ZXJhY3Rpb24uaGV4KX0+XHJcbiAgICAgICAgICAgIDxpbnB1dCA6YXJyPVwib3B0aW9uc1wiIGNsYXNzPVwicGNyLXR5cGVcIiBkYXRhLXR5cGU9XCJSR0JBXCIgdmFsdWU9XCIke2xvY2tPcGFjaXR5ID8gJ1JHQicgOiAnUkdCQSd9XCIgdHlwZT1cImJ1dHRvblwiICR7aGlkZGVuKGNvbXBvbmVudHMuaW50ZXJhY3Rpb24ucmdiYSl9PlxyXG4gICAgICAgICAgICA8aW5wdXQgOmFycj1cIm9wdGlvbnNcIiBjbGFzcz1cInBjci10eXBlXCIgZGF0YS10eXBlPVwiSFNMQVwiIHZhbHVlPVwiJHtsb2NrT3BhY2l0eSA/ICdIU0wnIDogJ0hTTEEnfVwiIHR5cGU9XCJidXR0b25cIiAke2hpZGRlbihjb21wb25lbnRzLmludGVyYWN0aW9uLmhzbGEpfT5cclxuICAgICAgICAgICAgPGlucHV0IDphcnI9XCJvcHRpb25zXCIgY2xhc3M9XCJwY3ItdHlwZVwiIGRhdGEtdHlwZT1cIkhTVkFcIiB2YWx1ZT1cIiR7bG9ja09wYWNpdHkgPyAnSFNWJyA6ICdIU1ZBJ31cIiB0eXBlPVwiYnV0dG9uXCIgJHtoaWRkZW4oY29tcG9uZW50cy5pbnRlcmFjdGlvbi5oc3ZhKX0+XHJcbiAgICAgICAgICAgIDxpbnB1dCA6YXJyPVwib3B0aW9uc1wiIGNsYXNzPVwicGNyLXR5cGVcIiBkYXRhLXR5cGU9XCJDTVlLXCIgdmFsdWU9XCJDTVlLXCIgdHlwZT1cImJ1dHRvblwiICR7aGlkZGVuKGNvbXBvbmVudHMuaW50ZXJhY3Rpb24uY215ayl9PlxyXG5cclxuICAgICAgICAgICAgPGlucHV0IDpyZWY9XCJzYXZlXCIgY2xhc3M9XCJwY3Itc2F2ZVwiIHZhbHVlPVwiJHt0KCdidG46c2F2ZScpfVwiIHR5cGU9XCJidXR0b25cIiAke2hpZGRlbihjb21wb25lbnRzLmludGVyYWN0aW9uLnNhdmUpfSBhcmlhLWxhYmVsPVwiJHt0KCdhcmlhOmJ0bjpzYXZlJyl9XCI+XHJcbiAgICAgICAgICAgIDxpbnB1dCA6cmVmPVwiY2FuY2VsXCIgY2xhc3M9XCJwY3ItY2FuY2VsXCIgdmFsdWU9XCIke3QoJ2J0bjpjYW5jZWwnKX1cIiB0eXBlPVwiYnV0dG9uXCIgJHtoaWRkZW4oY29tcG9uZW50cy5pbnRlcmFjdGlvbi5jYW5jZWwpfSBhcmlhLWxhYmVsPVwiJHt0KCdhcmlhOmJ0bjpjYW5jZWwnKX1cIj5cclxuICAgICAgICAgICAgPGlucHV0IDpyZWY9XCJjbGVhclwiIGNsYXNzPVwicGNyLWNsZWFyXCIgdmFsdWU9XCIke3QoJ2J0bjpjbGVhcicpfVwiIHR5cGU9XCJidXR0b25cIiAke2hpZGRlbihjb21wb25lbnRzLmludGVyYWN0aW9uLmNsZWFyKX0gYXJpYS1sYWJlbD1cIiR7dCgnYXJpYTpidG46Y2xlYXInKX1cIj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIGApO1xyXG5cclxuICAgIGNvbnN0IGludCA9IHJvb3QuaW50ZXJhY3Rpb247XHJcblxyXG4gICAgLy8gU2VsZWN0IG9wdGlvbiB3aGljaCBpcyBub3QgaGlkZGVuXHJcbiAgICBpbnQub3B0aW9ucy5maW5kKG8gPT4gIW8uaGlkZGVuICYmICFvLmNsYXNzTGlzdC5hZGQoJ2FjdGl2ZScpKTtcclxuXHJcbiAgICAvLyBBcHBlbmQgbWV0aG9kIHRvIGZpbmQgY3VycmVudGx5IGFjdGl2ZSBvcHRpb25cclxuICAgIGludC50eXBlID0gKCkgPT4gaW50Lm9wdGlvbnMuZmluZChlID0+IGUuY2xhc3NMaXN0LmNvbnRhaW5zKCdhY3RpdmUnKSk7XHJcbiAgICByZXR1cm4gcm9vdDtcclxufTtcclxuIiwgInR5cGUgRGlyZWN0aW9uID0gJ3RvcCcgfCAnbGVmdCcgfCAnYm90dG9tJyB8ICdyaWdodCc7XG5cbmV4cG9ydCB0eXBlIFZhcmlhbnRGbGlwT3JkZXIgPSB7XG4gICAgc3RhcnQ6IHN0cmluZztcbiAgICBtaWRkbGU6IHN0cmluZztcbiAgICBlbmQ6IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIFBvc2l0aW9uRmxpcE9yZGVyID0ge1xuICAgIHRvcDogc3RyaW5nO1xuICAgIHJpZ2h0OiBzdHJpbmc7XG4gICAgYm90dG9tOiBzdHJpbmc7XG4gICAgbGVmdDogc3RyaW5nO1xufTtcblxuZXhwb3J0IHR5cGUgTmFub1BvcFBvc2l0aW9uID1cbiAgICAndG9wLXN0YXJ0JyB8ICd0b3AtbWlkZGxlJyB8ICd0b3AtZW5kJyB8XG4gICAgJ2xlZnQtc3RhcnQnIHwgJ2xlZnQtbWlkZGxlJyB8ICdsZWZ0LWVuZCcgfFxuICAgICdyaWdodC1zdGFydCcgfCAncmlnaHQtbWlkZGxlJyB8ICdyaWdodC1lbmQnIHxcbiAgICAnYm90dG9tLXN0YXJ0JyB8ICdib3R0b20tbWlkZGxlJyB8ICdib3R0b20tZW5kJyB8IERpcmVjdGlvbjtcblxuZXhwb3J0IHR5cGUgTmFub1BvcE9wdGlvbnMgPSB7XG4gICAgY29udGFpbmVyOiBET01SZWN0O1xuICAgIHBvc2l0aW9uOiBOYW5vUG9wUG9zaXRpb247XG4gICAgdmFyaWFudEZsaXBPcmRlcjogVmFyaWFudEZsaXBPcmRlcjtcbiAgICBwb3NpdGlvbkZsaXBPcmRlcjogUG9zaXRpb25GbGlwT3JkZXI7XG4gICAgbWFyZ2luOiBudW1iZXI7XG4gICAgcmVmZXJlbmNlPzogSFRNTEVsZW1lbnQ7XG4gICAgcG9wcGVyPzogSFRNTEVsZW1lbnQ7XG59O1xuXG50eXBlIEF2YWlsYWJsZVBvc2l0aW9ucyA9IHtcbiAgICB0OiBudW1iZXI7XG4gICAgYjogbnVtYmVyO1xuICAgIGw6IG51bWJlcjtcbiAgICByOiBudW1iZXI7XG59O1xuXG50eXBlIEF2YWlsYWJsZVZhcmlhbnRzID0ge1xuICAgIHZzOiBudW1iZXI7XG4gICAgdm06IG51bWJlcjtcbiAgICB2ZTogbnVtYmVyO1xuICAgIGhzOiBudW1iZXI7XG4gICAgaG06IG51bWJlcjtcbiAgICBoZTogbnVtYmVyO1xufTtcblxudHlwZSBQb3NpdGlvblBhaXJzID0gW0RpcmVjdGlvbiwgRGlyZWN0aW9uXTtcbmV4cG9ydCB0eXBlIFBvc2l0aW9uTWF0Y2ggPSAndHMnIHwgJ3RtJyB8ICd0ZScgfCAnYnMnIHwgJ2JtJyB8ICdiZScgfCAnbHMnIHwgJ2xtJyB8ICdsZScgfCAncnMnIHwgJ3JtJyB8ICdyZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTmFub1BvcCB7XG4gICAgdXBkYXRlKHVwZGF0ZWRPcHRpb25zPzogUGFydGlhbDxOYW5vUG9wT3B0aW9ucz4pOiBQb3NpdGlvbk1hdGNoIHwgbnVsbDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBOYW5vUG9wQ29uc3RydWN0b3Ige1xuXG4gICAgLyoqXG4gICAgICogQHBhcmFtIHJlZmVyZW5jZSBSZWZlcmVuY2UgZWxlbWVudFxuICAgICAqIEBwYXJhbSBwb3BwZXIgQWN0dWFsIHBvcHBlciBlbGVtZW50XG4gICAgICogQHBhcmFtIG9wdGlvbnMgT3B0aW9uYWwgb3B0aW9uc1xuICAgICAqL1xuICAgIChyZWZlcmVuY2U6IEhUTUxFbGVtZW50LCBwb3BwZXI6IEhUTUxFbGVtZW50LCBvcHRpb25zPzogUGFydGlhbDxOYW5vUG9wT3B0aW9ucz4pOiBOYW5vUG9wO1xuXG4gICAgLyoqXG4gICAgICogQHBhcmFtIG9wdGlvbnMgUGFydGlhbCBvcHRpb25zIHdoaWNoIGdldCBtZXJnZWQgd2l0aCB0aGUgY3VycmVudCBvbmVcbiAgICAgKi9cbiAgICAob3B0aW9ucz86IFBhcnRpYWw8TmFub1BvcE9wdGlvbnM+KTogTmFub1BvcDtcbn1cblxuLy8gRXhwb3J0IGN1cnJlbnQgdmVyc2lvblxuZXhwb3J0IGNvbnN0IHZlcnNpb24gPSBWRVJTSU9OO1xuXG4vLyBFeHBvcnQgZGVmYXVsdFxuZXhwb3J0IGNvbnN0IGRlZmF1bHRzID0ge1xuICAgIHZhcmlhbnRGbGlwT3JkZXI6IHtzdGFydDogJ3NtZScsIG1pZGRsZTogJ21zZScsIGVuZDogJ2Vtcyd9LFxuICAgIHBvc2l0aW9uRmxpcE9yZGVyOiB7dG9wOiAndGJybCcsIHJpZ2h0OiAncmx0YicsIGJvdHRvbTogJ2J0cmwnLCBsZWZ0OiAnbHJidCd9LFxuICAgIHBvc2l0aW9uOiAnYm90dG9tJyxcbiAgICBtYXJnaW46IDhcbn07XG5cbi8qKlxuICogUmVwb3NpdGlvbnMgYW4gZWxlbWVudCBvbmNlIHVzaW5nIHRoZSBwcm92aWRlZCBvcHRpb25zIGFuZCBlbGVtZW50cy5cbiAqIEBwYXJhbSByZWZlcmVuY2UgUmVmZXJlbmNlIGVsZW1lbnRcbiAqIEBwYXJhbSBwb3BwZXIgUG9wcGVyIGVsZW1lbnRcbiAqIEBwYXJhbSBvcHQgT3B0aW9uYWwsIGFkZGl0aW9uYWwgb3B0aW9uc1xuICovXG5leHBvcnQgY29uc3QgcmVwb3NpdGlvbiA9IChcbiAgICByZWZlcmVuY2U6IEhUTUxFbGVtZW50LFxuICAgIHBvcHBlcjogSFRNTEVsZW1lbnQsXG4gICAgb3B0PzogUGFydGlhbDxOYW5vUG9wT3B0aW9ucz5cbik6IFBvc2l0aW9uTWF0Y2ggfCBudWxsID0+IHtcbiAgICBjb25zdCB7XG4gICAgICAgIGNvbnRhaW5lcixcbiAgICAgICAgbWFyZ2luLFxuICAgICAgICBwb3NpdGlvbixcbiAgICAgICAgdmFyaWFudEZsaXBPcmRlcixcbiAgICAgICAgcG9zaXRpb25GbGlwT3JkZXJcbiAgICB9ID0ge1xuICAgICAgICBjb250YWluZXI6IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxcbiAgICAgICAgLi4uZGVmYXVsdHMsXG4gICAgICAgIC4uLm9wdFxuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBSZXNldCBwb3NpdGlvbiB0byByZXNvbHZlIHZpZXdwb3J0XG4gICAgICogU2VlIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0NTUy9wb3NpdGlvbiNmaXhlZFxuICAgICAqL1xuICAgIGNvbnN0IHtsZWZ0OiBvcmlnaW5hbExlZnQsIHRvcDogb3JpZ2luYWxUb3B9ID0gcG9wcGVyLnN0eWxlO1xuICAgIHBvcHBlci5zdHlsZS5sZWZ0ID0gJzAnO1xuICAgIHBvcHBlci5zdHlsZS50b3AgPSAnMCc7XG5cbiAgICBjb25zdCByZWZCb3ggPSByZWZlcmVuY2UuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgY29uc3QgcG9wQm94ID0gcG9wcGVyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuXG4gICAgLyoqXG4gICAgICogSG9sZHMgY29vcmRpbmF0ZXMgb2YgdG9wLCBsZWZ0LCBib3R0b20gYW5kIHJpZ2h0IGFsaWdubWVudFxuICAgICAqL1xuICAgIGNvbnN0IHBvc2l0aW9uU3RvcmU6IEF2YWlsYWJsZVBvc2l0aW9ucyA9IHtcbiAgICAgICAgdDogcmVmQm94LnRvcCAtIHBvcEJveC5oZWlnaHQgLSBtYXJnaW4sXG4gICAgICAgIGI6IHJlZkJveC5ib3R0b20gKyBtYXJnaW4sXG4gICAgICAgIHI6IHJlZkJveC5yaWdodCArIG1hcmdpbixcbiAgICAgICAgbDogcmVmQm94LmxlZnQgLSBwb3BCb3gud2lkdGggLSBtYXJnaW5cbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogSG9sZHMgY29ycmVzcG9uZGluZyB2YXJpYW50cyAoc3RhcnQsIG1pZGRsZSwgZW5kKS5cbiAgICAgKiBUaGUgdmFsdWVzIGRlcGVuZCBvbiBob3Jpem9udGFsIC8gdmVydGljYWwgb3JpZW50YXRpb25cbiAgICAgKi9cbiAgICBjb25zdCB2YXJpYW50U3RvcmU6IEF2YWlsYWJsZVZhcmlhbnRzID0ge1xuICAgICAgICB2czogcmVmQm94LmxlZnQsXG4gICAgICAgIHZtOiByZWZCb3gubGVmdCArIHJlZkJveC53aWR0aCAvIDIgKyAtcG9wQm94LndpZHRoIC8gMixcbiAgICAgICAgdmU6IHJlZkJveC5sZWZ0ICsgcmVmQm94LndpZHRoIC0gcG9wQm94LndpZHRoLFxuICAgICAgICBoczogcmVmQm94LnRvcCxcbiAgICAgICAgaG06IHJlZkJveC5ib3R0b20gLSByZWZCb3guaGVpZ2h0IC8gMiAtIHBvcEJveC5oZWlnaHQgLyAyLFxuICAgICAgICBoZTogcmVmQm94LmJvdHRvbSAtIHBvcEJveC5oZWlnaHRcbiAgICB9O1xuXG4gICAgLy8gRXh0cmFjdCBwb3NpdGlvbiBhbmQgdmFyaWFudFxuICAgIC8vIFRvcC1zdGFydCAtPiB0b3AgaXMgXCJwb3NpdGlvblwiIGFuZCBcInN0YXJ0XCIgaXMgdGhlIHZhcmlhbnRcbiAgICBjb25zdCBbcG9zS2V5LCB2YXJLZXkgPSAnbWlkZGxlJ10gPSBwb3NpdGlvbi5zcGxpdCgnLScpO1xuICAgIGNvbnN0IHBvc2l0aW9ucyA9IHBvc2l0aW9uRmxpcE9yZGVyW3Bvc0tleSBhcyBrZXlvZiBQb3NpdGlvbkZsaXBPcmRlcl07XG4gICAgY29uc3QgdmFyaWFudHMgPSB2YXJpYW50RmxpcE9yZGVyW3ZhcktleSBhcyBrZXlvZiBWYXJpYW50RmxpcE9yZGVyXTtcblxuICAgIC8vIFRyeSBvdXQgYWxsIHBvc3NpYmxlIGNvbWJpbmF0aW9ucywgc3RhcnRpbmcgd2l0aCB0aGUgcHJlZmVycmVkIG9uZS5cbiAgICBjb25zdCB7dG9wLCBsZWZ0LCBib3R0b20sIHJpZ2h0fSA9IGNvbnRhaW5lcjtcblxuICAgIGZvciAoY29uc3QgcCBvZiBwb3NpdGlvbnMpIHtcbiAgICAgICAgY29uc3QgdmVydGljYWwgPSAocCA9PT0gJ3QnIHx8IHAgPT09ICdiJyk7XG5cbiAgICAgICAgLy8gVGhlIHBvc2l0aW9uLXZhbHVlXG4gICAgICAgIGNvbnN0IHBvc2l0aW9uVmFsID0gcG9zaXRpb25TdG9yZVtwIGFzIGtleW9mIEF2YWlsYWJsZVBvc2l0aW9uc107XG5cbiAgICAgICAgLy8gV2hpY2ggcHJvcGVydHkgaGFzIHRvIGJlIGNoYW5nZXMuXG4gICAgICAgIGNvbnN0IFtwb3NpdGlvbktleSwgdmFyaWFudEtleV0gPSAodmVydGljYWwgPyBbJ3RvcCcsICdsZWZ0J10gOiBbJ2xlZnQnLCAndG9wJ10pIGFzIFBvc2l0aW9uUGFpcnM7XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIGJveCByZWZlcnMgdG8gdGhlIHNpemUgb2YgdGhlIHBvcHBlciBlbGVtZW50LiBEZXBlbmRpbmcgb24gdGhlIG9yaWVudGF0aW9uIHRoaXMgaXMgd2lkdGggb3IgaGVpZ2h0LlxuICAgICAgICAgKiBUaGUgbGltaXQgaXMgdGhlIGNvcnJlc3BvbmRpbmcsIG1heGltdW0gdmFsdWUgZm9yIHRoaXMgcG9zaXRpb24uXG4gICAgICAgICAqL1xuICAgICAgICBjb25zdCBbcG9zaXRpb25TaXplLCB2YXJpYW50U2l6ZV0gPSB2ZXJ0aWNhbCA/IFtwb3BCb3guaGVpZ2h0LCBwb3BCb3gud2lkdGhdIDogW3BvcEJveC53aWR0aCwgcG9wQm94LmhlaWdodF07XG4gICAgICAgIGNvbnN0IFtwb3NpdGlvbk1heGltdW0sIHZhcmlhbnRNYXhpbXVtXSA9IHZlcnRpY2FsID8gW2JvdHRvbSwgcmlnaHRdIDogW3JpZ2h0LCBib3R0b21dO1xuICAgICAgICBjb25zdCBbcG9zaXRpb25NaW5pbXVtLCB2YXJpYW50TWluaW11bV0gPSB2ZXJ0aWNhbCA/IFt0b3AsIGxlZnRdIDogW2xlZnQsIHRvcF07XG5cbiAgICAgICAgLy8gU2tpcCBwcmUtY2xpcHBlZCB2YWx1ZXNcbiAgICAgICAgaWYgKHBvc2l0aW9uVmFsIDwgcG9zaXRpb25NaW5pbXVtIHx8IChwb3NpdGlvblZhbCArIHBvc2l0aW9uU2l6ZSkgPiBwb3NpdGlvbk1heGltdW0pIHtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgZm9yIChjb25zdCB2IG9mIHZhcmlhbnRzKSB7XG5cbiAgICAgICAgICAgIC8vIFRoZSBwb3NpdGlvbi12YWx1ZSwgdGhlIHJlbGF0ZWQgc2l6ZSB2YWx1ZSBvZiB0aGUgcG9wcGVyIGFuZCB0aGUgbGltaXRcbiAgICAgICAgICAgIGNvbnN0IHZhcmlhbnRWYWwgPSB2YXJpYW50U3RvcmVbKCh2ZXJ0aWNhbCA/ICd2JyA6ICdoJykgKyB2KSBhcyBrZXlvZiBBdmFpbGFibGVWYXJpYW50c107XG5cbiAgICAgICAgICAgIGlmICh2YXJpYW50VmFsIDwgdmFyaWFudE1pbmltdW0gfHwgKHZhcmlhbnRWYWwgKyB2YXJpYW50U2l6ZSkgPiB2YXJpYW50TWF4aW11bSkge1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBBcHBseSBzdHlsZXMgYW5kIG5vcm1hbGl6ZSB2aWV3cG9ydFxuICAgICAgICAgICAgcG9wcGVyLnN0eWxlW3ZhcmlhbnRLZXldID0gYCR7dmFyaWFudFZhbCAtIHBvcEJveFt2YXJpYW50S2V5XX1weGA7XG4gICAgICAgICAgICBwb3BwZXIuc3R5bGVbcG9zaXRpb25LZXldID0gYCR7cG9zaXRpb25WYWwgLSBwb3BCb3hbcG9zaXRpb25LZXldfXB4YDtcbiAgICAgICAgICAgIHJldHVybiAocCArIHYpIGFzIFBvc2l0aW9uTWF0Y2g7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBSZXZlcnQgc3R5bGUgdmFsdWVzICh3b24ndCB3b3JrIHdpdGggc3R5bGVkLWVsZW1lbnRzIG9yIHNpbWlsYXIgc3lzdGVtcylcbiAgICAvLyBcIkZpeFwiIGZvciBodHRwczovL2dpdGh1Yi5jb20vU2ltb253ZXAvbmFub3BvcC9pc3N1ZXMvN1xuICAgIHBvcHBlci5zdHlsZS5sZWZ0ID0gb3JpZ2luYWxMZWZ0O1xuICAgIHBvcHBlci5zdHlsZS50b3AgPSBvcmlnaW5hbFRvcDtcblxuICAgIHJldHVybiBudWxsO1xufTtcblxuLyoqXG4gKiBDcmVhdGVzIGEgc3RhdGVmdWwgcG9wcGVyLlxuICogWW91IGNhbiBlaXRoZXIuLi5cbiAqIC4uLiBwYXNzIGFuIG9wdGlvbnMgb2JqZWN0OiBjcmVhdGVQb3BwZXIoPG9wdGlvbnM+KVxuICogLi4uIHBhc3MgYm90aCB0aGUgcmVmZXJlbmNlIGFuZCBwb3BwZXI6IGNyZWF0ZSg8cmVmPiwgPGVsPiwgPD9vcHRpb25zPilcbiAqIC4uLiBwYXNzIG5vdGhpbmcsIGluIHRoaXMgY2FzZSB5b3UnbGwgaGF2ZSB0byBzZXQgYXQgbGVhc3QgYm90aCBhIHJlZmVyZW5jZSBhbmQgYSBwb3BwZXIgaW4gdXBkYXRlLlxuICpcbiAqIEBwYXJhbSByZWZlcmVuY2UgfCBvcHRpb25zIFJlZmVyZW5jZSBlbGVtZW50IG9yIG9wdGlvbnNcbiAqIEBwYXJhbSBwb3BwZXIgUG9wcGVyIGVsZW1lbnRcbiAqIEBwYXJhbSBvcHRpb25zIE9wdGlvbmFsIGFkZGl0aW9uYWwgb3B0aW9uc1xuICovXG5leHBvcnQgY29uc3QgY3JlYXRlUG9wcGVyOiBOYW5vUG9wQ29uc3RydWN0b3IgPSAoXG4gICAgcmVmZXJlbmNlPzogSFRNTEVsZW1lbnQgfCBQYXJ0aWFsPE5hbm9Qb3BPcHRpb25zPixcbiAgICBwb3BwZXI/OiBIVE1MRWxlbWVudCxcbiAgICBvcHRpb25zPzogUGFydGlhbDxOYW5vUG9wT3B0aW9ucz5cbik6IE5hbm9Qb3AgPT4ge1xuXG4gICAgLy8gUmVzb2x2ZSBvcHRpb25zXG4gICAgY29uc3QgYmFzZU9wdGlvbnM6IFBhcnRpYWw8TmFub1BvcE9wdGlvbnM+ID0gdHlwZW9mIHJlZmVyZW5jZSA9PT0gJ29iamVjdCcgJiYgIShyZWZlcmVuY2UgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCkgP1xuICAgICAgICByZWZlcmVuY2UgOiB7cmVmZXJlbmNlLCBwb3BwZXIsIC4uLm9wdGlvbnN9O1xuXG4gICAgcmV0dXJuIHtcblxuICAgICAgICAvKipcbiAgICAgICAgICogUmVwb3NpdGlvbnMgdGhlIGN1cnJlbnQgcG9wcGVyLlxuICAgICAgICAgKiBAcGFyYW0gb3B0aW9ucyBPcHRpb25hbCBvcHRpb25zIHdoaWNoIGdldCBtZXJnZWQgd2l0aCB0aGUgY3VycmVudCBvbmVzLlxuICAgICAgICAgKi9cbiAgICAgICAgdXBkYXRlKG9wdGlvbnM6IFBhcnRpYWw8TmFub1BvcE9wdGlvbnM+ID0gYmFzZU9wdGlvbnMpOiBQb3NpdGlvbk1hdGNoIHwgbnVsbCB7XG4gICAgICAgICAgICBjb25zdCB7cmVmZXJlbmNlLCBwb3BwZXJ9ID0gT2JqZWN0LmFzc2lnbihiYXNlT3B0aW9ucywgb3B0aW9ucyk7XG5cbiAgICAgICAgICAgIGlmICghcG9wcGVyIHx8ICFyZWZlcmVuY2UpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1BvcHBlci0gb3IgcmVmZXJlbmNlLWVsZW1lbnQgbWlzc2luZy4nKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIHJlcG9zaXRpb24ocmVmZXJlbmNlLCBwb3BwZXIsIGJhc2VPcHRpb25zKTtcbiAgICAgICAgfVxuICAgIH07XG59O1xuIiwgImltcG9ydCAqIGFzIF8gZnJvbSAnLi91dGlscy91dGlscyc7XG5pbXBvcnQge3BhcnNlVG9IU1ZBfSBmcm9tICcuL3V0aWxzL2NvbG9yJztcbmltcG9ydCB7SFNWYUNvbG9yfSBmcm9tICcuL3V0aWxzL2hzdmFjb2xvcic7XG5pbXBvcnQgTW92ZWFibGUgZnJvbSAnLi9saWJzL21vdmVhYmxlJztcbmltcG9ydCBTZWxlY3RhYmxlIGZyb20gJy4vbGlicy9zZWxlY3RhYmxlJztcbmltcG9ydCBidWlsZFBpY2tyIGZyb20gJy4vdGVtcGxhdGUnO1xuaW1wb3J0IHtjcmVhdGVQb3BwZXJ9IGZyb20gJ25hbm9wb3AnO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBQaWNrciB7XG5cbiAgICAvLyBFeHBvc2UgcGlja3IgdXRpbHNcbiAgICBzdGF0aWMgdXRpbHMgPSBfO1xuXG4gICAgLy8gQXNzaWduIHZlcnNpb24gYW5kIGV4cG9ydFxuICAgIHN0YXRpYyB2ZXJzaW9uID0gVkVSU0lPTjtcblxuICAgIC8vIERlZmF1bHQgc3RyaW5nc1xuICAgIHN0YXRpYyBJMThOX0RFRkFVTFRTID0ge1xuXG4gICAgICAgIC8vIFN0cmluZ3MgdmlzaWJsZSBpbiB0aGUgVUlcbiAgICAgICAgJ3VpOmRpYWxvZyc6ICdjb2xvciBwaWNrZXIgZGlhbG9nJyxcbiAgICAgICAgJ2J0bjp0b2dnbGUnOiAndG9nZ2xlIGNvbG9yIHBpY2tlciBkaWFsb2cnLFxuICAgICAgICAnYnRuOnN3YXRjaCc6ICdjb2xvciBzd2F0Y2gnLFxuICAgICAgICAnYnRuOmxhc3QtY29sb3InOiAndXNlIHByZXZpb3VzIGNvbG9yJyxcbiAgICAgICAgJ2J0bjpzYXZlJzogJ1NhdmUnLFxuICAgICAgICAnYnRuOmNhbmNlbCc6ICdDYW5jZWwnLFxuICAgICAgICAnYnRuOmNsZWFyJzogJ0NsZWFyJyxcblxuICAgICAgICAvLyBTdHJpbmdzIHVzZWQgZm9yIGFyaWEtbGFiZWxzXG4gICAgICAgICdhcmlhOmJ0bjpzYXZlJzogJ3NhdmUgYW5kIGNsb3NlJyxcbiAgICAgICAgJ2FyaWE6YnRuOmNhbmNlbCc6ICdjYW5jZWwgYW5kIGNsb3NlJyxcbiAgICAgICAgJ2FyaWE6YnRuOmNsZWFyJzogJ2NsZWFyIGFuZCBjbG9zZScsXG4gICAgICAgICdhcmlhOmlucHV0JzogJ2NvbG9yIGlucHV0IGZpZWxkJyxcbiAgICAgICAgJ2FyaWE6cGFsZXR0ZSc6ICdjb2xvciBzZWxlY3Rpb24gYXJlYScsXG4gICAgICAgICdhcmlhOmh1ZSc6ICdodWUgc2VsZWN0aW9uIHNsaWRlcicsXG4gICAgICAgICdhcmlhOm9wYWNpdHknOiAnc2VsZWN0aW9uIHNsaWRlcidcbiAgICB9O1xuXG4gICAgLy8gRGVmYXVsdCBvcHRpb25zXG4gICAgc3RhdGljIERFRkFVTFRfT1BUSU9OUyA9IHtcbiAgICAgICAgYXBwQ2xhc3M6IG51bGwsXG4gICAgICAgIHRoZW1lOiAnY2xhc3NpYycsXG4gICAgICAgIHVzZUFzQnV0dG9uOiBmYWxzZSxcbiAgICAgICAgcGFkZGluZzogOCxcbiAgICAgICAgZGlzYWJsZWQ6IGZhbHNlLFxuICAgICAgICBjb21wYXJpc29uOiB0cnVlLFxuICAgICAgICBjbG9zZU9uU2Nyb2xsOiBmYWxzZSxcbiAgICAgICAgb3V0cHV0UHJlY2lzaW9uOiAwLFxuICAgICAgICBsb2NrT3BhY2l0eTogZmFsc2UsXG4gICAgICAgIGF1dG9SZXBvc2l0aW9uOiB0cnVlLFxuICAgICAgICBjb250YWluZXI6ICdib2R5JyxcblxuICAgICAgICBjb21wb25lbnRzOiB7XG4gICAgICAgICAgICBpbnRlcmFjdGlvbjoge31cbiAgICAgICAgfSxcblxuICAgICAgICBpMThuOiB7fSxcbiAgICAgICAgc3dhdGNoZXM6IG51bGwsXG4gICAgICAgIGlubGluZTogZmFsc2UsXG4gICAgICAgIHNsaWRlcnM6IG51bGwsXG5cbiAgICAgICAgZGVmYXVsdDogJyM0MjQ0NWEnLFxuICAgICAgICBkZWZhdWx0UmVwcmVzZW50YXRpb246IG51bGwsXG4gICAgICAgIHBvc2l0aW9uOiAnYm90dG9tLW1pZGRsZScsXG4gICAgICAgIGFkanVzdGFibGVOdW1iZXJzOiB0cnVlLFxuICAgICAgICBzaG93QWx3YXlzOiBmYWxzZSxcblxuICAgICAgICBjbG9zZVdpdGhLZXk6ICdFc2NhcGUnXG4gICAgfTtcblxuICAgIC8vIFdpbGwgYmUgdXNlZCB0byBwcmV2ZW50IHNwZWNpZmljIGFjdGlvbnMgZHVyaW5nIGluaXRpbGl6YXRpb25cbiAgICBfaW5pdGlhbGl6aW5nQWN0aXZlID0gdHJ1ZTtcblxuICAgIC8vIElmIHRoZSBjdXJyZW50IGNvbG9yIHZhbHVlIHNob3VsZCBiZSByZWNhbGN1bGF0ZWRcbiAgICBfcmVjYWxjID0gdHJ1ZTtcblxuICAgIC8vIFBvc2l0aW9uaW5nIGVuZ2luZSBhbmQgRE9NLVRyZWVcbiAgICBfbmFub3BvcCA9IG51bGw7XG4gICAgX3Jvb3QgPSBudWxsO1xuXG4gICAgLy8gQ3VycmVudCBhbmQgbGFzdCBjb2xvciBmb3IgY29tcGFyaXNvblxuICAgIF9jb2xvciA9IEhTVmFDb2xvcigpO1xuICAgIF9sYXN0Q29sb3IgPSBIU1ZhQ29sb3IoKTtcbiAgICBfc3dhdGNoQ29sb3JzID0gW107XG5cbiAgICAvLyBBbmltYXRpb24gZnJhbWUgdXNlZCBmb3Igc2V0dXAuXG4gICAgLy8gV2lsbCBiZSBjYW5jZWxsZWQgaW4gY2FzZSBvZiBkZXN0cnVjdGlvbi5cbiAgICBfc2V0dXBBbmltYXRpb25GcmFtZSA9IG51bGw7XG5cbiAgICAvLyBFdmVubGlzdGVuZXIgbmFtZTogW2NhbGxiYWNrc11cbiAgICBfZXZlbnRMaXN0ZW5lciA9IHtcbiAgICAgICAgaW5pdDogW10sXG4gICAgICAgIHNhdmU6IFtdLFxuICAgICAgICBoaWRlOiBbXSxcbiAgICAgICAgc2hvdzogW10sXG4gICAgICAgIGNsZWFyOiBbXSxcbiAgICAgICAgY2hhbmdlOiBbXSxcbiAgICAgICAgY2hhbmdlc3RvcDogW10sXG4gICAgICAgIGNhbmNlbDogW10sXG4gICAgICAgIHN3YXRjaHNlbGVjdDogW11cbiAgICB9O1xuXG4gICAgY29uc3RydWN0b3Iob3B0KSB7XG5cbiAgICAgICAgLy8gQXNzaWduIGRlZmF1bHQgdmFsdWVzXG4gICAgICAgIHRoaXMub3B0aW9ucyA9IG9wdCA9IE9iamVjdC5hc3NpZ24oey4uLlBpY2tyLkRFRkFVTFRfT1BUSU9OU30sIG9wdCk7XG5cbiAgICAgICAgY29uc3Qge3N3YXRjaGVzLCBjb21wb25lbnRzLCB0aGVtZSwgc2xpZGVycywgbG9ja09wYWNpdHksIHBhZGRpbmd9ID0gb3B0O1xuXG4gICAgICAgIGlmIChbJ25hbm8nLCAnbW9ub2xpdGgnXS5pbmNsdWRlcyh0aGVtZSkgJiYgIXNsaWRlcnMpIHtcbiAgICAgICAgICAgIG9wdC5zbGlkZXJzID0gJ2gnO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gQ2hlY2sgaW50ZXJhY3Rpb24gc2VjdGlvblxuICAgICAgICBpZiAoIWNvbXBvbmVudHMuaW50ZXJhY3Rpb24pIHtcbiAgICAgICAgICAgIGNvbXBvbmVudHMuaW50ZXJhY3Rpb24gPSB7fTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIE92ZXJ3cml0ZSBwYWxldHRlIGlmIHByZXZpZXcsIG9wYWNpdHkgb3IgaHVlIGFyZSB0cnVlXG4gICAgICAgIGNvbnN0IHtwcmV2aWV3LCBvcGFjaXR5LCBodWUsIHBhbGV0dGV9ID0gY29tcG9uZW50cztcbiAgICAgICAgY29tcG9uZW50cy5vcGFjaXR5ID0gKCFsb2NrT3BhY2l0eSAmJiBvcGFjaXR5KTtcbiAgICAgICAgY29tcG9uZW50cy5wYWxldHRlID0gcGFsZXR0ZSB8fCBwcmV2aWV3IHx8IG9wYWNpdHkgfHwgaHVlO1xuXG4gICAgICAgIC8vIEluaXRpYWxpemUgcGlja2VyXG4gICAgICAgIHRoaXMuX3ByZUJ1aWxkKCk7XG4gICAgICAgIHRoaXMuX2J1aWxkQ29tcG9uZW50cygpO1xuICAgICAgICB0aGlzLl9iaW5kRXZlbnRzKCk7XG4gICAgICAgIHRoaXMuX2ZpbmFsQnVpbGQoKTtcblxuICAgICAgICAvLyBBcHBlbmQgcHJlLWRlZmluZWQgc3dhdGNoIGNvbG9yc1xuICAgICAgICBpZiAoc3dhdGNoZXMgJiYgc3dhdGNoZXMubGVuZ3RoKSB7XG4gICAgICAgICAgICBzd2F0Y2hlcy5mb3JFYWNoKGNvbG9yID0+IHRoaXMuYWRkU3dhdGNoKGNvbG9yKSk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBJbml0aWFsaXplIHBvc2l0aW9uaW5nIGVuZ2luZVxuICAgICAgICBjb25zdCB7YnV0dG9uLCBhcHB9ID0gdGhpcy5fcm9vdDtcbiAgICAgICAgdGhpcy5fbmFub3BvcCA9IGNyZWF0ZVBvcHBlcihidXR0b24sIGFwcCwge1xuICAgICAgICAgICAgbWFyZ2luOiBwYWRkaW5nXG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIEluaXRpYWxpemUgYWNjZXNzaWJpbGl0eVxuICAgICAgICBidXR0b24uc2V0QXR0cmlidXRlKCdyb2xlJywgJ2J1dHRvbicpO1xuICAgICAgICBidXR0b24uc2V0QXR0cmlidXRlKCdhcmlhLWxhYmVsJywgdGhpcy5fdCgnYnRuOnRvZ2dsZScpKTtcblxuICAgICAgICAvLyBJbml0aWxpemF0aW9uIGlzIGZpbmlzaCwgcGlja3IgaXMgdmlzaWJsZSBhbmQgcmVhZHkgZm9yIHVzYWdlXG4gICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICB0aGlzLl9zZXR1cEFuaW1hdGlvbkZyYW1lID0gcmVxdWVzdEFuaW1hdGlvbkZyYW1lKChmdW5jdGlvbiBjYigpIHtcblxuICAgICAgICAgICAgLy8gVE9ETzogUGVyZm9ybWFuY2UgaXNzdWUgZHVlIHRvIGhpZ2ggY2FsbC1yYXRlP1xuICAgICAgICAgICAgaWYgKCFhcHAub2Zmc2V0V2lkdGgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVxdWVzdEFuaW1hdGlvbkZyYW1lKGNiKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gQXBwbHkgZGVmYXVsdCBjb2xvclxuICAgICAgICAgICAgdGhhdC5zZXRDb2xvcihvcHQuZGVmYXVsdCk7XG4gICAgICAgICAgICB0aGF0Ll9yZVBvc2l0aW9uaW5nUGlja2VyKCk7XG5cbiAgICAgICAgICAgIC8vIEluaXRpYWxpemUgY29sb3IgcmVwcmVzZW50YXRpb25cbiAgICAgICAgICAgIGlmIChvcHQuZGVmYXVsdFJlcHJlc2VudGF0aW9uKSB7XG4gICAgICAgICAgICAgICAgdGhhdC5fcmVwcmVzZW50YXRpb24gPSBvcHQuZGVmYXVsdFJlcHJlc2VudGF0aW9uO1xuICAgICAgICAgICAgICAgIHRoYXQuc2V0Q29sb3JSZXByZXNlbnRhdGlvbih0aGF0Ll9yZXByZXNlbnRhdGlvbik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIFNob3cgcGlja3IgaWYgbG9ja2VkXG4gICAgICAgICAgICBpZiAob3B0LnNob3dBbHdheXMpIHtcbiAgICAgICAgICAgICAgICB0aGF0LnNob3coKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gSW5pdGlhbGl6YXRpb24gaXMgZG9uZSAtIHBpY2tyIGlzIHVzYWJsZSwgZmlyZSBpbml0IGV2ZW50XG4gICAgICAgICAgICB0aGF0Ll9pbml0aWFsaXppbmdBY3RpdmUgPSBmYWxzZTtcbiAgICAgICAgICAgIHRoYXQuX2VtaXQoJ2luaXQnKTtcbiAgICAgICAgfSkpO1xuICAgIH1cblxuICAgIC8vIENyZWF0ZSBpbnN0YW5jZSB2aWEgbWV0aG9kXG4gICAgc3RhdGljIGNyZWF0ZSA9IG9wdGlvbnMgPT4gbmV3IFBpY2tyKG9wdGlvbnMpO1xuXG4gICAgLy8gRG9lcyBvbmx5IHRoZSBhYnNvbHV0bHkgYmFzaWMgdGhpbmcgdG8gaW5pdGlhbGl6ZSB0aGUgY29tcG9uZW50c1xuICAgIF9wcmVCdWlsZCgpIHtcbiAgICAgICAgY29uc3Qge29wdGlvbnN9ID0gdGhpcztcblxuICAgICAgICAvLyBSZXNvbHZlIGVsZW1lbnRzXG4gICAgICAgIGZvciAoY29uc3QgdHlwZSBvZiBbJ2VsJywgJ2NvbnRhaW5lciddKSB7XG4gICAgICAgICAgICBvcHRpb25zW3R5cGVdID0gXy5yZXNvbHZlRWxlbWVudChvcHRpb25zW3R5cGVdKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIENyZWF0ZSBlbGVtZW50IGFuZCBhcHBlbmQgaXQgdG8gYm9keSB0b1xuICAgICAgICAvLyBQcmV2ZW50IGluaXRpYWxpemF0aW9uIGVycm9yc1xuICAgICAgICB0aGlzLl9yb290ID0gYnVpbGRQaWNrcih0aGlzKTtcblxuICAgICAgICAvLyBDaGVjayBpZiBhIGN1c3RvbSBidXR0b24gaXMgdXNlZFxuICAgICAgICBpZiAob3B0aW9ucy51c2VBc0J1dHRvbikge1xuICAgICAgICAgICAgdGhpcy5fcm9vdC5idXR0b24gPSBvcHRpb25zLmVsOyAvLyBSZXBsYWNlIGJ1dHRvbiB3aXRoIGN1c3RvbWl6ZWQgYnV0dG9uXG4gICAgICAgIH1cblxuICAgICAgICBvcHRpb25zLmNvbnRhaW5lci5hcHBlbmRDaGlsZCh0aGlzLl9yb290LnJvb3QpO1xuICAgIH1cblxuICAgIF9maW5hbEJ1aWxkKCkge1xuICAgICAgICBjb25zdCBvcHQgPSB0aGlzLm9wdGlvbnM7XG4gICAgICAgIGNvbnN0IHJvb3QgPSB0aGlzLl9yb290O1xuXG4gICAgICAgIC8vIFJlbW92ZSBmcm9tIGJvZHlcbiAgICAgICAgb3B0LmNvbnRhaW5lci5yZW1vdmVDaGlsZChyb290LnJvb3QpO1xuXG4gICAgICAgIGlmIChvcHQuaW5saW5lKSB7XG4gICAgICAgICAgICBjb25zdCBwYXJlbnQgPSBvcHQuZWwucGFyZW50RWxlbWVudDtcblxuICAgICAgICAgICAgaWYgKG9wdC5lbC5uZXh0U2libGluZykge1xuICAgICAgICAgICAgICAgIHBhcmVudC5pbnNlcnRCZWZvcmUocm9vdC5hcHAsIG9wdC5lbC5uZXh0U2libGluZyk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHBhcmVudC5hcHBlbmRDaGlsZChyb290LmFwcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBvcHQuY29udGFpbmVyLmFwcGVuZENoaWxkKHJvb3QuYXBwKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIERvbid0IHJlcGxhY2UgdGhlIHRoZSBlbGVtZW50IGlmIGEgY3VzdG9tIGJ1dHRvbiBpcyB1c2VkXG4gICAgICAgIGlmICghb3B0LnVzZUFzQnV0dG9uKSB7XG5cbiAgICAgICAgICAgIC8vIFJlcGxhY2UgZWxlbWVudCB3aXRoIGFjdHVhbCBjb2xvci1waWNrZXJcbiAgICAgICAgICAgIG9wdC5lbC5wYXJlbnROb2RlLnJlcGxhY2VDaGlsZChyb290LnJvb3QsIG9wdC5lbCk7XG4gICAgICAgIH0gZWxzZSBpZiAob3B0LmlubGluZSkge1xuICAgICAgICAgICAgb3B0LmVsLnJlbW92ZSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gQ2hlY2sgaWYgaXQgc2hvdWxkIGJlIGltbWVkaWF0bHkgZGlzYWJsZWRcbiAgICAgICAgaWYgKG9wdC5kaXNhYmxlZCkge1xuICAgICAgICAgICAgdGhpcy5kaXNhYmxlKCk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBDaGVjayBpZiBjb2xvciBjb21wYXJpc29uIGlzIGRpc2FibGVkLCBpZiB5ZXMgLSByZW1vdmUgdHJhbnNpdGlvbnMgc28gZXZlcnl0aGluZyBrZWVwcyBzbW9vdGhseVxuICAgICAgICBpZiAoIW9wdC5jb21wYXJpc29uKSB7XG4gICAgICAgICAgICByb290LmJ1dHRvbi5zdHlsZS50cmFuc2l0aW9uID0gJ25vbmUnO1xuXG4gICAgICAgICAgICBpZiAoIW9wdC51c2VBc0J1dHRvbikge1xuICAgICAgICAgICAgICAgIHJvb3QucHJldmlldy5sYXN0Q29sb3Iuc3R5bGUudHJhbnNpdGlvbiA9ICdub25lJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuaGlkZSgpO1xuICAgIH1cblxuICAgIF9idWlsZENvbXBvbmVudHMoKSB7XG5cbiAgICAgICAgLy8gSW5zdGFuY2UgcmVmZXJlbmNlXG4gICAgICAgIGNvbnN0IGluc3QgPSB0aGlzO1xuICAgICAgICBjb25zdCBjcyA9IHRoaXMub3B0aW9ucy5jb21wb25lbnRzO1xuICAgICAgICBjb25zdCBzbGlkZXJzID0gKGluc3Qub3B0aW9ucy5zbGlkZXJzIHx8ICd2JykucmVwZWF0KDIpO1xuICAgICAgICBjb25zdCBbc28sIHNoXSA9IHNsaWRlcnMubWF0Y2goL15bdmhdKyQvZykgPyBzbGlkZXJzIDogW107XG5cbiAgICAgICAgLy8gUmUtYXNzaWduIGlmIG51bGxcbiAgICAgICAgY29uc3QgZ2V0Q29sb3IgPSAoKSA9PlxuICAgICAgICAgICAgdGhpcy5fY29sb3IgfHwgKHRoaXMuX2NvbG9yID0gdGhpcy5fbGFzdENvbG9yLmNsb25lKCkpO1xuXG4gICAgICAgIGNvbnN0IGNvbXBvbmVudHMgPSB7XG5cbiAgICAgICAgICAgIHBhbGV0dGU6IE1vdmVhYmxlKHtcbiAgICAgICAgICAgICAgICBlbGVtZW50OiBpbnN0Ll9yb290LnBhbGV0dGUucGlja2VyLFxuICAgICAgICAgICAgICAgIHdyYXBwZXI6IGluc3QuX3Jvb3QucGFsZXR0ZS5wYWxldHRlLFxuXG4gICAgICAgICAgICAgICAgb25zdG9wOiAoKSA9PiBpbnN0Ll9lbWl0KCdjaGFuZ2VzdG9wJywgJ3NsaWRlcicsIGluc3QpLFxuICAgICAgICAgICAgICAgIG9uY2hhbmdlKHgsIHkpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFjcy5wYWxldHRlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBjb25zdCBjb2xvciA9IGdldENvbG9yKCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHtfcm9vdCwgb3B0aW9uc30gPSBpbnN0O1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB7bGFzdENvbG9yLCBjdXJyZW50Q29sb3J9ID0gX3Jvb3QucHJldmlldztcblxuICAgICAgICAgICAgICAgICAgICAvLyBVcGRhdGUgdGhlIGlucHV0IGZpZWxkIG9ubHkgaWYgdGhlIHVzZXIgaXMgY3VycmVudGx5IG5vdCB0eXBpbmdcbiAgICAgICAgICAgICAgICAgICAgaWYgKGluc3QuX3JlY2FsYykge1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBDYWxjdWxhdGUgc2F0dXJhdGlvbiBiYXNlZCBvbiB0aGUgcG9zaXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yLnMgPSB4ICogMTAwO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBDYWxjdWxhdGUgdGhlIHZhbHVlXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvci52ID0gMTAwIC0geSAqIDEwMDtcblxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gUHJldmVudCBmYWxsaW5nIHVuZGVyIHplcm9cbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yLnYgPCAwID8gY29sb3IudiA9IDAgOiAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgaW5zdC5fdXBkYXRlT3V0cHV0KCdzbGlkZXInKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIC8vIFNldCBwaWNrZXIgYW5kIGdyYWRpZW50IGNvbG9yXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNzc1JHQmFTdHJpbmcgPSBjb2xvci50b1JHQkEoKS50b1N0cmluZygwKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50LnN0eWxlLmJhY2tncm91bmQgPSBjc3NSR0JhU3RyaW5nO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLndyYXBwZXIuc3R5bGUuYmFja2dyb3VuZCA9IGBcbiAgICAgICAgICAgICAgICAgICAgICAgIGxpbmVhci1ncmFkaWVudCh0byB0b3AsIHJnYmEoMCwgMCwgMCwgJHtjb2xvci5hfSksIHRyYW5zcGFyZW50KSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxpbmVhci1ncmFkaWVudCh0byBsZWZ0LCBoc2xhKCR7Y29sb3IuaH0sIDEwMCUsIDUwJSwgJHtjb2xvci5hfSksIHJnYmEoMjU1LCAyNTUsIDI1NSwgJHtjb2xvci5hfSkpXG4gICAgICAgICAgICAgICAgICAgIGA7XG5cbiAgICAgICAgICAgICAgICAgICAgLy8gQ2hlY2sgaWYgY29sb3IgaXMgbG9ja2VkXG4gICAgICAgICAgICAgICAgICAgIGlmICghb3B0aW9ucy5jb21wYXJpc29uKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBfcm9vdC5idXR0b24uc3R5bGUuc2V0UHJvcGVydHkoJy0tcGNyLWNvbG9yJywgY3NzUkdCYVN0cmluZyk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIElmIHRoZSB1c2VyIGNoYW5nZXMgdGhlIGNvbG9yLCByZW1vdmUgdGhlIGNsZWFyZWQgaWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgX3Jvb3QuYnV0dG9uLmNsYXNzTGlzdC5yZW1vdmUoJ2NsZWFyJyk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoIW9wdGlvbnMudXNlQXNCdXR0b24gJiYgIWluc3QuX2xhc3RDb2xvcikge1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBBcHBseSBjb2xvciB0byBib3RoIHRoZSBsYXN0IGFuZCBjdXJyZW50IGNvbG9yIHNpbmNlIHRoZSBjdXJyZW50IHN0YXRlIGlzIGNsZWFyZWRcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhc3RDb2xvci5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1wY3ItY29sb3InLCBjc3NSR0JhU3RyaW5nKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIC8vIENoZWNrIGlmIHRoZXJlJ3MgYSBzd2F0Y2ggd2hpY2ggY29sb3IgbWF0Y2hlcyB0aGUgY3VycmVudCBvbmVcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgaGV4YSA9IGNvbG9yLnRvSEVYQSgpLnRvU3RyaW5nKCk7XG4gICAgICAgICAgICAgICAgICAgIGZvciAoY29uc3Qge2VsLCBjb2xvcn0gb2YgaW5zdC5fc3dhdGNoQ29sb3JzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbC5jbGFzc0xpc3RbaGV4YSA9PT0gY29sb3IudG9IRVhBKCkudG9TdHJpbmcoKSA/ICdhZGQnIDogJ3JlbW92ZSddKCdwY3ItYWN0aXZlJyk7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAvLyBDaGFuZ2UgY3VycmVudCBjb2xvclxuICAgICAgICAgICAgICAgICAgICBjdXJyZW50Q29sb3Iuc3R5bGUuc2V0UHJvcGVydHkoJy0tcGNyLWNvbG9yJywgY3NzUkdCYVN0cmluZyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSksXG5cbiAgICAgICAgICAgIGh1ZTogTW92ZWFibGUoe1xuICAgICAgICAgICAgICAgIGxvY2s6IHNoID09PSAndicgPyAnaCcgOiAndicsXG4gICAgICAgICAgICAgICAgZWxlbWVudDogaW5zdC5fcm9vdC5odWUucGlja2VyLFxuICAgICAgICAgICAgICAgIHdyYXBwZXI6IGluc3QuX3Jvb3QuaHVlLnNsaWRlcixcblxuICAgICAgICAgICAgICAgIG9uc3RvcDogKCkgPT4gaW5zdC5fZW1pdCgnY2hhbmdlc3RvcCcsICdzbGlkZXInLCBpbnN0KSxcbiAgICAgICAgICAgICAgICBvbmNoYW5nZSh2KSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghY3MuaHVlIHx8ICFjcy5wYWxldHRlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBjb25zdCBjb2xvciA9IGdldENvbG9yKCk7XG5cbiAgICAgICAgICAgICAgICAgICAgLy8gQ2FsY3VsYXRlIGh1ZVxuICAgICAgICAgICAgICAgICAgICBpZiAoaW5zdC5fcmVjYWxjKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvci5oID0gdiAqIDM2MDtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIC8vIFVwZGF0ZSBjb2xvclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnQuc3R5bGUuYmFja2dyb3VuZENvbG9yID0gYGhzbCgke2NvbG9yLmh9LCAxMDAlLCA1MCUpYDtcbiAgICAgICAgICAgICAgICAgICAgY29tcG9uZW50cy5wYWxldHRlLnRyaWdnZXIoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KSxcblxuICAgICAgICAgICAgb3BhY2l0eTogTW92ZWFibGUoe1xuICAgICAgICAgICAgICAgIGxvY2s6IHNvID09PSAndicgPyAnaCcgOiAndicsXG4gICAgICAgICAgICAgICAgZWxlbWVudDogaW5zdC5fcm9vdC5vcGFjaXR5LnBpY2tlcixcbiAgICAgICAgICAgICAgICB3cmFwcGVyOiBpbnN0Ll9yb290Lm9wYWNpdHkuc2xpZGVyLFxuXG4gICAgICAgICAgICAgICAgb25zdG9wOiAoKSA9PiBpbnN0Ll9lbWl0KCdjaGFuZ2VzdG9wJywgJ3NsaWRlcicsIGluc3QpLFxuICAgICAgICAgICAgICAgIG9uY2hhbmdlKHYpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFjcy5vcGFjaXR5IHx8ICFjcy5wYWxldHRlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBjb25zdCBjb2xvciA9IGdldENvbG9yKCk7XG5cbiAgICAgICAgICAgICAgICAgICAgLy8gQ2FsY3VsYXRlIG9wYWNpdHlcbiAgICAgICAgICAgICAgICAgICAgaWYgKGluc3QuX3JlY2FsYykge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3IuYSA9IE1hdGgucm91bmQodiAqIDFlMikgLyAxMDA7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAvLyBVcGRhdGUgY29sb3JcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50LnN0eWxlLmJhY2tncm91bmQgPSBgcmdiYSgwLCAwLCAwLCAke2NvbG9yLmF9KWA7XG4gICAgICAgICAgICAgICAgICAgIGNvbXBvbmVudHMucGFsZXR0ZS50cmlnZ2VyKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSksXG5cbiAgICAgICAgICAgIHNlbGVjdGFibGU6IFNlbGVjdGFibGUoe1xuICAgICAgICAgICAgICAgIGVsZW1lbnRzOiBpbnN0Ll9yb290LmludGVyYWN0aW9uLm9wdGlvbnMsXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAnYWN0aXZlJyxcblxuICAgICAgICAgICAgICAgIG9uY2hhbmdlKGUpIHtcbiAgICAgICAgICAgICAgICAgICAgaW5zdC5fcmVwcmVzZW50YXRpb24gPSBlLnRhcmdldC5nZXRBdHRyaWJ1dGUoJ2RhdGEtdHlwZScpLnRvVXBwZXJDYXNlKCk7XG4gICAgICAgICAgICAgICAgICAgIGluc3QuX3JlY2FsYyAmJiBpbnN0Ll91cGRhdGVPdXRwdXQoJ3N3YXRjaCcpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pXG4gICAgICAgIH07XG5cbiAgICAgICAgdGhpcy5fY29tcG9uZW50cyA9IGNvbXBvbmVudHM7XG4gICAgfVxuXG4gICAgX2JpbmRFdmVudHMoKSB7XG4gICAgICAgIGNvbnN0IHtfcm9vdCwgb3B0aW9uc30gPSB0aGlzO1xuXG4gICAgICAgIGNvbnN0IGV2ZW50QmluZGluZ3MgPSBbXG5cbiAgICAgICAgICAgIC8vIENsZWFyIGNvbG9yXG4gICAgICAgICAgICBfLm9uKF9yb290LmludGVyYWN0aW9uLmNsZWFyLCAnY2xpY2snLCAoKSA9PiB0aGlzLl9jbGVhckNvbG9yKCkpLFxuXG4gICAgICAgICAgICAvLyBTZWxlY3QgbGFzdCBjb2xvciBvbiBjbGlja1xuICAgICAgICAgICAgXy5vbihbXG4gICAgICAgICAgICAgICAgX3Jvb3QuaW50ZXJhY3Rpb24uY2FuY2VsLFxuICAgICAgICAgICAgICAgIF9yb290LnByZXZpZXcubGFzdENvbG9yXG4gICAgICAgICAgICBdLCAnY2xpY2snLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXRIU1ZBKC4uLih0aGlzLl9sYXN0Q29sb3IgfHwgdGhpcy5fY29sb3IpLnRvSFNWQSgpLCB0cnVlKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0KCdjYW5jZWwnKTtcbiAgICAgICAgICAgIH0pLFxuXG4gICAgICAgICAgICAvLyBTYXZlIGNvbG9yXG4gICAgICAgICAgICBfLm9uKF9yb290LmludGVyYWN0aW9uLnNhdmUsICdjbGljaycsICgpID0+IHtcbiAgICAgICAgICAgICAgICAhdGhpcy5hcHBseUNvbG9yKCkgJiYgIW9wdGlvbnMuc2hvd0Fsd2F5cyAmJiB0aGlzLmhpZGUoKTtcbiAgICAgICAgICAgIH0pLFxuXG4gICAgICAgICAgICAvLyBVc2VyIGlucHV0XG4gICAgICAgICAgICBfLm9uKF9yb290LmludGVyYWN0aW9uLnJlc3VsdCwgWydrZXl1cCcsICdpbnB1dCddLCBlID0+IHtcblxuICAgICAgICAgICAgICAgIC8vIEZpcmUgbGlzdGVuZXIgaWYgaW5pdGlhbGl6YXRpb24gaXMgZmluaXNoIGFuZCBjaGFuZ2VkIGNvbG9yIHdhcyB2YWxpZFxuICAgICAgICAgICAgICAgIGlmICh0aGlzLnNldENvbG9yKGUudGFyZ2V0LnZhbHVlLCB0cnVlKSAmJiAhdGhpcy5faW5pdGlhbGl6aW5nQWN0aXZlKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2VtaXQoJ2NoYW5nZScsIHRoaXMuX2NvbG9yLCAnaW5wdXQnLCB0aGlzKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZW1pdCgnY2hhbmdlc3RvcCcsICdpbnB1dCcsIHRoaXMpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGUuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICB9KSxcblxuICAgICAgICAgICAgLy8gRGV0ZWN0IHVzZXIgaW5wdXQgYW5kIGRpc2FibGUgYXV0by1yZWNhbGN1bGF0aW9uXG4gICAgICAgICAgICBfLm9uKF9yb290LmludGVyYWN0aW9uLnJlc3VsdCwgWydmb2N1cycsICdibHVyJ10sIGUgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuX3JlY2FsYyA9IGUudHlwZSA9PT0gJ2JsdXInO1xuICAgICAgICAgICAgICAgIHRoaXMuX3JlY2FsYyAmJiB0aGlzLl91cGRhdGVPdXRwdXQobnVsbCk7XG4gICAgICAgICAgICB9KSxcblxuICAgICAgICAgICAgLy8gQ2FuY2VsIGlucHV0IGRldGVjdGlvbiBvbiBjb2xvciBjaGFuZ2VcbiAgICAgICAgICAgIF8ub24oW1xuICAgICAgICAgICAgICAgIF9yb290LnBhbGV0dGUucGFsZXR0ZSxcbiAgICAgICAgICAgICAgICBfcm9vdC5wYWxldHRlLnBpY2tlcixcbiAgICAgICAgICAgICAgICBfcm9vdC5odWUuc2xpZGVyLFxuICAgICAgICAgICAgICAgIF9yb290Lmh1ZS5waWNrZXIsXG4gICAgICAgICAgICAgICAgX3Jvb3Qub3BhY2l0eS5zbGlkZXIsXG4gICAgICAgICAgICAgICAgX3Jvb3Qub3BhY2l0eS5waWNrZXJcbiAgICAgICAgICAgIF0sIFsnbW91c2Vkb3duJywgJ3RvdWNoc3RhcnQnXSwgKCkgPT4gdGhpcy5fcmVjYWxjID0gdHJ1ZSwge3Bhc3NpdmU6IHRydWV9KVxuICAgICAgICBdO1xuXG4gICAgICAgIC8vIFByb3ZpZGUgaGlkaW5nIC8gc2hvd2luZyBhYmlsaXRpZXMgb25seSBpZiBzaG93QWx3YXlzIGlzIGZhbHNlXG4gICAgICAgIGlmICghb3B0aW9ucy5zaG93QWx3YXlzKSB7XG4gICAgICAgICAgICBjb25zdCBjayA9IG9wdGlvbnMuY2xvc2VXaXRoS2V5O1xuXG4gICAgICAgICAgICBldmVudEJpbmRpbmdzLnB1c2goXG5cbiAgICAgICAgICAgICAgICAvLyBTYXZlIGFuZCBoaWRlIC8gc2hvdyBwaWNrZXJcbiAgICAgICAgICAgICAgICBfLm9uKF9yb290LmJ1dHRvbiwgJ2NsaWNrJywgKCkgPT4gdGhpcy5pc09wZW4oKSA/IHRoaXMuaGlkZSgpIDogdGhpcy5zaG93KCkpLFxuXG4gICAgICAgICAgICAgICAgLy8gQ2xvc2Ugd2l0aCBlc2NhcGUga2V5XG4gICAgICAgICAgICAgICAgXy5vbihkb2N1bWVudCwgJ2tleXVwJywgZSA9PiB0aGlzLmlzT3BlbigpICYmIChlLmtleSA9PT0gY2sgfHwgZS5jb2RlID09PSBjaykgJiYgdGhpcy5oaWRlKCkpLFxuXG4gICAgICAgICAgICAgICAgLy8gQ2FuY2VsIHNlbGVjdGluZyBpZiB0aGUgdXNlciB0YXBzIGJlaGluZCB0aGUgY29sb3IgcGlja2VyXG4gICAgICAgICAgICAgICAgXy5vbihkb2N1bWVudCwgWyd0b3VjaHN0YXJ0JywgJ21vdXNlZG93biddLCBlID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuaXNPcGVuKCkgJiYgIV8uZXZlbnRQYXRoKGUpLnNvbWUoZWwgPT4gZWwgPT09IF9yb290LmFwcCB8fCBlbCA9PT0gX3Jvb3QuYnV0dG9uKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LCB7Y2FwdHVyZTogdHJ1ZX0pXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gTWFrZSBpbnB1dCBhZGp1c3RhYmxlIGlmIGVuYWJsZWRcbiAgICAgICAgaWYgKG9wdGlvbnMuYWRqdXN0YWJsZU51bWJlcnMpIHtcbiAgICAgICAgICAgIGNvbnN0IHJhbmdlcyA9IHtcbiAgICAgICAgICAgICAgICByZ2JhOiBbMjU1LCAyNTUsIDI1NSwgMV0sXG4gICAgICAgICAgICAgICAgaHN2YTogWzM2MCwgMTAwLCAxMDAsIDFdLFxuICAgICAgICAgICAgICAgIGhzbGE6IFszNjAsIDEwMCwgMTAwLCAxXSxcbiAgICAgICAgICAgICAgICBjbXlrOiBbMTAwLCAxMDAsIDEwMCwgMTAwXVxuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgXy5hZGp1c3RhYmxlSW5wdXROdW1iZXJzKF9yb290LmludGVyYWN0aW9uLnJlc3VsdCwgKG8sIHN0ZXAsIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgcmFuZ2UgPSByYW5nZXNbdGhpcy5nZXRDb2xvclJlcHJlc2VudGF0aW9uKCkudG9Mb3dlckNhc2UoKV07XG5cbiAgICAgICAgICAgICAgICBpZiAocmFuZ2UpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbWF4ID0gcmFuZ2VbaW5kZXhdO1xuXG4gICAgICAgICAgICAgICAgICAgIC8vIENhbGN1bGF0ZSBuZXh0IHJlYXNvbmFibGUgbnVtYmVyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG52ID0gbyArIChtYXggPj0gMTAwID8gc3RlcCAqIDEwMDAgOiBzdGVwKTtcblxuICAgICAgICAgICAgICAgICAgICAvLyBBcHBseSByYW5nZSBvZiB6ZXJvIHVwIHRvIG1heCwgZml4IGZsb2F0aW5nLXBvaW50IGlzc3Vlc1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnYgPD0gMCA/IDAgOiBOdW1iZXIoKG52IDwgbWF4ID8gbnYgOiBtYXgpLnRvUHJlY2lzaW9uKDMpKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gbztcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKG9wdGlvbnMuYXV0b1JlcG9zaXRpb24gJiYgIW9wdGlvbnMuaW5saW5lKSB7XG4gICAgICAgICAgICBsZXQgdGltZW91dCA9IG51bGw7XG4gICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcblxuICAgICAgICAgICAgLy8gUmUtY2FsYyBwb3NpdGlvbiBvbiB3aW5kb3cgcmVzaXplLCBzY3JvbGwgYW5kIHdoZWVsXG4gICAgICAgICAgICBldmVudEJpbmRpbmdzLnB1c2goXG4gICAgICAgICAgICAgICAgXy5vbih3aW5kb3csIFsnc2Nyb2xsJywgJ3Jlc2l6ZSddLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGF0LmlzT3BlbigpKSB7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChvcHRpb25zLmNsb3NlT25TY3JvbGwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGF0LmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRpbWVvdXQgPT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0ID0gc2V0VGltZW91dCgoKSA9PiB0aW1lb3V0ID0gbnVsbCwgMTAwKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFVwZGF0ZSBwb3NpdGlvbiBvbiBldmVyeSBmcmFtZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbiBycygpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC5fcmVQb3NpdGlvbmluZ1BpY2tlcigpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodGltZW91dCAhPT0gbnVsbCkgJiYgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKHJzKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xlYXJUaW1lb3V0KHRpbWVvdXQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHRpbWVvdXQgPSBudWxsLCAxMDApO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSwge2NhcHR1cmU6IHRydWV9KVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFNhdmUgYmluZGluZ3NcbiAgICAgICAgdGhpcy5fZXZlbnRCaW5kaW5ncyA9IGV2ZW50QmluZGluZ3M7XG4gICAgfVxuXG4gICAgX3JlUG9zaXRpb25pbmdQaWNrZXIoKSB7XG4gICAgICAgIGNvbnN0IHtvcHRpb25zfSA9IHRoaXM7XG5cbiAgICAgICAgLy8gTm8gcmVwb3NpdGlvbmluZyBuZWVkZWQgaWYgaW5saW5lXG4gICAgICAgIGlmICghb3B0aW9ucy5pbmxpbmUpIHtcbiAgICAgICAgICAgIGNvbnN0IHN1Y2Nlc3MgPSB0aGlzLl9uYW5vcG9wLnVwZGF0ZSh7XG4gICAgICAgICAgICAgICAgY29udGFpbmVyOiBkb2N1bWVudC5ib2R5LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLFxuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBvcHRpb25zLnBvc2l0aW9uXG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgaWYgKCFzdWNjZXNzKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZWwgPSB0aGlzLl9yb290LmFwcDtcbiAgICAgICAgICAgICAgICBjb25zdCBlYiA9IGVsLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgICAgICAgICAgIGVsLnN0eWxlLnRvcCA9IGAkeyh3aW5kb3cuaW5uZXJIZWlnaHQgLSBlYi5oZWlnaHQpIC8gMn1weGA7XG4gICAgICAgICAgICAgICAgZWwuc3R5bGUubGVmdCA9IGAkeyh3aW5kb3cuaW5uZXJXaWR0aCAtIGViLndpZHRoKSAvIDJ9cHhgO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgX3VwZGF0ZU91dHB1dChldmVudFNvdXJjZSkge1xuICAgICAgICBjb25zdCB7X3Jvb3QsIF9jb2xvciwgb3B0aW9uc30gPSB0aGlzO1xuXG4gICAgICAgIC8vIENoZWNrIGlmIGNvbXBvbmVudCBpcyBwcmVzZW50XG4gICAgICAgIGlmIChfcm9vdC5pbnRlcmFjdGlvbi50eXBlKCkpIHtcblxuICAgICAgICAgICAgLy8gQ29uc3RydWN0IGZ1bmN0aW9uIG5hbWUgYW5kIGNhbGwgaWYgcHJlc2VudFxuICAgICAgICAgICAgY29uc3QgbWV0aG9kID0gYHRvJHtfcm9vdC5pbnRlcmFjdGlvbi50eXBlKCkuZ2V0QXR0cmlidXRlKCdkYXRhLXR5cGUnKX1gO1xuICAgICAgICAgICAgX3Jvb3QuaW50ZXJhY3Rpb24ucmVzdWx0LnZhbHVlID0gdHlwZW9mIF9jb2xvclttZXRob2RdID09PSAnZnVuY3Rpb24nID9cbiAgICAgICAgICAgICAgICBfY29sb3JbbWV0aG9kXSgpLnRvU3RyaW5nKG9wdGlvbnMub3V0cHV0UHJlY2lzaW9uKSA6ICcnO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gRmlyZSBsaXN0ZW5lciBpZiBpbml0aWFsaXphdGlvbiBpcyBmaW5pc2hcbiAgICAgICAgaWYgKCF0aGlzLl9pbml0aWFsaXppbmdBY3RpdmUgJiYgdGhpcy5fcmVjYWxjKSB7XG4gICAgICAgICAgICB0aGlzLl9lbWl0KCdjaGFuZ2UnLCBfY29sb3IsIGV2ZW50U291cmNlLCB0aGlzKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIF9jbGVhckNvbG9yKHNpbGVudCA9IGZhbHNlKSB7XG4gICAgICAgIGNvbnN0IHtfcm9vdCwgb3B0aW9uc30gPSB0aGlzO1xuXG4gICAgICAgIC8vIENoYW5nZSBvbmx5IHRoZSBidXR0b24gY29sb3IgaWYgaXQgaXNuJ3QgY3VzdG9taXplZFxuICAgICAgICBpZiAoIW9wdGlvbnMudXNlQXNCdXR0b24pIHtcbiAgICAgICAgICAgIF9yb290LmJ1dHRvbi5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1wY3ItY29sb3InLCAncmdiYSgwLCAwLCAwLCAwLjE1KScpO1xuICAgICAgICB9XG5cbiAgICAgICAgX3Jvb3QuYnV0dG9uLmNsYXNzTGlzdC5hZGQoJ2NsZWFyJyk7XG5cbiAgICAgICAgaWYgKCFvcHRpb25zLnNob3dBbHdheXMpIHtcbiAgICAgICAgICAgIHRoaXMuaGlkZSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fbGFzdENvbG9yID0gbnVsbDtcbiAgICAgICAgaWYgKCF0aGlzLl9pbml0aWFsaXppbmdBY3RpdmUgJiYgIXNpbGVudCkge1xuXG4gICAgICAgICAgICAvLyBGaXJlIGxpc3RlbmVyXG4gICAgICAgICAgICB0aGlzLl9lbWl0KCdzYXZlJywgbnVsbCk7XG4gICAgICAgICAgICB0aGlzLl9lbWl0KCdjbGVhcicpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgX3BhcnNlTG9jYWxDb2xvcihzdHIpIHtcbiAgICAgICAgY29uc3Qge3ZhbHVlcywgdHlwZSwgYX0gPSBwYXJzZVRvSFNWQShzdHIpO1xuICAgICAgICBjb25zdCB7bG9ja09wYWNpdHl9ID0gdGhpcy5vcHRpb25zO1xuICAgICAgICBjb25zdCBhbHBoYU1ha2VzQUNoYW5nZSA9IGEgIT09IHVuZGVmaW5lZCAmJiBhICE9PSAxO1xuXG4gICAgICAgIC8vIElmIG5vIG9wYWNpdHkgaXMgYXBwbGllZCwgYWRkIHVuZGVmaW5lZCBhdCB0aGUgdmVyeSBlbmQgd2hpY2ggZ2V0c1xuICAgICAgICAvLyBTZXQgdG8gMSBpbiBzZXRIU1ZBXG4gICAgICAgIGlmICh2YWx1ZXMgJiYgdmFsdWVzLmxlbmd0aCA9PT0gMykge1xuICAgICAgICAgICAgdmFsdWVzWzNdID0gdW5kZWZpbmVkO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHZhbHVlczogKCF2YWx1ZXMgfHwgKGxvY2tPcGFjaXR5ICYmIGFscGhhTWFrZXNBQ2hhbmdlKSkgPyBudWxsIDogdmFsdWVzLFxuICAgICAgICAgICAgdHlwZVxuICAgICAgICB9O1xuICAgIH1cblxuICAgIF90KGtleSkge1xuICAgICAgICByZXR1cm4gdGhpcy5vcHRpb25zLmkxOG5ba2V5XSB8fCBQaWNrci5JMThOX0RFRkFVTFRTW2tleV07XG4gICAgfVxuXG4gICAgX2VtaXQoZXZlbnQsIC4uLmFyZ3MpIHtcbiAgICAgICAgdGhpcy5fZXZlbnRMaXN0ZW5lcltldmVudF0uZm9yRWFjaChjYiA9PiBjYiguLi5hcmdzLCB0aGlzKSk7XG4gICAgfVxuXG4gICAgb24oZXZlbnQsIGNiKSB7XG4gICAgICAgIHRoaXMuX2V2ZW50TGlzdGVuZXJbZXZlbnRdLnB1c2goY2IpO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBvZmYoZXZlbnQsIGNiKSB7XG4gICAgICAgIGNvbnN0IGNhbGxCYWNrcyA9ICh0aGlzLl9ldmVudExpc3RlbmVyW2V2ZW50XSB8fCBbXSk7XG4gICAgICAgIGNvbnN0IGluZGV4ID0gY2FsbEJhY2tzLmluZGV4T2YoY2IpO1xuXG4gICAgICAgIGlmICh+aW5kZXgpIHtcbiAgICAgICAgICAgIGNhbGxCYWNrcy5zcGxpY2UoaW5kZXgsIDEpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQXBwZW5kcyBhIGNvbG9yIHRvIHRoZSBzd2F0Y2ggcGFsZXR0ZVxuICAgICAqIEBwYXJhbSBjb2xvclxuICAgICAqIEByZXR1cm5zIHtib29sZWFufVxuICAgICAqL1xuICAgIGFkZFN3YXRjaChjb2xvcikge1xuICAgICAgICBjb25zdCB7dmFsdWVzfSA9IHRoaXMuX3BhcnNlTG9jYWxDb2xvcihjb2xvcik7XG5cbiAgICAgICAgaWYgKHZhbHVlcykge1xuICAgICAgICAgICAgY29uc3Qge19zd2F0Y2hDb2xvcnMsIF9yb290fSA9IHRoaXM7XG4gICAgICAgICAgICBjb25zdCBjb2xvciA9IEhTVmFDb2xvciguLi52YWx1ZXMpO1xuXG4gICAgICAgICAgICAvLyBDcmVhdGUgbmV3IHN3YXRjaCBIVE1MRWxlbWVudFxuICAgICAgICAgICAgY29uc3QgZWwgPSBfLmNyZWF0ZUVsZW1lbnRGcm9tU3RyaW5nKFxuICAgICAgICAgICAgICAgIGA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBzdHlsZT1cIi0tcGNyLWNvbG9yOiAke2NvbG9yLnRvUkdCQSgpLnRvU3RyaW5nKDApfVwiIGFyaWEtbGFiZWw9XCIke3RoaXMuX3QoJ2J0bjpzd2F0Y2gnKX1cIi8+YFxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgLy8gQXBwZW5kIGVsZW1lbnQgYW5kIHNhdmUgc3dhdGNoIGRhdGFcbiAgICAgICAgICAgIF9yb290LnN3YXRjaGVzLmFwcGVuZENoaWxkKGVsKTtcbiAgICAgICAgICAgIF9zd2F0Y2hDb2xvcnMucHVzaCh7ZWwsIGNvbG9yfSk7XG5cbiAgICAgICAgICAgIC8vIEJpbmQgZXZlbnRcbiAgICAgICAgICAgIHRoaXMuX2V2ZW50QmluZGluZ3MucHVzaChcbiAgICAgICAgICAgICAgICBfLm9uKGVsLCAnY2xpY2snLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0SFNWQSguLi5jb2xvci50b0hTVkEoKSwgdHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2VtaXQoJ3N3YXRjaHNlbGVjdCcsIGNvbG9yKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZW1pdCgnY2hhbmdlJywgY29sb3IsICdzd2F0Y2gnLCB0aGlzKTtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVtb3ZlcyBhIHN3YXRjaCBjb2xvciBieSBpdCdzIGluZGV4XG4gICAgICogQHBhcmFtIGluZGV4XG4gICAgICogQHJldHVybnMge2Jvb2xlYW59XG4gICAgICovXG4gICAgcmVtb3ZlU3dhdGNoKGluZGV4KSB7XG4gICAgICAgIGNvbnN0IHN3YXRjaENvbG9yID0gdGhpcy5fc3dhdGNoQ29sb3JzW2luZGV4XTtcblxuICAgICAgICAvLyBDaGVjayBzd2F0Y2ggZGF0YVxuICAgICAgICBpZiAoc3dhdGNoQ29sb3IpIHtcbiAgICAgICAgICAgIGNvbnN0IHtlbH0gPSBzd2F0Y2hDb2xvcjtcblxuICAgICAgICAgICAgLy8gUmVtb3ZlIEhUTUwgY2hpbGQgYW5kIHN3YXRjaCBkYXRhXG4gICAgICAgICAgICB0aGlzLl9yb290LnN3YXRjaGVzLnJlbW92ZUNoaWxkKGVsKTtcbiAgICAgICAgICAgIHRoaXMuX3N3YXRjaENvbG9ycy5zcGxpY2UoaW5kZXgsIDEpO1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgYXBwbHlDb2xvcihzaWxlbnQgPSBmYWxzZSkge1xuICAgICAgICBjb25zdCB7cHJldmlldywgYnV0dG9ufSA9IHRoaXMuX3Jvb3Q7XG5cbiAgICAgICAgLy8gQ2hhbmdlIHByZXZpZXcgYW5kIGN1cnJlbnQgY29sb3JcbiAgICAgICAgY29uc3QgY3NzUkdCYVN0cmluZyA9IHRoaXMuX2NvbG9yLnRvUkdCQSgpLnRvU3RyaW5nKDApO1xuICAgICAgICBwcmV2aWV3Lmxhc3RDb2xvci5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1wY3ItY29sb3InLCBjc3NSR0JhU3RyaW5nKTtcblxuICAgICAgICAvLyBDaGFuZ2Ugb25seSB0aGUgYnV0dG9uIGNvbG9yIGlmIGl0IGlzbid0IGN1c3RvbWl6ZWRcbiAgICAgICAgaWYgKCF0aGlzLm9wdGlvbnMudXNlQXNCdXR0b24pIHtcbiAgICAgICAgICAgIGJ1dHRvbi5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1wY3ItY29sb3InLCBjc3NSR0JhU3RyaW5nKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFVzZXIgY2hhbmdlZCB0aGUgY29sb3Igc28gcmVtb3ZlIHRoZSBjbGVhciBjbGFzXG4gICAgICAgIGJ1dHRvbi5jbGFzc0xpc3QucmVtb3ZlKCdjbGVhcicpO1xuXG4gICAgICAgIC8vIFNhdmUgbGFzdCBjb2xvclxuICAgICAgICB0aGlzLl9sYXN0Q29sb3IgPSB0aGlzLl9jb2xvci5jbG9uZSgpO1xuXG4gICAgICAgIC8vIEZpcmUgbGlzdGVuZXJcbiAgICAgICAgaWYgKCF0aGlzLl9pbml0aWFsaXppbmdBY3RpdmUgJiYgIXNpbGVudCkge1xuICAgICAgICAgICAgdGhpcy5fZW1pdCgnc2F2ZScsIHRoaXMuX2NvbG9yKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERlc3Ryb3kncyBhbGwgZnVuY3Rpb25hbGl0eXNcbiAgICAgKi9cbiAgICBkZXN0cm95KCkge1xuXG4gICAgICAgIC8vIENhbmNlbCBzZXR1cC1mcmFtZSBpZiBzZXRcbiAgICAgICAgY2FuY2VsQW5pbWF0aW9uRnJhbWUodGhpcy5fc2V0dXBBbmltYXRpb25GcmFtZSk7XG5cbiAgICAgICAgLy8gVW5iaW5kIGV2ZW50c1xuICAgICAgICB0aGlzLl9ldmVudEJpbmRpbmdzLmZvckVhY2goYXJncyA9PiBfLm9mZiguLi5hcmdzKSk7XG5cbiAgICAgICAgLy8gRGVzdHJveSBzdWItY29tcG9uZW50c1xuICAgICAgICBPYmplY3Qua2V5cyh0aGlzLl9jb21wb25lbnRzKVxuICAgICAgICAgICAgLmZvckVhY2goa2V5ID0+IHRoaXMuX2NvbXBvbmVudHNba2V5XS5kZXN0cm95KCkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERlc3Ryb3kncyBhbGwgZnVuY3Rpb25hbGl0eXMgYW5kIHJlbW92ZXNcbiAgICAgKiB0aGUgcGlja3IgZWxlbWVudC5cbiAgICAgKi9cbiAgICBkZXN0cm95QW5kUmVtb3ZlKCkge1xuICAgICAgICB0aGlzLmRlc3Ryb3koKTtcbiAgICAgICAgY29uc3Qge3Jvb3QsIGFwcH0gPSB0aGlzLl9yb290O1xuXG4gICAgICAgIC8vIFJlbW92ZSBlbGVtZW50XG4gICAgICAgIGlmIChyb290LnBhcmVudEVsZW1lbnQpIHtcbiAgICAgICAgICAgIHJvb3QucGFyZW50RWxlbWVudC5yZW1vdmVDaGlsZChyb290KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFJlbW92ZSAucGNyLWFwcFxuICAgICAgICBhcHAucGFyZW50RWxlbWVudC5yZW1vdmVDaGlsZChhcHApO1xuXG4gICAgICAgIC8vIFRoZXJlIGFyZSByZWZlcmVuY2VzIHRvIHZhcmlvdXMgRE9NIGVsZW1lbnRzIHN0b3JlZCBpbiB0aGUgcGlja3IgaW5zdGFuY2VcbiAgICAgICAgLy8gVGhpcyBjbGVhbnMgYWxsIG9mIHRoZW0gdG8gYXZvaWQgZGV0YWNoZWQgRE9Nc1xuICAgICAgICBPYmplY3Qua2V5cyh0aGlzKVxuICAgICAgICAgICAgLmZvckVhY2goa2V5ID0+IHRoaXNba2V5XSA9IG51bGwpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEhpZGVzIHRoZSBjb2xvci1waWNrZXIgdWkuXG4gICAgICovXG4gICAgaGlkZSgpIHtcbiAgICAgICAgaWYgKHRoaXMuaXNPcGVuKCkpIHtcbiAgICAgICAgICAgIHRoaXMuX3Jvb3QuYXBwLmNsYXNzTGlzdC5yZW1vdmUoJ3Zpc2libGUnKTtcbiAgICAgICAgICAgIHRoaXMuX2VtaXQoJ2hpZGUnKTtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNob3dzIHRoZSBjb2xvci1waWNrZXIgdWkuXG4gICAgICovXG4gICAgc2hvdygpIHtcbiAgICAgICAgaWYgKCF0aGlzLm9wdGlvbnMuZGlzYWJsZWQgJiYgIXRoaXMuaXNPcGVuKCkpIHtcbiAgICAgICAgICAgIHRoaXMuX3Jvb3QuYXBwLmNsYXNzTGlzdC5hZGQoJ3Zpc2libGUnKTtcbiAgICAgICAgICAgIHRoaXMuX3JlUG9zaXRpb25pbmdQaWNrZXIoKTtcbiAgICAgICAgICAgIHRoaXMuX2VtaXQoJ3Nob3cnLCB0aGlzLl9jb2xvcik7XG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAcmV0dXJuIHtib29sZWFufSBJZiB0aGUgY29sb3IgcGlja2VyIGlzIGN1cnJlbnRseSBvcGVuXG4gICAgICovXG4gICAgaXNPcGVuKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fcm9vdC5hcHAuY2xhc3NMaXN0LmNvbnRhaW5zKCd2aXNpYmxlJyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0IGEgc3BlY2lmaWMgY29sb3IuXG4gICAgICogQHBhcmFtIGggSHVlXG4gICAgICogQHBhcmFtIHMgU2F0dXJhdGlvblxuICAgICAqIEBwYXJhbSB2IFZhbHVlXG4gICAgICogQHBhcmFtIGEgQWxwaGEgY2hhbm5lbCAoMCAtIDEpXG4gICAgICogQHBhcmFtIHNpbGVudCBJZiB0aGUgYnV0dG9uIHNob3VsZCBub3QgY2hhbmdlIHRoZSBjb2xvclxuICAgICAqIEByZXR1cm4gYm9vbGVhbiBpZiB0aGUgY29sb3IgaGFzIGJlZW4gYWNjZXB0ZWRcbiAgICAgKi9cbiAgICBzZXRIU1ZBKGggPSAzNjAsIHMgPSAwLCB2ID0gMCwgYSA9IDEsIHNpbGVudCA9IGZhbHNlKSB7XG5cbiAgICAgICAgLy8gRGVhY3RpdmF0ZSBjb2xvciBjYWxjdWxhdGlvblxuICAgICAgICBjb25zdCByZWNhbGMgPSB0aGlzLl9yZWNhbGM7IC8vIFNhdmUgc3RhdGVcbiAgICAgICAgdGhpcy5fcmVjYWxjID0gZmFsc2U7XG5cbiAgICAgICAgLy8gVmFsaWRhdGUgaW5wdXRcbiAgICAgICAgaWYgKGggPCAwIHx8IGggPiAzNjAgfHwgcyA8IDAgfHwgcyA+IDEwMCB8fCB2IDwgMCB8fCB2ID4gMTAwIHx8IGEgPCAwIHx8IGEgPiAxKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBPdmVycmlkZSBjdXJyZW50IGNvbG9yIGFuZCByZS1hY3RpdmUgY29sb3IgY2FsY3VsYXRpb25cbiAgICAgICAgdGhpcy5fY29sb3IgPSBIU1ZhQ29sb3IoaCwgcywgdiwgYSk7XG5cbiAgICAgICAgLy8gVXBkYXRlIHNsaWRlciBhbmQgcGFsZXR0ZVxuICAgICAgICBjb25zdCB7aHVlLCBvcGFjaXR5LCBwYWxldHRlfSA9IHRoaXMuX2NvbXBvbmVudHM7XG4gICAgICAgIGh1ZS51cGRhdGUoKGggLyAzNjApKTtcbiAgICAgICAgb3BhY2l0eS51cGRhdGUoYSk7XG4gICAgICAgIHBhbGV0dGUudXBkYXRlKHMgLyAxMDAsIDEgLSAodiAvIDEwMCkpO1xuXG4gICAgICAgIC8vIENoZWNrIGlmIGNhbGwgaXMgc2lsZW50XG4gICAgICAgIGlmICghc2lsZW50KSB7XG4gICAgICAgICAgICB0aGlzLmFwcGx5Q29sb3IoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFVwZGF0ZSBvdXRwdXQgaWYgcmVjYWxjdWxhdGlvbiBpcyBlbmFibGVkXG4gICAgICAgIGlmIChyZWNhbGMpIHtcbiAgICAgICAgICAgIHRoaXMuX3VwZGF0ZU91dHB1dCgpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gUmVzdG9yZSBvbGQgc3RhdGVcbiAgICAgICAgdGhpcy5fcmVjYWxjID0gcmVjYWxjO1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUcmllcyB0byBwYXJzZSBhIHN0cmluZyB3aGljaCByZXByZXNlbnRzIGEgY29sb3IuXG4gICAgICogRXhhbXBsZXM6ICNmZmZcbiAgICAgKiAgICAgICAgICAgcmdiIDEwIDEwIDIwMFxuICAgICAqICAgICAgICAgICBoc3ZhIDEwIDIwIDUgMC41XG4gICAgICogQHBhcmFtIHN0cmluZ1xuICAgICAqIEBwYXJhbSBzaWxlbnRcbiAgICAgKi9cbiAgICBzZXRDb2xvcihzdHJpbmcsIHNpbGVudCA9IGZhbHNlKSB7XG5cbiAgICAgICAgLy8gQ2hlY2sgaWYgbnVsbFxuICAgICAgICBpZiAoc3RyaW5nID09PSBudWxsKSB7XG4gICAgICAgICAgICB0aGlzLl9jbGVhckNvbG9yKHNpbGVudCk7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHt2YWx1ZXMsIHR5cGV9ID0gdGhpcy5fcGFyc2VMb2NhbENvbG9yKHN0cmluZyk7XG5cbiAgICAgICAgLy8gQ2hlY2sgaWYgY29sb3IgaXMgb2tcbiAgICAgICAgaWYgKHZhbHVlcykge1xuXG4gICAgICAgICAgICAvLyBDaGFuZ2Ugc2VsZWN0ZWQgY29sb3IgZm9ybWF0XG4gICAgICAgICAgICBjb25zdCB1dHlwZSA9IHR5cGUudG9VcHBlckNhc2UoKTtcbiAgICAgICAgICAgIGNvbnN0IHtvcHRpb25zfSA9IHRoaXMuX3Jvb3QuaW50ZXJhY3Rpb247XG4gICAgICAgICAgICBjb25zdCB0YXJnZXQgPSBvcHRpb25zLmZpbmQoZWwgPT4gZWwuZ2V0QXR0cmlidXRlKCdkYXRhLXR5cGUnKSA9PT0gdXR5cGUpO1xuXG4gICAgICAgICAgICAvLyBBdXRvIHNlbGVjdCBvbmx5IGlmIG5vdCBoaWRkZW5cbiAgICAgICAgICAgIGlmICh0YXJnZXQgJiYgIXRhcmdldC5oaWRkZW4pIHtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGVsIG9mIG9wdGlvbnMpIHtcbiAgICAgICAgICAgICAgICAgICAgZWwuY2xhc3NMaXN0W2VsID09PSB0YXJnZXQgPyAnYWRkJyA6ICdyZW1vdmUnXSgnYWN0aXZlJyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBVcGRhdGUgY29sb3IgKGZpcmVzICdzYXZlJyBldmVudCBpZiBzaWxlbnQgaXMgJ2ZhbHNlJylcbiAgICAgICAgICAgIGlmICghdGhpcy5zZXRIU1ZBKC4uLnZhbHVlcywgc2lsZW50KSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gVXBkYXRlIHJlcHJlc2VudGF0aW9uIChmaXJlcyAnY2hhbmdlJyBldmVudClcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnNldENvbG9yUmVwcmVzZW50YXRpb24odXR5cGUpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoYW5nZXMgdGhlIGNvbG9yIF9yZXByZXNlbnRhdGlvbi5cbiAgICAgKiBBbGxvd2VkIHZhbHVlcyBhcmUgSEVYLCBSR0IsIEhTViwgSFNMIGFuZCBDTVlLXG4gICAgICogQHBhcmFtIHR5cGVcbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gaWYgdGhlIHNlbGVjdGVkIHR5cGUgd2FzIHZhbGlkLlxuICAgICAqL1xuICAgIHNldENvbG9yUmVwcmVzZW50YXRpb24odHlwZSkge1xuXG4gICAgICAgIC8vIEZvcmNlIHVwcGVyY2FzZSB0byBhbGxvdyBhIGNhc2Utc2Vuc2l0aXYgY29tcGFyaXNvblxuICAgICAgICB0eXBlID0gdHlwZS50b1VwcGVyQ2FzZSgpO1xuXG4gICAgICAgIC8vIEZpbmQgYnV0dG9uIHdpdGggZ2l2ZW4gdHlwZSBhbmQgdHJpZ2dlciBjbGljayBldmVudFxuICAgICAgICByZXR1cm4gISF0aGlzLl9yb290LmludGVyYWN0aW9uLm9wdGlvbnNcbiAgICAgICAgICAgIC5maW5kKHYgPT4gdi5nZXRBdHRyaWJ1dGUoJ2RhdGEtdHlwZScpLnN0YXJ0c1dpdGgodHlwZSkgJiYgIXYuY2xpY2soKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0aGUgY3VycmVudCBjb2xvciByZXByZXNlbnRhaW9uLiBTZWUgc2V0Q29sb3JSZXByZXNlbnRhdGlvblxuICAgICAqIEByZXR1cm5zIHsqfVxuICAgICAqL1xuICAgIGdldENvbG9yUmVwcmVzZW50YXRpb24oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9yZXByZXNlbnRhdGlvbjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAcmV0dXJucyBIU1ZhQ29sb3IgQ3VycmVudCBIU1ZhQ29sb3Igb2JqZWN0LlxuICAgICAqL1xuICAgIGdldENvbG9yKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fY29sb3I7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0aGUgY3VycmVudGx5IHNlbGVjdGVkIGNvbG9yLlxuICAgICAqIEByZXR1cm5zIHt7YSwgdG9IU1ZBLCB0b0hFWEEsIHMsIHYsIGgsIGNsb25lLCB0b0NNWUssIHRvSFNMQSwgdG9SR0JBfX1cbiAgICAgKi9cbiAgICBnZXRTZWxlY3RlZENvbG9yKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fbGFzdENvbG9yO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEByZXR1cm5zIFRoZSByb290IEhUTUxFbGVtZW50IHdpdGggYWxsIGhpcyBjb21wb25lbnRzLlxuICAgICAqL1xuICAgIGdldFJvb3QoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9yb290O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERpc2FibGUgcGlja3JcbiAgICAgKi9cbiAgICBkaXNhYmxlKCkge1xuICAgICAgICB0aGlzLmhpZGUoKTtcbiAgICAgICAgdGhpcy5vcHRpb25zLmRpc2FibGVkID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5fcm9vdC5idXR0b24uY2xhc3NMaXN0LmFkZCgnZGlzYWJsZWQnKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRW5hYmxlIHBpY2tyXG4gICAgICovXG4gICAgZW5hYmxlKCkge1xuICAgICAgICB0aGlzLm9wdGlvbnMuZGlzYWJsZWQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5fcm9vdC5idXR0b24uY2xhc3NMaXN0LnJlbW92ZSgnZGlzYWJsZWQnKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxufVxuIiwgImltcG9ydCB7IFBsdWdpbiwgTWFya2Rvd25WaWV3LCBXb3Jrc3BhY2VMZWFmIH0gZnJvbSBcIm9ic2lkaWFuXCI7XG5cbmltcG9ydCB7IERFRkFVTFRfU0VUVElOR1MsIExBTkdVQUdFX0lDT05TX0RBVEEsIENvZGVTdHlsZXJTZXR0aW5ncyB9IGZyb20gXCIuL1NldHRpbmdzXCI7XG5pbXBvcnQgeyBTZXR0aW5nc1RhYiB9IGZyb20gXCIuL1NldHRpbmdzVGFiXCI7XG5pbXBvcnQgeyByZW1vdmVTdHlsZXNBbmRDbGFzc2VzLCB1cGRhdGVTdHlsaW5nIH0gZnJvbSBcIi4vQXBwbHlTdHlsaW5nXCI7XG5pbXBvcnQgeyBjcmVhdGVDb2RlYmxvY2tDb2RlTWlycm9yRXh0ZW5zaW9ucywgZWRpdGluZ0RvY3VtZW50Rm9sZCB9IGZyb20gXCIuL0VkaXRpbmdWaWV3XCI7XG5pbXBvcnQgeyBkZXN0cm95UmVhZGluZ01vZGVFbGVtZW50cywgcmVhZGluZ0RvY3VtZW50Rm9sZCwgZXhlY3V0ZUNvZGVNdXRhdGlvbk9ic2VydmVyLCByZWFkaW5nVmlld0NvZGVibG9ja0RlY29yYXRpbmdQb3N0UHJvY2Vzc29yLCByZWFkaW5nVmlld0lubGluZURlY29yYXRpbmdQb3N0UHJvY2Vzc29yIH0gZnJvbSBcIi4vUmVhZGluZ1ZpZXdcIjtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQ29kZVN0eWxlclBsdWdpbiBleHRlbmRzIFBsdWdpbiB7XG5cdHNldHRpbmdzOiBDb2RlU3R5bGVyU2V0dGluZ3M7XG5cdGV4ZWN1dGVDb2RlTXV0YXRpb25PYnNlcnZlcjogTXV0YXRpb25PYnNlcnZlcjtcblx0bGFuZ3VhZ2VJY29uczogUmVjb3JkPHN0cmluZyxzdHJpbmc+O1xuXHRzaXplczoge1xuXHRcdGZvbnQ6IHN0cmluZztcblx0XHR6b29tOiBzdHJpbmc7XG5cdH07XG5cdFxuXHRhc3luYyBvbmxvYWQoKSB7XG5cdFx0YXdhaXQgdGhpcy5sb2FkU2V0dGluZ3MoKTsgLy8gTG9hZCBTZXR0aW5nc1xuXHRcdGNvbnN0IHNldHRpbmdzVGFiID0gbmV3IFNldHRpbmdzVGFiKHRoaXMuYXBwLHRoaXMpO1xuXHRcdHRoaXMuYWRkU2V0dGluZ1RhYihzZXR0aW5nc1RhYik7XG5cblx0XHRkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5hZGQoXCJjb2RlLXN0eWxlclwiKTsgLy8gTG9hZCBTdHlsZXNcblx0XHR1cGRhdGVTdHlsaW5nKHRoaXMuc2V0dGluZ3MsdGhpcy5hcHApO1xuXG5cdFx0dGhpcy5sYW5ndWFnZUljb25zID0gT2JqZWN0LmtleXMoTEFOR1VBR0VfSUNPTlNfREFUQSkucmVkdWNlKChyZXN1bHQ6IHtba2V5OiBzdHJpbmddOiBzdHJpbmd9LCBrZXk6IHN0cmluZykgPT4geyAvLyBMb2FkIEljb25zXG5cdFx0XHRyZXN1bHRba2V5XSA9IFVSTC5jcmVhdGVPYmplY3RVUkwobmV3IEJsb2IoW2A8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB4bWxuczp4bGluaz1cImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmtcIiB2aWV3Qm94PVwiMCAwIDMyIDMyXCI+JHtMQU5HVUFHRV9JQ09OU19EQVRBW2tleV19PC9zdmc+YF0sIHsgdHlwZTogXCJpbWFnZS9zdmcreG1sXCIgfSkpO1xuXHRcdFx0cmV0dXJuIHJlc3VsdDtcblx0XHR9LHt9KTtcblx0XHR0aGlzLnNpemVzID0ge1xuXHRcdFx0Zm9udDogZG9jdW1lbnQuYm9keS5nZXRDc3NQcm9wZXJ0eVZhbHVlKFwiLS1mb250LXRleHQtc2l6ZVwiKSxcblx0XHRcdHpvb206IGRvY3VtZW50LmJvZHkuZ2V0Q3NzUHJvcGVydHlWYWx1ZShcIi0tem9vbS1mYWN0b3JcIiksXG5cdFx0fTtcblxuXHRcdHRoaXMuZXhlY3V0ZUNvZGVNdXRhdGlvbk9ic2VydmVyID0gZXhlY3V0ZUNvZGVNdXRhdGlvbk9ic2VydmVyOyAvLyBBZGQgZXhlY3V0ZSBjb2RlIG11dGF0aW9uIG9ic2VydmVyXG5cdFx0XG5cdFx0dGhpcy5yZWdpc3Rlck1hcmtkb3duUG9zdFByb2Nlc3Nvcihhc3luYyAoZWwsY3R4KSA9PiB7YXdhaXQgcmVhZGluZ1ZpZXdDb2RlYmxvY2tEZWNvcmF0aW5nUG9zdFByb2Nlc3NvcihlbCxjdHgsdGhpcyk7fSk7IC8vIEFkZCBjb2RlYmxvY2sgZGVjb3JhdGluZyBtYXJrZG93blBvc3RQcm9jZXNzb3Jcblx0XHR0aGlzLnJlZ2lzdGVyTWFya2Rvd25Qb3N0UHJvY2Vzc29yKGFzeW5jIChlbCxjdHgpID0+IHthd2FpdCByZWFkaW5nVmlld0lubGluZURlY29yYXRpbmdQb3N0UHJvY2Vzc29yKGVsLGN0eCx0aGlzKTt9KTsgLy8gQWRkIGlubGluZSBjb2RlIGRlY29yYXRpbmcgbWFya2Rvd25Qb3N0UHJvY2Vzc29yXG5cblx0XHR0aGlzLnJlZ2lzdGVyRWRpdG9yRXh0ZW5zaW9uKGNyZWF0ZUNvZGVibG9ja0NvZGVNaXJyb3JFeHRlbnNpb25zKHRoaXMuc2V0dGluZ3MsdGhpcy5sYW5ndWFnZUljb25zKSk7IC8vIEFkZCBjb2RlbWlycm9yIGV4dGVuc2lvbnNcblxuXHRcdGxldCB6b29tVGltZW91dDogTm9kZUpTLlRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpPT57fSk7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LWZ1bmN0aW9uXG5cdFx0dGhpcy5yZWdpc3RlckV2ZW50KHRoaXMuYXBwLndvcmtzcGFjZS5vbihcImNzcy1jaGFuZ2VcIiwoKT0+e1xuXHRcdFx0dXBkYXRlU3R5bGluZyh0aGlzLnNldHRpbmdzLHRoaXMuYXBwKTsgLy8gVXBkYXRlIHN0eWxpbmcgb24gY3NzIGNoYW5nZXNcblx0XHRcdGNvbnN0IGN1cnJlbnRGb250U2l6ZSA9IGRvY3VtZW50LmJvZHkuZ2V0Q3NzUHJvcGVydHlWYWx1ZShcIi0tZm9udC10ZXh0LXNpemVcIik7XG5cdFx0XHRpZiAodGhpcy5zaXplcy5mb250ICE9PSBjdXJyZW50Rm9udFNpemUpIHtcblx0XHRcdFx0dGhpcy5zaXplcy5mb250ID0gY3VycmVudEZvbnRTaXplO1xuXHRcdFx0XHRjbGVhclRpbWVvdXQoem9vbVRpbWVvdXQpO1xuXHRcdFx0XHR6b29tVGltZW91dCA9IHNldFRpbWVvdXQoKCk9Pntcblx0XHRcdFx0XHR0aGlzLnJlbmRlclJlYWRpbmdWaWV3KCk7IC8vIFJlLXJlbmRlciBvbiBmb250IHNpemUgY2hhbmdlc1xuXHRcdFx0XHR9LDEwMDApO1xuXHRcdFx0fVxuXHRcdH0sdGhpcykpO1xuXHRcdHRoaXMucmVnaXN0ZXJFdmVudCh0aGlzLmFwcC53b3Jrc3BhY2Uub24oXCJyZXNpemVcIiwoKT0+e1xuXHRcdFx0Y29uc3QgY3VycmVudFpvb21TaXplID0gZG9jdW1lbnQuYm9keS5nZXRDc3NQcm9wZXJ0eVZhbHVlKFwiLS16b29tLWZhY3RvclwiKTtcblx0XHRcdGlmICh0aGlzLnNpemVzLnpvb20gIT09IGN1cnJlbnRab29tU2l6ZSkge1xuXHRcdFx0XHR0aGlzLnNpemVzLnpvb20gPSBjdXJyZW50Wm9vbVNpemU7XG5cdFx0XHRcdGNsZWFyVGltZW91dCh6b29tVGltZW91dCk7XG5cdFx0XHRcdHpvb21UaW1lb3V0ID0gc2V0VGltZW91dCgoKT0+e1xuXHRcdFx0XHRcdHRoaXMucmVuZGVyUmVhZGluZ1ZpZXcoKTsgLy8gUmUtcmVuZGVyIG9uIHpvb20gY2hhbmdlc1xuXHRcdFx0XHR9LDEwMDApO1xuXHRcdFx0fVxuXHRcdH0sdGhpcykpO1xuXG5cdFx0dGhpcy5hZGRDb21tYW5kKHtpZDogXCJmb2xkLWFsbFwiLCBuYW1lOiBcIkZvbGQgYWxsIGNvZGVibG9ja3NcIiwgY2FsbGJhY2s6ICgpPT57XG5cdFx0XHRjb25zdCBhY3RpdmVWaWV3ID0gdGhpcy5hcHAud29ya3NwYWNlLmdldEFjdGl2ZVZpZXdPZlR5cGUoTWFya2Rvd25WaWV3KTtcblx0XHRcdGlmIChhY3RpdmVWaWV3KSB7XG5cdFx0XHRcdGlmIChhY3RpdmVWaWV3LmdldE1vZGUoKSA9PT0gXCJwcmV2aWV3XCIpXG5cdFx0XHRcdFx0cmVhZGluZ0RvY3VtZW50Rm9sZChhY3RpdmVWaWV3LmNvbnRlbnRFbCx0cnVlKTtcblx0XHRcdFx0ZWxzZSBpZiAoYWN0aXZlVmlldy5nZXRNb2RlKCkgPT09IFwic291cmNlXCIpXG5cdFx0XHRcdFx0Ly9AdHMtZXhwZWN0LWVycm9yIFVuZG9jdW1lbnRlZCBPYnNpZGlhbiBBUElcblx0XHRcdFx0XHRlZGl0aW5nRG9jdW1lbnRGb2xkKGFjdGl2ZVZpZXcuZWRpdG9yLmNtLmRvY1ZpZXcudmlldyx0cnVlKTtcblx0XHRcdH1cblx0XHR9fSk7XG5cdFx0dGhpcy5hZGRDb21tYW5kKHtpZDogXCJ1bmZvbGQtYWxsXCIsIG5hbWU6IFwiVW5mb2xkIGFsbCBjb2RlYmxvY2tzXCIsIGNhbGxiYWNrOiAoKT0+e1xuXHRcdFx0Y29uc3QgYWN0aXZlVmlldyA9IHRoaXMuYXBwLndvcmtzcGFjZS5nZXRBY3RpdmVWaWV3T2ZUeXBlKE1hcmtkb3duVmlldyk7XG5cdFx0XHRpZiAoYWN0aXZlVmlldykge1xuXHRcdFx0XHRpZiAoYWN0aXZlVmlldy5nZXRNb2RlKCkgPT09IFwicHJldmlld1wiKVxuXHRcdFx0XHRcdHJlYWRpbmdEb2N1bWVudEZvbGQoYWN0aXZlVmlldy5jb250ZW50RWwsZmFsc2UpO1xuXHRcdFx0XHRlbHNlIGlmIChhY3RpdmVWaWV3LmdldE1vZGUoKSA9PT0gXCJzb3VyY2VcIilcblx0XHRcdFx0XHQvL0B0cy1leHBlY3QtZXJyb3IgVW5kb2N1bWVudGVkIE9ic2lkaWFuIEFQSVxuXHRcdFx0XHRcdGVkaXRpbmdEb2N1bWVudEZvbGQoYWN0aXZlVmlldy5lZGl0b3IuY20uZG9jVmlldy52aWV3LGZhbHNlKTtcblx0XHRcdH1cblx0XHR9fSk7XG5cdFx0dGhpcy5hZGRDb21tYW5kKHtpZDogXCJyZXNldC1hbGxcIiwgbmFtZTogXCJSZXNldCBmb2xkIHN0YXRlIGZvciBhbGwgY29kZWJsb2Nrc1wiLCBjYWxsYmFjazogKCk9Pntcblx0XHRcdGNvbnN0IGFjdGl2ZVZpZXcgPSB0aGlzLmFwcC53b3Jrc3BhY2UuZ2V0QWN0aXZlVmlld09mVHlwZShNYXJrZG93blZpZXcpO1xuXHRcdFx0aWYgKGFjdGl2ZVZpZXcpIHtcblx0XHRcdFx0aWYgKGFjdGl2ZVZpZXcuZ2V0TW9kZSgpID09PSBcInByZXZpZXdcIilcblx0XHRcdFx0XHRyZWFkaW5nRG9jdW1lbnRGb2xkKGFjdGl2ZVZpZXcuY29udGVudEVsKTtcblx0XHRcdFx0ZWxzZSBpZiAoYWN0aXZlVmlldy5nZXRNb2RlKCkgPT09IFwic291cmNlXCIpXG5cdFx0XHRcdFx0Ly9AdHMtZXhwZWN0LWVycm9yIFVuZG9jdW1lbnRlZCBPYnNpZGlhbiBBUElcblx0XHRcdFx0XHRlZGl0aW5nRG9jdW1lbnRGb2xkKGFjdGl2ZVZpZXcuZWRpdG9yLmNtLmRvY1ZpZXcudmlldyk7XG5cdFx0XHR9XG5cdFx0fX0pO1xuXG5cdFx0dGhpcy5hcHAud29ya3NwYWNlLm9uTGF5b3V0UmVhZHkoKCk9Pnt0aGlzLnJlbmRlclJlYWRpbmdWaWV3KCk7fSk7IC8vIEFkZCBkZWNvcmF0aW9uIG9uIGVuYWJsaW5nIG9mIHBsdWdpblxuXG5cdFx0Y29uc29sZS5sb2coXCJMb2FkZWQgcGx1Z2luOiBDb2RlIFN0eWxlclwiKTtcblx0fVxuXHRcblx0b251bmxvYWQoKSB7XG5cdFx0dGhpcy5leGVjdXRlQ29kZU11dGF0aW9uT2JzZXJ2ZXIuZGlzY29ubmVjdCgpO1xuXHRcdHJlbW92ZVN0eWxlc0FuZENsYXNzZXMoKTtcblx0XHRkZXN0cm95UmVhZGluZ01vZGVFbGVtZW50cygpO1xuXHRcdGZvciAoY29uc3QgdXJsIG9mIE9iamVjdC52YWx1ZXModGhpcy5sYW5ndWFnZUljb25zKSkgLy8gVW5sb2FkIGljb25zXG5cdFx0XHRVUkwucmV2b2tlT2JqZWN0VVJMKHVybCk7XG5cdFx0Y29uc29sZS5sb2coXCJVbmxvYWRlZCBwbHVnaW46IENvZGUgU3R5bGVyXCIpO1xuXHR9XG5cblx0YXN5bmMgbG9hZFNldHRpbmdzKCkge1xuXHRcdHRoaXMuc2V0dGluZ3MgPSBPYmplY3QuYXNzaWduKHt9LCBzdHJ1Y3R1cmVkQ2xvbmUoREVGQVVMVF9TRVRUSU5HUyksIGF3YWl0IHRoaXMubG9hZERhdGEoKSk7XG5cdH1cblxuXHRhc3luYyBzYXZlU2V0dGluZ3MoKSB7XG5cdFx0YXdhaXQgdGhpcy5zYXZlRGF0YSh0aGlzLnNldHRpbmdzKTtcblx0XHR0aGlzLmFwcC53b3Jrc3BhY2UudXBkYXRlT3B0aW9ucygpO1xuXHRcdHVwZGF0ZVN0eWxpbmcodGhpcy5zZXR0aW5ncyx0aGlzLmFwcCk7XG5cdH1cblxuXHRyZW5kZXJSZWFkaW5nVmlldygpIHtcblx0XHR0aGlzLmFwcC53b3Jrc3BhY2UuaXRlcmF0ZVJvb3RMZWF2ZXMoKGxlYWY6IFdvcmtzcGFjZUxlYWYpID0+IHtcblx0XHRcdGlmIChsZWFmLnZpZXcgaW5zdGFuY2VvZiBNYXJrZG93blZpZXcgJiYgbGVhZi52aWV3LmdldE1vZGUoKSA9PT0gXCJwcmV2aWV3XCIpXG5cdFx0XHRcdGxlYWYudmlldy5wcmV2aWV3TW9kZS5yZXJlbmRlcih0cnVlKTtcblx0XHR9KTtcblx0fVxufVxuIiwgIi8vIFR5cGluZ1xuZXhwb3J0IHR5cGUgSEVYID0gYCMke3N0cmluZ31gO1xuZXhwb3J0IHR5cGUgQ1NTID0gYC0tJHtzdHJpbmd9YDtcbmV4cG9ydCB0eXBlIENvbG91ciA9IEhFWCB8IENTUztcbmV4cG9ydCB0eXBlIFBlcmNlbnRhZ2UgPSBgJHtudW1iZXJ9JWA7XG5leHBvcnQgdHlwZSBEaXNwbGF5ID0gXCJub25lXCIgfCBcImlmX2hlYWRlcl9zaG93blwiIHwgXCJhbHdheXNcIjtcblxuLy8gSW50ZXJmYWNlIENyZWF0aW9uXG5leHBvcnQgaW50ZXJmYWNlIENvZGVTdHlsZXJUaGVtZU1vZGVDb2xvdXJzIHtcblx0Y29kZWJsb2NrOiB7XG5cdFx0YmFja2dyb3VuZENvbG91cjogQ29sb3VyO1xuXHRcdHRleHRDb2xvdXI6IENvbG91cjtcblx0fSxcblx0Z3V0dGVyOiB7XG5cdFx0YmFja2dyb3VuZENvbG91cjogQ29sb3VyO1xuXHRcdHRleHRDb2xvdXI6IENvbG91cjtcblx0XHRhY3RpdmVUZXh0Q29sb3VyOiBDb2xvdXI7XG5cdH0sXG5cdGhlYWRlcjoge1xuXHRcdGJhY2tncm91bmRDb2xvdXI6IENvbG91cjtcblx0XHR0aXRsZToge1xuXHRcdFx0dGV4dENvbG91cjogQ29sb3VyO1xuXHRcdH0sXG5cdFx0bGFuZ3VhZ2VUYWc6IHtcblx0XHRcdGJhY2tncm91bmRDb2xvdXI6IENvbG91cjtcblx0XHRcdHRleHRDb2xvdXI6IENvbG91cjtcblx0XHR9LFxuXHRcdGxpbmVDb2xvdXI6IENvbG91cjtcblx0fSxcblx0aGlnaGxpZ2h0czoge1xuXHRcdGFjdGl2ZUNvZGVibG9ja0xpbmVDb2xvdXI6IENvbG91cjtcblx0XHRhY3RpdmVFZGl0b3JMaW5lQ29sb3VyOiBDb2xvdXI7XG5cdFx0ZGVmYXVsdENvbG91cjogQ29sb3VyO1xuXHRcdGFsdGVybmF0aXZlSGlnaGxpZ2h0czogUmVjb3JkPHN0cmluZyxDb2xvdXI+O1xuXHR9LFxuXHRpbmxpbmU6IHtcblx0XHRiYWNrZ3JvdW5kQ29sb3VyOiBDb2xvdXI7XG5cdFx0dGV4dENvbG91cjogQ29sb3VyO1xuXHRcdGFjdGl2ZVRleHRDb2xvdXI6IENvbG91cjtcblx0XHR0aXRsZVRleHRDb2xvdXI6IENvbG91clxuXHR9XG5cdGFkdmFuY2VkOiB7XG5cdFx0YnV0dG9uQ29sb3VyOiBDb2xvdXI7XG5cdFx0YnV0dG9uQWN0aXZlQ29sb3VyOiBDb2xvdXI7XG5cdH1cbn1cbmV4cG9ydCBpbnRlcmZhY2UgQ29kZVN0eWxlclRoZW1lU2V0dGluZ3Mge1xuXHRjb2RlYmxvY2s6IHtcblx0XHRsaW5lTnVtYmVyczogYm9vbGVhbjtcblx0XHR1bndyYXBMaW5lczogYm9vbGVhbjtcblx0XHR3cmFwTGluZXNBY3RpdmU6IGJvb2xlYW47XG5cdFx0Y3VydmF0dXJlOiBudW1iZXI7XG5cdH0sXG5cdGd1dHRlcjoge1xuXHRcdGhpZ2hsaWdodDogYm9vbGVhbjtcblx0XHRhY3RpdmVMaW5lOiBib29sZWFuO1xuXHR9LFxuXHRoZWFkZXI6IHtcblx0XHR0aXRsZToge1xuXHRcdFx0dGV4dEZvbnQ6IHN0cmluZztcblx0XHRcdHRleHRCb2xkOiBib29sZWFuO1xuXHRcdFx0dGV4dEl0YWxpYzogYm9vbGVhbjtcblx0XHR9LFxuXHRcdGxhbmd1YWdlVGFnOiB7XG5cdFx0XHRkaXNwbGF5OiBEaXNwbGF5O1xuXHRcdFx0dGV4dEZvbnQ6IHN0cmluZztcblx0XHRcdHRleHRCb2xkOiBib29sZWFuO1xuXHRcdFx0dGV4dEl0YWxpYzogYm9vbGVhbjtcblx0XHR9LFxuXHRcdGxhbmd1YWdlSWNvbjoge1xuXHRcdFx0ZGlzcGxheTogRGlzcGxheTtcblx0XHRcdGRpc3BsYXlDb2xvdXI6IGJvb2xlYW47XG5cdFx0fSxcblx0XHRmb250U2l6ZTogbnVtYmVyO1xuXHRcdGZvbGRQbGFjZWhvbGRlcjogc3RyaW5nO1xuXHR9LFxuXHRoaWdobGlnaHRzOiB7XG5cdFx0YWN0aXZlQ29kZWJsb2NrTGluZTogYm9vbGVhbjtcblx0XHRhY3RpdmVFZGl0b3JMaW5lOiBib29sZWFuO1xuXHR9LFxuXHRpbmxpbmU6IHtcblx0XHRzeW50YXhIaWdobGlnaHQ6IGJvb2xlYW47XG5cdFx0Zm9udFdlaWdodDogbnVtYmVyO1xuXHRcdGN1cnZhdHVyZTogbnVtYmVyO1xuXHRcdHBhZGRpbmdWZXJ0aWNhbDogbnVtYmVyO1xuXHRcdHBhZGRpbmdIb3Jpem9udGFsOiBudW1iZXI7XG5cdFx0bWFyZ2luSG9yaXpvbnRhbDogbnVtYmVyO1xuXHRcdHRpdGxlRm9udFdlaWdodDogbnVtYmVyO1xuXHR9LFxuXHRhZHZhbmNlZDoge1xuXHRcdGdyYWRpZW50SGlnaGxpZ2h0czogYm9vbGVhbjtcblx0XHRncmFkaWVudEhpZ2hsaWdodHNDb2xvdXJTdG9wOiBQZXJjZW50YWdlO1xuXHRcdGxhbmd1YWdlQm9yZGVyQ29sb3VyOiBib29sZWFuO1xuXHRcdGxhbmd1YWdlQm9yZGVyV2lkdGg6IG51bWJlcjtcblx0XHRpY29uU2l6ZTogbnVtYmVyO1xuXHR9O1xufVxuZXhwb3J0IGludGVyZmFjZSBDb2RlU3R5bGVyVGhlbWVDb2xvdXJzIHtcblx0bGlnaHQ6IENvZGVTdHlsZXJUaGVtZU1vZGVDb2xvdXJzO1xuXHRkYXJrOiBDb2RlU3R5bGVyVGhlbWVNb2RlQ29sb3Vycztcbn1cbmV4cG9ydCBpbnRlcmZhY2UgQ29kZVN0eWxlclRoZW1lIHtcblx0c2V0dGluZ3M6IENvZGVTdHlsZXJUaGVtZVNldHRpbmdzO1xuXHRjb2xvdXJzOiBDb2RlU3R5bGVyVGhlbWVDb2xvdXJzO1xufVxuZXhwb3J0IGludGVyZmFjZSBDb2RlU3R5bGVyU2V0dGluZ3Mge1xuXHR0aGVtZXM6IFJlY29yZDxzdHJpbmcsQ29kZVN0eWxlclRoZW1lPjtcblx0c2VsZWN0ZWRUaGVtZTogc3RyaW5nO1xuXHRjdXJyZW50VGhlbWU6IENvZGVTdHlsZXJUaGVtZTtcblx0bmV3VGhlbWU6IHN0cmluZztcblx0bmV3SGlnaGxpZ2h0OiBzdHJpbmc7XG5cdGRlY29yYXRlUHJpbnQ6IGJvb2xlYW47XG5cdGV4Y2x1ZGVkTGFuZ3VhZ2VzOiBzdHJpbmc7XG5cdGV4Y2x1ZGVkQ29kZWJsb2Nrczogc3RyaW5nO1xuXHRzcGVjaWFsTGFuZ3VhZ2VzOiBBcnJheTxzdHJpbmc+O1xuXHRyZWRpcmVjdExhbmd1YWdlczogUmVjb3JkPHN0cmluZyx7Y29sb3VyPzogQ29sb3VyLCBpY29uPzogc3RyaW5nfT5cbn1cblxuLy8gVGhlbWUgRGVmYXVsdHNcbmNvbnN0IFRIRU1FX0RFRkFVTFRfU0VUVElOR1M6IENvZGVTdHlsZXJUaGVtZVNldHRpbmdzID0ge1xuXHRjb2RlYmxvY2s6IHtcblx0XHRsaW5lTnVtYmVyczogdHJ1ZSxcblx0XHR1bndyYXBMaW5lczogdHJ1ZSxcblx0XHR3cmFwTGluZXNBY3RpdmU6IGZhbHNlLFxuXHRcdGN1cnZhdHVyZTogNCxcblx0fSxcblx0Z3V0dGVyOiB7XG5cdFx0aGlnaGxpZ2h0OiB0cnVlLFxuXHRcdGFjdGl2ZUxpbmU6IGZhbHNlLFxuXHR9LFxuXHRoZWFkZXI6IHtcblx0XHR0aXRsZToge1xuXHRcdFx0dGV4dEZvbnQ6IFwiXCIsXG5cdFx0XHR0ZXh0Qm9sZDogZmFsc2UsXG5cdFx0XHR0ZXh0SXRhbGljOiB0cnVlLFxuXHRcdH0sXG5cdFx0bGFuZ3VhZ2VUYWc6IHtcblx0XHRcdGRpc3BsYXk6IFwibm9uZVwiLFxuXHRcdFx0dGV4dEZvbnQ6IFwiXCIsXG5cdFx0XHR0ZXh0Qm9sZDogdHJ1ZSxcblx0XHRcdHRleHRJdGFsaWM6IGZhbHNlLFxuXHRcdH0sXG5cdFx0bGFuZ3VhZ2VJY29uOiB7XG5cdFx0XHRkaXNwbGF5OiBcIm5vbmVcIixcblx0XHRcdGRpc3BsYXlDb2xvdXI6IHRydWUsXG5cdFx0fSxcblx0XHRmb250U2l6ZTogMTQsXG5cdFx0Zm9sZFBsYWNlaG9sZGVyOiBcIlwiLFxuXHR9LFxuXHRoaWdobGlnaHRzOiB7XG5cdFx0YWN0aXZlQ29kZWJsb2NrTGluZTogZmFsc2UsXG5cdFx0YWN0aXZlRWRpdG9yTGluZTogZmFsc2UsXG5cdH0sXG5cdGlubGluZToge1xuXHRcdHN5bnRheEhpZ2hsaWdodDogdHJ1ZSxcblx0XHRmb250V2VpZ2h0OiA0LFxuXHRcdGN1cnZhdHVyZTogNixcblx0XHRwYWRkaW5nVmVydGljYWw6IDUsXG5cdFx0cGFkZGluZ0hvcml6b250YWw6IDUsXG5cdFx0bWFyZ2luSG9yaXpvbnRhbDogMCxcblx0XHR0aXRsZUZvbnRXZWlnaHQ6IDgsXG5cdH0sXG5cdGFkdmFuY2VkOiB7XG5cdFx0Z3JhZGllbnRIaWdobGlnaHRzOiBmYWxzZSxcblx0XHRncmFkaWVudEhpZ2hsaWdodHNDb2xvdXJTdG9wOiBcIjcwJVwiLFxuXHRcdGxhbmd1YWdlQm9yZGVyQ29sb3VyOiBmYWxzZSxcblx0XHRsYW5ndWFnZUJvcmRlcldpZHRoOiA1LFxuXHRcdGljb25TaXplOiAyOCxcblx0fSxcbn07XG5leHBvcnQgY29uc3QgVEhFTUVfRkFMTEJBQ0tfQ09MT1VSUzogQ29kZVN0eWxlclRoZW1lTW9kZUNvbG91cnMgPSB7XG5cdGNvZGVibG9jazoge1xuXHRcdGJhY2tncm91bmRDb2xvdXI6IFwiLS1jb2RlLWJhY2tncm91bmRcIixcblx0XHR0ZXh0Q29sb3VyOiBcIi0tY29kZS1ub3JtYWxcIixcblx0fSxcblx0Z3V0dGVyOiB7XG5cdFx0YmFja2dyb3VuZENvbG91cjogXCItLWNvZGUtYmFja2dyb3VuZFwiLFxuXHRcdHRleHRDb2xvdXI6IFwiLS10ZXh0LWZhaW50XCIsXG5cdFx0YWN0aXZlVGV4dENvbG91cjogXCItLXRleHQtbXV0ZWRcIixcblx0fSxcblx0aGVhZGVyOiB7XG5cdFx0YmFja2dyb3VuZENvbG91cjogXCItLWNvZGUtYmFja2dyb3VuZFwiLFxuXHRcdHRpdGxlOiB7XG5cdFx0XHR0ZXh0Q29sb3VyOiBcIi0tY29kZS1jb21tZW50XCIsXG5cdFx0fSxcblx0XHRsYW5ndWFnZVRhZzoge1xuXHRcdFx0YmFja2dyb3VuZENvbG91cjogXCItLWNvZGUtYmFja2dyb3VuZFwiLFxuXHRcdFx0dGV4dENvbG91cjogXCItLWNvZGUtY29tbWVudFwiLFxuXHRcdH0sXG5cdFx0bGluZUNvbG91cjogXCItLWNvbG9yLWJhc2UtMzBcIixcblx0fSxcblx0aGlnaGxpZ2h0czoge1xuXHRcdGFjdGl2ZUNvZGVibG9ja0xpbmVDb2xvdXI6IFwiLS1jb2xvci1iYXNlLTMwXCIsXG5cdFx0YWN0aXZlRWRpdG9yTGluZUNvbG91cjogXCItLWNvbG9yLWJhc2UtMjBcIixcblx0XHRkZWZhdWx0Q29sb3VyOiBcIi0tdGV4dC1oaWdobGlnaHQtYmdcIixcblx0XHRhbHRlcm5hdGl2ZUhpZ2hsaWdodHM6IHt9LFxuXHR9LFxuXHRpbmxpbmU6IHtcblx0XHRiYWNrZ3JvdW5kQ29sb3VyOiBcIi0tY29kZS1iYWNrZ3JvdW5kXCIsXG5cdFx0dGV4dENvbG91cjogXCItLWNvZGUtbm9ybWFsXCIsXG5cdFx0YWN0aXZlVGV4dENvbG91cjogXCItLWNvZGUtbm9ybWFsXCIsXG5cdFx0dGl0bGVUZXh0Q29sb3VyOiBcIi0tY29kZS1jb21tZW50XCIsXG5cdH0sXG5cdGFkdmFuY2VkOiB7XG5cdFx0YnV0dG9uQ29sb3VyOiBcIi0tdGV4dC1tdXRlZFwiLFxuXHRcdGJ1dHRvbkFjdGl2ZUNvbG91cjogXCItLXRleHQtbm9ybWFsXCIsXG5cdH1cbn07XG5cbi8vIFRoZW1lIENyZWF0aW9uXG5jb25zdCBERUZBVUxUX1RIRU1FOiBDb2RlU3R5bGVyVGhlbWUgPSB7XG5cdHNldHRpbmdzOiBUSEVNRV9ERUZBVUxUX1NFVFRJTkdTLFxuXHRjb2xvdXJzOiB7XG5cdFx0bGlnaHQ6IFRIRU1FX0ZBTExCQUNLX0NPTE9VUlMsXG5cdFx0ZGFyazogVEhFTUVfRkFMTEJBQ0tfQ09MT1VSUyxcblx0fSxcbn07XG5jb25zdCBTT0xBUklaRURfVEhFTUU6IENvZGVTdHlsZXJUaGVtZSA9IHtcblx0c2V0dGluZ3M6IFRIRU1FX0RFRkFVTFRfU0VUVElOR1MsXG5cdGNvbG91cnM6IHtcblx0XHRsaWdodDoge1xuXHRcdFx0Y29kZWJsb2NrOiB7XG5cdFx0XHRcdGJhY2tncm91bmRDb2xvdXI6IFwiI0ZDRjZFNFwiLFxuXHRcdFx0XHR0ZXh0Q29sb3VyOiBcIiNiYWJhYmFcIixcblx0XHRcdH0sXG5cdFx0XHRndXR0ZXI6IHtcblx0XHRcdFx0YmFja2dyb3VuZENvbG91cjogXCIjRURFOEQ2XCIsXG5cdFx0XHRcdHRleHRDb2xvdXI6IFwiIzZjNmM2Y1wiLFxuXHRcdFx0XHRhY3RpdmVUZXh0Q29sb3VyOiBcIiM4YzhjOGNcIixcblx0XHRcdH0sXG5cdFx0XHRoZWFkZXI6IHtcblx0XHRcdFx0YmFja2dyb3VuZENvbG91cjogXCIjRDVDQ0I0XCIsXG5cdFx0XHRcdHRpdGxlOiB7XG5cdFx0XHRcdFx0dGV4dENvbG91cjogXCIjODY2NzA0XCIsXG5cdFx0XHRcdH0sXG5cdFx0XHRcdGxhbmd1YWdlVGFnOiB7XG5cdFx0XHRcdFx0YmFja2dyb3VuZENvbG91cjogXCIjQjhCNUFBXCIsXG5cdFx0XHRcdFx0dGV4dENvbG91cjogXCIjQzI1RjMwXCIsXG5cdFx0XHRcdH0sXG5cdFx0XHRcdGxpbmVDb2xvdXI6IFwiI0VERDQ4OVwiLFxuXHRcdFx0fSxcblx0XHRcdGhpZ2hsaWdodHM6IHtcblx0XHRcdFx0YWN0aXZlQ29kZWJsb2NrTGluZUNvbG91cjogXCIjRURFOEQ2XCIsXG5cdFx0XHRcdGFjdGl2ZUVkaXRvckxpbmVDb2xvdXI6IFwiIzYwNDYwNjMzXCIsXG5cdFx0XHRcdGRlZmF1bHRDb2xvdXI6IFwiI0U5REZCQVwiLFxuXHRcdFx0XHRhbHRlcm5hdGl2ZUhpZ2hsaWdodHM6IHt9LFxuXHRcdFx0fSxcblx0XHRcdGlubGluZToge1xuXHRcdFx0XHRiYWNrZ3JvdW5kQ29sb3VyOiBcIiNGQ0Y2RTRcIixcblx0XHRcdFx0dGV4dENvbG91cjogXCIjYmFiYWJhXCIsXG5cdFx0XHRcdGFjdGl2ZVRleHRDb2xvdXI6IFwiI2JhYmFiYVwiLFxuXHRcdFx0XHR0aXRsZVRleHRDb2xvdXI6IFwiI0MyNUYzMFwiLFxuXHRcdFx0fSxcblx0XHRcdGFkdmFuY2VkOiB7XG5cdFx0XHRcdGJ1dHRvbkNvbG91cjogXCItLXRleHQtbXV0ZWRcIixcblx0XHRcdFx0YnV0dG9uQWN0aXZlQ29sb3VyOiBcIi0tdGV4dC1ub3JtYWxcIixcblx0XHRcdH1cblx0XHR9LFxuXHRcdGRhcms6IHtcblx0XHRcdGNvZGVibG9jazoge1xuXHRcdFx0XHRiYWNrZ3JvdW5kQ29sb3VyOiBcIiMwMDJiMzZcIixcblx0XHRcdFx0dGV4dENvbG91cjogXCIjYmFiYWJhXCIsXG5cdFx0XHR9LFxuXHRcdFx0Z3V0dGVyOiB7XG5cdFx0XHRcdGJhY2tncm91bmRDb2xvdXI6IFwiIzA3MzY0MlwiLFxuXHRcdFx0XHR0ZXh0Q29sb3VyOiBcIiM2YzZjNmNcIixcblx0XHRcdFx0YWN0aXZlVGV4dENvbG91cjogXCIjNGM0YzRjXCIsXG5cdFx0XHR9LFxuXHRcdFx0aGVhZGVyOiB7XG5cdFx0XHRcdGJhY2tncm91bmRDb2xvdXI6IFwiIzBhNDU1NFwiLFxuXHRcdFx0XHR0aXRsZToge1xuXHRcdFx0XHRcdHRleHRDb2xvdXI6IFwiI2RhZGFkYVwiLFxuXHRcdFx0XHR9LFxuXHRcdFx0XHRsYW5ndWFnZVRhZzoge1xuXHRcdFx0XHRcdGJhY2tncm91bmRDb2xvdXI6IFwiIzAwODA4MFwiLFxuXHRcdFx0XHRcdHRleHRDb2xvdXI6IFwiIzAwMDAwMFwiLFxuXHRcdFx0XHR9LFxuXHRcdFx0XHRsaW5lQ29sb3VyOiBcIiM0NmNjZWRcIixcblx0XHRcdH0sXG5cdFx0XHRoaWdobGlnaHRzOiB7XG5cdFx0XHRcdGFjdGl2ZUNvZGVibG9ja0xpbmVDb2xvdXI6IFwiIzA3MzY0MlwiLFxuXHRcdFx0XHRhY3RpdmVFZGl0b3JMaW5lQ29sb3VyOiBcIiM0NjhlZWIzM1wiLFxuXHRcdFx0XHRkZWZhdWx0Q29sb3VyOiBcIiMwNTRiNWNcIixcblx0XHRcdFx0YWx0ZXJuYXRpdmVIaWdobGlnaHRzOiB7fSxcblx0XHRcdH0sXG5cdFx0XHRpbmxpbmU6IHtcblx0XHRcdFx0YmFja2dyb3VuZENvbG91cjogXCIjMDAyYjM2XCIsXG5cdFx0XHRcdHRleHRDb2xvdXI6IFwiI2JhYmFiYVwiLFxuXHRcdFx0XHRhY3RpdmVUZXh0Q29sb3VyOiBcIiNiYWJhYmFcIixcblx0XHRcdFx0dGl0bGVUZXh0Q29sb3VyOiBcIiMwMDAwMDBcIixcblx0XHRcdH0sXG5cdFx0XHRhZHZhbmNlZDoge1xuXHRcdFx0XHRidXR0b25Db2xvdXI6IFwiLS10ZXh0LW11dGVkXCIsXG5cdFx0XHRcdGJ1dHRvbkFjdGl2ZUNvbG91cjogXCItLXRleHQtbm9ybWFsXCIsXG5cdFx0XHR9XG5cdFx0fSxcblx0fSxcbn07XG5cbi8vIFBsdWdpbiBkZWZhdWx0IHNldHRpbmdzXG5leHBvcnQgY29uc3QgREVGQVVMVF9TRVRUSU5HUzogQ29kZVN0eWxlclNldHRpbmdzID0ge1xuXHR0aGVtZXM6IHtcblx0XHRcIkRlZmF1bHRcIjogREVGQVVMVF9USEVNRSxcblx0XHRcIlNvbGFyaXplZFwiOiBTT0xBUklaRURfVEhFTUUsXG5cdH0sXG5cdHNlbGVjdGVkVGhlbWU6IFwiRGVmYXVsdFwiLFxuXHRjdXJyZW50VGhlbWU6IHN0cnVjdHVyZWRDbG9uZShERUZBVUxUX1RIRU1FKSxcblx0bmV3VGhlbWU6IFwiXCIsXG5cdG5ld0hpZ2hsaWdodDogXCJcIixcblx0ZGVjb3JhdGVQcmludDogdHJ1ZSxcblx0ZXhjbHVkZWRMYW5ndWFnZXM6IFwiYWQtKlwiLFxuXHRleGNsdWRlZENvZGVibG9ja3M6IFwiZGF0YXZpZXcsIGRhdGF2aWV3anMsIG1hdGhcIixcblx0c3BlY2lhbExhbmd1YWdlczogW1wiXnByZXZpZXckXCIsXCJeaW5jbHVkZSRcIixcIl5vdXRwdXQkXCIsXCJecnVuLS4rJFwiXSxcblx0cmVkaXJlY3RMYW5ndWFnZXM6IHt9LFxufTtcblxuLy8gQ29uc3RhbnRzXG5leHBvcnQgY29uc3QgRk9MRF9QTEFDRUhPTERFUiA9IFwiRm9sZGVkIENvZGVcIjtcbmV4cG9ydCBjb25zdCBQQVJBTUVURVJTID0gW1widGl0bGVcIixcImZvbGRcIixcImxuXCIsXCJ1bndyYXBcIixcImlnbm9yZVwiXTtcbmV4cG9ydCBjb25zdCBUUkFOU0lUSU9OX0xFTkdUSCA9IDI0MDsgLy8gMjQwbXNcblxuY29uc3QgUFJJU01fTEFOR1VBR0VTOiB7W2tleTogc3RyaW5nXTogc3RyaW5nfSA9IHsgLy8gUHJpc20gTGFuZ3VhZ2VzOiBodHRwczovL3ByaXNtanMuY29tL3BsdWdpbnMvc2hvdy1sYW5ndWFnZS9cblx0Ly8gXCJub25lXCI6IFwiUGxhaW4gdGV4dFwiLCAvLyBOT1RFOiBPYnNpZGlhbiB1c2VzIHRoaXMgZm9yIGNvZGVibG9ja3Mgd2l0aG91dCBsYW5ndWFnZSBuYW1lc1xuXHRcInBsYWluXCI6IFwiUGxhaW4gdGV4dFwiLFxuXHRcInBsYWludGV4dFwiOiBcIlBsYWluIHRleHRcIixcblx0XCJ0ZXh0XCI6IFwiUGxhaW4gdGV4dFwiLFxuXHRcInR4dFwiOiBcIlBsYWluIHRleHRcIixcblx0XCJodG1sXCI6IFwiSFRNTFwiLFxuXHRcInhtbFwiOiBcIlhNTFwiLFxuXHRcInN2Z1wiOiBcIlNWR1wiLFxuXHRcIm1hdGhtbFwiOiBcIk1hdGhNTFwiLFxuXHRcInNzbWxcIjogXCJTU01MXCIsXG5cdFwicnNzXCI6IFwiUlNTXCIsXG5cdFwiY3NzXCI6IFwiQ1NTXCIsXG5cdFwiY2xpa2VcIjogXCJDLWxpa2VcIixcblx0XCJqc1wiOiBcIkphdmFTY3JpcHRcIixcblx0XCJhYmFwXCI6IFwiQUJBUFwiLFxuXHRcImFibmZcIjogXCJBQk5GXCIsXG5cdFwiYWxcIjogXCJBTFwiLFxuXHRcImFudGxyNFwiOiBcIkFOVExSNFwiLFxuXHRcImc0XCI6IFwiQU5UTFI0XCIsXG5cdFwiYXBhY2hlY29uZlwiOiBcIkFwYWNoZSBDb25maWd1cmF0aW9uXCIsXG5cdFwiYXBsXCI6IFwiQVBMXCIsXG5cdFwiYXFsXCI6IFwiQVFMXCIsXG5cdFwiaW5vXCI6IFwiQXJkdWlub1wiLFxuXHRcImFyZmZcIjogXCJBUkZGXCIsXG5cdFwiYXJtYXNtXCI6IFwiQVJNIEFzc2VtYmx5XCIsXG5cdFwiYXJtLWFzbVwiOiBcIkFSTSBBc3NlbWJseVwiLFxuXHRcImFydFwiOiBcIkFydHVyb1wiLFxuXHRcImFzY2lpZG9jXCI6IFwiQXNjaWlEb2NcIixcblx0XCJhZG9jXCI6IFwiQXNjaWlEb2NcIixcblx0XCJhc3BuZXRcIjogXCJBU1AuTkVUIChDIylcIixcblx0XCJhc202NTAyXCI6IFwiNjUwMiBBc3NlbWJseVwiLFxuXHRcImFzbWF0bWVsXCI6IFwiQXRtZWwgQVZSIEFzc2VtYmx5XCIsXG5cdFwiYXV0b2hvdGtleVwiOiBcIkF1dG9Ib3RrZXlcIixcblx0XCJhdXRvaXRcIjogXCJBdXRvSXRcIixcblx0XCJhdmlzeW50aFwiOiBcIkF2aVN5bnRoXCIsXG5cdFwiYXZzXCI6IFwiQXZpU3ludGhcIixcblx0XCJhdnJvLWlkbFwiOiBcIkF2cm8gSURMXCIsXG5cdFwiYXZkbFwiOiBcIkF2cm8gSURMXCIsXG5cdFwiYXdrXCI6IFwiQVdLXCIsXG5cdFwiZ2F3a1wiOiBcIkdBV0tcIixcblx0XCJzaFwiOiBcIlNoZWxsXCIsXG5cdFwiYmFzaWNcIjogXCJCQVNJQ1wiLFxuXHRcImJiY29kZVwiOiBcIkJCY29kZVwiLFxuXHRcImJialwiOiBcIkJCalwiLFxuXHRcImJuZlwiOiBcIkJORlwiLFxuXHRcInJibmZcIjogXCJSQk5GXCIsXG5cdFwiYnFuXCI6IFwiQlFOXCIsXG5cdFwiYnNsXCI6IFwiQlNMICgxQzpFbnRlcnByaXNlKVwiLFxuXHRcIm9zY3JpcHRcIjogXCJPbmVTY3JpcHRcIixcblx0XCJjc2hhcnBcIjogXCJDI1wiLFxuXHRcImNzXCI6IFwiQyNcIixcblx0XCJkb3RuZXRcIjogXCJDI1wiLFxuXHRcImNwcFwiOiBcIkMrK1wiLFxuXHRcImNmc2NyaXB0XCI6IFwiQ0ZTY3JpcHRcIixcblx0XCJjZmNcIjogXCJDRlNjcmlwdFwiLFxuXHRcImNpbFwiOiBcIkNJTFwiLFxuXHRcImNpbGtjXCI6IFwiQ2lsay9DXCIsXG5cdFwiY2lsay1jXCI6IFwiQ2lsay9DXCIsXG5cdFwiY2lsa2NwcFwiOiBcIkNpbGsvQysrXCIsXG5cdFwiY2lsay1jcHBcIjogXCJDaWxrL0MrK1wiLFxuXHRcImNpbGtcIjogXCJDaWxrL0MrK1wiLFxuXHRcImNtYWtlXCI6IFwiQ01ha2VcIixcblx0XCJjb2JvbFwiOiBcIkNPQk9MXCIsXG5cdFwiY29mZmVlXCI6IFwiQ29mZmVlU2NyaXB0XCIsXG5cdFwiY29uY1wiOiBcIkNvbmN1cm5hc1wiLFxuXHRcImNzcFwiOiBcIkNvbnRlbnQtU2VjdXJpdHktUG9saWN5XCIsXG5cdFwiY3NzLWV4dHJhc1wiOiBcIkNTUyBFeHRyYXNcIixcblx0XCJjc3ZcIjogXCJDU1ZcIixcblx0XCJjdWVcIjogXCJDVUVcIixcblx0XCJkYXRhd2VhdmVcIjogXCJEYXRhV2VhdmVcIixcblx0XCJkYXhcIjogXCJEQVhcIixcblx0XCJkamFuZ29cIjogXCJEamFuZ28vSmluamEyXCIsXG5cdFwiamluamEyXCI6IFwiRGphbmdvL0ppbmphMlwiLFxuXHRcImRucy16b25lLWZpbGVcIjogXCJETlMgem9uZSBmaWxlXCIsXG5cdFwiZG5zLXpvbmVcIjogXCJETlMgem9uZSBmaWxlXCIsXG5cdFwiZG9ja2VyZmlsZVwiOiBcIkRvY2tlclwiLFxuXHRcImRvdFwiOiBcIkRPVCAoR3JhcGh2aXopXCIsXG5cdFwiZ3ZcIjogXCJET1QgKEdyYXBodml6KVwiLFxuXHRcImVibmZcIjogXCJFQk5GXCIsXG5cdFwiZWRpdG9yY29uZmlnXCI6IFwiRWRpdG9yQ29uZmlnXCIsXG5cdFwiZWpzXCI6IFwiRUpTXCIsXG5cdFwiZXRsdWFcIjogXCJFbWJlZGRlZCBMdWEgdGVtcGxhdGluZ1wiLFxuXHRcImVyYlwiOiBcIkVSQlwiLFxuXHRcImV4Y2VsLWZvcm11bGFcIjogXCJFeGNlbCBGb3JtdWxhXCIsXG5cdFwieGxzeFwiOiBcIkV4Y2VsIEZvcm11bGFcIixcblx0XCJ4bHNcIjogXCJFeGNlbCBGb3JtdWxhXCIsXG5cdFwiZnNoYXJwXCI6IFwiRiNcIixcblx0XCJmaXJlc3RvcmUtc2VjdXJpdHktcnVsZXNcIjogXCJGaXJlc3RvcmUgc2VjdXJpdHkgcnVsZXNcIixcblx0XCJmdGxcIjogXCJGcmVlTWFya2VyIFRlbXBsYXRlIExhbmd1YWdlXCIsXG5cdFwiZ21sXCI6IFwiR2FtZU1ha2VyIExhbmd1YWdlXCIsXG5cdFwiZ2FtZW1ha2VybGFuZ3VhZ2VcIjogXCJHYW1lTWFrZXIgTGFuZ3VhZ2VcIixcblx0XCJnYXBcIjogXCJHQVAgKENBUylcIixcblx0XCJnY29kZVwiOiBcIkctY29kZVwiLFxuXHRcImdkc2NyaXB0XCI6IFwiR0RTY3JpcHRcIixcblx0XCJnZWRjb21cIjogXCJHRURDT01cIixcblx0XCJnZXR0ZXh0XCI6IFwiZ2V0dGV4dFwiLFxuXHRcInBvXCI6IFwiZ2V0dGV4dFwiLFxuXHRcImdsc2xcIjogXCJHTFNMXCIsXG5cdFwiZ25cIjogXCJHTlwiLFxuXHRcImduaVwiOiBcIkdOXCIsXG5cdFwibGlua2VyLXNjcmlwdFwiOiBcIkdOVSBMaW5rZXIgU2NyaXB0XCIsXG5cdFwibGRcIjogXCJHTlUgTGlua2VyIFNjcmlwdFwiLFxuXHRcImdvLW1vZHVsZVwiOiBcIkdvIG1vZHVsZVwiLFxuXHRcImdvLW1vZFwiOiBcIkdvIG1vZHVsZVwiLFxuXHRcImdyYXBocWxcIjogXCJHcmFwaFFMXCIsXG5cdFwiaGJzXCI6IFwiSGFuZGxlYmFyc1wiLFxuXHRcImhzXCI6IFwiSGFza2VsbFwiLFxuXHRcImhjbFwiOiBcIkhDTFwiLFxuXHRcImhsc2xcIjogXCJITFNMXCIsXG5cdFwiaHR0cFwiOiBcIkhUVFBcIixcblx0XCJocGtwXCI6IFwiSFRUUCBQdWJsaWMtS2V5LVBpbnNcIixcblx0XCJoc3RzXCI6IFwiSFRUUCBTdHJpY3QtVHJhbnNwb3J0LVNlY3VyaXR5XCIsXG5cdFwiaWNoaWdvamFtXCI6IFwiSWNoaWdvSmFtXCIsXG5cdFwiaWN1LW1lc3NhZ2UtZm9ybWF0XCI6IFwiSUNVIE1lc3NhZ2UgRm9ybWF0XCIsXG5cdFwiaWRyXCI6IFwiSWRyaXNcIixcblx0XCJpZ25vcmVcIjogXCIuaWdub3JlXCIsXG5cdFwiZ2l0aWdub3JlXCI6IFwiLmdpdGlnbm9yZVwiLFxuXHRcImhnaWdub3JlXCI6IFwiLmhnaWdub3JlXCIsXG5cdFwibnBtaWdub3JlXCI6IFwiLm5wbWlnbm9yZVwiLFxuXHRcImluZm9ybTdcIjogXCJJbmZvcm0gN1wiLFxuXHRcImphdmFkb2NcIjogXCJKYXZhRG9jXCIsXG5cdFwiamF2YWRvY2xpa2VcIjogXCJKYXZhRG9jLWxpa2VcIixcblx0XCJqYXZhc3RhY2t0cmFjZVwiOiBcIkphdmEgc3RhY2sgdHJhY2VcIixcblx0XCJqcVwiOiBcIkpRXCIsXG5cdFwianNkb2NcIjogXCJKU0RvY1wiLFxuXHRcImpzLWV4dHJhc1wiOiBcIkpTIEV4dHJhc1wiLFxuXHRcImpzb25cIjogXCJKU09OXCIsXG5cdFwid2VibWFuaWZlc3RcIjogXCJXZWIgQXBwIE1hbmlmZXN0XCIsXG5cdFwianNvbjVcIjogXCJKU09ONVwiLFxuXHRcImpzb25wXCI6IFwiSlNPTlBcIixcblx0XCJqc3N0YWNrdHJhY2VcIjogXCJKUyBzdGFjayB0cmFjZVwiLFxuXHRcImpzLXRlbXBsYXRlc1wiOiBcIkpTIFRlbXBsYXRlc1wiLFxuXHRcImtlZXBhbGl2ZWRcIjogXCJLZWVwYWxpdmVkIENvbmZpZ3VyZVwiLFxuXHRcImt0c1wiOiBcIktvdGxpbiBTY3JpcHRcIixcblx0XCJrdFwiOiBcIktvdGxpblwiLFxuXHRcImt1bWlyXCI6IFwiS3VNaXIgKFx1MDQxQVx1MDQ0M1x1MDQxQ1x1MDQzOFx1MDQ0MClcIixcblx0XCJrdW1cIjogXCJLdU1pciAoXHUwNDFBXHUwNDQzXHUwNDFDXHUwNDM4XHUwNDQwKVwiLFxuXHRcImxhdGV4XCI6IFwiTGFUZVhcIixcblx0XCJ0ZXhcIjogXCJUZVhcIixcblx0XCJjb250ZXh0XCI6IFwiQ29uVGVYdFwiLFxuXHRcImxpbHlwb25kXCI6IFwiTGlseVBvbmRcIixcblx0XCJseVwiOiBcIkxpbHlQb25kXCIsXG5cdFwiZW1hY3NcIjogXCJMaXNwXCIsXG5cdFwiZWxpc3BcIjogXCJMaXNwXCIsXG5cdFwiZW1hY3MtbGlzcFwiOiBcIkxpc3BcIixcblx0XCJsbHZtXCI6IFwiTExWTSBJUlwiLFxuXHRcImxvZ1wiOiBcIkxvZyBmaWxlXCIsXG5cdFwibG9sY29kZVwiOiBcIkxPTENPREVcIixcblx0XCJtYWdtYVwiOiBcIk1hZ21hIChDQVMpXCIsXG5cdFwibWRcIjogXCJNYXJrZG93blwiLFxuXHRcIm1hcmt1cC10ZW1wbGF0aW5nXCI6IFwiTWFya3VwIHRlbXBsYXRpbmdcIixcblx0XCJtYXRsYWJcIjogXCJNQVRMQUJcIixcblx0XCJtYXhzY3JpcHRcIjogXCJNQVhTY3JpcHRcIixcblx0XCJtZWxcIjogXCJNRUxcIixcblx0XCJtZXRhZm9udFwiOiBcIk1FVEFGT05UXCIsXG5cdFwibW9uZ29kYlwiOiBcIk1vbmdvREJcIixcblx0XCJtb29uXCI6IFwiTW9vblNjcmlwdFwiLFxuXHRcIm4xcWxcIjogXCJOMVFMXCIsXG5cdFwibjRqc1wiOiBcIk40SlNcIixcblx0XCJuNGpzZFwiOiBcIk40SlNcIixcblx0XCJuYW5kMnRldHJpcy1oZGxcIjogXCJOYW5kIFRvIFRldHJpcyBIRExcIixcblx0XCJuYW5pc2NyaXB0XCI6IFwiTmFuaW5vdmVsIFNjcmlwdFwiLFxuXHRcIm5hbmlcIjogXCJOYW5pbm92ZWwgU2NyaXB0XCIsXG5cdFwibmFzbVwiOiBcIk5BU01cIixcblx0XCJuZW9uXCI6IFwiTkVPTlwiLFxuXHRcIm5naW54XCI6IFwibmdpbnhcIixcblx0XCJuc2lzXCI6IFwiTlNJU1wiLFxuXHRcIm9iamVjdGl2ZWNcIjogXCJPYmplY3RpdmUtQ1wiLFxuXHRcIm9iamNcIjogXCJPYmplY3RpdmUtQ1wiLFxuXHRcIm9jYW1sXCI6IFwiT0NhbWxcIixcblx0XCJvcGVuY2xcIjogXCJPcGVuQ0xcIixcblx0XCJvcGVucWFzbVwiOiBcIk9wZW5RYXNtXCIsXG5cdFwicWFzbVwiOiBcIk9wZW5RYXNtXCIsXG5cdFwicGFyaWdwXCI6IFwiUEFSSS9HUFwiLFxuXHRcIm9iamVjdHBhc2NhbFwiOiBcIk9iamVjdCBQYXNjYWxcIixcblx0XCJwc2xcIjogXCJQQVRST0wgU2NyaXB0aW5nIExhbmd1YWdlXCIsXG5cdFwicGNheGlzXCI6IFwiUEMtQXhpc1wiLFxuXHRcInB4XCI6IFwiUEMtQXhpc1wiLFxuXHRcInBlb3BsZWNvZGVcIjogXCJQZW9wbGVDb2RlXCIsXG5cdFwicGNvZGVcIjogXCJQZW9wbGVDb2RlXCIsXG5cdFwicGhwXCI6IFwiUEhQXCIsXG5cdFwicGhwZG9jXCI6IFwiUEhQRG9jXCIsXG5cdFwicGhwLWV4dHJhc1wiOiBcIlBIUCBFeHRyYXNcIixcblx0XCJwbGFudC11bWxcIjogXCJQbGFudFVNTFwiLFxuXHRcInBsYW50dW1sXCI6IFwiUGxhbnRVTUxcIixcblx0XCJwbHNxbFwiOiBcIlBML1NRTFwiLFxuXHRcInBvd2VycXVlcnlcIjogXCJQb3dlclF1ZXJ5XCIsXG5cdFwicHFcIjogXCJQb3dlclF1ZXJ5XCIsXG5cdFwibXNjcmlwdFwiOiBcIlBvd2VyUXVlcnlcIixcblx0XCJwb3dlcnNoZWxsXCI6IFwiUG93ZXJTaGVsbFwiLFxuXHRcInByb21xbFwiOiBcIlByb21RTFwiLFxuXHRcInByb3BlcnRpZXNcIjogXCIucHJvcGVydGllc1wiLFxuXHRcInByb3RvYnVmXCI6IFwiUHJvdG9jb2wgQnVmZmVyc1wiLFxuXHRcInB1cmViYXNpY1wiOiBcIlB1cmVCYXNpY1wiLFxuXHRcInBiZmFzbVwiOiBcIlB1cmVCYXNpY1wiLFxuXHRcInB1cnNcIjogXCJQdXJlU2NyaXB0XCIsXG5cdFwicHlcIjogXCJQeXRob25cIixcblx0XCJxc2hhcnBcIjogXCJRI1wiLFxuXHRcInFzXCI6IFwiUSNcIixcblx0XCJxXCI6IFwiUSAoa2RiKyBkYXRhYmFzZSlcIixcblx0XCJxbWxcIjogXCJRTUxcIixcblx0XCJya3RcIjogXCJSYWNrZXRcIixcblx0XCJjc2h0bWxcIjogXCJSYXpvciBDI1wiLFxuXHRcInJhem9yXCI6IFwiUmF6b3IgQyNcIixcblx0XCJqc3hcIjogXCJSZWFjdCBKU1hcIixcblx0XCJ0c3hcIjogXCJSZWFjdCBUU1hcIixcblx0XCJyZW5weVwiOiBcIlJlbidweVwiLFxuXHRcInJweVwiOiBcIlJlbidweVwiLFxuXHRcInJlc1wiOiBcIlJlU2NyaXB0XCIsXG5cdFwicmVzdFwiOiBcInJlU1QgKHJlU3RydWN0dXJlZFRleHQpXCIsXG5cdFwicm9ib3RmcmFtZXdvcmtcIjogXCJSb2JvdCBGcmFtZXdvcmtcIixcblx0XCJyb2JvdFwiOiBcIlJvYm90IEZyYW1ld29ya1wiLFxuXHRcInJiXCI6IFwiUnVieVwiLFxuXHRcInNhc1wiOiBcIlNBU1wiLFxuXHRcInNhc3NcIjogXCJTYXNzIChTYXNzKVwiLFxuXHRcInNjc3NcIjogXCJTYXNzIChTQ1NTKVwiLFxuXHRcInNoZWxsLXNlc3Npb25cIjogXCJTaGVsbCBzZXNzaW9uXCIsXG5cdFwic2gtc2Vzc2lvblwiOiBcIlNoZWxsIHNlc3Npb25cIixcblx0XCJzaGVsbHNlc3Npb25cIjogXCJTaGVsbCBzZXNzaW9uXCIsXG5cdFwic21sXCI6IFwiU01MXCIsXG5cdFwic21sbmpcIjogXCJTTUwvTkpcIixcblx0XCJzb2xpZGl0eVwiOiBcIlNvbGlkaXR5IChFdGhlcmV1bSlcIixcblx0XCJzb2xcIjogXCJTb2xpZGl0eSAoRXRoZXJldW0pXCIsXG5cdFwic29sdXRpb24tZmlsZVwiOiBcIlNvbHV0aW9uIGZpbGVcIixcblx0XCJzbG5cIjogXCJTb2x1dGlvbiBmaWxlXCIsXG5cdFwic295XCI6IFwiU295IChDbG9zdXJlIFRlbXBsYXRlKVwiLFxuXHRcInNwYXJxbFwiOiBcIlNQQVJRTFwiLFxuXHRcInJxXCI6IFwiU1BBUlFMXCIsXG5cdFwic3BsdW5rLXNwbFwiOiBcIlNwbHVuayBTUExcIixcblx0XCJzcWZcIjogXCJTUUY6IFN0YXR1cyBRdW8gRnVuY3Rpb24gKEFybWEgMylcIixcblx0XCJzcWxcIjogXCJTUUxcIixcblx0XCJzdGF0YVwiOiBcIlN0YXRhIEFkb1wiLFxuXHRcImllY3N0XCI6IFwiU3RydWN0dXJlZCBUZXh0IChJRUMgNjExMzEtMylcIixcblx0XCJzdXBlcmNvbGxpZGVyXCI6IFwiU3VwZXJDb2xsaWRlclwiLFxuXHRcInNjbGFuZ1wiOiBcIlN1cGVyQ29sbGlkZXJcIixcblx0XCJzeXN0ZW1kXCI6IFwiU3lzdGVtZCBjb25maWd1cmF0aW9uIGZpbGVcIixcblx0XCJ0NC10ZW1wbGF0aW5nXCI6IFwiVDQgdGVtcGxhdGluZ1wiLFxuXHRcInQ0LWNzXCI6IFwiVDQgVGV4dCBUZW1wbGF0ZXMgKEMjKVwiLFxuXHRcInQ0XCI6IFwiVDQgVGV4dCBUZW1wbGF0ZXMgKEMjKVwiLFxuXHRcInQ0LXZiXCI6IFwiVDQgVGV4dCBUZW1wbGF0ZXMgKFZCKVwiLFxuXHRcInRhcFwiOiBcIlRBUFwiLFxuXHRcInR0MlwiOiBcIlRlbXBsYXRlIFRvb2xraXQgMlwiLFxuXHRcInRvbWxcIjogXCJUT01MXCIsXG5cdFwidHJpY2tsZVwiOiBcInRyaWNrbGVcIixcblx0XCJ0cm95XCI6IFwidHJveVwiLFxuXHRcInRyaWdcIjogXCJUcmlHXCIsXG5cdFwidHNcIjogXCJUeXBlU2NyaXB0XCIsXG5cdFwidHNjb25maWdcIjogXCJUU0NvbmZpZ1wiLFxuXHRcInVzY3JpcHRcIjogXCJVbnJlYWxTY3JpcHRcIixcblx0XCJ1Y1wiOiBcIlVucmVhbFNjcmlwdFwiLFxuXHRcInVvcmF6b3JcIjogXCJVTyBSYXpvciBTY3JpcHRcIixcblx0XCJ1cmlcIjogXCJVUklcIixcblx0XCJ1cmxcIjogXCJVUkxcIixcblx0XCJ2Ym5ldFwiOiBcIlZCLk5ldFwiLFxuXHRcInZoZGxcIjogXCJWSERMXCIsXG5cdFwidmltXCI6IFwidmltXCIsXG5cdFwidmlzdWFsLWJhc2ljXCI6IFwiVmlzdWFsIEJhc2ljXCIsXG5cdFwidmJhXCI6IFwiVkJBXCIsXG5cdFwidmJcIjogXCJWaXN1YWwgQmFzaWNcIixcblx0XCJ3YXNtXCI6IFwiV2ViQXNzZW1ibHlcIixcblx0XCJ3ZWItaWRsXCI6IFwiV2ViIElETFwiLFxuXHRcIndlYmlkbFwiOiBcIldlYiBJRExcIixcblx0XCJ3Z3NsXCI6IFwiV0dTTFwiLFxuXHRcIndpa2lcIjogXCJXaWtpIG1hcmt1cFwiLFxuXHRcIndvbGZyYW1cIjogXCJXb2xmcmFtIGxhbmd1YWdlXCIsXG5cdFwibmJcIjogXCJNYXRoZW1hdGljYSBOb3RlYm9va1wiLFxuXHRcIndsXCI6IFwiV29sZnJhbSBsYW5ndWFnZVwiLFxuXHRcInhlb3JhY3ViZVwiOiBcIlhlb3JhQ3ViZVwiLFxuXHRcInhtbC1kb2NcIjogXCJYTUwgZG9jICgubmV0KVwiLFxuXHRcInhvam9cIjogXCJYb2pvIChSRUFMYmFzaWMpXCIsXG5cdFwieHF1ZXJ5XCI6IFwiWFF1ZXJ5XCIsXG5cdFwieWFtbFwiOiBcIllBTUxcIixcblx0XCJ5bWxcIjogXCJZQU1MXCIsXG5cdFwieWFuZ1wiOiBcIllBTkdcIixcbn07IFxuY29uc3QgTUFOVUFMX1BSSVNNX0xBTkdVQUdFUzoge1trZXk6IHN0cmluZ106IHN0cmluZ30gPSB7IC8vIE1hbnVhbGx5IGdlbmVyYXRlZCBsaXN0IGZyb20gaHR0cHM6Ly9wcmlzbWpzLmNvbS8gIC0gIDI5NyBsYW5ndWFnZXNcblx0XCJjc3NcIjpcIkNTU1wiLFxuXHRcImNsaWtlXCI6XCJDLWxpa2VcIixcblx0XCJqYXZhc2NyaXB0XCI6XCJKYXZhU2NyaXB0XCIsXG5cdFwianNcIjpcIkphdmFTY3JpcHRcIixcblx0XCJhYmFwXCI6XCJBQkFQXCIsXG5cdFwiYWJuZlwiOlwiQUJORlwiLFxuXHRcImFjdGlvbnNjcmlwdFwiOlwiQWN0aW9uU2NyaXB0XCIsXG5cdFwiYWRhXCI6XCJBZGFcIixcblx0XCJhZ2RhXCI6XCJBZ2RhXCIsXG5cdFwiYWxcIjpcIkFMXCIsXG5cdFwiYW50bHI0XCI6XCJBTlRMUjRcIixcblx0XCJnNFwiOlwiQU5UTFI0XCIsXG5cdFwiYXBhY2hlY29uZlwiOlwiQXBhY2hlIENvbmZpZ3VyYXRpb25cIixcblx0XCJhcGV4XCI6XCJBcGV4XCIsXG5cdFwiYXBsXCI6XCJBUExcIixcblx0XCJhcHBsZXNjcmlwdFwiOlwiQXBwbGVTY3JpcHRcIixcblx0XCJhcWxcIjpcIkFRTFwiLFxuXHRcImFyZHVpbm9cIjpcIkFyZHVpbm9cIixcblx0XCJpbm9cIjpcIkFyZHVpbm9cIixcblx0XCJhcmZmXCI6XCJBUkZGXCIsXG5cdFwiYXJtYXNtXCI6XCJBUk0gQXNzZW1ibHlcIixcblx0XCJhcm0tYXNtXCI6XCJBUk0gQXNzZW1ibHlcIixcblx0XCJhcnR1cm9cIjpcIkFydHVyb1wiLFxuXHRcImFydFwiOlwiQXJ0dXJvXCIsXG5cdFwiYXNjaWlkb2NcIjpcIkFzY2lpRG9jXCIsXG5cdFwiYWRvY1wiOlwiQXNjaWlEb2NcIixcblx0XCJhc3BuZXRcIjpcIkFTUC5ORVQgKEMjKVwiLFxuXHRcImFzbTY1MDJcIjpcIjY1MDIgQXNzZW1ibHlcIixcblx0XCJhc21hdG1lbFwiOlwiQXRtZWwgQVZSIEFzc2VtYmx5XCIsXG5cdFwiYXV0b2hvdGtleVwiOlwiQXV0b0hvdGtleVwiLFxuXHRcImF1dG9pdFwiOlwiQXV0b0l0XCIsXG5cdFwiYXZpc3ludGhcIjpcIkF2aVN5bnRoXCIsXG5cdFwiYXZzXCI6XCJBdmlTeW50aFwiLFxuXHRcImF2cm8taWRsXCI6XCJBdnJvIElETFwiLFxuXHRcImF2ZGxcIjpcIkF2cm8gSURMXCIsXG5cdFwiYXdrXCI6XCJBV0tcIixcblx0XCJnYXdrXCI6XCJHQVdLXCIsXG5cdFwiYmFzaFwiOlwiQmFzaFwiLFxuXHRcInNoXCI6XCJTaGVsbFwiLFxuXHRcInNoZWxsXCI6XCJTaGVsbFwiLFxuXHRcImJhc2ljXCI6XCJCQVNJQ1wiLFxuXHRcImJhdGNoXCI6XCJCYXRjaFwiLFxuXHRcImJiY29kZVwiOlwiQkJjb2RlXCIsXG5cdFwic2hvcnRjb2RlXCI6XCJCQmNvZGVcIixcblx0XCJiYmpcIjpcIkJCalwiLFxuXHRcImJpcmJcIjpcIkJpcmJcIixcblx0XCJiaXNvblwiOlwiQmlzb25cIixcblx0XCJibmZcIjpcIkJORlwiLFxuXHRcInJibmZcIjpcIkJORlwiLFxuXHRcImJxblwiOlwiQlFOXCIsXG5cdFwiYnJhaW5mdWNrXCI6XCJCcmFpbmZ1Y2tcIixcblx0XCJicmlnaHRzY3JpcHRcIjpcIkJyaWdodFNjcmlwdFwiLFxuXHRcImJyb1wiOlwiQnJvXCIsXG5cdFwiYnNsXCI6XCJCU0wgKDFDKVwiLFxuXHRcIm9zY3JpcHRcIjpcIkJTTCAoMUMpXCIsXG5cdFwiY1wiOlwiQ1wiLFxuXHRcImNzaGFycFwiOlwiQyNcIixcblx0XCJjc1wiOlwiQyNcIixcblx0XCJkb3RuZXRcIjpcIkMjXCIsXG5cdFwiY3BwXCI6XCJDKytcIixcblx0XCJjZnNjcmlwdFwiOlwiQ0ZTY3JpcHRcIixcblx0XCJjZmNcIjpcIkNGU2NyaXB0XCIsXG5cdFwiY2hhaXNjcmlwdFwiOlwiQ2hhaVNjcmlwdFwiLFxuXHRcImNpbFwiOlwiQ0lMXCIsXG5cdFwiY2lsa2NcIjpcIkNpbGsvQ1wiLFxuXHRcImNpbGstY1wiOlwiQ2lsay9DXCIsXG5cdFwiY2lsa2NwcFwiOlwiQ2lsay9DKytcIixcblx0XCJjaWxrLWNwcFwiOlwiQ2lsay9DKytcIixcblx0XCJjaWxrXCI6XCJDaWxrL0MrK1wiLFxuXHRcImNsb2p1cmVcIjpcIkNsb2p1cmVcIixcblx0XCJjbWFrZVwiOlwiQ01ha2VcIixcblx0XCJjb2JvbFwiOlwiQ09CT0xcIixcblx0XCJjb2ZmZWVzY3JpcHRcIjpcIkNvZmZlZVNjcmlwdFwiLFxuXHRcImNvZmZlZVwiOlwiQ29mZmVlU2NyaXB0XCIsXG5cdFwiY29uY3VybmFzXCI6XCJDb25jdXJuYXNcIixcblx0XCJjb25jXCI6XCJDb25jdXJuYXNcIixcblx0XCJjc3BcIjpcIkNvbnRlbnQtU2VjdXJpdHktUG9saWN5XCIsXG5cdFwiY29va2xhbmdcIjpcIkNvb2tsYW5nXCIsXG5cdFwiY29xXCI6XCJDb3FcIixcblx0XCJjcnlzdGFsXCI6XCJDcnlzdGFsXCIsXG5cdFwiY3NzLWV4dHJhc1wiOlwiQ1NTIEV4dHJhc1wiLFxuXHRcImNzdlwiOlwiQ1NWXCIsXG5cdFwiY3VlXCI6XCJDVUVcIixcblx0XCJjeXBoZXJcIjpcIkN5cGhlclwiLFxuXHRcImRcIjpcIkRcIixcblx0XCJkYXJ0XCI6XCJEYXJ0XCIsXG5cdFwiZGF0YXdlYXZlXCI6XCJEYXRhV2VhdmVcIixcblx0XCJkYXhcIjpcIkRBWFwiLFxuXHRcImRoYWxsXCI6XCJEaGFsbFwiLFxuXHRcImRpZmZcIjpcIkRpZmZcIixcblx0XCJkamFuZ29cIjpcIkRqYW5nby9KaW5qYTJcIixcblx0XCJqaW5qYTJcIjpcIkRqYW5nby9KaW5qYTJcIixcblx0XCJkbnMtem9uZS1maWxlXCI6XCJETlMgem9uZSBmaWxlXCIsXG5cdFwiZG5zLXpvbmVcIjpcIkROUyB6b25lIGZpbGVcIixcblx0XCJkb2NrZXJcIjpcIkRvY2tlclwiLFxuXHRcImRvY2tlcmZpbGVcIjpcIkRvY2tlclwiLFxuXHRcImRvdFwiOlwiRE9UIChHcmFwaHZpeilcIixcblx0XCJndlwiOlwiRE9UIChHcmFwaHZpeilcIixcblx0XCJlYm5mXCI6XCJFQk5GXCIsXG5cdFwiZWRpdG9yY29uZmlnXCI6XCJFZGl0b3JDb25maWdcIixcblx0XCJlaWZmZWxcIjpcIkVpZmZlbFwiLFxuXHRcImVqc1wiOlwiRUpTXCIsXG5cdFwiZXRhXCI6XCJFSlNcIixcblx0XCJlbGl4aXJcIjpcIkVsaXhpclwiLFxuXHRcImVsbVwiOlwiRWxtXCIsXG5cdFwiZXRsdWFcIjpcIkVtYmVkZGVkIEx1YSB0ZW1wbGF0aW5nXCIsXG5cdFwiZXJiXCI6XCJFUkJcIixcblx0XCJlcmxhbmdcIjpcIkVybGFuZ1wiLFxuXHRcImV4Y2VsLWZvcm11bGFcIjpcIkV4Y2VsIEZvcm11bGFcIixcblx0XCJ4bHN4XCI6XCJFeGNlbCBGb3JtdWxhXCIsXG5cdFwieGxzXCI6XCJFeGNlbCBGb3JtdWxhXCIsXG5cdFwiZnNoYXJwXCI6XCJGI1wiLFxuXHRcImZhY3RvclwiOlwiRmFjdG9yXCIsXG5cdFwiZmFsc2VcIjpcIkZhbHNlXCIsXG5cdFwiZmlyZXN0b3JlLXNlY3VyaXR5LXJ1bGVzXCI6XCJGaXJlc3RvcmUgc2VjdXJpdHkgcnVsZXNcIixcblx0XCJmbG93XCI6XCJGbG93XCIsXG5cdFwiZm9ydHJhblwiOlwiRm9ydHJhblwiLFxuXHRcImZ0bFwiOlwiRnJlZU1hcmtlciBUZW1wbGF0ZSBMYW5ndWFnZVwiLFxuXHRcImdtbFwiOlwiR2FtZU1ha2VyIExhbmd1YWdlXCIsXG5cdFwiZ2FtZW1ha2VybGFuZ3VhZ2VcIjpcIkdhbWVNYWtlciBMYW5ndWFnZVwiLFxuXHRcImdhcFwiOlwiR0FQIChDQVMpXCIsXG5cdFwiZ2NvZGVcIjpcIkctY29kZVwiLFxuXHRcImdkc2NyaXB0XCI6XCJHRFNjcmlwdFwiLFxuXHRcImdlZGNvbVwiOlwiR0VEQ09NXCIsXG5cdFwiZ2V0dGV4dFwiOlwiZ2V0dGV4dFwiLFxuXHRcInBvXCI6XCJnZXR0ZXh0XCIsXG5cdFwiZ2hlcmtpblwiOlwiR2hlcmtpblwiLFxuXHRcImdpdFwiOlwiR2l0XCIsXG5cdFwiZ2xzbFwiOlwiR0xTTFwiLFxuXHRcImduXCI6XCJHTlwiLFxuXHRcImduaVwiOlwiR05cIixcblx0XCJsaW5rZXItc2NyaXB0XCI6XCJHTlUgTGlua2VyIFNjcmlwdFwiLFxuXHRcImxkXCI6XCJHTlUgTGlua2VyIFNjcmlwdFwiLFxuXHRcImdvXCI6XCJHb1wiLFxuXHRcImdvLW1vZHVsZVwiOlwiR28gbW9kdWxlXCIsXG5cdFwiZ28tbW9kXCI6XCJHbyBtb2R1bGVcIixcblx0XCJncmFkbGVcIjpcIkdyYWRsZVwiLFxuXHRcImdyYXBocWxcIjpcIkdyYXBoUUxcIixcblx0XCJncm9vdnlcIjpcIkdyb292eVwiLFxuXHRcImhhbWxcIjpcIkhhbWxcIixcblx0XCJoYW5kbGViYXJzXCI6XCJIYW5kbGViYXJzXCIsXG5cdFwiaGJzXCI6XCJIYW5kbGViYXJzXCIsXG5cdFwibXVzdGFjaGVcIjpcIkhhbmRsZWJhcnNcIixcblx0XCJoYXNrZWxsXCI6XCJIYXNrZWxsXCIsXG5cdFwiaHNcIjpcIkhhc2tlbGxcIixcblx0XCJoYXhlXCI6XCJIYXhlXCIsXG5cdFwiaGNsXCI6XCJIQ0xcIixcblx0XCJobHNsXCI6XCJITFNMXCIsXG5cdFwiaG9vblwiOlwiSG9vblwiLFxuXHRcImh0dHBcIjpcIkhUVFBcIixcblx0XCJocGtwXCI6XCJIVFRQIFB1YmxpYy1LZXktUGluc1wiLFxuXHRcImhzdHNcIjpcIkhUVFAgU3RyaWN0LVRyYW5zcG9ydC1TZWN1cml0eVwiLFxuXHRcImljaGlnb2phbVwiOlwiSWNoaWdvSmFtXCIsXG5cdFwiaWNvblwiOlwiSWNvblwiLFxuXHRcImljdS1tZXNzYWdlLWZvcm1hdFwiOlwiSUNVIE1lc3NhZ2UgRm9ybWF0XCIsXG5cdFwiaWRyaXNcIjpcIklkcmlzXCIsXG5cdFwiaWRyXCI6XCJJZHJpc1wiLFxuXHRcImluZm9ybTdcIjpcIkluZm9ybSA3XCIsXG5cdFwiaW5pXCI6XCJJbmlcIixcblx0XCJpb1wiOlwiSW9cIixcblx0XCJqXCI6XCJKXCIsXG5cdFwiamF2YVwiOlwiSmF2YVwiLFxuXHRcImphdmFkb2NcIjpcIkphdmFEb2NcIixcblx0XCJqYXZhZG9jbGlrZVwiOlwiSmF2YURvYy1saWtlXCIsXG5cdFwiamF2YXN0YWNrdHJhY2VcIjpcIkphdmEgc3RhY2sgdHJhY2VcIixcblx0XCJqZXhsXCI6XCJKZXhsXCIsXG5cdFwiam9saWVcIjpcIkpvbGllXCIsXG5cdFwianFcIjpcIkpRXCIsXG5cdFwianNkb2NcIjpcIkpTRG9jXCIsXG5cdFwianMtZXh0cmFzXCI6XCJKUyBFeHRyYXNcIixcblx0XCJqc29uXCI6XCJKU09OXCIsXG5cdFwid2VibWFuaWZlc3RcIjpcIkpTT05cIixcblx0XCJqc29uNVwiOlwiSlNPTjVcIixcblx0XCJqc29ucFwiOlwiSlNPTlBcIixcblx0XCJqc3N0YWNrdHJhY2VcIjpcIkpTIHN0YWNrIHRyYWNlXCIsXG5cdFwianMtdGVtcGxhdGVzXCI6XCJKUyBUZW1wbGF0ZXNcIixcblx0XCJqdWxpYVwiOlwiSnVsaWFcIixcblx0XCJrZWVwYWxpdmVkXCI6XCJLZWVwYWxpdmVkIENvbmZpZ3VyZVwiLFxuXHRcImtleW1hblwiOlwiS2V5bWFuXCIsXG5cdFwia290bGluXCI6XCJLb3RsaW5cIixcblx0XCJrdFwiOlwiS290bGluXCIsXG5cdFwia3RzXCI6XCJLb3RsaW5cIixcblx0XCJrdW1pclwiOlwiS3VNaXIgKFx1MDQxQVx1MDQ0M1x1MDQxQ1x1MDQzOFx1MDQ0MClcIixcblx0XCJrdW1cIjpcIkt1TWlyIChcdTA0MUFcdTA0NDNcdTA0MUNcdTA0MzhcdTA0NDApXCIsXG5cdFwia3VzdG9cIjpcIkt1c3RvXCIsXG5cdFwibGF0ZXhcIjpcIkxhVGVYXCIsXG5cdFwidGV4XCI6XCJMYVRlWFwiLFxuXHRcImNvbnRleHRcIjpcIkxhVGVYXCIsXG5cdFwibGF0dGVcIjpcIkxhdHRlXCIsXG5cdFwibGVzc1wiOlwiTGVzc1wiLFxuXHRcImxpbHlwb25kXCI6XCJMaWx5UG9uZFwiLFxuXHRcImx5XCI6XCJMaWx5UG9uZFwiLFxuXHRcImxpcXVpZFwiOlwiTGlxdWlkXCIsXG5cdFwibGlzcFwiOlwiTGlzcFwiLFxuXHRcImVtYWNzXCI6XCJMaXNwXCIsXG5cdFwiZWxpc3BcIjpcIkxpc3BcIixcblx0XCJlbWFjcy1saXNwXCI6XCJMaXNwXCIsXG5cdFwibGl2ZXNjcmlwdFwiOlwiTGl2ZVNjcmlwdFwiLFxuXHRcImxsdm1cIjpcIkxMVk0gSVJcIixcblx0XCJsb2dcIjpcIkxvZyBmaWxlXCIsXG5cdFwibG9sY29kZVwiOlwiTE9MQ09ERVwiLFxuXHRcImx1YVwiOlwiTHVhXCIsXG5cdFwibWFnbWFcIjpcIk1hZ21hIChDQVMpXCIsXG5cdFwibWFrZWZpbGVcIjpcIk1ha2VmaWxlXCIsXG5cdFwibWFya2Rvd25cIjpcIk1hcmtkb3duXCIsXG5cdFwibWRcIjpcIk1hcmtkb3duXCIsXG5cdFwibWFya3VwLXRlbXBsYXRpbmdcIjpcIk1hcmt1cCB0ZW1wbGF0aW5nXCIsXG5cdFwibWF0YVwiOlwiTWF0YVwiLFxuXHRcIm1hdGxhYlwiOlwiTUFUTEFCXCIsXG5cdFwibWF4c2NyaXB0XCI6XCJNQVhTY3JpcHRcIixcblx0XCJtZWxcIjpcIk1FTFwiLFxuXHRcIm1lcm1haWRcIjpcIk1lcm1haWRcIixcblx0XCJtZXRhZm9udFwiOlwiTUVUQUZPTlRcIixcblx0XCJtaXphclwiOlwiTWl6YXJcIixcblx0XCJtb25nb2RiXCI6XCJNb25nb0RCXCIsXG5cdFwibW9ua2V5XCI6XCJNb25rZXlcIixcblx0XCJtb29uc2NyaXB0XCI6XCJNb29uU2NyaXB0XCIsXG5cdFwibW9vblwiOlwiTW9vblNjcmlwdFwiLFxuXHRcIm4xcWxcIjpcIk4xUUxcIixcblx0XCJuNGpzXCI6XCJONEpTXCIsXG5cdFwibjRqc2RcIjpcIk40SlNcIixcblx0XCJuYW5kMnRldHJpcy1oZGxcIjpcIk5hbmQgVG8gVGV0cmlzIEhETFwiLFxuXHRcIm5hbmlzY3JpcHRcIjpcIk5hbmlub3ZlbCBTY3JpcHRcIixcblx0XCJuYW5pXCI6XCJOYW5pbm92ZWwgU2NyaXB0XCIsXG5cdFwibmFzbVwiOlwiTkFTTVwiLFxuXHRcIm5lb25cIjpcIk5FT05cIixcblx0XCJuZXZvZFwiOlwiTmV2b2RcIixcblx0XCJuZ2lueFwiOlwibmdpbnhcIixcblx0XCJuaW1cIjpcIk5pbVwiLFxuXHRcIm5peFwiOlwiTml4XCIsXG5cdFwibnNpc1wiOlwiTlNJU1wiLFxuXHRcIm9iamVjdGl2ZWNcIjpcIk9iamVjdGl2ZS1DXCIsXG5cdFwib2JqY1wiOlwiT2JqZWN0aXZlLUNcIixcblx0XCJvY2FtbFwiOlwiT0NhbWxcIixcblx0XCJvZGluXCI6XCJPZGluXCIsXG5cdFwib3BlbmNsXCI6XCJPcGVuQ0xcIixcblx0XCJvcGVucWFzbVwiOlwiT3BlblFhc21cIixcblx0XCJxYXNtXCI6XCJPcGVuUWFzbVwiLFxuXHRcIm96XCI6XCJPelwiLFxuXHRcInBhcmlncFwiOlwiUEFSSS9HUFwiLFxuXHRcInBhcnNlclwiOlwiUGFyc2VyXCIsXG5cdFwicGFzY2FsXCI6XCJQYXNjYWxcIixcblx0XCJwYXNjYWxpZ29cIjpcIlBhc2NhbGlnb1wiLFxuXHRcInBzbFwiOlwiUEFUUk9MIFNjcmlwdGluZyBMYW5ndWFnZVwiLFxuXHRcInBjYXhpc1wiOlwiUEMtQXhpc1wiLFxuXHRcInB4XCI6XCJQQy1BeGlzXCIsXG5cdFwicGVvcGxlY29kZVwiOlwiUGVvcGxlQ29kZVwiLFxuXHRcInBjb2RlXCI6XCJQZW9wbGVDb2RlXCIsXG5cdFwicGVybFwiOlwiUGVybFwiLFxuXHRcInBocFwiOlwiUEhQXCIsXG5cdFwicGhwZG9jXCI6XCJQSFBEb2NcIixcblx0XCJwaHAtZXh0cmFzXCI6XCJQSFAgRXh0cmFzXCIsXG5cdFwicGxhbnQtdW1sXCI6XCJQbGFudFVNTFwiLFxuXHRcInBsYW50dW1sXCI6XCJQbGFudFVNTFwiLFxuXHRcInBsc3FsXCI6XCJQTC9TUUxcIixcblx0XCJwb3dlcnF1ZXJ5XCI6XCJQb3dlclF1ZXJ5XCIsXG5cdFwicHFcIjpcIlBvd2VyUXVlcnlcIixcblx0XCJtc2NyaXB0XCI6XCJQb3dlclF1ZXJ5XCIsXG5cdFwicG93ZXJzaGVsbFwiOlwiUG93ZXJTaGVsbFwiLFxuXHRcInByb2Nlc3NpbmdcIjpcIlByb2Nlc3NpbmdcIixcblx0XCJwcm9sb2dcIjpcIlByb2xvZ1wiLFxuXHRcInByb21xbFwiOlwiUHJvbVFMXCIsXG5cdFwicHJvcGVydGllc1wiOlwiLnByb3BlcnRpZXNcIixcblx0XCJwcm90b2J1ZlwiOlwiUHJvdG9jb2wgQnVmZmVyc1wiLFxuXHRcInB1Z1wiOlwiUHVnXCIsXG5cdFwicHVwcGV0XCI6XCJQdXBwZXRcIixcblx0XCJwdXJlXCI6XCJQdXJlXCIsXG5cdFwicHVyZWJhc2ljXCI6XCJQdXJlQmFzaWNcIixcblx0XCJwYmZhc21cIjpcIlB1cmVCYXNpY1wiLFxuXHRcInB1cmVzY3JpcHRcIjpcIlB1cmVTY3JpcHRcIixcblx0XCJwdXJzXCI6XCJQdXJlU2NyaXB0XCIsXG5cdFwicHl0aG9uXCI6XCJQeXRob25cIixcblx0XCJweVwiOlwiUHl0aG9uXCIsXG5cdFwicXNoYXJwXCI6XCJRI1wiLFxuXHRcInFzXCI6XCJRI1wiLFxuXHRcInFcIjpcIlEgKGtkYisgZGF0YWJhc2UpXCIsXG5cdFwicW1sXCI6XCJRTUxcIixcblx0XCJxb3JlXCI6XCJRb3JlXCIsXG5cdFwiclwiOlwiUlwiLFxuXHRcInJhY2tldFwiOlwiUmFja2V0XCIsXG5cdFwicmt0XCI6XCJSYWNrZXRcIixcblx0XCJjc2h0bWxcIjpcIlJhem9yIEMjXCIsXG5cdFwianN4XCI6XCJSZWFjdCBKU1hcIixcblx0XCJ0c3hcIjpcIlJlYWN0IFRTWFwiLFxuXHRcInJlYXNvblwiOlwiUmVhc29uXCIsXG5cdFwicmVnZXhcIjpcIlJlZ2V4XCIsXG5cdFwicmVnb1wiOlwiUmVnb1wiLFxuXHRcInJlbnB5XCI6XCJSZW4ncHlcIixcblx0XCJycHlcIjpcIlJlbidweVwiLFxuXHRcInJlc2NyaXB0XCI6XCJSZVNjcmlwdFwiLFxuXHRcInJlc1wiOlwiUmVTY3JpcHRcIixcblx0XCJyZXN0XCI6XCJyZVNUIChyZVN0cnVjdHVyZWRUZXh0KVwiLFxuXHRcInJpcFwiOlwiUmlwXCIsXG5cdFwicm9ib2NvbmZcIjpcIlJvYm9jb25mXCIsXG5cdFwicm9ib3RmcmFtZXdvcmtcIjpcIlJvYm90IEZyYW1ld29ya1wiLFxuXHRcInJvYm90XCI6XCJSb2JvdCBGcmFtZXdvcmtcIixcblx0XCJydWJ5XCI6XCJSdWJ5XCIsXG5cdFwicmJcIjpcIlJ1YnlcIixcblx0XCJydXN0XCI6XCJSdXN0XCIsXG5cdFwic2FzXCI6XCJTQVNcIixcblx0XCJzYXNzXCI6XCJTYXNzIChTYXNzKVwiLFxuXHRcInNjc3NcIjpcIlNhc3MgKFNDU1MpXCIsXG5cdFwic2NhbGFcIjpcIlNjYWxhXCIsXG5cdFwic2NoZW1lXCI6XCJTY2hlbWVcIixcblx0XCJzaGVsbC1zZXNzaW9uXCI6XCJTaGVsbCBzZXNzaW9uXCIsXG5cdFwic2gtc2Vzc2lvblwiOlwiU2hlbGwgc2Vzc2lvblwiLFxuXHRcInNoZWxsc2Vzc2lvblwiOlwiU2hlbGwgc2Vzc2lvblwiLFxuXHRcInNtYWxpXCI6XCJTbWFsaVwiLFxuXHRcInNtYWxsdGFsa1wiOlwiU21hbGx0YWxrXCIsXG5cdFwic21hcnR5XCI6XCJTbWFydHlcIixcblx0XCJzbWxcIjpcIlNNTFwiLFxuXHRcInNtbG5qXCI6XCJTTUxcIixcblx0XCJzb2xpZGl0eVwiOlwiU29saWRpdHkgKEV0aGVyZXVtKVwiLFxuXHRcInNvbFwiOlwiU29saWRpdHkgKEV0aGVyZXVtKVwiLFxuXHRcInNvbHV0aW9uLWZpbGVcIjpcIlNvbHV0aW9uIGZpbGVcIixcblx0XCJzbG5cIjpcIlNvbHV0aW9uIGZpbGVcIixcblx0XCJzb3lcIjpcIlNveSAoQ2xvc3VyZSBUZW1wbGF0ZSlcIixcblx0XCJzcGFycWxcIjpcIlNQQVJRTFwiLFxuXHRcInJxXCI6XCJTUEFSUUxcIixcblx0XCJzcGx1bmstc3BsXCI6XCJTcGx1bmsgU1BMXCIsXG5cdFwic3FmXCI6XCJTUUZcIixcblx0XCJzcWxcIjpcIlNRTFwiLFxuXHRcInNxdWlycmVsXCI6XCJTcXVpcnJlbFwiLFxuXHRcInN0YW5cIjpcIlN0YW5cIixcblx0XCJzdGF0YVwiOlwiU3RhdGEgQWRvXCIsXG5cdFwiaWVjc3RcIjpcIlN0cnVjdHVyZWQgVGV4dCAoSUVDIDYxMTMxLTMpXCIsXG5cdFwic3R5bHVzXCI6XCJTdHlsdXNcIixcblx0XCJzdXBlcmNvbGxpZGVyXCI6XCJTdXBlckNvbGxpZGVyXCIsXG5cdFwic2NsYW5nXCI6XCJTdXBlckNvbGxpZGVyXCIsXG5cdFwic3dpZnRcIjpcIlN3aWZ0XCIsXG5cdFwic3lzdGVtZFwiOlwiU3lzdGVtZCBjb25maWd1cmF0aW9uIGZpbGVcIixcblx0XCJ0NC10ZW1wbGF0aW5nXCI6XCJUNCB0ZW1wbGF0aW5nXCIsXG5cdFwidDQtY3NcIjpcIlQ0IFRleHQgVGVtcGxhdGVzIChDIylcIixcblx0XCJ0NFwiOlwiVDQgVGV4dCBUZW1wbGF0ZXMgKEMjKVwiLFxuXHRcInQ0LXZiXCI6XCJUNCBUZXh0IFRlbXBsYXRlcyAoVkIpXCIsXG5cdFwidGFwXCI6XCJUQVBcIixcblx0XCJ0Y2xcIjpcIlRjbFwiLFxuXHRcInR0MlwiOlwiVGVtcGxhdGUgVG9vbGtpdCAyXCIsXG5cdFwidGV4dGlsZVwiOlwiVGV4dGlsZVwiLFxuXHRcInRvbWxcIjpcIlRPTUxcIixcblx0XCJ0cmVtb3JcIjpcIlRyZW1vclwiLFxuXHRcInRyaWNrbGVcIjpcIlRyZW1vclwiLFxuXHRcInRyb3lcIjpcIlRyZW1vclwiLFxuXHRcInR1cnRsZVwiOlwiVHVydGxlXCIsXG5cdFwidHJpZ1wiOlwiVHVydGxlXCIsXG5cdFwidHdpZ1wiOlwiVHdpZ1wiLFxuXHRcInR5cGVzY3JpcHRcIjpcIlR5cGVTY3JpcHRcIixcblx0XCJ0c1wiOlwiVHlwZVNjcmlwdFwiLFxuXHRcInR5cG9zY3JpcHRcIjpcIlR5cG9TY3JpcHRcIixcblx0XCJ0c2NvbmZpZ1wiOlwiVFNDb25maWdcIixcblx0XCJ1bnJlYWxzY3JpcHRcIjpcIlVucmVhbFNjcmlwdFwiLFxuXHRcInVzY3JpcHRcIjpcIlVucmVhbFNjcmlwdFwiLFxuXHRcInVjXCI6XCJVbnJlYWxTY3JpcHRcIixcblx0XCJ1b3Jhem9yXCI6XCJVTyBSYXpvciBTY3JpcHRcIixcblx0XCJ1cmlcIjpcIlVSSVwiLFxuXHRcInVybFwiOlwiVVJJXCIsXG5cdFwidlwiOlwiVlwiLFxuXHRcInZhbGFcIjpcIlZhbGFcIixcblx0XCJ2Ym5ldFwiOlwiVkIuTmV0XCIsXG5cdFwidmVsb2NpdHlcIjpcIlZlbG9jaXR5XCIsXG5cdFwidmVyaWxvZ1wiOlwiVmVyaWxvZ1wiLFxuXHRcInZoZGxcIjpcIlZIRExcIixcblx0XCJ2aW1cIjpcInZpbVwiLFxuXHRcInZpc3VhbC1iYXNpY1wiOlwiVmlzdWFsIEJhc2ljXCIsXG5cdFwidmJcIjpcIlZpc3VhbCBCYXNpY1wiLFxuXHRcIndhcnBzY3JpcHRcIjpcIldhcnBTY3JpcHRcIixcblx0XCJ3YXNtXCI6XCJXZWJBc3NlbWJseVwiLFxuXHRcIndlYi1pZGxcIjpcIldlYiBJRExcIixcblx0XCJ3ZWJpZGxcIjpcIldlYiBJRExcIixcblx0XCJ3Z3NsXCI6XCJXR1NMXCIsXG5cdFwid2lraVwiOlwiV2lraSBtYXJrdXBcIixcblx0XCJ3b2xmcmFtXCI6XCJXb2xmcmFtIGxhbmd1YWdlXCIsXG5cdFwibWF0aGVtYXRpY2FcIjpcIldvbGZyYW0gbGFuZ3VhZ2VcIixcblx0XCJuYlwiOlwiV29sZnJhbSBsYW5ndWFnZVwiLFxuXHRcIndsXCI6XCJXb2xmcmFtIGxhbmd1YWdlXCIsXG5cdFwid3JlblwiOlwiV3JlblwiLFxuXHRcInhlb3JhXCI6XCJYZW9yYVwiLFxuXHRcInhlb3JhY3ViZVwiOlwiWGVvcmFcIixcblx0XCJ4bWwtZG9jXCI6XCJYTUwgZG9jICgubmV0KVwiLFxuXHRcInhvam9cIjpcIlhvam8gKFJFQUxiYXNpYylcIixcblx0XCJ4cXVlcnlcIjpcIlhRdWVyeVwiLFxuXHRcInlhbWxcIjpcIllBTUxcIixcblx0XCJ5bWxcIjpcIllBTUxcIixcblx0XCJ5YW5nXCI6XCJZQU5HXCIsXG5cdFwiemlnXCI6XCJaaWdcIlxufTtcbmNvbnN0IE1BTlVBTF9MQU5HVUFHRVM6IHtba2V5OiBzdHJpbmddOiBzdHJpbmd9ID0geyAvLyBNYW51YWxseSBjcmVhdGVkIGxpc3Rcblx0XCJmaXNoXCI6XCJGaXNoXCIsXG5cdFwib2N0YXZlXCI6XCJPY3RhdmVcIixcblx0XCJtYXhpbWFcIjpcIk1heGltYVwiLFxuXHRcIm15c3FsXCI6XCJTUUxcIixcblx0XCJwb3N0Z3Jlc3FsXCI6XCJTUUxcIixcblx0XCJyc2NyaXB0XCI6XCJSXCIsXG5cdFwic2hlbGxzY3JpcHRcIjpcIlNoZWxsXCIsXG5cdFwic3FsaXRlXCI6XCJTUUxcIixcblx0XCJ6c2hcIjpcIlpzaFwiLFxufTtcbmV4cG9ydCBjb25zdCBMQU5HVUFHRV9OQU1FUzoge1trZXk6IHN0cmluZ106IHN0cmluZ30gPSB7Li4uUFJJU01fTEFOR1VBR0VTLC4uLk1BTlVBTF9QUklTTV9MQU5HVUFHRVMsLi4uTUFOVUFMX0xBTkdVQUdFU307XG5leHBvcnQgY29uc3QgTEFOR1VBR0VfSUNPTlNfREFUQToge1trZXk6IHN0cmluZ106IHN0cmluZ30gPSB7IC8vIEljb25zIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL3ZzY29kZS1pY29ucy92c2NvZGUtaWNvbnMvd2lraS9MaXN0T2ZGaWxlcyBhbmQgaHR0cHM6Ly9kZXZpY29uLmRldi9cblx0XCIuZ2l0aWdub3JlXCI6IFwiPHBhdGggZD1cXFwiTTI5LjQ3MiwxNC43NTMsMTcuMjQ3LDIuNTI4YTEuOCwxLjgsMCwwLDAtMi41NSwwTDEyLjE1OCw1LjA2N2wzLjIyLDMuMjJhMi4xNDEsMi4xNDEsMCwwLDEsMi43MTIsMi43M2wzLjEsMy4xYTIuMTQzLDIuMTQzLDAsMSwxLTEuMjg1LDEuMjFsLTIuODk1LTIuODk1djcuNjE3YTIuMTQxLDIuMTQxLDAsMSwxLTEuNzY0LS4wNjJWMTIuM2EyLjE0NiwyLjE0NiwwLDAsMS0xLjE2NS0yLjgxNEwxMC45MTEsNi4zMTQsMi41MjgsMTQuN2ExLjgsMS44LDAsMCwwLDAsMi41NTFMMTQuNzUzLDI5LjQ3MmExLjgsMS44LDAsMCwwLDIuNTUsMEwyOS40NzIsMTcuM2ExLjgsMS44LDAsMCwwLDAtMi41NTFcXFwiIHN0eWxlPVxcXCJmaWxsOiNkZDRjMzVcXFwiLz48cGF0aCBkPVxcXCJNMTIuMTU4LDUuMDY3bDMuMjIsMy4yMmEyLjE0MSwyLjE0MSwwLDAsMSwyLjcxMiwyLjczbDMuMSwzLjFhMi4xNDMsMi4xNDMsMCwxLDEtMS4yODUsMS4yMWwtMi44OTUtMi44OTV2Ny42MTdhMi4xNDEsMi4xNDEsMCwxLDEtMS43NjQtLjA2MlYxMi4zYTIuMTQ2LDIuMTQ2LDAsMCwxLTEuMTY1LTIuODE0TDEwLjkxMSw2LjMxNFxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPlwiLFxuXHRcIi5oZ2lnbm9yZVwiOiBcIjxwYXRoIGQ9XFxcIk0yOC4wNDIsMjMuMTcyYzQuOTg5LTguMy0xLjA1NC0yMS43NTEtMTIuMS0yMC4zODRDNS45NTUsNC4wMjIsNS43OTQsMTQuNTMsMTQuNTkzLDE3LjAyNmM3LjYxNCwyLjE2MiwxLjU3Myw2Ljk5MiwxLjc0OSwxMC4yMDhzNi42Miw0LjM4MiwxMS43LTQuMDYzXFxcIiBzdHlsZT1cXFwiZmlsbDojMWIxYjFiXFxcIi8+PGNpcmNsZSBjeD1cXFwiOS43ODRcXFwiIGN5PVxcXCIyNC4yNTdcXFwiIHI9XFxcIjQuMzMyXFxcIiBzdHlsZT1cXFwiZmlsbDojMWIxYjFiXFxcIi8+PGNpcmNsZSBjeD1cXFwiNC44MzVcXFwiIGN5PVxcXCIxNS4wOTlcXFwiIHI9XFxcIjIuODM1XFxcIiBzdHlsZT1cXFwiZmlsbDojMWIxYjFiXFxcIi8+PHBhdGggZD1cXFwiTTI4LjIzMSwyMi44MzVjNC45ODktOC4zLTEuMDU0LTIxLjc1MS0xMi4xLTIwLjM4NEM2LjE0NCwzLjY4Niw1Ljk4MywxNC4xOTQsMTQuNzgxLDE2LjY5YzcuNjE0LDIuMTYyLDEuNTczLDYuOTkyLDEuNzQ5LDEwLjIwOHM2LjYyLDQuMzgyLDExLjctNC4wNjNcXFwiIHN0eWxlPVxcXCJmaWxsOiNiZmJmYmZcXFwiLz48Y2lyY2xlIGN4PVxcXCI5Ljk3MlxcXCIgY3k9XFxcIjIzLjkyMVxcXCIgcj1cXFwiNC4zMzJcXFwiIHN0eWxlPVxcXCJmaWxsOiNiZmJmYmZcXFwiLz48Y2lyY2xlIGN4PVxcXCI1LjAyM1xcXCIgY3k9XFxcIjE0Ljc2MlxcXCIgcj1cXFwiMi44MzVcXFwiIHN0eWxlPVxcXCJmaWxsOiNiZmJmYmZcXFwiLz48cGF0aCBkPVxcXCJNMTcuODExLDI4LjE2OGEuNjY5LjY2OSwwLDAsMSwuNjM1LS45OTQsNyw3LDAsMCwwLDMuNy0uNzQ2YzMuMjQ3LTEuODQxLDguMjQ0LTEwLjcsNS43MzEtMTYuMjg1QTEyLjc3LDEyLjc3LDAsMCwwLDI1LjA0OSw1LjdjLS4yMzYtLjI0OS0uMS0uMjM2LjA1OS0uMTUyYTEwLjA4LDEwLjA4LDAsMCwxLDIuODU3LDMuNjc2LDE0LjU3OCwxNC41NzgsMCwwLDEsMS4xLDEwLjI3OWMtLjQ5NCwxLjgxNy0yLjIsNS45MjgtNC42OTEsNy43MDZzLTUuNDI0LDIuOC02LjU2My45NTVNMTUuNTQ4LDE2LjY3M2MtMS43LS41LTMuODk0LTEuMjA4LTUuMTYzLTIuODY3QTguMDg4LDguMDg4LDAsMCwxLDguODU0LDEwLjQ5Yy0uMDQzLS4yNy0uMDgtLjUsMC0uNTU4YTIxLjg4MiwyMS44ODIsMCwwLDAsMS42ODgsMi43MjMsNi40ODcsNi40ODcsMCwwLDAsMy41MjYsMi4yNTYsMTIuMzgzLDEyLjM4MywwLDAsMSwzLjg2NywxLjM3Yy43MzkuNjI5LjgsMS45ODkuNTUyLDIuMTQycy0uNzU5LTEuMS0yLjkzOC0xLjc0OW0tOC4xNTUsMTAuNGMzLjM2OSwzLjEyMSw4LjQzOS0xLjE2Niw2LjIwNy00Ljk1NC0uMjUxLS40MjUtLjU3Ni0uNzQ5LS40NjktLjQyMy43MTQsMi4xNzguMDU0LDMuOS0xLjE3Niw0Ljc4OGE0LjA2Myw0LjA2MywwLDAsMS00LjE5Mi4zMjhjLS4zOS0uMi0uNTUxLjA5Mi0uMzcuMjYxbS0zLjkzLTEwLjE2Yy4wMTguMi4yOTIuNDU4LjcyMi41NzZhMi45NjksMi45NjksMCwwLDAsMi41NS0uNDEzLDIuNzU5LDIuNzU5LDAsMCwwLC44MS0zLjQ1MmMtLjE3Mi0uMzA4LS40LS41MzMtLjIxOC0uMDQxQTIuNjgsMi42OCwwLDAsMSw2LjE0OCwxNi41M2EyLjQzOSwyLjQzOSwwLDAsMS0yLjEuMTY0Yy0uMzkxLS4xMTktLjYuMDE2LS41OC4yMjNcXFwiLz48cGF0aCBkPVxcXCJNMTkuMDU2LDI4LjQwN2MtLjAzMy4zODkuNDE0LjQ2NiwxLjAxNi4zNzZhNi43NTUsNi43NTUsMCwwLDAsMi4zMTMtLjY0OCw5LjU0LDkuNTQsMCwwLDAsMy4zMTQtMi42M2MyLjY2Mi0zLjQ3MywzLjYtNy41ODIsMy40Ni04LjE3M0ExNi4xNzIsMTYuMTcyLDAsMCwxLDI3LDIyLjY5MmMtMS44ODgsMi45NjgtMy4yNTYsNC41NDgtNi40MTMsNS4zMTQtLjg3OS4yMTMtMS40ODUtLjExMi0xLjUyOS40bS03LTEzLjVBNy45NjcsNy45NjcsMCwwLDAsMTQuNiwxNi4wODlhMTIuMiwxMi4yLDAsMCwxLDIuOTYsMS4zMWMuMzc4LjI1My42MTguODE5LjY0Mi4zMTdzLS4yODUtLjkzNC0uOTc2LTEuMTY0YTE1LjI3NCwxNS4yNzQsMCwwLDAtMi4wMDktLjY3NGMtLjQ4NS0uMS0xLjI3My0uMjg1LTEuOTQ5LS40OTMtLjM3MS0uMTE0LS43NDgtLjMxMy0xLjIxNC0uNDgzTTEwLjAzNywyNy43MThjLjQyOS0uMDksMi45MjQtLjczNiwzLjUxLTIuNzg4LjE4My0uNjQuMjE1LS41MTEuMTY0LS4xNjVhMy44LDMuOCwwLDAsMS0zLjM1OCwzLjEyM2MtLjI4OS4wMy0uNjY4LS4xLS4zMTUtLjE3TTUuMDQ2LDE3LjJhNy45OTEsNy45OTEsMCwwLDAsMS4xOTUtLjMzNiwyLjM4MywyLjM4MywwLDAsMCwxLjIzMi0xLjc0MWMuMDY0LS41MDUuMDgzLS4zNzguMTA5LS4xYTIuNjI3LDIuNjI3LDAsMCwxLTIuMTQ3LDIuMzI0Yy0uMi4wMjgtLjU2LjAxMS0uMzg5LS4xNDNcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48cGF0aCBkPVxcXCJNMjcuNTQsMTcuNDQ2YzIuMTI0LTYuMTIzLTIuMzIxLTE1LjM3LTExLjMxNS0xNC4yNTgtOC4xMjYsMS04LjI1Nyw5LjU1Ny0xLjEsMTEuNTksOC4xMTIsMS4yMjgsMy4yMjcsNy4zNDcsMi41MzUsMTAuNDMzLS42MjEsMi43NjYsNi41NTUsMy4yMjEsOS44NzYtNy43NjVNNy4yMTksMjYuMmEyLjAyOCwyLjAyOCwwLDAsMSwxLjMzMi40NDIsMy41MjUsMy41MjUsMCwwLDAsMy43NTUtLjk4M0E0LjE1NCw0LjE1NCwwLDAsMCwxMi44NjksMjJjLS44MDYtMi4zMTktNC4yMjktMi4yNzgtNS43NTgtLjM1My0xLjY1NCwyLjE1LS40LDQuNTM5LjEwOCw0LjU0OE0yLjY3NiwxNS40NTFhMS4xNjYsMS4xNjYsMCwwLDAsLjkwOC44NjNjLjczMS4xLjg4LjQzNCwxLjc0My4yNjNBMi40NjQsMi40NjQsMCwwLDAsNy4xLDE0LjkxNmExLjc3MSwxLjc3MSwwLDAsMC0uODI0LTIuMTQsMi42ODksMi42ODksMCwwLDAtMy4wNDcuMzYzLDIuMjYzLDIuMjYzLDAsMCwwLS41NTgsMi4zMTJcXFwiIHN0eWxlPVxcXCJmaWxsOiM5OTlcXFwiLz48cGF0aCBkPVxcXCJNMjEuOTgxLDIyLjIyOGMtMi4yLS4yNzItNS4zNiw0LjY5LTIuMzc4LDQuMTA5aDBhNS42NDUsNS42NDUsMCwwLDAsMy42ODMtMS45MzIsMjMuMTM2LDIzLjEzNiwwLDAsMCw0LjA1NS03LjJjLjUtMS44NjEuMjUxLTQuNzQ1LS4yNjktMi4wMzYtLjUzMywyLjc4MS0yLjg5Myw3LjMzNi01LjA5MSw3LjA2NE0xMC41MjMsMjYuMzYyQTIuNzc4LDIuNzc4LDAsMCwwLDEyLjUsMjIuOTljLS4xNjUtMS4yNzYtLjg2MSwxLjU4NC0yLjE1LDIuMDEyLTEuOTUzLjY0OC0xLjczMywxLjg2MS4xNzYsMS4zNjFtLTQuOTc4LTEwLjJjLjY2My0uMTczLDEuNTQtMS4wNzcsMS4xLTEuNzY3LS41MzctLjg1LTIuMDMzLS4xMjItMi4wODQuODI0cy4yNzcsMS4xMjcuOTc5Ljk0M1xcXCIgc3R5bGU9XFxcImZpbGw6I2YzZjNmM1xcXCIvPlwiLFxuXHRcIi5ucG1pZ25vcmVcIjogXCI8cGF0aCBkPVxcXCJNMiwxMC41NTVIMzB2OS4zMzVIMTZ2MS41NTZIOS43NzhWMTkuODg5SDJabTEuNTU2LDcuNzc5SDYuNjY3VjEzLjY2Nkg4LjIyMnY0LjY2N0g5Ljc3OFYxMi4xMTFIMy41NTZabTcuNzc4LTYuMjIzdjcuNzc5aDMuMTExVjE4LjMzNGgzLjExMVYxMi4xMTFabTMuMTExLDEuNTU2SDE2djMuMTEySDE0LjQ0NFptNC42NjctMS41NTZ2Ni4yMjNoMy4xMTFWMTMuNjY2aDEuNTU2djQuNjY3aDEuNTU2VjEzLjY2NmgxLjU1NnY0LjY2N2gxLjU1NlYxMi4xMTFaXFxcIiBzdHlsZT1cXFwiZmlsbDojY2IzODM3XFxcIi8+XCIsXG5cdFwiLnByb3BlcnRpZXNcIjogXCI8cGF0aCBkPVxcXCJNMjMuMjY1LDI0LjM4MWwuOS0uODk0YzQuMTY0LjEzNiw0LjIyOC0uMDEsNC40MTEtLjQzOGwxLjE0NC0yLjc4NUwyOS44MDUsMjBsLS4wOTMtLjIzMWMtLjA0OS0uMTIyLS4yLS40ODYtMi44LTIuOTY1VjE1LjVjMy0yLjg5LDIuOTM2LTMuMDM4LDIuNzY1LTMuNDYxTDI4LjUzOCw5LjIyNWMtLjE3MS0uNDIyLS4yMzYtLjU4Ny00LjM3LS40NzRsLS45LS45M2EyMC4xNjYsMjAuMTY2LDAsMCwwLS4xNDEtNC4xMDZsLS4xMTYtLjI2My0yLjk3NC0xLjNjLS40MzgtLjItLjU5Mi0uMjcyLTMuNCwyLjc4NmwtMS4yNjItLjAxOWMtMi44OTEtMy4wODYtMy4wMjgtMy4wMy0zLjQ2MS0yLjg1NUw5LjE0OSwzLjE4MmMtLjQzMy4xNzUtLjU4Ni4yMzctLjQxOCw0LjQzN2wtLjg5My44OWMtNC4xNjItLjEzNi00LjIyNi4wMTItNC40MDcuNDM4TDIuMjg1LDExLjczMywyLjE5NSwxMmwuMDk0LjIzMmMuMDQ5LjEyLjE5NC40OCwyLjgsMi45NjJsMCwxLjNjLTMsMi44OS0yLjkzNSwzLjAzOC0yLjc2MywzLjQ2MmwxLjEzOCwyLjgxN2MuMTc0LjQzMS4yMzYuNTg0LDQuMzY5LjQ3NmwuOS45MzVhMjAuMjQzLDIwLjI0MywwLDAsMCwuMTM3LDQuMWwuMTE2LjI2NSwyLjk5MywxLjMwOGMuNDM1LjE4Mi41ODYuMjQ3LDMuMzg2LTIuOGwxLjI2Mi4wMTZjMi44OTUsMy4wOSwzLjA0MywzLjAzLDMuNDY2LDIuODU5bDIuNzU5LTEuMTE1QzIzLjI4OCwyOC42NDQsMjMuNDQsMjguNTgzLDIzLjI2NSwyNC4zODFaTTExLjQwNywxNy44NTdhNC45NTcsNC45NTcsMCwxLDEsNi40ODgsMi44MjRBNS4wMTQsNS4wMTQsMCwwLDEsMTEuNDA3LDE3Ljg1N1pcXFwiIHN0eWxlPVxcXCJmaWxsOiM5OWI4YzRcXFwiLz5cIixcblx0XCI2NTAyIEFzc2VtYmx5XCI6IFwiPGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJhXFxcIiB4MT1cXFwiODM2LjYzXFxcIiB5MT1cXFwiMzYuMjA1XFxcIiB4Mj1cXFwiODQzLjgwMlxcXCIgeTI9XFxcIjE0LjQ4XFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwidHJhbnNsYXRlKDUyNS45MjIgMzAuMjQ5KSByb3RhdGUoMTgwKSBzY2FsZSgwLjYwNyAwLjYwNylcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiNmZmZcXFwiIHN0b3Atb3BhY2l0eT1cXFwiMFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiI2ZmZlxcXCIgc3RvcC1vcGFjaXR5PVxcXCIwLjI3NVxcXCIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjx0aXRsZT5maWxlX3R5cGVfYXNzZW1ibHk8L3RpdGxlPjxwYXRoIGQ9XFxcIk0xNiwyYy0xLjI0NiwzLjA1Ni0yLDUuMDU3LTMuMzkxLDguMDIyQTIxLjg4NCwyMS44ODQsMCwwLDAsMTYuMiwxMy4xNTZhMTQuODU4LDE0Ljg1OCwwLDAsMS00LTIuMjgzQzEwLjQzLDE0LjU3OSw3LjY0NiwxOS44NTUsMiwzMGM1LjE4Ni0yLjk5NCw5LjAxMi00LjY0OCwxMi42OTEtNC45NjZWMjQuMmgtLjgzNHYtLjgzN2guODM0VjI0LjJoMS42NzVWMjIuNTIxSDE0LjY5MXYtLjgzNGgtLjgzNFYyMC4wMTNoLjgzNHYtLjgzNGgxLjY3NXYuODM0SDE3LjJ2LjgzN2gtLjgzN3YtLjgzN0gxNC42OTF2MS42NzVoMS42NzV2LjgzNEgxNy4yVjI0LjJoLS44Mzd2Ljc4M2MzLjk4LjEsOC4wMDYsMS43NzIsMTMuNjM0LDUuMDIxLS44NjMtMS41ODktMS42MzYtMy4wMjEtMi4zNzItNC4zODVhMjUuNTI2LDI1LjUyNiwwLDAsMC00LjgzMy0zLjMzM0ExNC40MzYsMTQuNDM2LDAsMCwxLDI2LjY1LDIzLjhDMTkuMTcsOS44NzIsMTguNTY1LDguMDIsMTYsMlpNMTAuNTExLDE5LjE3OWgxLjY3MXYuODM0aC44Mzd2NS4wMjFoLS44MzdWMjIuNTIxSDEwLjUxMXYyLjUxMkg5LjY3M1YyMC4wMTNoLjgzN1ptMCwuODM0djEuNjc1aDEuNjcxVjIwLjAxM1ptNy41MjYtLjgzNGguODM3di44MzRoLjgzN3YuODM3aC44MzR2LS44MzdoLjgzN3YtLjgzNGguODM3djUuODU1aC0uODM3VjIwLjg1aC0uODM3di44MzdoLS44MzRWMjAuODVoLS44Mzd2NC4xODRoLS44MzdaXFxcIiBzdHlsZT1cXFwiZmlsbDojMDAwMGJmXFxcIi8+PHBhdGggZD1cXFwiTTIzLjg4MSwxOC42NDJjLTYuMDY5LTguMjM3LTcuNDc2LTE0Ljg3Ni03LjgzMi0xNi40NjFBMTc1LjIxNywxNzUuMjE3LDAsMCwwLDIzLjg4MSwxOC42NDJaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmO2ZpbGwtb3BhY2l0eTowLjE2NTY4MDQ2ODA4MjQyOFxcXCIvPjxwYXRoIGQ9XFxcIk0xNi4wNTEsMi4xMiwxNS42LDMuMjI3Yy0uMTU5LjM5MS0uMzExLjc2NS0uNDYxLDEuMTMxcy0uMy43MjQtLjQ0OCwxLjA3Ny0uMy43LS40NDgsMS4wNTMtLjMuNzA2LS40NjUsMS4wNjYtLjMyOS43MjktLjUwNiwxLjExMS0uMzYyLjc3OC0uNTYxLDEuMTkzYy0uMDI4LjA1Ny0uMDYxLjEyMy0uMDg5LjE4MUEyMS44NzIsMjEuODcyLDAsMCwwLDE2LjIsMTMuMTU2YTE0Ljg3OSwxNC44NzksMCwwLDEtMy45ODktMi4yNzZsLS4xNC4yODdjLS4wNjUuMTMzLS4xNDQuMjgzLS4yMTIuNDJsLS4xMDYuMjE5Yy0uODc4LDEuNzkzLTIuMDA2LDMuOTg0LTMuNTI0LDYuODIyLDMuNTUxLTIsNy4zODEtNC44ODcsMTQuMzM4LTIuNC0uMzQ5LS42NjEtLjY3LTEuMjgtLjk3MS0xLjg2M3MtLjU4MS0xLjEyOC0uODQxLTEuNjQ0LS41LTEtLjcyNS0xLjQ2My0uNDMzLS45LS42MjktMS4zMTMtLjM4LS44MTgtLjU1NC0xLjItLjMzOS0uNzU0LS41LTEuMTE4UzE4LjA0Nyw2LjksMTcuOSw2LjU0NnMtLjI5MS0uNzA5LS40MzQtMS4wNjZjLS4wMzYtLjA5MS0uMDczLS4xODYtLjEwOS0uMjc3QzE2Ljk0OSw0LjI0NywxNi41MzYsMy4yNTgsMTYuMDUxLDIuMTJaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2EpXFxcIi8+XCIsXG5cdFwiQWN0aW9uU2NyaXB0XCI6IFwiPHBhdGggZD1cXFwiTTIsMTUuMjgxYzEuOTE4LDAsMi4xMS0xLjA1NSwyLjExLTEuOTE4YTE3LjExOSwxNy4xMTksMCwwLDAtLjE5Mi0yLjIwNSwxOC43MjMsMTguNzIzLDAsMCwxLS4xOTItMi4yMDVjMC0yLjQsMS42My0zLjQ1MiwzLjgzNi0zLjQ1MmguNTc1VjYuOTM4SDcuNjU4Yy0xLjUzNCwwLTIuMTEuNzY3LTIuMTEsMi4yMDVhMTQuNDEyLDE0LjQxMiwwLDAsMCwuMTkyLDEuOTE4LDE0LjMwNiwxNC4zMDYsMCwwLDEsLjE5MiwyLjAxNGMwLDEuNzI2LS42NzEsMi40OTMtMS45MTgsMi44Nzd2LjFjMS4xNTEuMjg4LDEuOTE4LDEuMTUxLDEuOTE4LDIuODc3YTE0LjMwNiwxNC4zMDYsMCwwLDEtLjE5MiwyLjAxNCwxMywxMywwLDAsMC0uMTkyLDEuOTE4YzAsMS40MzguNTc1LDIuMywyLjExLDIuM2guNDc5VjI2LjZINy41NjJjLTIuMjA1LDAtMy44MzYtLjk1OS0zLjgzNi0zLjY0NGExOC43MjMsMTguNzIzLDAsMCwxLC4xOTItMi4yMDUsMTUuNjgsMTUuNjgsMCwwLDAsLjE5Mi0yLjExYzAtLjg2My0uMjg4LTEuOTE4LTIuMTEtMS45MThaXFxcIiBzdHlsZT1cXFwiZmlsbDojYzQxNzE4XFxcIi8+PHBhdGggZD1cXFwiTTkuNDc5LDE4LjA2Miw4LjIzMywyMS44SDYuNkwxMC42Myw5LjkxMWgxLjgyMkwxNi40NzksMjEuOEgxNC45NDVMMTMuNywxOC4wNjJabTMuOTMyLTEuMTUxTDEyLjI2LDEzLjQ1OWE5LjM2NCw5LjM2NCwwLDAsMS0uNTc1LTIuMjA1aDBjLS4xOTIuNjcxLS4zODQsMS40MzgtLjU3NSwyLjExTDkuOTU5LDE2LjgxNWgzLjQ1MlpcXFwiIHN0eWxlPVxcXCJmaWxsOiNjNDE3MThcXFwiLz48cGF0aCBkPVxcXCJNMTcuOTE4LDE5Ljk3OWE1Ljk0MSw1Ljk0MSwwLDAsMCwyLjc4MS43NjdjMS41MzQsMCwyLjQ5My0uODYzLDIuNDkzLTIuMDE0cy0uNjcxLTEuNzI2LTIuMjA1LTIuNGMtMS45MTgtLjY3MS0zLjE2NC0xLjcyNi0zLjE2NC0zLjM1NiwwLTEuODIyLDEuNTM0LTMuMjYsMy44MzYtMy4yNmE1LjEzNSw1LjEzNSwwLDAsMSwyLjU4OS41NzVsLS4zODQsMS4yNDdhNS41MTksNS41MTksMCwwLDAtMi4zLS40NzljLTEuNjMsMC0yLjIwNS45NTktMi4yMDUsMS44MjIsMCwxLjE1MS43NjcsMS42MywyLjQsMi4zLDIuMDE0Ljc2NywzLjA2OCwxLjcyNiwzLjA2OCwzLjQ1MiwwLDEuODIyLTEuMzQyLDMuNDUyLTQuMTIzLDMuNDUyYTUuODA3LDUuODA3LDAsMCwxLTMuMDY4LS43NjdaXFxcIiBzdHlsZT1cXFwiZmlsbDojYzQxNzE4XFxcIi8+PHBhdGggZD1cXFwiTTMwLDE2LjYyM2MtMS45MTgsMC0yLjExLDEuMTUxLTIuMTEsMS45MThhMTUuNjgsMTUuNjgsMCwwLDAsLjE5MiwyLjExLDE1LjczOCwxNS43MzgsMCwwLDEsLjE5MiwyLjIwNWMwLDIuNjg1LTEuNjMsMy42NDQtMy44MzYsMy42NDRoLS41NzVWMjUuMDYyaC40NzljMS40MzgsMCwyLjExLS44NjMsMi4xMS0yLjNhMTMsMTMsMCwwLDAtLjE5Mi0xLjkxOCwxNC4zMDYsMTQuMzA2LDAsMCwxLS4xOTItMi4wMTRjMC0xLjcyNi43NjctMi41ODksMS45MTgtMi44Nzd2LS4xYy0xLjE1MS0uMjg4LTEuOTE4LTEuMTUxLTEuOTE4LTIuODc3YTE0LjMwNiwxNC4zMDYsMCwwLDEsLjE5Mi0yLjAxNCwxMywxMywwLDAsMCwuMTkyLTEuOTE4YzAtMS40MzgtLjU3NS0yLjIwNS0yLjExLTIuM2gtLjQ3OVY1LjRoLjU3NWMyLjIwNSwwLDMuODM2LDEuMDU1LDMuODM2LDMuNDUyYTE3LjExOSwxNy4xMTksMCwwLDEtLjE5MiwyLjIwNSwxNy4xMTksMTcuMTE5LDAsMCwwLS4xOTIsMi4yMDVjMCwuOTU5LjI4OCwxLjkxOCwyLjExLDEuOTE4WlxcXCIgc3R5bGU9XFxcImZpbGw6I2M0MTcxOFxcXCIvPlwiLFxuXHRcIkFkYVwiOiBcIjxwYXRoIGQ9XFxcIk0yNC41NTQsMjAuMDc1Yy4yMDkuMjcsMS4zNTYuOTYxLDEuMzcsMS4yNDZhNi45MjEsNi45MjEsMCwwLDAtMS40LS4zMjRjLS40NjgtLjE0Mi0uOTUxLS4yOTMtMS40MTItLjQ4YTkuMiw5LjIsMCwwLDEtMi4zNzUtMS4zQTMuMTQ2LDMuMTQ2LDAsMCwxLDE5LjMsMTYuNzVhMS43MjIsMS43MjIsMCwwLDEsMS43NjctMS44MjIsMy41ODQsMy41ODQsMCwwLDEsMS41OTMuMzIxYy4xNDYuMDY2LDEuMzEuNjA2LDEuMjU2LjgwOWE1LjUsNS41LDAsMCwwLTEuNDEtLjExMmMtLjY0OS4yNDQtLjQuODI4LS4xNjgsMS4zMTFhNy44NzcsNy44NzcsMCwwLDAsMS4wNzgsMS41NTRDMjMuNTgsMTkuMDA1LDI0LjMsMjAuMDgyLDI0LjU1NCwyMC4wNzVaXFxcIiBzdHlsZT1cXFwiZmlsbDojMGYyM2MzXFxcIi8+PHBhdGggZD1cXFwiTTI0LjE0MSwxNi4yNzZjLjEyOC0uNTkuODE5LTEuMzg0LDEuMzQ0LS43NzNhNC4yLDQuMiwwLDAsMSwuNTc4LDEuOTE4Yy4xMi42NTYuMiwxLjMyNy4yNjEsMS45ODIuMDM4LjM3OS4zNCwxLjc5NC4xMjMsMi4wNzVhMjMuMjQsMjMuMjQsMCwwLDEtMi45MjItMi44MzgsMy43NjMsMy43NjMsMCwwLDEtLjkyNS0xLjdDMjIuNSwxNS44NjcsMjMuNDc5LDE2LjIxLDI0LjE0MSwxNi4yNzZaXFxcIiBzdHlsZT1cXFwiZmlsbDojMWExOTc4XFxcIi8+PHBhdGggZD1cXFwiTTI2LjMsMTcuNzgxYy4xNDEtLjczMi0uNDA2LTIuNTkyLTEuMDY3LTIuOTQ5YS4wNi4wNiwwLDAsMCwuMDQ0LS4wMDdjLS4xNTYtLjQ0NC0xLjM1OSwxLjExNi0xLjIyOCwxLjE3NC0uMzE2LS4xMzguNzc0LTEuOTg0Ljk4OC0yLjE2LjctLjU3OCwxLjM3Mi0uMDg2LDEuODQ1LjU0M2E2LjAzNiw2LjAzNiwwLDAsMSwuNzMzLDQuNDM0LDQuNSw0LjUsMCwwLDEtLjQyMSwxLjMxMmMtLjEuMjItLjQ1LDEuMS0uNjgyLDEuMTc0QTE0Ljc1NCwxNC43NTQsMCwwLDAsMjYuMywxNy43ODFaXFxcIiBzdHlsZT1cXFwiZmlsbDojMGYyM2MzXFxcIi8+PHBhdGggZD1cXFwiTTMuNjg3LDguNGMuMTc5LS4xODgtLjA0MS0xLjUyNy4zMjQtMS41NDguMjYyLS4wMTUuNTUzLDEuNzQxLjYyNywxLjk2OGE5LjIsOS4yLDAsMCwwLDEuMTI3LDIuMzI5LDcuNTI5LDcuNTI5LDAsMCwwLDQuMDE2LDIuOTc4LDQuNTUsNC41NSwwLDAsMCwyLjM2Ni4yYy45MzEtLjIwOCwxLjgyLS41NzcsMi43NTctLjc2NSwxLjM1LS4yNywzLjM0Mi0uMzUyLDQuNDM4LjY0Ny43LjY0MS4zNzYuNzYuMDQzLDEuNDIxYTIuNDQ1LDIuNDQ1LDAsMCwwLC4xNzgsMi41NjJjLjIzNS4zNDIsMS4wMzMuODI3LjY3NSwxLjA5NC0uNTY3LjQyNC0xLjI3Ny0uNDUyLTEuNjM2LS43NzYtMS40LTEuMjY0LTIuNzExLTEuMzEzLTQuNDkyLTEuMDc0YTguOTg3LDguOTg3LDAsMCwxLTQuODgzLS43MDhBOS40NjksOS40NjksMCwwLDEsMy42ODcsOC40WlxcXCIgc3R5bGU9XFxcImZpbGw6I2QyZDJkMlxcXCIvPjxwYXRoIGQ9XFxcIk0xOS45NDEsMzBhMy42MTUsMy42MTUsMCwwLDEtMi4zMjUtLjgxN2MuNDY5LS4wOTIsMS4wMjEuMDI1LDEuNTA4LS4wNDRhOS43LDkuNywwLDAsMCwxLjc1NC0uNDNBMTAuNTM3LDEwLjUzNywwLDAsMCwyMy45LDI3LjE1NWE2LjU1LDYuNTUsMCwwLDAsMi43NTctNS4yMTRjLjE0OS0uMDg4LjMxNiwxLjAzNC4zMTksMS4wOTFhNS43ODksNS43ODksMCwwLDEtLjE5LDEuNzI3LDYuODY3LDYuODY3LDAsMCwxLTEuNDIzLDIuNzc0QTcuMjg2LDcuMjg2LDAsMCwxLDE5Ljk0MSwzMFpcXFwiIHN0eWxlPVxcXCJmaWxsOiNkMmQyZDJcXFwiLz48cGF0aCBkPVxcXCJNMTguOTYyLDE5LjEwOWE1Ljc2LDUuNzYsMCwwLDEtMi4wNS44NTksMTMuMzgsMTMuMzgsMCwwLDEtMi4yMjQuNTQ5LDguODYxLDguODYxLDAsMCwxLTQuNDM1LS41MSw5LjkzOSw5LjkzOSwwLDAsMS0zLjg0OS0yLjRDNi4wNTIsMTcuMjQsNC4zLDE1LjE5LDQuODU2LDE0LjU1N2MuMjQ4LS4yODIuODc1Ljg0NiwxLC45OTJhNSw1LDAsMCwwLDEuMzU3LDEuMTEsMTAuOTE3LDEwLjkxNywwLDAsMCw0LjAzNSwxLjQ1Niw2LjY5Myw2LjY5MywwLDAsMCwyLjM0LS4wOTQsMTIuNzQzLDEyLjc0MywwLDAsMSwxLjY5NC0uNDg1LDQsNCwwLDAsMSwyLjExMy40NTdDMTcuNzM5LDE4LjE2MywxOC45MTgsMTguNzM2LDE4Ljk2MiwxOS4xMDlaXFxcIiBzdHlsZT1cXFwiZmlsbDojZDJkMmQyXFxcIi8+PHBhdGggZD1cXFwiTTI4LjMxMywxNS4wNzhhMTkuMjc3LDE5LjI3NywwLDAsMS0uNDUzLDMuNzc0Yy0uMTc2LS4yNDIuMDE2LTEuNDcsMC0xLjc5MmE2LjAzMiw2LjAzMiwwLDAsMC0uMzg0LTIuMDg3QTQuOTI1LDQuOTI1LDAsMCwwLDI2LjEsMTMuMzEyYTE0LjcyOCwxNC43MjgsMCwwLDEtMS4yNy0xLjUzNmMtMS44MzctMi4zODItMy4yNDUtNS4yMTEtMi45LTguMy4wMzQtLjMwOC4wNjktMS40NDguNDExLTEuNDQ1LjE1MiwwLC4yNjYsMS41NjEuMjksMS43MThhMTIuNTI3LDEyLjUyNywwLDAsMCwxLjIyNCw0LjExNmMuNjcsMS4yMjIsMS45NDcsMi4wMjMsMi44MjUsMy4xQTYuNTc5LDYuNTc5LDAsMCwxLDI4LjMxMywxNS4wNzhaXFxcIiBzdHlsZT1cXFwiZmlsbDojZDJkMmQyXFxcIi8+PHBhdGggZD1cXFwiTTE1LjcsMjYuOTM1YTEwLjg0NSwxMC44NDUsMCwwLDAsNi40MzYtLjY4Nyw2Ljk0MSw2Ljk0MSwwLDAsMCw0LjI3OC00LjQxOGMuMzE5LjItLjA0OCwxLjUyOS0uMTI4LDEuNzgxYTUuNzI2LDUuNzI2LDAsMCwxLTEuMDEsMS44MTMsOC45MzMsOC45MzMsMCwwLDEtMy4yNTcsMi41MTRDMjAuMzE2LDI4LjcxLDE2LjM1NywyOS41OSwxNS43LDI2LjkzNVpcXFwiIHN0eWxlPVxcXCJmaWxsOiNkMmQyZDJcXFwiLz48cGF0aCBkPVxcXCJNMTkuMTUxLDE5LjM3NmMuMzY3LDIuMTA3LTIuOTU3LDMuMTI0LTQuNDc4LDMuMjEzLTEuODU5LjExLTQuOTI5LS4yOTItNi4wNi0yLjAzMS0uNjczLTEuMDM1Ljc4MS0uMDksMS4xODguMDU4YTguNjYzLDguNjYzLDAsMCwwLDMuMDYuNSwxMS42LDExLjYsMCwwLDAsMy4zMDUtLjUsMTMuNzI1LDEzLjcyNSwwLDAsMCwxLjUzMy0uNTc2QzE4LDE5LjkwOCwxOC44MjMsMTkuMzQ5LDE5LjE1MSwxOS4zNzZaXFxcIiBzdHlsZT1cXFwiZmlsbDojZDJkMmQyXFxcIi8+PHBhdGggZD1cXFwiTTI0LjE0MiwyMy40NmMuNC0uOTQ1LTEuODgzLTEuNTc4LTIuNDQ1LTEuODU4YTQuODU3LDQuODU3LDAsMCwxLTEuMzE1LS44NjdjLS4xODEtLjE4MS0uODcyLS45Mi0uODA3LTEuMjE5YTQuOTEyLDQuOTEyLDAsMCwxLDEuMDg3LS4xNzUsNS45Myw1LjkzLDAsMCwxLC44NTUuNTg4LDEwLjMyMywxMC4zMjMsMCwwLDAsLjk2NC41QTE1LjYxNSwxNS42MTUsMCwwLDAsMjQuNiwyMS4yYy4zMDguMDksMS41NDkuMjA4LDEuNzI3LjQyOEMyNi4yODcsMjEuOTI0LDI0LjM1NywyMy42NDksMjQuMTQyLDIzLjQ2WlxcXCIgc3R5bGU9XFxcImZpbGw6I2QyZDJkMlxcXCIvPjxwYXRoIGQ9XFxcIk0yNi4xLDIyLjE3MmMuMjY1LjQzLTEuMDgsMS44MzEtMS4zNjMsMi4xMDVhOS4zNCw5LjM0LDAsMCwxLTIuNTY2LDEuNzI4LDcuNzQ4LDcuNzQ4LDAsMCwxLTIuNTYuNzUzYy0uNjc5LjA1OC0xLjk2Ni0uMTI0LTIuMTQxLS45NzlhNi45NTEsNi45NTEsMCwwLDEsMS4xNzctLjA4NmMuNDYyLS4wNTkuOTIxLS4xNDksMS4zNzYtLjI0NmExMy4wNjUsMTMuMDY1LDAsMCwwLDIuMTg0LS42NDUsMTEuNTA2LDExLjUwNiwwLDAsMCwyLjA4NC0xLjExLDEwLjg3MiwxMC44NzIsMCwwLDAsMS4wNzgtLjgyMkMyNS40NzQsMjIuNzgxLDI1Ljk4NiwyMi4xNjgsMjYuMSwyMi4xNzJaXFxcIiBzdHlsZT1cXFwiZmlsbDojZDJkMmQyXFxcIi8+PHBhdGggZD1cXFwiTTE4Ljc1OCwxMS45NjVjLS4xLTEuMzA4LDIuNjEyLTEuMywzLjI3MS0xLjA5MmE1Ljk3Niw1Ljk3NiwwLDAsMSwyLjk4MiwyLjQ3NWMtMS4wODIuOC0yLjQ0OS4wOTQtMy4zLS42NTRhNC4zMjQsNC4zMjQsMCwwLDAtMS40ODEtMS4wMjlDMTkuNDIxLDExLjQsMTkuNDEyLDExLjc1OSwxOC43NTgsMTEuOTY1WlxcXCIgc3R5bGU9XFxcImZpbGw6I2QyZDJkMlxcXCIvPjxwYXRoIGQ9XFxcIk0yNS43ODMsMTMuMzQxYy0uNDQ0LS4wMjktLjMxNi4wNzEtLjY0Ny0uMjEyLS4zNTgtLjMwNy0uNjE0LS43OTUtLjk0NS0xLjE0MS0uNTM0LS41NTgtMS4yNDItLjg5NS0xLjcyMy0xLjQ4NWE3LjI2OSw3LjI2OSwwLDAsMS0xLjYyNC00Ljg0OGMuMDE4LTEuNDg5LjQwNy4xODcuNTUxLjY3NWExMi4yNzYsMTIuMjc2LDAsMCwwLDEuMTI2LDIuNzA4LDQ2LjA1NSw0Ni4wNTUsMCwwLDAsMy40LDQuMzIxQzI1Ljg4MiwxMy4zNjEsMjUuODI0LDEzLjMzOCwyNS43ODMsMTMuMzQxWlxcXCIgc3R5bGU9XFxcImZpbGw6I2QyZDJkMlxcXCIvPjxwYXRoIGQ9XFxcIk0yMC4wNjgsMTQuNzU2Yy4wMzMtLjYyNS0uOTExLS43OTItMS4yMTEtMS40Mi0uMTY0LS4zNDMtLjIxMS0uNTY5LjAyOS0uNy4wODItLjA0NS4zODMuMDEyLjUtLjAyLjI3MS0uMDc2LjMzNS0uMjczLjU4MS0uNEExLjE5MywxLjE5MywwLDAsMSwyMS42LDEzLjIzNywxLjgyMSwxLjgyMSwwLDAsMSwyMC4wNjgsMTQuNzU2WlxcXCIgc3R5bGU9XFxcImZpbGw6I2QyZDJkMlxcXCIvPjxwYXRoIGQ9XFxcIk0yMC41LDE0Ljc0NWExLjkzMSwxLjkzMSwwLDAsMCwxLjMyMy0xLjdjLjUyNC4xMzkuOTI4LjY1OCwxLjUyMS43NzFhMi41ODQsMi41ODQsMCwwLDAsMS4wMjktLjAxN2MuMjA3LS4wNDUuNTQtLjI3NC43MjEtLjI1OS0uMDMzLjE2My0uNDY0LjU0Ni0uNTY1LjcxN2E0LjI0Miw0LjI0MiwwLDAsMC0uMzg4LjljLS4yMjkuNzQxLS4wNjEuNzM5LS43MDkuMzExYTQuMjg0LDQuMjg0LDAsMCwwLTEuOTU3LS43MkMyMS4yMDksMTQuNzIyLDIwLjU5NCwxNC43NjcsMjAuNSwxNC43NDVaXFxcIiBzdHlsZT1cXFwiZmlsbDojZDJkMmQyXFxcIi8+PHBhdGggZD1cXFwiTTE5LjkwNSwyMC43MzRhMi4wMDgsMi4wMDgsMCwwLDEtMS40LDEuNzEyYy0uMjA1LjA5MS0yLjAxOC43MzMtMi4wMzIuMzQ4LS4wMDctLjIsMS42MjQtLjk1NCwxLjgwOS0xLjExYTMuMzU1LDMuMzU1LDAsMCwwLC44NjctMS4wNzFjLjA1NS0uMTEyLjIzMi0uOTI1LjI3MS0uOTQzQzE5LjY0NCwxOS41NjQsMTkuOTA4LDIwLjYsMTkuOTA1LDIwLjczNFpcXFwiIHN0eWxlPVxcXCJmaWxsOiNkMmQyZDJcXFwiLz48cGF0aCBkPVxcXCJNMTEuMzczLDEyLjUzMmExMC42MjUsMTAuNjI1LDAsMCwxLDMuNzEtLjkxNCwxMC4yODIsMTAuMjgyLDAsMCwxLDEuODY1LjAyNGMuMzY2LjAzOSwxLjQ2OS4wNTQsMS43NC4zNDNhLjI1NS4yNTUsMCwwLDEtLjI3My4xNzNjLS4wMzcuMDc3LjI1MS4zNzEuMy40MjUtLjAzNC4wMzQtMS40NDUtLjQtMS41NzItLjQyNGExMC42MzIsMTAuNjMyLDAsMCwwLTIuMjgyLS4xMzQsMTYsMTYsMCwwLDAtMS44NDEuMTk0QTYuMjI0LDYuMjI0LDAsMCwxLDExLjM3MywxMi41MzJaXFxcIiBzdHlsZT1cXFwiZmlsbDojZDJkMmQyXFxcIi8+PHBhdGggZD1cXFwiTTIyLjUxMiwxMC43MzFhMS44ODgsMS44ODgsMCwwLDEtMS41MTctLjZjLS4yNDctLjM0OS0uNzM3LTEuNjkyLS4zODUtMi4wMjEuMjA5LS4yLjM4NC42NjIuNDg0Ljg0NkExMC44MjIsMTAuODIyLDAsMCwwLDIyLjUxMiwxMC43MzFaXFxcIiBzdHlsZT1cXFwiZmlsbDojZDJkMmQyXFxcIi8+PHBhdGggZD1cXFwiTTI3Ljc4OCwxOS4yYTE5LjIxMiwxOS4yMTIsMCwwLDEtLjc0OSwzLjMxM2MtLjE3My0uMDc3LS4yNzUtLjc3OC0uNTYyLS45NWE0LjA3LDQuMDcsMCwwLDAsLjc2LTEuMTU0QzI3LjM4OSwyMC4xMDcsMjcuNTQsMTkuMzYzLDI3Ljc4OCwxOS4yWlxcXCIgc3R5bGU9XFxcImZpbGw6I2QyZDJkMlxcXCIvPjxwYXRoIGQ9XFxcIk0xOS45ODEsMTEuODQzYy0uMTMyLjI2OC0uOTMyLDEuMS0xLjExOC40ODFDMTguNzU2LDExLjk2OCwxOS43MzksMTEuNDgzLDE5Ljk4MSwxMS44NDNabS0uNzQ3LjQ1Yy4yMjguMDA2LjAxMi0uMjQ4LjAxMi0uMjY2QzE5LjI0NSwxMS45ODQsMTguODc4LDEyLjI5MywxOS4yMzQsMTIuMjkzWlxcXCIgc3R5bGU9XFxcImZpbGw6I2QyZDJkMlxcXCIvPlwiLFxuXHRcIkFMXCI6IFwiPHBhdGggZD1cXFwiTTExLjYxNiw3Ljk4NkExLjU1OSwxLjU1OSwwLDAsMCwxMC4xNiw3SDEwLjFhMS41NTgsMS41NTgsMCwwLDAtMS40NTYuOTg2TDIsMjVINS44MDZsMS4wMTUtMi44MzRoNi42MjFMMTQuNDU3LDI1aDMuOFpNNy45NDQsMTguOTU2bDIuMTg4LTYuMTExLDIuMTg4LDYuMTE2WlxcXCIgc3R5bGU9XFxcImZpbGw6IzJlYTk4ZVxcXCIvPjxwYXRoIGQ9XFxcIk0yMy44MjksMjEuNjcxVjcuMTI5SDIwLjNWMjIuNzQ3QTIuMzQ2LDIuMzQ2LDAsMCwwLDIyLjU3LDI1SDMwVjIxLjY3MlpcXFwiIHN0eWxlPVxcXCJmaWxsOiMyZWE5OGVcXFwiLz5cIixcblx0XCJBTlRMUjRcIjogXCI8cGF0aCBkPVxcXCJNMTQuMTc3LDcuMjc4YTIuMDgsMi4wOCwwLDAsMSwzLjA0MS0uOEEzLjU3MSwzLjU3MSwwLDAsMSwxOC4yLDguMDIyYzEuMzU2LDMuMTIyLDIuOSw2LjE2NSw0LjExOSw5LjM0NS42NDUsMS41LDEuNDI5LDIuOTM4LDEuOTk0LDQuNDY4YTEuNDU1LDEuNDU1LDAsMCwxLTIuMjU4LDEuMzc2Yy0yLjgtMS41NzItNS42MjgtMy4wOTQtOC4zODUtNC43MzEsMi4wMDkuMDA4LDQuMDE4LS4wMDgsNi4wMjUuMDEzYTE5LjcwNywxOS43MDcsMCwwLDAtMS4yODgtMi45MThjLS43ODEtMS44NTgtMS42LTMuNy0yLjM1OC01LjU2NWE5Ljc4Myw5Ljc4MywwLDAsMC0xLjAzMiwyLjEyNWMtMS4zLDMuMTgyLTIuODcsNi4yNDEtNC4xMzYsOS40MzUtLjI4MS41OS0uNDI0LDEuMzQ0LTEuMDM1LDEuNjlhMS40NDcsMS40NDcsMCwwLDEtMi4wOTQtLjczOGMtLjI0MS0uNjEuMTUxLTEuMi4zODItMS43NDMuNzc5LTEuNzI1LDEuNjQ1LTMuNDEzLDIuMjgzLTUuMkMxMS42NSwxMi44LDEyLjkxNiwxMC4wNDEsMTQuMTc3LDcuMjc4WlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZlZmVmZVxcXCIvPjxwYXRoIGQ9XFxcIk0xMy44MTcsMi4yQTEzLjkyMywxMy45MjMsMCwwLDEsMjkuNTI2LDEyLjU0OWExMy43MzMsMTMuNzMzLDAsMCwxLTIuMDgyLDExLjUxOUExNC4wNzQsMTQuMDc0LDAsMCwxLDcuNzM4LDI3LjI5M2ExMy44NTIsMTMuODUyLDAsMCwxLTUuNjE1LTkuNDgzQTE0LjE1MiwxNC4xNTIsMCwwLDEsMy40NTEsOS44NSwxMy45NjEsMTMuOTYxLDAsMCwxLDEzLjgxNywyLjJtLjM1OSw1LjA4Yy0xLjI2MSwyLjc2Mi0yLjUyNiw1LjUyNS0zLjc2Miw4LjMtLjYzOCwxLjc4Ni0xLjUsMy40NzMtMi4yODMsNS4yLS4yMzEuNTQyLS42MjMsMS4xMzMtLjM4MiwxLjc0M2ExLjQ0NywxLjQ0NywwLDAsMCwyLjA5NC43MzhjLjYxLS4zNDcuNzUzLTEuMSwxLjAzNS0xLjY5LDEuMjY2LTMuMTk0LDIuODMzLTYuMjUzLDQuMTM2LTkuNDM1YTkuNzgzLDkuNzgzLDAsMCwxLDEuMDMyLTIuMTI1Yy43NTYsMS44NjgsMS41NzcsMy43MDcsMi4zNTgsNS41NjVhMTkuNzA3LDE5LjcwNywwLDAsMSwxLjI4OCwyLjkxOGMtMi4wMDctLjAyLTQuMDE2LS4wMDUtNi4wMjUtLjAxMywyLjc1NywxLjYzNyw1LjU4OCwzLjE1OSw4LjM4NSw0LjczMWExLjQ1NSwxLjQ1NSwwLDAsMCwyLjI1OC0xLjM3NmMtLjU2NS0xLjUyOS0xLjM0OS0yLjk3MS0xLjk5NC00LjQ2OC0xLjIyLTMuMTc5LTIuNzYyLTYuMjIzLTQuMTE5LTkuMzQ1YTMuNTcxLDMuNTcxLDAsMCwwLS45ODItMS41NDRBMi4wOCwyLjA4LDAsMCwwLDE0LjE3Nyw3LjI3OFpcXFwiIHN0eWxlPVxcXCJmaWxsOiNlNDRhMzJcXFwiLz5cIixcblx0XCJBcGFjaGUgQ29uZmlndXJhdGlvblwiOiBcIjxkZWZzPjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiYVxcXCIgeDE9XFxcIi01NjAyLjY4MlxcXCIgeTE9XFxcIjc2OC41NDFcXFwiIHgyPVxcXCItNTU5OC43MjdcXFwiIHkyPVxcXCI3NjMuOTE3XFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwibWF0cml4KDAuNDIzLCAtMC45MDYsIC0wLjkwNiwgLTAuNDIzLCAzMDgyLjg1MywgLTQ3NDguNTUxKVxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiI2Y2OTkyM1xcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC4zMTJcXFwiIHN0b3AtY29sb3I9XFxcIiNmNzlhMjNcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuODM4XFxcIiBzdG9wLWNvbG9yPVxcXCIjZTk3ODI2XFxcIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9XFxcImJcXFwiIHgxPVxcXCItNTYzMS45NTJcXFwiIHkxPVxcXCI3NjkuMDUyXFxcIiB4Mj1cXFwiLTU2MDMuNzM3XFxcIiB5Mj1cXFwiNzY5LjA1MlxcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcIm1hdHJpeCgwLjQyMywgLTAuOTA2LCAtMC45MDYsIC0wLjQyMywgMzA4Mi44NTMsIC00NzQ4LjU1MSlcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjAuMzIzXFxcIiBzdG9wLWNvbG9yPVxcXCIjOWUyMDY0XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjYzXFxcIiBzdG9wLWNvbG9yPVxcXCIjYzkyMDM3XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjc1MVxcXCIgc3RvcC1jb2xvcj1cXFwiI2NkMjMzNVxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiI2U5NzgyNlxcXCIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJjXFxcIiB4MT1cXFwiLTU2MjguNTQ2XFxcIiB5MT1cXFwiNzY2LjIyMVxcXCIgeDI9XFxcIi01NjExLjczM1xcXCIgeTI9XFxcIjc2Ni4yMjFcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJtYXRyaXgoMC40MjMsIC0wLjkwNiwgLTAuOTA2LCAtMC40MjMsIDMwODIuODUzLCAtNDc0OC41NTEpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjMjgyNjYyXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjA5NVxcXCIgc3RvcC1jb2xvcj1cXFwiIzY2MmU4ZFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC43ODhcXFwiIHN0b3AtY29sb3I9XFxcIiM5ZjIwNjRcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuOTQ5XFxcIiBzdG9wLWNvbG9yPVxcXCIjY2QyMDMyXFxcIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9XFxcImRcXFwiIHgxPVxcXCItNTYzMC4zNjdcXFwiIHkxPVxcXCI3NjkuMzE2XFxcIiB4Mj1cXFwiLTU2MDIuMTUyXFxcIiB5Mj1cXFwiNzY5LjMxNlxcXCIgeGxpbms6aHJlZj1cXFwiI2JcXFwiLz48bGluZWFyR3JhZGllbnQgaWQ9XFxcImVcXFwiIHgxPVxcXCItNTYyOC4zMVxcXCIgeTE9XFxcIjc2OC45MzNcXFwiIHgyPVxcXCItNTYxMy40ODJcXFwiIHkyPVxcXCI3NjguOTMzXFxcIiB4bGluazpocmVmPVxcXCIjY1xcXCIvPjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiZlxcXCIgeDE9XFxcIi01NjMwLjM2N1xcXCIgeTE9XFxcIjc2Ni4zOTRcXFwiIHgyPVxcXCItNTYwMi4xNTJcXFwiIHkyPVxcXCI3NjYuMzk0XFxcIiB4bGluazpocmVmPVxcXCIjYlxcXCIvPjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiZ1xcXCIgeDE9XFxcIi01NjMyLjExOFxcXCIgeTE9XFxcIjc2Ni41MzlcXFwiIHgyPVxcXCItNTYwMy45MDJcXFwiIHkyPVxcXCI3NjYuNTM5XFxcIiB4bGluazpocmVmPVxcXCIjYlxcXCIvPjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiaFxcXCIgeDE9XFxcIi01NjMwLjM2N1xcXCIgeTE9XFxcIjc2NS41MjZcXFwiIHgyPVxcXCItNTYwMi4xNTJcXFwiIHkyPVxcXCI3NjUuNTI2XFxcIiB4bGluazpocmVmPVxcXCIjYlxcXCIvPjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiaVxcXCIgeDE9XFxcIi01NjMwLjM2N1xcXCIgeTE9XFxcIjc2NS42MjVcXFwiIHgyPVxcXCItNTYwMi4xNTJcXFwiIHkyPVxcXCI3NjUuNjI1XFxcIiB4bGluazpocmVmPVxcXCIjYlxcXCIvPjxsaW5lYXJHcmFkaWVudCBpZD1cXFwialxcXCIgeDE9XFxcIi01NjE0LjUxNlxcXCIgeTE9XFxcIjc2NS42NDVcXFwiIHgyPVxcXCItNTYwOC4yOFxcXCIgeTI9XFxcIjc2NS42NDVcXFwiIHhsaW5rOmhyZWY9XFxcIiNiXFxcIi8+PC9kZWZzPjx0aXRsZT5maWxlX3R5cGVfYXBhY2hlPC90aXRsZT48cGF0aCBkPVxcXCJNMTkuOTkzLDIuMTMzYTEwLjI2NywxMC4yNjcsMCwwLDAtMi4wNCwyLjA1NmwuOCwxLjUxYTE5LjczMywxOS43MzMsMCwwLDEsMS43MDgtMi4xNDRjLjA0NC0uMDQ5LjA2OC0uMDcyLjA2OC0uMDcybC0uMDY4LjA3MmExNy44NjUsMTcuODY1LDAsMCwwLTEuNiwyLjE3NCwzMC4xLDMwLjEsMCwwLDAsMy4xMTEtLjM4NSwzLjI4OCwzLjI4OCwwLDAsMC0uMy0yLjVTMjAuOSwxLjYsMTkuOTkzLDIuMTMzWlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNhKVxcXCIvPjxwYXRoIGQ9XFxcIk0xOC42MzgsMTAuNzQ5bC4wMTgsMC0uMTE1LjAxMy0uMDIxLjAwOVpcXFwiIHN0eWxlPVxcXCJmaWxsOm5vbmVcXFwiLz48cGF0aCBkPVxcXCJNMTcuODIxLDEzLjQ1NWMtLjA2Ni4wMTUtLjEzMi4wMjYtLjIuMDM2QzE3LjY4OSwxMy40ODEsMTcuNzU2LDEzLjQ2OSwxNy44MjEsMTMuNDU1WlxcXCIgc3R5bGU9XFxcImZpbGw6bm9uZVxcXCIvPjxwYXRoIGQ9XFxcIk0xMi4yNywxOS41MjRjLjAwOS0uMDIzLjAxNy0uMDQ1LjAyNS0uMDY4cS4yNjQtLjcuNTIzLTEuMzU3LjI5MS0uNzQxLjU3NS0xLjQzNi4zLS43MzMuNTktMS40MTguMzA1LS43MTguNi0xLjM4NC4yNC0uNTQyLjQ3NC0xLjA0OS4wNzgtLjE2OS4xNTUtLjMzNS4xNTMtLjMyOS4zLS42NDUuMTM4LS4yOTEuMjc0LS41N2MuMDMtLjA2Mi4wNi0uMTIzLjA5LS4xODVsLjAxNS0uMDMtLjEuMDExLS4wNzgtLjE1NGMtLjAwNy4wMTUtLjAxNS4wMy0uMDIzLjA0NXEtLjIxMS40MTgtLjQxNy44NDUtLjExOS4yNDYtLjIzOC40OTUtLjMyOC42ODktLjY0NSwxLjM4OVQxMy43NjYsMTUuMXEtLjMuNy0uNTk0LDEuNHQtLjU2NywxLjM4N3EtLjI4OS43Mi0uNTYyLDEuNDI2LS4wNjIuMTU5LS4xMjMuMzE4LS4yMTkuNTY5LS40MjYsMS4xMjRsLjEyMy4yNDMuMTEtLjAxMi4wMTItLjAzM1ExMi4wMDgsMjAuMjE2LDEyLjI3LDE5LjUyNFpcXFwiIHN0eWxlPVxcXCJmaWxsOm5vbmVcXFwiLz48cGF0aCBkPVxcXCJNMTcuNTcsMTMuNVpcXFwiIHN0eWxlPVxcXCJmaWxsOm5vbmVcXFwiLz48cGF0aCBkPVxcXCJNMTcuMzA1LDE0LjgxOGwtLjMxNS4wNTVoMGwuMTYxLS4wMjVDMTcuMiwxNC44MzksMTcuMjUzLDE0LjgyOSwxNy4zMDUsMTQuODE4WlxcXCIgc3R5bGU9XFxcImZpbGw6I2JlMjAyZVxcXCIvPjxwYXRoIGQ9XFxcIk0xNy4zMDUsMTQuODE4bC0uMzE1LjA1NWgwbC4xNjEtLjAyNUMxNy4yLDE0LjgzOSwxNy4yNTMsMTQuODI5LDE3LjMwNSwxNC44MThaXFxcIiBzdHlsZT1cXFwiZmlsbDojYmUyMDJlO29wYWNpdHk6MC4zNDk5OTk5OTQwMzk1MzU1O2lzb2xhdGlvbjppc29sYXRlXFxcIi8+PHBhdGggZD1cXFwiTTE3LjU3MywxMy41aDBsLjA1LS4wMDdjLjA2OC0uMDEuMTM1LS4wMjIuMi0uMDM2bC0uMjQ4LjA0MlpcXFwiIHN0eWxlPVxcXCJmaWxsOiNiZTIwMmVcXFwiLz48cGF0aCBkPVxcXCJNMTcuNTczLDEzLjVoMGwuMDUtLjAwN2MuMDY4LS4wMS4xMzUtLjAyMi4yLS4wMzZsLS4yNDguMDQyWlxcXCIgc3R5bGU9XFxcImZpbGw6I2JlMjAyZTtvcGFjaXR5OjAuMzQ5OTk5OTk0MDM5NTM1NTtpc29sYXRpb246aXNvbGF0ZVxcXCIvPjxwYXRoIGQ9XFxcIk0xNi4zOTQsOS42cS4zNjUtLjY4Mi43MzktMS4zMzIuMzg4LS42NzQuNzg0LTEuMzA1bC4wNDYtLjA3NXEuMzkyLS42Mi43OS0xLjE5MWwtLjgtMS41MS0uMTgyLjIyNWMtLjIzMS4yODgtLjQ3LjYtLjcxNi45MjUtLjI3Ny4zNy0uNTYyLjc2NC0uODUxLDEuMTc5LS4yNjcuMzgzLS41MzguNzg0LS44MDksMS4yLS4yMzEuMzUzLS40NjIuNzE3LS42OTIsMS4wOWwtLjAyNi4wNDJMMTUuNzE4LDEwLjlRMTYuMDUyLDEwLjI0NCwxNi4zOTQsOS42WlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNiKVxcXCIvPjxwYXRoIGQ9XFxcIk0xMS42NTEsMjEuMTkycS0uMjA3LjU2OC0uNDE1LDEuMTU5bC0uMDA2LjAxNy0uMDU5LjE2N2MtLjA5My4yNjYtLjE3NS41LS4zNjEsMS4wNDlhMi4xMDcsMi4xMDcsMCwwLDEsLjc4Ni45MjYsMS42OCwxLjY4LDAsMCwwLS41NDQtMS4xNTQsMy42MjEsMy42MjEsMCwwLDAsMy40ODktMS40MiwyLjc5MSwyLjc5MSwwLDAsMCwuMTY1LS4zMTMsMS40NTEsMS40NTEsMCwwLDEtMS40LjUxM2wwLDAsMCwwYTQuMDU5LDQuMDU5LDAsMCwwLDIuMDQ2LTEuNjcyYy4xMTEtLjE3OC4yMTgtLjM3Mi4zMjgtLjU4N2EzLjMsMy4zLDAsMCwxLTMuMTA5LDEuMDFsLS44NDIuMDkyQzExLjcsMjEuMDUsMTEuNjc3LDIxLjEyMSwxMS42NTEsMjEuMTkyWlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNjKVxcXCIvPjxwYXRoIGQ9XFxcIk0xMi4wNDQsMTkuMzA2cS4yNzMtLjcwNi41NjItMS40MjYuMjc2LS42OS41NjctMS4zODd0LjU5NC0xLjRxLjMwOC0uNzExLjYyOS0xLjQxOXQuNjQ1LTEuMzg5cS4xMTgtLjI0OC4yMzgtLjQ5NS4yMDctLjQyNi40MTctLjg0NWMuMDA3LS4wMTUuMDE1LS4wMy4wMjMtLjA0NUwxNC42NzcsOC44NDdsLS4wNTEuMDgzYy0uMjQyLjQtLjQ4NC44LS43MjEsMS4yMTZzLS40NzUuODQ0LS43LDEuMjc2cS0uMjkxLjU0Ny0uNTY4LDEuMWwtLjExLjIyNWMtLjIyNy40NjctLjQzMi45MTgtLjYxNywxLjM1MnEtLjMxNS43MzctLjU1NiwxLjQwNmMtLjEwNy4yOTMtLjIuNTc2LS4yOTIuODQ3LS4wNzMuMjMyLS4xNDIuNDY0LS4yMDguN3EtLjIzNC44MTgtLjQsMS42MzFMMTEuNSwyMC43NDhxLjIwOC0uNTU0LjQyNi0xLjEyNFpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjZClcXFwiLz48cGF0aCBkPVxcXCJNMTAuNDM1LDE4Ljc1NWExNi4wNywxNi4wNywwLDAsMC0uMjcyLDEuOTc0YzAsLjAyMywwLC4wNDYtLjAwNS4wNjlhNC4xNSw0LjE1LDAsMCwwLTEuMi0xLjAyOSw1LjgyNSw1LjgyNSwwLDAsMSwxLjE3MiwyLjY5MywyLjY0MiwyLjY0MiwwLDAsMS0xLjMyNS0uMjI2LDIuNjYyLDIuNjYyLDAsMCwwLDEuMTMuNjg2LDMuMjQ3LDMuMjQ3LDAsMCwwLTEuNTcxLjc4MywzLjM1OSwzLjM1OSwwLDAsMSwxLjg2MS0uMzQyQzkuNTEsMjUuMzg5LDguNzkzLDI3LjYyNiw4LjA3NiwzMGEuNjI1LjYyNSwwLDAsMCwuNDI1LS40MTNjLjEyOC0uNDMuOTc2LTMuMjUxLDIuMzA2LTYuOTU5bC4xMTUtLjMxOC4wMzItLjA4OXEuMjExLS41ODMuNDM3LTEuMTlsLjEtLjI3NywwLS4wMDVMMTAuNDUsMTguNjg0QzEwLjQ0NSwxOC43MDcsMTAuNDM5LDE4LjczMSwxMC40MzUsMTguNzU1WlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNlKVxcXCIvPjxwYXRoIGQ9XFxcIk0xNS44OCwxMS4wNzhsLS4wOS4xODVxLS4xMzUuMjc5LS4yNzQuNTctLjE1LjMxNS0uMy42NDVjLS4wNTIuMTExLS4xLjIyMi0uMTU1LjMzNXEtLjIzNC41MDgtLjQ3NCwxLjA0OS0uMy42NjYtLjYsMS4zODQtLjI5MS42ODUtLjU5LDEuNDE4LS4yODQuNy0uNTc1LDEuNDM2LS4yNTkuNjYxLS41MjMsMS4zNTdjLS4wMDkuMDIzLS4wMTcuMDQ1LS4wMjUuMDY4cS0uMjYyLjY5My0uNTI5LDEuNDIybC0uMDEyLjAzMy44NDItLjA5Mi0uMDUtLjAwOWE2LDYsMCwwLDAsMy4yMS0xLjgwNyw3Ljk4NCw3Ljk4NCwwLDAsMCwxLjEtMS41MjQsMTMuMTM5LDEzLjEzOSwwLDAsMCwuNzA2LTEuNDY3Yy4xOTUtLjQ3Mi4zODItLjk4Mi41NjItMS41MzZhMy4wNTMsMy4wNTMsMCwwLDEtLjc4OC4yNzRjLS4wNTEuMDExLS4xLjAyMS0uMTU2LjAzcy0uMTA3LjAxOC0uMTYxLjAyNWgwYTMuNjY4LDMuNjY4LDAsMCwwLDEuOTYyLTEuOTEzLDMuMzQ0LDMuMzQ0LDAsMCwxLTEuMTMuNDk1Yy0uMDY2LjAxNS0uMTMyLjAyNi0uMi4wMzZsLS4wNS4wMDdoMGEzLjgyMSwzLjgyMSwwLDAsMCwuODM5LS40NjljLjA1MS0uMDM4LjEtLjA3OC4xNDgtLjEyLjA3My0uMDYzLjE0Mi0uMTI5LjIwOC0uMi4wNDItLjA0NC4wODMtLjA5LjEyMy0uMTM4YTMuMjcsMy4yNywwLDAsMCwuMjYzLS4zNjJjLjAyNS0uMDQuMDUtLjA4LjA3NC0uMTIyLjAzMS0uMDYuMDYxLS4xMTkuMDktLjE3OC4xMzEtLjI2NC4yMzYtLjUuMzE5LS43MDYuMDQyLS4xLjA3OC0uMi4xMDktLjI4OC4wMTMtLjAzNS4wMjUtLjA3LjAzNi0uMS4wMzMtLjEuMDYtLjE4Ny4wODEtLjI2NWEyLjYwNSwyLjYwNSwwLDAsMCwuMDYyLS4yNzVoMGExLjAxLDEuMDEsMCwwLDEtLjEwOS4wNzUsMy45NjUsMy45NjUsMCwwLDEtMS4xNjIuNGwuNzczLS4wODUtLjc3My4wODUtLjAxOCwwLS4xMTkuMDE5LjAyMS0uMDA5LTIuNjQ1LjI5WlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNmKVxcXCIvPjxwYXRoIGQ9XFxcIk0xOC44NTgsNS43M2MtLjIzNS4zNjEtLjQ5Mi43NzEtLjc2OCwxLjIzNmwtLjA0NC4wNzRxLS4zNTguNi0uNzU5LDEuMzI3LS4zNDYuNjI2LS43MTksMS4zNDctLjMyNi42MjktLjY3MiwxLjMzNmwyLjY0NS0uMjlBMy4yMTYsMy4yMTYsMCwwLDAsMTkuOTksOS42MmMuMDg5LS4xMjguMTc4LS4yNjIuMjY3LS40LjI3Mi0uNDI0LjUzOC0uODkxLjc3Ni0xLjM1NWExNC4wNzQsMTQuMDc0LDAsMCwwLC41ODgtMS4yOTQsNi44LDYuOCwwLDAsMCwuMjMzLS43Yy4wNDgtLjE4NC4wODYtLjM1OC4xMTUtLjUyNEEzMC4xNTIsMzAuMTUyLDAsMCwxLDE4Ljg1OCw1LjczWlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNnKVxcXCIvPjxwYXRoIGQ9XFxcIk0xNy4xNDksMTQuODQ4Yy0uMDUzLjAwOS0uMTA3LjAxOC0uMTYxLjAyNWgwQzE3LjA0MiwxNC44NjYsMTcuMSwxNC44NTcsMTcuMTQ5LDE0Ljg0OFpcXFwiIHN0eWxlPVxcXCJmaWxsOiNiZTIwMmVcXFwiLz48cGF0aCBkPVxcXCJNMTcuMTQ5LDE0Ljg0OGMtLjA1My4wMDktLjEwNy4wMTgtLjE2MS4wMjVoMEMxNy4wNDIsMTQuODY2LDE3LjEsMTQuODU3LDE3LjE0OSwxNC44NDhaXFxcIiBzdHlsZT1cXFwiZmlsbDojYmUyMDJlO29wYWNpdHk6MC4zNDk5OTk5OTQwMzk1MzU1O2lzb2xhdGlvbjppc29sYXRlXFxcIi8+PHBhdGggZD1cXFwiTTE3LjE0OSwxNC44NDhjLS4wNTMuMDA5LS4xMDcuMDE4LS4xNjEuMDI1aDBDMTcuMDQyLDE0Ljg2NiwxNy4xLDE0Ljg1NywxNy4xNDksMTQuODQ4WlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNoKVxcXCIvPjxwYXRoIGQ9XFxcIk0xNy41NywxMy41bC4wNS0uMDA3LS4wNS4wMDdaXFxcIiBzdHlsZT1cXFwiZmlsbDojYmUyMDJlXFxcIi8+PHBhdGggZD1cXFwiTTE3LjU3LDEzLjVsLjA1LS4wMDctLjA1LjAwN1pcXFwiIHN0eWxlPVxcXCJmaWxsOiNiZTIwMmU7b3BhY2l0eTowLjM0OTk5OTk5NDAzOTUzNTU7aXNvbGF0aW9uOmlzb2xhdGVcXFwiLz48cGF0aCBkPVxcXCJNMTcuNTcsMTMuNWwuMDUtLjAwNy0uMDUuMDA3WlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNpKVxcXCIvPjxwYXRoIGQ9XFxcIk0xNy41NzIsMTMuNWgwWlxcXCIgc3R5bGU9XFxcImZpbGw6I2JlMjAyZVxcXCIvPjxwYXRoIGQ9XFxcIk0xNy41NzIsMTMuNWgwWlxcXCIgc3R5bGU9XFxcImZpbGw6I2JlMjAyZTtvcGFjaXR5OjAuMzQ5OTk5OTk0MDM5NTM1NTtpc29sYXRpb246aXNvbGF0ZVxcXCIvPjxwYXRoIGQ9XFxcIk0xNy41NzIsMTMuNWgwWlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNqKVxcXCIvPlwiLFxuXHRcIkFwZXhcIjogXCI8cGF0aCBkPVxcXCJNMTMuNjUyLDguMzM4QTQuOTA2LDQuOTA2LDAsMCwxLDE3LjIsNi44MTRhNC45NTcsNC45NTcsMCwwLDEsNC4zMiwyLjU2LDUuOTcyLDUuOTcyLDAsMCwxLDIuNDQyLS41MTksNi4wODksNi4wODksMCwxLDEtMS4xODksMTIuMDYsNC40MTIsNC40MTIsMCwwLDEtNS43ODIsMS44MTZBNS4wMzQsNS4wMzQsMCwwLDEsNy42MzQsMjIuNWE0LjY0Niw0LjY0NiwwLDAsMS0uOTYuMSw0LjczMiw0LjczMiwwLDAsMS0yLjMzNy04LjgxMiw1LjQzOCw1LjQzOCwwLDAsMSw5LjMxNS01LjQ1M1xcXCIgc3R5bGU9XFxcImZpbGw6IzBmOWJkN1xcXCIvPjxwYXRoIGQ9XFxcIk0yNS4zNzYsMzAuOTY2aC0uNTYxYTQuNjU4LDQuNjU4LDAsMCwxLTEuMjg0LS4xMzcsMS45LDEuOSwwLDAsMS0uODE4LS40ODIsMS43MjYsMS43MjYsMCwwLDEtLjQ1NS0uODQzLDYuNzcsNi43NywwLDAsMS0uMTA2LTEuNDEzLDUuODg5LDUuODg5LDAsMCwwLS4wODQtMS4zMywxLDEsMCwwLDAtLjMtLjU0NCwxLjIyMywxLjIyMywwLDAsMC0uNjYtLjE3OWwtLjIzNi0uMDE0VjI0LjE0NWwuMjM2LS4wMTRhMS40ODIsMS40ODIsMCwwLDAsLjU0OS0uMS43MDYuNzA2LDAsMCwwLC4yNzMtLjI2NCwxLjM5NCwxLjM5NCwwLDAsMCwuMTgxLS41MjksNi42ODMsNi42ODMsMCwwLDAsLjA0NC0uOTM5LDguMTMyLDguMTMyLDAsMCwxLC4xMTItMS42NDMsMS43LDEuNywwLDAsMSwuNDQ4LS44NDEsMi4xNDQsMi4xNDQsMCwwLDEsLjkwNi0uNDkyLDQuNTE0LDQuNTE0LDAsMCwxLDEuMi0uMTE2aC41NjF2MS45aC0uMjVhMi41ODksMi41ODksMCwwLDAtLjc0My4wNTYuMjg0LjI4NCwwLDAsMC0uMTQ4LjExNy44MzkuODM5LDAsMCwwLS4wNTQuMzg2cTAsLjM3Mi0uMDUzLDEuNDEzYTMuNzQsMy43NCwwLDAsMS0uMTY2LDEuMDA5LDEuOTQ1LDEuOTQ1LDAsMCwxLS42OTMsMSwyLjAxLDIuMDEsMCwwLDEsLjcsMS4wNDQsNC42MjcsNC42MjcsMCwwLDEsLjE2MywxLjA3OWMuMDI3LjY1Ny4wNDEsMS4wNzQuMDQxLDEuMjU2YS44NzEuODcxLDAsMCwwLC4wNTcuNDA4QS4zNDMuMzQzLDAsMCwwLDI0LjQsMjlhMi4zODIsMi4zODIsMCwwLDAsLjcyOC4wNmguMjVaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+PHBhdGggZD1cXFwiTTIxLjExOCwyNS43ODhWMjQuMzgyYTEuNzUyLDEuNzUyLDAsMCwwLC42NDUtLjEyOS45MzYuOTM2LDAsMCwwLC4zNzUtLjM1NCwxLjYyMSwxLjYyMSwwLDAsMCwuMjE3LS42MjRBNi44OCw2Ljg4LDAsMCwwLDIyLjQsMjIuM2E4LDgsMCwwLDEsLjEwNS0xLjU4NSwxLjQ1NiwxLjQ1NiwwLDAsMSwuMzgxLS43MjEsMS45LDEuOSwwLDAsMSwuOC0uNDMxLDQuMzM2LDQuMzM2LDAsMCwxLDEuMTI1LS4xMDVoLjMxMXYxLjRhMi44NzYsMi44NzYsMCwwLDAtLjgzNS4wNzMuNTMuNTMsMCwwLDAtLjI3Mi4yMjMsMS4wNzksMS4wNzksMCwwLDAtLjA4OC41MTNxMCwuMzY5LS4wNTMsMS40YTMuNTMxLDMuNTMxLDAsMCwxLS4xNTIuOTQsMS45MTgsMS45MTgsMCwwLDEtLjMxMy41OTUsMi40NywyLjQ3LDAsMCwxLS41ODMuNDg2LDIuMDQ1LDIuMDQ1LDAsMCwxLC41NjUuNDY2LDEuODY5LDEuODY5LDAsMCwxLC4zMzcuNjQ3LDQuNDEsNC40MSwwLDAsMSwuMTUyLDEuMDJxLjA0MS45NzMuMDQxLDEuMjQyYTEuMSwxLjEsMCwwLDAsLjA5NC41MzkuNTg0LjU4NCwwLDAsMCwuMjg0LjIzMSwyLjY0OSwyLjY0OSwwLDAsMCwuODIzLjA3OXYxLjQwNmgtLjMxMUE0LjQ3NCw0LjQ3NCwwLDAsMSwyMy42LDMwLjU5YTEuNjQ0LDEuNjQ0LDAsMCwxLS43MTItLjQxOSwxLjQ3OCwxLjQ3OCwwLDAsMS0uMzktLjcyNCw2LjYyMSw2LjYyMSwwLDAsMS0uMS0xLjM1Niw2LjM3NCw2LjM3NCwwLDAsMC0uMDk0LTEuNCwxLjIzMiwxLjIzMiwwLDAsMC0uMzktLjY3MUExLjQzMSwxLjQzMSwwLDAsMCwyMS4xMTgsMjUuNzg4WlxcXCIgc3R5bGU9XFxcImZpbGw6IzAwNzJhMFxcXCIvPjxwYXRoIGQ9XFxcIk0yNy4wMTEsMzAuOTY2SDI2LjQ1VjI5LjA1OWguMjVBMi4zMjksMi4zMjksMCwwLDAsMjcuNDI2LDI5YS4zMjMuMzIzLDAsMCwwLC4xNjUtLjEyNy44MTIuODEyLDAsMCwwLC4wNTgtLjM3OXEwLS4zNi4wNS0xLjM3NWEzLjcyNSwzLjcyNSwwLDAsMSwuMTczLTEuMDQ3LDIuMjIzLDIuMjIzLDAsMCwxLC4zODctLjcsMi4xNDUsMi4xNDUsMCwwLDEsLjMtLjI5MiwyLjE0MSwyLjE0MSwwLDAsMS0uNC0uNCwyLjYxMiwyLjYxMiwwLDAsMS0uNDIxLTEuMDkyLDE3LjUyNSwxNy41MjUsMCwwLDEtLjEtMS44NDEsMS4zNTcsMS4zNTcsMCwwLDAtLjA1My0uNDc5Yy0uMDA4LS4wMTYtLjAzMS0uMDYyLS4xMzYtLjEwNmEyLjUyNCwyLjUyNCwwLDAsMC0uNzU3LS4wNmgtLjI1VjE5LjJoLjU2MWE0Ljc5Myw0Ljc5MywwLDAsMSwxLjI4My4xMzMsMS44NDEsMS44NDEsMCwwLDEsLjgxOC40ODUsMS43ODEsMS43ODEsMCwwLDEsLjQ1My44NDMsNi42LDYuNiwwLDAsMSwuMTA5LDEuNDE0LDYuMzU5LDYuMzU5LDAsMCwwLC4wNzksMS4zMzYuOTkyLjk5MiwwLDAsMCwuMy41MzcsMS4yMjYsMS4yMjYsMCwwLDAsLjY2NC4xOGwuMjM2LjAxNHYxLjg3OWwtLjIzNi4wMTRhMS40ODIsMS40ODIsMCwwLDAtLjU0OS4xLjY4Ni42ODYsMCwwLDAtLjI3LjI2MiwxLjQ4NCwxLjQ4NCwwLDAsMC0uMTg2LjUzNCw2Ljc0Myw2Ljc0MywwLDAsMC0uMDQzLjkzMSw4LjM4Myw4LjM4MywwLDAsMS0uMTA4LDEuNjQ0LDEuNjk0LDEuNjk0LDAsMCwxLS40NDYuODQ2LDIuMTQzLDIuMTQzLDAsMCwxLS45MTMuNDkyQTQuNSw0LjUsMCwwLDEsMjcuMDExLDMwLjk2NlpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48cGF0aCBkPVxcXCJNMzAuNzA4LDI1Ljc4OGExLjc1MiwxLjc1MiwwLDAsMC0uNjQ1LjEyOS45MTguOTE4LDAsMCwwLS4zNzIuMzU0LDEuNzI1LDEuNzI1LDAsMCwwLS4yMi42MjQsNi44Miw2LjgyLDAsMCwwLS4wNDcuOTczLDguMjcsOC4yNywwLDAsMS0uMSwxLjU4OCwxLjQzOSwxLjQzOSwwLDAsMS0uMzc4LjcyNCwxLjksMS45LDAsMCwxLS44MDkuNDMxLDQuMzM2LDQuMzM2LDAsMCwxLTEuMTI1LjEwNUgyNi43VjI5LjMxYTIuNjUyLDIuNjUyLDAsMCwwLC44Mi0uMDc5QS41NzIuNTcyLDAsMCwwLDI3LjgsMjksMS4wNSwxLjA1LDAsMCwwLDI3LjksMjguNXEwLS4zNTcuMDUtMS4zNjVhMy41MywzLjUzLDAsMCwxLC4xNTgtLjk3NiwxLjk3NiwxLjk3NiwwLDAsMSwuMzQzLS42MjFBMi4wMzgsMi4wMzgsMCwwLDEsMjksMjUuMDg1YTIuNDE2LDIuNDE2LDAsMCwxLS42MzMtLjU1MSwyLjMzOSwyLjMzOSwwLDAsMS0uMzc1LS45ODQsMTcuNTY0LDE3LjU2NCwwLDAsMS0uMDk0LTEuOCwxLjU3MSwxLjU3MSwwLDAsMC0uMDc5LS41ODYuNDg3LjQ4NywwLDAsMC0uMjY0LS4yMjYsMi44LDIuOCwwLDAsMC0uODUzLS4wNzl2LTEuNGguMzExYTQuNTc2LDQuNTc2LDAsMCwxLDEuMjEzLjEyMywxLjU4NywxLjU4NywwLDAsMSwuNzA5LjQxOSwxLjUyOSwxLjUyOSwwLDAsMSwuMzkuNzI3LDYuNDM2LDYuNDM2LDAsMCwxLC4xLDEuMzU2LDYuODQyLDYuODQyLDAsMCwwLC4wODgsMS40LDEuMjIzLDEuMjIzLDAsMCwwLC4zOTMuNjcxLDEuNDQ3LDEuNDQ3LDAsMCwwLC44LjIzMVpcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMDcyYTBcXFwiLz5cIixcblx0XCJBUExcIjogXCI8cGF0aCBkPVxcXCJNMzAsMjguMjc1LDE2LDIsMiwyOC4yNzVIMTQuMTYyVjMwaDMuNjc2VjI4LjI3NVpNMTcuODM4LDI0LjgyNlYxMy4xNjFsNi4yMTUsMTEuNjY1Wm0tOS44OTEsMCw2LjIxNS0xMS42NjVWMjQuODI2WlxcXCIgc3R5bGU9XFxcImZpbGw6I2QyZDJkMlxcXCIvPlwiLFxuXHRcIkFwcGxlU2NyaXB0XCI6IFwiPHBhdGggZD1cXFwiTTE3LjE4MSw0LjQzN0E1Ljk5Myw1Ljk5MywwLDAsMSwyMS41NzksMmE1Ljk3OSw1Ljk3OSwwLDAsMS0xLjQ0Nyw0LjQ3Niw0LjcyOSw0LjcyOSwwLDAsMS00LjE3LDEuOTYxQTUuMiw1LjIsMCwwLDEsMTcuMTgxLDQuNDM3WlxcXCIgc3R5bGU9XFxcImZpbGw6I2E4YzJhYlxcXCIvPjxwYXRoIGQ9XFxcIk0xNi4yLDEwLjAzNGMuOTQ2LDAsMi43LTEuMyw0Ljk4OS0xLjNhNi4yNDksNi4yNDksMCwwLDEsNS40ODQsMi44LDYuMDgsNi4wOCwwLDAsMC0zLjAyOCw1LjMsNi4yMzUsNi4yMzUsMCwwLDAsMy43NzIsNS43cy0yLjYzNyw3LjQyMi02LjIsNy40MjJjLTEuNjM2LDAtMi45MDgtMS4xLTQuNjMxLTEuMS0xLjc1NywwLTMuNSwxLjE0NC00LjYzNSwxLjE0NEM4LjcsMzAsNC41ODcsMjIuOTU5LDQuNTg3LDE3LjNjMC01LjU2OCwzLjQ3OC04LjQ4OSw2Ljc0LTguNDg5QzEzLjQ0OCw4LjgxMSwxNS4wOTMsMTAuMDM0LDE2LjIsMTAuMDM0WlxcXCIgc3R5bGU9XFxcImZpbGw6I2E4YzJhYlxcXCIvPlwiLFxuXHRcIkFyZHVpbm9cIjogXCI8ZGVmcz48cmFkaWFsR3JhZGllbnQgaWQ9XFxcImFcXFwiIGN4PVxcXCI3NjcuMTc5XFxcIiBjeT1cXFwiNTE2OS41NDNcXFwiIHI9XFxcIjE0Ljk4OVxcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcInRyYW5zbGF0ZSgtNzE4LjExMiAtNDk1My45MTcpIHNjYWxlKDAuOTU1IDAuOTYyKVxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiIzM2YmFjMFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiIzJkOTA5NFxcXCIvPjwvcmFkaWFsR3JhZGllbnQ+PC9kZWZzPjx0aXRsZT5maWxlX3R5cGVfYXJkdWlubzwvdGl0bGU+PHBhdGggZD1cXFwiTTI5LjY0NSwxNS45MjVBMTMuNzcsMTMuNzcsMCwxLDEsMTUuODc2LDIuMDU2LDEzLjgxOSwxMy44MTksMCwwLDEsMjkuNjQ1LDE1LjkyNVpcXFwiIHN0eWxlPVxcXCJzdHJva2U6IzAyNzk3ZTtzdHJva2UtbGluZWpvaW46cm91bmQ7c3Ryb2tlLXdpZHRoOjEuMTM2NzIyODQ1NDk2OTI2N3B4O2ZpbGw6dXJsKCNhKVxcXCIvPjxwYXRoIGQ9XFxcIk0xMC41ODEsMTEuNjQ4YzIuNDEtLjA3NiwzLjM1OS44MzQsNC42MDUsMi4wNjkuMjg1LjI4Mi41NzkuNTkuOS45MjFsLjkyMi0uOTkxYTYuMjIzLDYuMjIzLDAsMCwxLDMuMjU2LTEuOTNjMS45MzktLjIxMSwzLjExOS0uMTIyLDQuMzExLjgxNGE1LjAyMyw1LjAyMywwLDAsMSwyLjI0NSwzLjksNS42NTMsNS42NTMsMCwwLDEtMy4yNSw1LjE1Niw1Ljk3NSw1Ljk3NSwwLDAsMS0zLjkxMy4xMzUsNy42NTYsNy42NTYsMCwwLDEtMy41NDEtMi45ODdjLTEuNjc4LDIuMTQyLTMuMTg3LDMuMjUzLTUuMjM1LDMuMTU1LTcuNDUyLS4zNTQtNi44NDItMTAuMDc1LS4zLTEwLjI0N1ptMS42NTcsNy45OTRhOS4xOTMsOS4xOTMsMCwwLDAsMi44NTYtMi45Yy0uNzQtMS4yNDMtMi4yMDktMi44MjQtMy40NTUtMy4xMzRhNC4zMjgsNC4zMjgsMCwwLDAtMy4yMjQuNzc3LDMuMzg0LDMuMzg0LDAsMCwwLS43NjIsMy42ODYsMy42NzQsMy42NzQsMCwwLDAsNC41ODUsMS41N1ptLTIuOTgtMy40ODcsMy4yNzguMDA1djEuMjFsLTMuMjgzLjAwNVptMTMuNDQ4LDMuNkEzLjg0MywzLjg0MywwLDAsMCwyNC45MzcsMTdhMy40NTgsMy40NTgsMCwwLDAtMS44NjMtMy4xMDksMy42NDgsMy42NDgsMCwwLDAtNC4yLjcyOCw3LjM2NCw3LjM2NCwwLDAsMC0xLjY0OSwyLjE1MUE4LjkzNiw4LjkzNiwwLDAsMCwxOS4yLDE5LjI1Miw0LjAyMiw0LjAyMiwwLDAsMCwyMi43MDYsMTkuNzU0Wm0tMS45NTUtMi4zNzYtMS4wODgtLjAwOCwwLTEuMjE3LDEuMDkxLDBWMTUuMDc1bDEuMTA3LS4wMDgtLjAwNywxLjA5MywxLjA4NSwwdjEuMTY1bC0xLjAyMS0uMDA4djEuMTJIMjAuNzUzWlxcXCIgc3R5bGU9XFxcInN0cm9rZTojMDAwO3N0cm9rZS13aWR0aDowLjEyMTAzMDk2NDgwOTI3NDgycHg7b3BhY2l0eTowLjE2ODA5OTk5OTQyNzc5NTQ7aXNvbGF0aW9uOmlzb2xhdGVcXFwiLz48cGF0aCBkPVxcXCJNNC45MTcsMTYuMzM3YzAsNS4zNDgsNy4zNTQsNy4zNCwxMC45ODcsMS44OTQsMy43NjUsNS42NDcsMTAuODI0LDMuMjgsMTAuODI0LTEuOVMxOS43LDguNjU2LDE1LjksMTQuNDQxYy0zLjYtNS43MTktMTAuOTg3LTMuNDUzLTEwLjk4NywxLjlabTEuOTMxLDBjMC0zLjg2LDUuNDU1LTUuMDc4LDcuOTkyLDAtMi41ODgsNC44ODktNy45OTIsMy44NTktNy45OTIsMFptMTAuMTE5LDBjMi4yODYtNS4xNzgsNy44ODktMy43NTEsNy44NzIuMDA4UzE5LjE4NiwyMS4yNzcsMTYuOTY3LDE2LjMzN1pcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmY7c3Ryb2tlOiMwMDA7c3Ryb2tlLXdpZHRoOjAuMjQyMDYxOTI5NjE4NTQ5NjRweFxcXCIvPjxyZWN0IHg9XFxcIjguODk4XFxcIiB5PVxcXCIxNS43OTVcXFwiIHdpZHRoPVxcXCIzLjIzN1xcXCIgaGVpZ2h0PVxcXCIxLjA2N1xcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMjAuNjQ0IDE2Ljg0NiAxOS41NzYgMTYuODQ2IDE5LjU3NiAxNS43MTIgMjAuNjQ0IDE1LjcxMiAyMC42NDQgMTQuNjQ0IDIxLjc3OSAxNC42NDQgMjEuNzc5IDE1LjcxMiAyMi44NDcgMTUuNzEyIDIyLjg0NyAxNi44NDYgMjEuNzc5IDE2Ljg0NiAyMS43NzkgMTcuOTE0IDIwLjY0NCAxNy45MTQgMjAuNjQ0IDE2Ljg0NlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPlwiLFxuXHRcIkFSTSBBc3NlbWJseVwiOiBcIjxkZWZzPjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiYVxcXCIgeDE9XFxcIjgzNi42M1xcXCIgeTE9XFxcIjM2LjIwNVxcXCIgeDI9XFxcIjg0My44MDJcXFwiIHkyPVxcXCIxNC40OFxcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcInRyYW5zbGF0ZSg1MjUuOTIyIDMwLjI0OSkgcm90YXRlKDE4MCkgc2NhbGUoMC42MDcgMC42MDcpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjZmZmXFxcIiBzdG9wLW9wYWNpdHk9XFxcIjBcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiNmZmZcXFwiIHN0b3Atb3BhY2l0eT1cXFwiMC4yNzVcXFwiLz48L2xpbmVhckdyYWRpZW50PjwvZGVmcz48dGl0bGU+ZmlsZV90eXBlX2Fzc2VtYmx5PC90aXRsZT48cGF0aCBkPVxcXCJNMTYsMmMtMS4yNDYsMy4wNTYtMiw1LjA1Ny0zLjM5MSw4LjAyMkEyMS44ODQsMjEuODg0LDAsMCwwLDE2LjIsMTMuMTU2YTE0Ljg1OCwxNC44NTgsMCwwLDEtNC0yLjI4M0MxMC40MywxNC41NzksNy42NDYsMTkuODU1LDIsMzBjNS4xODYtMi45OTQsOS4wMTItNC42NDgsMTIuNjkxLTQuOTY2VjI0LjJoLS44MzR2LS44MzdoLjgzNFYyNC4yaDEuNjc1VjIyLjUyMUgxNC42OTF2LS44MzRoLS44MzRWMjAuMDEzaC44MzR2LS44MzRoMS42NzV2LjgzNEgxNy4ydi44MzdoLS44Mzd2LS44MzdIMTQuNjkxdjEuNjc1aDEuNjc1di44MzRIMTcuMlYyNC4yaC0uODM3di43ODNjMy45OC4xLDguMDA2LDEuNzcyLDEzLjYzNCw1LjAyMS0uODYzLTEuNTg5LTEuNjM2LTMuMDIxLTIuMzcyLTQuMzg1YTI1LjUyNiwyNS41MjYsMCwwLDAtNC44MzMtMy4zMzNBMTQuNDM2LDE0LjQzNiwwLDAsMSwyNi42NSwyMy44QzE5LjE3LDkuODcyLDE4LjU2NSw4LjAyLDE2LDJaTTEwLjUxMSwxOS4xNzloMS42NzF2LjgzNGguODM3djUuMDIxaC0uODM3VjIyLjUyMUgxMC41MTF2Mi41MTJIOS42NzNWMjAuMDEzaC44MzdabTAsLjgzNHYxLjY3NWgxLjY3MVYyMC4wMTNabTcuNTI2LS44MzRoLjgzN3YuODM0aC44Mzd2LjgzN2guODM0di0uODM3aC44Mzd2LS44MzRoLjgzN3Y1Ljg1NWgtLjgzN1YyMC44NWgtLjgzN3YuODM3aC0uODM0VjIwLjg1aC0uODM3djQuMTg0aC0uODM3WlxcXCIgc3R5bGU9XFxcImZpbGw6IzAwMDBiZlxcXCIvPjxwYXRoIGQ9XFxcIk0yMy44ODEsMTguNjQyYy02LjA2OS04LjIzNy03LjQ3Ni0xNC44NzYtNy44MzItMTYuNDYxQTE3NS4yMTcsMTc1LjIxNywwLDAsMCwyMy44ODEsMTguNjQyWlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZjtmaWxsLW9wYWNpdHk6MC4xNjU2ODA0NjgwODI0MjhcXFwiLz48cGF0aCBkPVxcXCJNMTYuMDUxLDIuMTIsMTUuNiwzLjIyN2MtLjE1OS4zOTEtLjMxMS43NjUtLjQ2MSwxLjEzMXMtLjMuNzI0LS40NDgsMS4wNzctLjMuNy0uNDQ4LDEuMDUzLS4zLjcwNi0uNDY1LDEuMDY2LS4zMjkuNzI5LS41MDYsMS4xMTEtLjM2Mi43NzgtLjU2MSwxLjE5M2MtLjAyOC4wNTctLjA2MS4xMjMtLjA4OS4xODFBMjEuODcyLDIxLjg3MiwwLDAsMCwxNi4yLDEzLjE1NmExNC44NzksMTQuODc5LDAsMCwxLTMuOTg5LTIuMjc2bC0uMTQuMjg3Yy0uMDY1LjEzMy0uMTQ0LjI4My0uMjEyLjQybC0uMTA2LjIxOWMtLjg3OCwxLjc5My0yLjAwNiwzLjk4NC0zLjUyNCw2LjgyMiwzLjU1MS0yLDcuMzgxLTQuODg3LDE0LjMzOC0yLjQtLjM0OS0uNjYxLS42Ny0xLjI4LS45NzEtMS44NjNzLS41ODEtMS4xMjgtLjg0MS0xLjY0NC0uNS0xLS43MjUtMS40NjMtLjQzMy0uOS0uNjI5LTEuMzEzLS4zOC0uODE4LS41NTQtMS4yLS4zMzktLjc1NC0uNS0xLjExOFMxOC4wNDcsNi45LDE3LjksNi41NDZzLS4yOTEtLjcwOS0uNDM0LTEuMDY2Yy0uMDM2LS4wOTEtLjA3My0uMTg2LS4xMDktLjI3N0MxNi45NDksNC4yNDcsMTYuNTM2LDMuMjU4LDE2LjA1MSwyLjEyWlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNhKVxcXCIvPlwiLFxuXHRcIkFzY2lpRG9jXCI6IFwiPHBhdGggZD1cXFwiTTMwLDMwSDJWMkgzMFpcXFwiIHN0eWxlPVxcXCJmaWxsOiNlNDAwNDZcXFwiLz48cGF0aCBkPVxcXCJNMjMuNzMxLDI0LjgzYS41ODkuNTg5LDAsMCwxLS43NjMtLjMzN0wxNi43MjQsOS4yNjksMTMuOTMsMTUuOTloMS44MzNhLjU5LjU5LDAsMCwxLS4wMjQsMS4xOEg4LjlhLjU5LjU5LDAsMCwxLC4wMjQtMS4xOGgzLjcyN2wwLS4wMTNMMTYuMTg0LDcuNWEuNTkxLjU5MSwwLDAsMSwuNTMzLS4zNjNoMGEuNTkyLjU5MiwwLDAsMSwuNTU3LjM2Nmw2Ljc4NSwxNi41NDYuMDA5LjAyMUEuNTkuNTksMCwwLDEsMjMuNzMxLDI0LjgzWlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPjxwYXRoIGQ9XFxcIk0xNC41MTYsMTguNzkxSDcuNjc5YS41OS41OSwwLDAsMC0uMDI0LDEuMThIMTFMOS4zMDksMjQuMDQzYS41OS41OSwwLDAsMCwxLjA4NS40NjRsMC0uMDExLDEuODc1LTQuNTA5LjAwNS0uMDE2aDIuMjE1YS41OS41OSwwLDAsMCwuMDIzLTEuMThaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+XCIsXG5cdFwiQVNQLk5FVCAoQyMpXCI6IFwiPHRpdGxlPmZpbGVfdHlwZV9hc3B4PC90aXRsZT48cG9seWdvbiBwb2ludHM9XFxcIjIyLjc1IDIgNi4zNSAyIDYuMzUgMzAgMjkuNjUgMzAgMjkuNjUgOSAyMi43NSAyXFxcIiBzdHlsZT1cXFwiZmlsbDojYzVjNWM1XFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIyNy4zNSAyNy43IDguNzUgMjcuNyA4Ljc1IDQuMyAyMC40NSA0LjMgMjAuNDUgMTEuMyAyNy40NSAxMS4zIDI3LjQ1IDI3LjcgMjcuMzUgMjcuN1xcXCIgc3R5bGU9XFxcImZpbGw6I2Y1ZjVmNVxcXCIvPjxwYXRoIGQ9XFxcIk0xMi4xLDMwLjk5NEExMS4wOTQsMTEuMDk0LDAsMSwxLDIzLjE5NCwxOS45LDExLjEwNiwxMS4xMDYsMCwwLDEsMTIuMSwzMC45OTRabTAtMjAuM0E5LjIsOS4yLDAsMSwwLDIxLjMsMTkuOSw5LjIxNiw5LjIxNiwwLDAsMCwxMi4xLDEwLjdaXFxcIiBzdHlsZT1cXFwiZmlsbDojMzNhOWRjXFxcIi8+PHJlY3QgeD1cXFwiMi4wOTlcXFwiIHk9XFxcIjE5LjQ1NVxcXCIgd2lkdGg9XFxcIjIwLjAwM1xcXCIgaGVpZ2h0PVxcXCIwLjg5XFxcIiBzdHlsZT1cXFwiZmlsbDojMzNhOWRjO3N0cm9rZTojMzNhOWRjO3N0cm9rZS1taXRlcmxpbWl0OjEwXFxcIi8+PHBhdGggZD1cXFwiTTEyLjMyNSwxNS43NjNhMzEuOTMsMzEuOTMsMCwwLDEtOC40ODQtMS4xMWwuMjQyLS44MDdhMzEuMzc0LDMxLjM3NCwwLDAsMCwxNS45OTIsMGwuMjM5LjgwN0EyOC4wNzYsMjguMDc2LDAsMCwxLDEyLjMyNSwxNS43NjNaXFxcIiBzdHlsZT1cXFwiZmlsbDojMzNhOWRjO3N0cm9rZTojMzNhOWRjO3N0cm9rZS1taXRlcmxpbWl0OjEwXFxcIi8+PHBhdGggZD1cXFwiTTQuMSwyNS43MjRsLS4yMzktLjgwN2EzMS42NTIsMzEuNjUyLDAsMCwxLDE2LjQ3MiwwbC0uMjQyLjgwN0EzMS4zOCwzMS4zOCwwLDAsMCw0LjEsMjUuNzI0WlxcXCIgc3R5bGU9XFxcImZpbGw6IzMzYTlkYztzdHJva2U6IzMzYTlkYztzdHJva2UtbWl0ZXJsaW1pdDoxMFxcXCIvPjxwYXRoIGQ9XFxcIk04LjUzNiwyOS4wNTVBMjUuNDM4LDI1LjQzOCwwLDAsMSw4LDEwLjYwOGwuNzc2LjMzMWEyNC41NTgsMjQuNTU4LDAsMCwwLC41MzMsMTcuNzgzWlxcXCIgc3R5bGU9XFxcImZpbGw6IzMzYTlkYztzdHJva2U6IzMzYTlkYztzdHJva2UtbWl0ZXJsaW1pdDoxMFxcXCIvPjxwYXRoIGQ9XFxcIk0xNS42LDI5LjA1NWwtLjc3Ni0uMzMzYTI0LjU1OSwyNC41NTksMCwwLDAsLjUzMS0xNy43ODNsLjc3Ni0uMzMxQTI1LjQ0MywyNS40NDMsMCwwLDEsMTUuNiwyOS4wNTVaXFxcIiBzdHlsZT1cXFwiZmlsbDojMzNhOWRjO3N0cm9rZTojMzNhOWRjO3N0cm9rZS1taXRlcmxpbWl0OjEwXFxcIi8+PHJlY3QgeD1cXFwiMTEuNjU1XFxcIiB5PVxcXCI5Ljg5OFxcXCIgd2lkdGg9XFxcIjAuODg5XFxcIiBoZWlnaHQ9XFxcIjIwLjM3MVxcXCIgc3R5bGU9XFxcImZpbGw6IzMzYTlkYztzdHJva2U6IzMzYTlkYztzdHJva2UtbWl0ZXJsaW1pdDoxMFxcXCIvPlwiLFxuXHRcIkF1dG9Ib3RrZXlcIjogXCI8ZGVmcz48bGluZWFyR3JhZGllbnQgaWQ9XFxcImFcXFwiIHgxPVxcXCI1NC42MDRcXFwiIHkxPVxcXCIxNjguMzg4XFxcIiB4Mj1cXFwiNTQuNjA0XFxcIiB5Mj1cXFwiMTk0Ljg4NVxcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcInRyYW5zbGF0ZSgtMzguNjA0IC0xNjUuNjM2KVxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiI2Q4ZDhkOFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiI2EzYTNhM1xcXCIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJiXFxcIiB4MT1cXFwiNjguNzU2XFxcIiB5MT1cXFwiMjA5LjE1MlxcXCIgeDI9XFxcIjkxLjYzOFxcXCIgeTI9XFxcIjIwOS4xNTJcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJ0cmFuc2xhdGUoLTUwLjYwMSAtMTU5LjQ0OSkgc2NhbGUoMC44MzIgMC44MzcpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjZDdkN2Q3XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjVcXFwiIHN0b3AtY29sb3I9XFxcIiNlN2U3ZTdcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiNkN2Q3ZDdcXFwiLz48L2xpbmVhckdyYWRpZW50PjwvZGVmcz48dGl0bGU+ZmlsZV90eXBlX2F1dG9ob3RrZXk8L3RpdGxlPjxyZWN0IHg9XFxcIjJcXFwiIHk9XFxcIjIuODI0XFxcIiB3aWR0aD1cXFwiMjhcXFwiIGhlaWdodD1cXFwiMjYuMzUzXFxcIiByeD1cXFwiMy4wODhcXFwiIHJ5PVxcXCIzLjA4OFxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNhKVxcXCIvPjxwYXRoIGQ9XFxcIk0yNi44NTYsMjkuMTgxSDUuMTQ0QTMuMTQ4LDMuMTQ4LDAsMCwxLDIsMjYuMDM3VjUuOTYzQTMuMTQ4LDMuMTQ4LDAsMCwxLDUuMTQ0LDIuODE5SDI2Ljg1NkEzLjE0OCwzLjE0OCwwLDAsMSwzMCw1Ljk2M1YyNi4wMzdBMy4xNDgsMy4xNDgsMCwwLDEsMjYuODU2LDI5LjE4MVpNNS4xNDQsMi45NjNhMywzLDAsMCwwLTMsM2gwVjI2LjAzN2EzLDMsMCwwLDAsMywzSDI2Ljg1NmEzLDMsMCwwLDAsMy0zVjUuOTYzYTMsMywwLDAsMC0zLTNaXFxcIiBzdHlsZT1cXFwiZmlsbDojOGQ4ZDhkXFxcIi8+PHJlY3QgeD1cXFwiNC4zMTNcXFwiIHk9XFxcIjQuNjQxXFxcIiB3aWR0aD1cXFwiMjMuMTY5XFxcIiBoZWlnaHQ9XFxcIjIxLjk0XFxcIiByeD1cXFwiMi41NzFcXFwiIHJ5PVxcXCIyLjU3MVxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNiKVxcXCIvPjxwYXRoIGQ9XFxcIk0yNC45MTEsMjYuNjQxSDYuODg0QTIuNjM0LDIuNjM0LDAsMCwxLDQuMjUzLDI0LjAxVjcuMjEyQTIuNjM0LDIuNjM0LDAsMCwxLDYuODg0LDQuNTgxSDI0LjkxMWEyLjYzNCwyLjYzNCwwLDAsMSwyLjYzMSwyLjYzMXYxNi44QTIuNjM0LDIuNjM0LDAsMCwxLDI0LjkxMSwyNi42NDFaTTYuODg0LDQuN0EyLjUxNCwyLjUxNCwwLDAsMCw0LjM3Myw3LjIxMnYxNi44YTIuNTE0LDIuNTE0LDAsMCwwLDIuNTExLDIuNTExSDI0LjkxMWEyLjUxNCwyLjUxNCwwLDAsMCwyLjUxMS0yLjUxMVY3LjIxMkEyLjUxNCwyLjUxNCwwLDAsMCwyNC45MTEsNC43WlxcXCIgc3R5bGU9XFxcImZpbGw6I2Y4ZjhmOFxcXCIvPjxwYXRoIGQ9XFxcIk02LjE0NSwyMy45bDIuMzQzLTYuMWguODdsMi41LDYuMWgtLjkybC0uNzEyLTEuODQ4SDcuNjczTDcsMjMuOVpNNy45LDIxLjRIOS45NzRsLS42MzctMS43cS0uMjkxLS43Ny0uNDMzLTEuMjY1QTcuNzc2LDcuNzc2LDAsMCwxLDguNTc2LDE5LjZaXFxcIi8+PHBhdGggZD1cXFwiTTEzLjYwNywyMy45VjE3LjhoLjgwN3YyLjVoMy4xNzFWMTcuOGguODA3djYuMWgtLjgwN1YyMS4wMjFoLTMuMTdWMjMuOVpcXFwiLz48cGF0aCBkPVxcXCJNMjAuNDc4LDIzLjlWMTcuOGguODA3djMuMDI1bDMuMDMtMy4wMjVoMS4wOTRMMjIuODUsMjAuMjY3LDI1LjUyMiwyMy45SDI0LjQ1NmwtMi4xNzItMy4wODgtMSwuOTc0VjIzLjlaXFxcIi8+XCIsXG5cdFwiQXV0b0l0XCI6IFwiPGNpcmNsZSBjeD1cXFwiMTZcXFwiIGN5PVxcXCIxNlxcXCIgcj1cXFwiMTIuNTUxXFxcIiBzdHlsZT1cXFwiZmlsbDojNWQ4M2FjXFxcIi8+PHBhdGggZD1cXFwiTTIsMTZBMTQsMTQsMCwxLDEsMTYsMzAsMTQsMTQsMCwwLDEsMiwxNlpNMTYsNC43ODlBMTEuMjExLDExLjIxMSwwLDEsMCwyNy4yMTEsMTYsMTEuMjExLDExLjIxMSwwLDAsMCwxNiw0Ljc4OVpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmMGYwZjBcXFwiLz48cGF0aCBkPVxcXCJNMjQuNTc2LDIwLjE1NmwtNi40LTkuMjY0YTMuMTMxLDMuMTMxLDAsMCwwLS44MTktLjgxOSwyLjM2LDIuMzYsMCwwLDAtMi40NDIuMDIzLDMuNTQzLDMuNTQzLDAsMCwwLS44MTIuOEw3LjUzMywyMC4xNTZoMy43NTJsNC44MDgtNi44LDEuODM4LDIuNzFxLjI2LjM2OC41NDQuNzg5dC41LjdxLS4zNjgtLjAzMS0uODY1LS4wMzFoLTMuNTNsLTEuOTE0LDIuNjM0WlxcXCIgc3R5bGU9XFxcImZpbGw6I2YwZjBmMFxcXCIvPlwiLFxuXHRcIkF2cm8gSURMXCI6IFwiPHBhdGggZD1cXFwiTTIsMTEuNjQ5aC4wMjVhNC43ODUsNC43ODUsMCwwLDAsMi45MTEsMS4zMzZjMi4zMDguMjIxLDQuNTktLjQ4NSw2LjktLjMyNmE3LjAzLDcuMDMsMCwwLDEsMi42OC42NjRjLjUtLjMxOS45ODktLjY2MiwxLjQ4Ni0uOTg5LjUuMzI3Ljk4NC42NzQsMS40ODguOTg5YTYuODM0LDYuODM0LDAsMCwxLDIuNDg3LS42NWMxLjk5NS0uMTY3LDMuOTY3LjMwOCw1Ljk1Ny4zNTlhNS4yLDUuMiwwLDAsMCw0LjAyNi0xLjM4M0gzMHYuMjM2Yy0uMTc4Ljc0Ny0uODgyLDEuMTc2LTEuMjg0LDEuNzlhNC45NDgsNC45NDgsMCwwLDEtLjczMS43OTEsMy44LDMuOCwwLDAsMS0uNTY1Ljc0OCwyLjU1MSwyLjU1MSwwLDAsMC0uNTk0LjU0MSwyLjE4MSwyLjE4MSwwLDAsMS0uOTYuNzQ5LDEuMTQ5LDEuMTQ5LDAsMCwxLS41NjUuNTYsNi42OSw2LjY5LDAsMCwxLTEuOTQuMTg0Yy43MjMuNTQ4LDEuNSwxLjAyLDIuMjQ2LDEuNTM1Ljc4Mi41MTMsMS41NCwxLjA2MSwyLjMyNiwxLjU2OEg0LjA4OWMxLjUtMS4wNTgsMy4wNTctMi4wMzUsNC41NS0zLjFBNi44LDYuOCwwLDAsMSw2LjcsMTcuMDY1YTEuMTU1LDEuMTU1LDAsMCwxLS41NjktLjU2MiwyLjI4LDIuMjgsMCwwLDEtMS4wNDMtLjg2Yy0uMjY4LS4zLS42Ny0uNDY2LS44NTMtLjg0My0uMi0uNDM2LS42NTgtLjY2NC0uOTA5LTEuMDY3LS40LS42NDItMS4xMzctMS4wNzYtMS4zMjctMS44NDZ2LS4yMzltMi45MzksOC41MjhxMTEuMDU5LjAwOSwyMi4xMiwwYy0zLjY2OC0yLjUxLTcuMzc2LTQuOTYxLTExLjA1OS03LjQ0OC0zLjY4NCwyLjQ4Ny03LjM5Miw0Ljk0MS0xMS4wNjEsNy40NDlNNC4xNjcsMTMuMmE3Ljg0Miw3Ljg0MiwwLDAsMCwyLjg0LjczMWMxLjE2My4xMjMsMi4zNDEuMDQ2LDMuNS4yMzZhMi43LDIuNywwLDAsMSwxLjYwNy43ODFjLjY1OS0uNDUyLDEuMzMyLS44ODUsMS45ODctMS4zNDJsLjAxMi0uMDY0YTUuMjk0LDUuMjk0LDAsMCwwLTEuODc3LS41Yy0yLjY5My0uMzE2LTUuMzg3LjcxMi04LjA2Ny4xNm0xMy42NTIuMzU2Yy42ODguNDY2LDEuMzgyLjkyNSwyLjA3LDEuMzkyYTIuNDg4LDIuNDg4LDAsMCwxLDEuMy0uNzE5LDE5Ljg1OSwxOS44NTksMCwwLDEsMy4xMzctLjI0OCw5LjEwNSw5LjEwNSwwLDAsMCwzLjUtLjc2OGMtMi41ODIuNS01LjE2OC0uNDA5LTcuNzYxLS4yYTYuMjU2LDYuMjU2LDAsMCwwLTIuMjQ1LjU0NU0zLjMzOSwxMy4xNjZhNy4yNjQsNy4yNjQsMCwwLDAsMi43MjMsMS4zYy0uMjE5LS4xNTMtLjM3Ni0uNDE2LS42NTctLjQ1N2E3Ljk1NSw3Ljk1NSwwLDAsMS0yLjA2Ni0uODQ0bTIzLjMzMy44MjVjLS4zMTcuMDIzLS41LjMtLjczMy40NzNhNy4yMzIsNy4yMzIsMCwwLDAsMi43MjQtMS4zLDguMTA2LDguMTA2LDAsMCwxLTEuOTkxLjgyNG0tMjIuNS4xMjZhNS4xMjEsNS4xMjEsMCwwLDAsMi41ODksMS4xYy0uMTE1LS4xMjgtLjIwOS0uMzEyLS40LS4zMzRhMTAuNDU5LDEwLjQ1OSwwLDAsMS0yLjE5LS43NzFtMjEuNDY3Ljc2OGMtLjE4OS4wMjItLjI4NC4yLS4zOTQuMzM2YTUuMTg3LDUuMTg3LDAsMCwwLDIuNi0xLjEwOSwxMC40NzcsMTAuNDc3LDAsMCwxLTIuMi43NzNNNi4zLDE0LjIwNmEzLjI0MywzLjI0MywwLDAsMCwyLjQ0NS4zNTJjLS4xLS4wOC0uMTgxLS4yMTUtLjMyNS0uMjA2cS0xLjA2My0uMDQtMi4xMi0uMTQ2bTE3LjM1MS4xMzljLS4xNzEtLjAxOS0uMjkxLjEtLjQwNi4yMTFhMy4xMDgsMy4xMDgsMCwwLDAsMi40Mi0uMzUycS0xLC4xMTItMi4wMTQuMTQxbS0xNi43NDEuNTM4YTMuNjY5LDMuNjY5LDAsMCwwLDIuNDgyLjMxOSwxLjEwNywxLjEwNywwLDAsMC0uMjgxLS4zNzYsNS4xNTgsNS4xNTgsMCwwLDEtMi4yLjA1N20xNS43LjMxOGEzLjY3OCwzLjY3OCwwLDAsMCwyLjQ4Ny0uMzE5LDUuMTI3LDUuMTI3LDAsMCwxLTIuMi0uMDU3LDEuMSwxLjEsMCwwLDAtLjI4My4zNzZNNC44MzgsMTQuOTc3YTQuMTEsNC4xMSwwLDAsMCwyLjEzMy44NDFjLS4wNTctLjA4NC0uMTE0LS4xNjgtLjE3MS0uMjU0YTYuOTQ4LDYuOTQ4LDAsMCwxLTEuOTYyLS41ODdtMjAuMzYxLjU4OS0uMTY5LjI1M2E0LjE0MSw0LjE0MSwwLDAsMCwyLjEzNi0uODQzLDcuMDE1LDcuMDE1LDAsMCwxLTEuOTY3LjU5bS0xOC4xLS4xM2EuOC44LDAsMCwwLC41MzQuMzEsNy41NzksNy41NzksMCwwLDAsMi4wMzctLjA3M2MtLjAwOS0uMDMtLjAyNy0uMDktLjAzNi0uMTItLjQ1Ny0uMDUxLS45MjMuMDc0LTEuMzg1LjA0N0E3LjA1NCw3LjA1NCwwLDAsMSw3LjEsMTUuNDM3bTE2LjE5MS4xNTFhNi4yOCw2LjI4LDAsMCwwLS45MTMtLjA0MWwtLjA0Mi4xMjZhNy40MTYsNy40MTYsMCwwLDAsMi4wNDUuMDcyLjcuNywwLDAsMCwuNTIyLS4zMzEsNC4zNDksNC4zNDksMCwwLDEtMS42MTMuMTc0bS0xNy41Mi4zMjdhMy4xMiwzLjEyLDAsMCwwLDEuNzU0LjQ4MWMtLjA2NS0uMjQtLjMzNC0uMi0uNTIzLS4yMzYtLjQxOS0uMDQxLS44MTYtLjE4Ni0xLjIzMS0uMjQ2TTI1LDE2LjE2M2MtLjE4OC4wNDEtLjQ1Mi0uMDA2LS41MjEuMjMyYTIuODc0LDIuODc0LDAsMCwwLDEuNzMyLS40ODJjLS40LjA3OS0uOC4yMDctMS4yMTEuMjUxTTcuNzM1LDE2LjExOWExLDEsMCwwLDAsLjc4OS4yNzUsOS4zMzEsOS4zMzEsMCwwLDAsMS4zMjUtLjE1OGMtLjAyMS0uMDkzLS4wMDktLjI3OC0uMTYzLS4yMjhhOS45ODMsOS45ODMsMCwwLDEtMS45NTEuMTExbTE0LjQxNS4xMThhOC4xNTcsOC4xNTcsMCwwLDAsMS40MTIuMTU0LjkuOSwwLDAsMCwuNy0uMjc0LDkuMzg3LDkuMzg3LDAsMCwxLTEuOTM0LS4xMWMtLjE2LS4wNi0uMTU1LjEzMi0uMTc2LjIzbS0xNS40MzguNDRhMS45NjIsMS45NjIsMCwwLDAsMS4zLjE4MWwtLjA5MS0uMTI2Yy0uNC4wMDYtLjgwNy0uMDIyLTEuMjA5LS4wNTVtMS42MTUuMDQzYTEuMDMsMS4wMywwLDAsMCwuNzE2LjI5NGMuMTc5LS4xMjUuMzU4LS4yNTIuNTMxLS4zODZhNS43NDcsNS43NDcsMCwwLDEtMS4yNDcuMDkybTE0LjEtLjA5M2MuMjM3LjE0NC40NjcuNDc3Ljc4Mi4zNDUuMTY2LS4wNS4zNjktLjA4OS40NjEtLjI1N2E1LjI3MSw1LjI3MSwwLDAsMS0xLjI0My0uMDg4bTEuNzEzLjI2M2EyLjAwNywyLjAwNywwLDAsMCwxLjE0NS0uMjEzLDEwLjI2OSwxMC4yNjksMCwwLDEtMS4xNDQuMDQ5QzIzLjk5MywxNi42NjcsMjMuOTg0LDE2Ljk2MSwyNC4xMzgsMTYuODlaXFxcIiBzdHlsZT1cXFwiZmlsbDojMDA0MGZmXFxcIi8+PHBhdGggZD1cXFwiTTcuNDM1LDE4Ljg4NlExMS43MTksMTYuMDEzLDE2LDEzLjEzN2w5LjMsNi4yNDRjLjIyMS4xNDcuNDM5LjMuNjQ4LjQ2NHEtOS45NDctLjAxLTE5Ljg5NCwwYy40NDMtLjM0NC45Mi0uNjQsMS4zODMtLjk1OG04LjI1NS01LjA2NmMtLjQ1NywxLjg1OS0uOTA3LDMuNzE5LTEuMzc1LDUuNTc2LjUyLjAxNSwxLjA0MS4wMTIsMS41NjIsMHEtLjAxMy0yLjg0MSwwLTUuNjhsLS4xODQuMW0tMi41LDEuNjg0Yy4yNTUuODU5LjQ4LDEuNzI4Ljc2MywyLjU3OS4yODktMS4yMzguNi0yLjQ3MS45LTMuNzA3LS41NS4zODYtMS4xMTQuNzUtMS42NjgsMS4xMjltMy4zNTctLjg3M2MtLjAwNi42ODIsMCwxLjM2NCwwLDIuMDQ2YTIuMSwyLjEsMCwwLDAsMS4wMTQtLjI1NGMuMTkzLS4xNDUuMS0uNDA5LjAxMS0uNTg2YTQuMjc2LDQuMjc2LDAsMCwwLTEuMDI0LTEuMjA3TTE4LjMyNywxNi40Yy0uMS41NDQtLjY2Ni43OTItMS4xNTEuOS40NzQuNy45NiwxLjM4OSwxLjQxNiwyLjEuNDY5LjAyNC45NC4wMTEsMS40MTEuMDA5YTEuNjMxLDEuNjMxLDAsMCwxLC4xNi0yLjk3NmMtLjgzNC0uNi0xLjctMS4xNC0yLjU0NC0xLjcyNy4zNDkuNS44MzEsMS4wMzcuNzA4LDEuN20tNi44MjIuMjQyYy4yNjcuOTIxLjUyOSwxLjg0NS43OTQsMi43NjcuNDQsMCwuODguMDA4LDEuMzIxLS4wMDctLjMzOS0xLjE2MS0uNjg1LTIuMzE5LTEuMDA5LTMuNDg0LS4zODUuMjE1LS43MzcuNDgyLTEuMS43MjRtOC44LjQ1MmEuOTQ2Ljk0NiwwLDAsMCwuMDU3LDEuN2MuNTMzLjA5Ljg1NS0uNTMzLjc3OS0uOTktLjAyNi0uNC0uNC0uODYxLS44MzYtLjcxNE03LjQsMTkuNHExLjMyNC4wMTgsMi42NSwwYy4yNTYtLjcuNDEzLTEuNDY4LjYyOS0yLjItMS4xLjcxNS0yLjE4NywxLjQ2MS0zLjI3OSwyLjE5NG0xNC4zNzctMS45YTEuNjE2LDEuNjE2LDAsMCwxLS44NzYsMS45YzEuMjMzLjAxOCwyLjQ2NS4wMTUsMy43LDAtLjkzNC0uNjQ0LTEuODgzLTEuMjY2LTIuODIyLTEuOW0tNS4yMjMuMTE1Yy0uMDEuNiwwLDEuMiwwLDEuOC40MTUsMCwuODMxLDAsMS4yNDgsMC0uNDE5LS42LS44LTEuMjE5LTEuMjQzLTEuNzk0bS01LjU0Ni45NDFoLjM0NmMtLjA1NS0uMTg3LS4xMDgtLjM3Ni0uMTY2LS41NjJhMy43NTEsMy43NTEsMCwwLDAtLjE4MS41NjNtLS4xOC42OTNjLS4wMTUuMDQtLjA0NS4xMTktLjA2MS4xNTkuMjc1LS4wMjYuNTkuMDcxLjg0Mi0uMDVDMTEuNDUzLDE5LjExMiwxMS4wNzQsMTkuMjc1LDEwLjgyNiwxOS4yNDRaXFxcIiBzdHlsZT1cXFwiZmlsbDojMDA0MGZmXFxcIi8+XCIsXG5cdFwiQVdLXCI6IFwiPHBhdGggZD1cXFwiTTI2LjkyNSwyNy43MzdDMjMuNDMxLDI2LjEsMjQuNjA2LDE0LjU4OCwxMy44MSw4LjMxOSwxNC4wODksNS43OTIsMTQuNzU4LS41LDcuOTYxLDMsNi44NDUsMy4xMjgsNC45MDcsMi4zMzEsNCw0LjgzMXYuMTE0QzE2LjkxOCwzLjkuMDg4LDEwLjUzLDE2Ljc1LDI1Ljg0NGMtLjM3My4xNzYtLjY3NC0uMzI1LTEuOTcuMWwtLjAxNC4wMTZjLTEuNzIyLDEuMTM1LDEuOTMzLjc2OCw0LjE1NCwxLjI3NC0xLjYxMS40MTctNS41OTQtMS4xMzctNi4zLDEuNjQ1Ljg3Ny0uMzcsMSwuMzI5LDEuMDc2LDEuMDc3QTI2LjI3NywyNi4yNzcsMCwwLDEsMjIuMzc5LDI3LjVjMS4xLjI4NSw0LjExOCwyLjA0OSw1LjEyMi41NTFDMjcuNTE5LDI3LjkzLDI3LjIyMSwyNy44NzYsMjYuOTI1LDI3LjczN1pcXFwiLz48cGF0aCBkPVxcXCJNMTAuNDQ2LDIuOTdsLS4xMjEuMDg4YS4yNjYuMjY2LDAsMCwwLS4wMTEuMzc3LjIxMS4yMTEsMCwwLDAsLjA0NS4wMzkuNDE2LjQxNiwwLDAsMCwuNTIxLS4wNjMuMjYzLjI2MywwLDAsMCwuMDc4LS4zNjRsLS4wMS0uMDE0Yy0uMDc2LS4xNDMtLjE2My0uMTc3LS4zNC0uMTI3QzEwLjU1MywyLjkyNSwxMC41LDIuOTQ2LDEwLjQ0NiwyLjk3WlxcXCIgc3R5bGU9XFxcImZpbGw6I2QyZDJkMlxcXCIvPjxwYXRoIGQ9XFxcIk0xOCwyNi4zNjhjLjE1MS0uMDQxLjMxOC0uODI4LjE3NC0uOTQ5QTYuMjksNi4yOSwwLDAsMCwxOS40LDI2LjQ4NWMxLjAyMywxLjAwNywyLjY2NS0uMDMyLDMuNDgyLjc1OWExMC43MzYsMTAuNzM2LDAsMCwwLDEuOTU3LDEuMDI3Yy0uMTM5LS4xNTEtLjAyOS0uMTQ0LjE3OS0uMDExLS4xMy0uMzM4LTQuNDIxLTUuMTU2LTUuMjI2LTcuMTguMDk1LjI5My0xLjYwOC0uODI0LTIuMDc2LTEuNDE5LS4wMjguMDU2LS4wOTItLjI1MS0uMjI4LS40MzQtLjA0MS4wNS0uMi0uNDMzLS4zLS43MjguMDM3LjE4Ny0uNDYyLS41LS42NS0uODE4LS4wNTYuMDktLjcxOS4zNzItLjgwOS4yODYtLjcyOS0uNCwyLjUyOSw0LjA2Ni4xMjIsMi41NTkuNjc2LjY4My42MTQuNC0xLjA5NS0uODUyLjM2NC40NTItLjMxNy4zMTItMS41NTMtMS41MjMuMTg2LjItLjIxOC0uNTc2LS4yMTgtLjU3NmEyLjY5MiwyLjY5MiwwLDAsMC0uMTMzLS40ODNjLS4wNTYtLjMyLS4yNDEtLjcyMy0uMTItLjY1LTEuNDQ0LTEuNTU2LDEuMzE0LTMuMy43MTktMy42NzEtLjExMSwwLS4wMjcuMDE3LS4xNTEtLjEwNi0uMDksMC0uNDY4LjI4NS0uNTg3LS4yMzQuMDA2LjEzMi0uMDM0LjQwNi0uMTUzLS4xLS4wMjMuMDUyLjAxNS4xLS4wMy4xNDUtLjIyNS0uNTc2LS43NzItMS42LTEuMjE3LTIuNTM5LS4xNTguMTU1LS4xMzgtLjA3Ni0uMTkzLTEuMDkyLjA1My4xNDQtLjIyNSwxLjkyMS0uMi4xMy0uMTI4LjAwNy4xMDgsMS4yNTgtLjM0My4yMS0uMTQxLjA1LS4zMDUtLjM2My0uMzQxLTEuMTc4LS4wNDguNjIzLS4yOS4xODctLjUtLjkyMy0uMjY5LjUwOC0xLjYsMS43NDMtLjMzMyw3LjYyMi0uMDUzLS4zMTMuMTg2LjM0MS43NTUsMi40MjcuMDIxLS4wMzktLjAyMi0uMDgzLjAzOC0uMTMxYTYuMzI0LDYuMzI0LDAsMCwwLC42NzcsMS4zNjVjLjU0NC42NTguOTk1LDIuMDc0LjgsMS4yNzdhMTEuODY3LDExLjg2NywwLDAsMCwyLjU1NCwzLjI0OUEzNC40MjMsMzQuNDIzLDAsMCwwLDE4LDI2LjM2OFpcXFwiIHN0eWxlPVxcXCJmaWxsOiNkMmQyZDJcXFwiLz48cGF0aCBkPVxcXCJNMTAuODIzLDIuNTU3YS4yOTEuMjkxLDAsMCwwLS4wNTEtLjAyMmMtLjIyMS0uMDQtLjQyOS4xNTMtLjY1NC4wMzItLjE0NS4wODUtLjI1Ny0uMDM2LS4zNzUtLjA3M2EuMjI0LjIyNCwwLDAsMC0uMi4wMTQsNS44MjMsNS44MjMsMCwwLDAtLjgxNC41ODIsMS4wMzcsMS4wMzcsMCwwLDAtLjI3My40NDljLS4wMjEuMDQ4LS4wMzcuMTI2LjA1LjEzN2EyLjMsMi4zLDAsMCwwLC42ODIuMDQ1Yy4xNzctLjAyOC4yNzctLjE1Mi40MTgtLjIyMWExLjIsMS4yLDAsMCwwLC41OTItLjY4Yy4wNjQtLjE3NS4xNjEtLjE2Ny4yOC0uMlMxMC43LDIuNjIsMTAuODIzLDIuNTU3WlxcXCIgc3R5bGU9XFxcImZpbGw6I2QyZDJkMlxcXCIvPjxwYXRoIGQ9XFxcIk0xMC4zMjUsMy4wNThsLjEyMS0uMDg4YS4xMTcuMTE3LDAsMCwxLC4xMi4wNjRjLjA0NC4xLjEwNi4xMTIuMTkzLjA0Ny4wMzMtLjAyNS4wNzEtLjA1OC4xMTgtLjAyN2EuMTE5LjExOSwwLDAsMSwuMDQxLjEyOC4yNzYuMjc2LDAsMCwxLS4xODcuMjQ4LjI2Ni4yNjYsMCwwLDEtLjMtLjAzQzEwLjM0MSwzLjMwOCwxMC4yNiwzLjIsMTAuMzI1LDMuMDU4WlxcXCIvPlwiLFxuXHRcIkJhdGNoXCI6IFwiPHBhdGggZD1cXFwiTTI5LjQsMjcuNkgyLjVWNC41SDI5LjRabS0yNS45LTFIMjguNFY1LjVIMy41WlxcXCIgc3R5bGU9XFxcImZpbGw6I2Q5YjQwMFxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiNi4wNzcgMTkuMzE2IDUuNTIyIDE4LjQ4NCAxMC4zNjYgMTUuMjU1IDUuNDc5IDExLjE4NCA2LjEyIDEwLjQxNiAxMi4wMzUgMTUuMzQ0IDYuMDc3IDE5LjMxNlxcXCIgc3R5bGU9XFxcImZpbGw6I2Q5YjQwMFxcXCIvPjxyZWN0IHg9XFxcIjEyLjdcXFwiIHk9XFxcIjE4LjJcXFwiIHdpZHRoPVxcXCI3LjhcXFwiIGhlaWdodD1cXFwiMVxcXCIgc3R5bGU9XFxcImZpbGw6I2Q5YjQwMFxcXCIvPjxyZWN0IHg9XFxcIjIuNVxcXCIgeT1cXFwiNS41XFxcIiB3aWR0aD1cXFwiMjYuOVxcXCIgaGVpZ2h0PVxcXCIxLjlcXFwiIHN0eWxlPVxcXCJmaWxsOiNkOWI0MDBcXFwiLz5cIixcblx0XCJDI1wiOiBcIjx0aXRsZT5maWxlX3R5cGVfY3NoYXJwPC90aXRsZT48cGF0aCBkPVxcXCJNMTkuNzkyLDcuMDcxaDIuNTUzVjkuNjI0SDI0LjlWNy4wNzFoMi41NTJWOS42MjRIMzB2Mi41NTJoLTIuNTV2Mi41NTFIMzBWMTcuMjhIMjcuNDQ5djIuNTUySDI0Ljl2LTIuNTVsLTIuNTUsMCwwLDIuNTUySDE5Ljc5M3YtMi41NWwtMi41NTMsMFYxNC43MjVoMi41NTNWMTIuMTc5SDE3LjI0VjkuNjIyaDIuNTU0Wm0yLjU1Myw3LjY1OEgyNC45VjEyLjE3NkgyMi4zNDVaXFxcIiBzdHlsZT1cXFwiZmlsbDojMzY4ODMyXFxcIi8+PHBhdGggZD1cXFwiTTE0LjY4OSwyNC4wMTNhMTAuMiwxMC4yLDAsMCwxLTQuNjUzLjkxNSw3LjYsNy42LDAsMCwxLTUuODktMi4zMzZBOC44MzksOC44MzksMCwwLDEsMiwxNi4zNjcsOS40MzYsOS40MzYsMCwwLDEsNC40MTIsOS42NDhhOC4xODEsOC4xODEsMCwwLDEsNi4yNTktMi41NzcsMTEuMSwxMS4xLDAsMCwxLDQuMDE4LjYzOHYzLjc0NWE2LjgxLDYuODEsMCwwLDAtMy43MjMtMS4wMzYsNC43OTMsNC43OTMsMCwwLDAtMy43LDEuNTI5LDUuODc5LDUuODc5LDAsMCwwLTEuNDA3LDQuMTQyLDUuNzc0LDUuNzc0LDAsMCwwLDEuMzI4LDMuOTkyLDQuNTUxLDQuNTUxLDAsMCwwLDMuNTc1LDEuNDg3LDcuMjg4LDcuMjg4LDAsMCwwLDMuOTI3LTEuMTA4WlxcXCIgc3R5bGU9XFxcImZpbGw6IzM2ODgzMlxcXCIvPlwiLFxuXHRcIkNcIjogXCI8dGl0bGU+ZmlsZV90eXBlX2M8L3RpdGxlPjxwYXRoIGQ9XFxcIk0xMC42NzYsMTUuOTczYTEwLjA1MiwxMC4wNTIsMCwwLDAsMS4xNzUsNS4xNTEsNS40NDYsNS40NDYsMCwwLDAsNi4zMDYsMi40MDgsNC4yODQsNC4yODQsMCwwLDAsMy4wOS0zLjZjLjEwNy0uNi4xMDktLjYxLjEwOS0uNjEsMS43MzcuMjUxLDQuNTM3LjY1OCw2LjI3NC45MDZsLS4xMS40NGExMS4yNTYsMTEuMjU2LDAsMCwxLTIuNyw1LjM5LDkuNDM5LDkuNDM5LDAsMCwxLTUuMzY2LDIuNjg4LDE0LjYxLDE0LjYxLDAsMCwxLTguMjc3LS44MTlBMTAuMTUxLDEwLjE1MSwwLDAsMSw1LjQsMjEuNjg3YTE2LjIyNSwxNi4yMjUsMCwwLDEsLjAxOS0xMS40NSwxMC41MzgsMTAuNTM4LDAsMCwxLDguOTYzLTcuMDU0LDEzLjM1MywxMy4zNTMsMCwwLDEsNi42NjYuNTU1LDkuNTcxLDkuNTcxLDAsMCwxLDYuMTY3LDYuOWMuMDk0LjM1Mi4xMTQuNDE3LjExNC40MTctMS45MzIuMzUxLTQuMzE5LjgtNi4yMzgsMS4yMTUtLjM2Mi0xLjkxNS0xLjI2NS0zLjQyOC0zLjItMy45YTUuMjYzLDUuMjYzLDAsMCwwLTYuNjE2LDMuNTcsMTAuNDksMTAuNDksMCwwLDAtLjM4NSwxLjQzOUExMi4zMSwxMi4zMSwwLDAsMCwxMC42NzYsMTUuOTczWlxcXCIgc3R5bGU9XFxcImZpbGw6IzAwNWY5MVxcXCIvPlwiLFxuXHRcIkMrK1wiOiBcIjx0aXRsZT5maWxlX3R5cGVfY3BwPC90aXRsZT48cGF0aCBkPVxcXCJNMTQuNzQyLDI0LjA0N2ExMC4yNDIsMTAuMjQyLDAsMCwxLTQuNjczLjkxOUE3LjYyOCw3LjYyOCwwLDAsMSw0LjE1NSwyMi42Miw4Ljg3Niw4Ljg3NiwwLDAsMSwyLDE2LjM2OSw5LjQ3Niw5LjQ3NiwwLDAsMSw0LjQyMiw5LjYyMWE4LjIxNiw4LjIxNiwwLDAsMSw2LjI4NS0yLjU4OCwxMS4xNTEsMTEuMTUxLDAsMCwxLDQuMDM1LjY0MXYzLjc2MUE2LjgzOSw2LjgzOSwwLDAsMCwxMSwxMC4zOTUsNC44MTMsNC44MTMsMCwwLDAsNy4yODgsMTEuOTNhNS45LDUuOSwwLDAsMC0xLjQxMyw0LjE1OUE1LjgsNS44LDAsMCwwLDcuMjA5LDIwLjFhNC41Nyw0LjU3LDAsMCwwLDMuNTksMS40OTMsNy4zMTksNy4zMTksMCwwLDAsMy45NDMtMS4xMTNaXFxcIiBzdHlsZT1cXFwiZmlsbDojOTg0YzkzXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIxNy4xMTIgMTQuODI5IDE3LjExMiAxMi40ODUgMTkuNDU2IDEyLjQ4NSAxOS40NTYgMTQuODI5IDIxLjggMTQuODI5IDIxLjggMTcuMTcyIDE5LjQ1NiAxNy4xNzIgMTkuNDU2IDE5LjUxNSAxNy4xMTIgMTkuNTE1IDE3LjExMiAxNy4xNzIgMTQuNzcgMTcuMTcyIDE0Ljc3IDE0LjgyOCAxNy4xMTIgMTQuODI5XFxcIiBzdHlsZT1cXFwiZmlsbDojOTg0YzkzXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIyNS4zMTMgMTQuODI5IDI1LjMxMyAxMi40ODUgMjcuNjU3IDEyLjQ4NSAyNy42NTcgMTQuODI5IDMwIDE0LjgyOSAzMCAxNy4xNzIgMjcuNjU3IDE3LjE3MiAyNy42NTcgMTkuNTE1IDI1LjMxMyAxOS41MTUgMjUuMzEzIDE3LjE3MiAyMi45NzEgMTcuMTcyIDIyLjk3MSAxNC44MjggMjUuMzEzIDE0LjgyOVxcXCIgc3R5bGU9XFxcImZpbGw6Izk4NGM5M1xcXCIvPlwiLFxuXHRcIkNsb2p1cmVcIjogXCI8cGF0aCBkPVxcXCJNMTYsMkExNCwxNCwwLDEsMCwzMCwxNiwxNC4wMTYsMTQuMDE2LDAsMCwwLDE2LDJcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48cGF0aCBkPVxcXCJNMTUuNDg4LDE2LjI1MmMtLjEyNi4yNzMtLjI2NS41NzktLjQwOC45QTIyLjk2MywyMi45NjMsMCwwLDAsMTMuOCwyMC42MDVhNS4xODEsNS4xODEsMCwwLDAtLjExOSwxLjE1NWMwLC4xNzQuMDA5LjM1Ni4wMjQuNTQyYTYuNjU4LDYuNjU4LDAsMCwwLDQuNDEzLjA2NywzLjk2NiwzLjk2NiwwLDAsMS0uNDQtLjQ2NmMtLjktMS4xNDYtMS40LTIuODI3LTIuMTk0LTUuNjUyXFxcIiBzdHlsZT1cXFwiZmlsbDojOTFkYzQ3XFxcIi8+PHBhdGggZD1cXFwiTTEyLjE2OSwxMC41NTZhNi42NzcsNi42NzcsMCwwLDAtLjA3NywxMC44ODFjLjQxMS0xLjcxLDEuNDQtMy4yNzYsMi45ODMtNi40MTUtLjA5Mi0uMjUyLS4yLS41MjctLjMxMy0uODE3YTEwLjIwNywxMC4yMDcsMCwwLDAtMS42LTIuODgyLDQuNDM5LDQuNDM5LDAsMCwwLTEtLjc2N1xcXCIgc3R5bGU9XFxcImZpbGw6IzkxZGM0N1xcXCIvPjxwYXRoIGQ9XFxcIk0yMS44NCwyMy43YTEwLjg3NywxMC44NzcsMCwwLDEtMi4yNTctLjQ3MUE4LjAzNiw4LjAzNiwwLDAsMSwxMC43MTYsOS45ODJhNS45LDUuOSwwLDAsMC0xLjQtLjE3MWMtMi4zNTguMDIyLTQuODQ4LDEuMzI3LTUuODg0LDQuODUyYTYuNjA2LDYuNjA2LDAsMCwwLS4wNzQsMS4zNjEsMTIuNjQ5LDEyLjY0OSwwLDAsMCwyMyw3LjI3NCwxNC43MzcsMTQuNzM3LDAsMCwxLTMuNDQ4LjQ1OUE4Ljg4MSw4Ljg4MSwwLDAsMSwyMS44NCwyMy43XFxcIiBzdHlsZT1cXFwiZmlsbDojNjNiMTMyXFxcIi8+PHBhdGggZD1cXFwiTTE5LjQ2MywyMS4yNDRhMy41MywzLjUzLDAsMCwwLC41LjE3MkE2LjY5LDYuNjksMCwwLDAsMjIuNywxNi4wMjNoMGE2LjY4MSw2LjY4MSwwLDAsMC04Ljc5LTYuMzQ4YzEuMzU4LDEuNTQ4LDIuMDExLDMuNzYxLDIuNjQzLDYuMTgxdjBzLjIuNjczLjU0NywxLjU2MmExNS40MzQsMTUuNDM0LDAsMCwwLDEuMzYzLDIuNzg4LDIuOTI0LDIuOTI0LDAsMCwwLDEsMS4wMzZcXFwiIHN0eWxlPVxcXCJmaWxsOiM5MGI0ZmVcXFwiLz48cGF0aCBkPVxcXCJNMTYuMDEzLDMuMzcyQTEyLjYzMiwxMi42MzIsMCwwLDAsNS43MzEsOC42NTZhNi40MjUsNi40MjUsMCwwLDEsMy40OC0xLjAwOSw2LjgsNi44LDAsMCwxLDMuMTgyLjc3MmMuMTM0LjA3Ny4yNjEuMTYuMzg2LjI0NmE4LjAzOCw4LjAzOCwwLDAsMSwxMS4yNzMsNy4zNThoMGE4LjAxMyw4LjAxMywwLDAsMS0yLjM5MSw1LjcxOSw5Ljg3MSw5Ljg3MSwwLDAsMCwxLjE0My4wNjQsNi4yNCw2LjI0LDAsMCwwLDQuMDUxLTEuMjYzLDUuMzQ4LDUuMzQ4LDAsMCwwLDEuNy0yLjkwNkExMi42MzIsMTIuNjMyLDAsMCwwLDE2LjAxMywzLjM3MlxcXCIgc3R5bGU9XFxcImZpbGw6IzU4ODFkOFxcXCIvPlwiLFxuXHRcIkNNYWtlXCI6IFwiPGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJhXFxcIiB4MT1cXFwiOS45NTVcXFwiIHkxPVxcXCI5LjA5NlxcXCIgeDI9XFxcIjE2LjY4XFxcIiB5Mj1cXFwiMjMuMzI0XFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwibWF0cml4KDEsIDAsIDAsIC0xLCAwLCAzMilcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiMxMDExYTFcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiM2OTY5ZTFcXFwiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiYlxcXCIgeDE9XFxcIjE2LjIzMVxcXCIgeTE9XFxcIjE5LjY1NVxcXCIgeDI9XFxcIjI1LjYxOFxcXCIgeTI9XFxcIjMuNzgyXFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwibWF0cml4KDEsIDAsIDAsIC0xLCAwLCAzMilcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiNiNDBlMGVcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiNmZjU5NTlcXFwiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiY1xcXCIgeDE9XFxcIjIxLjY2M1xcXCIgeTE9XFxcIjQuODIzXFxcIiB4Mj1cXFwiOC4zODFcXFwiIHkyPVxcXCI1LjkzOFxcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcIm1hdHJpeCgxLCAwLCAwLCAtMSwgMCwgMzIpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjMDFhMzAwXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjMDFkZjAwXFxcIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9XFxcImRcXFwiIHgxPVxcXCIxNC42NDNcXFwiIHkxPVxcXCI4LjM2OFxcXCIgeDI9XFxcIjE0LjQ3MlxcXCIgeTI9XFxcIjE0LjE0NVxcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcIm1hdHJpeCgxLCAwLCAwLCAtMSwgMCwgMzIpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjODQ4NDg0XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjZDJkMmQyXFxcIi8+PC9saW5lYXJHcmFkaWVudD48L2RlZnM+PHRpdGxlPmZpbGVfdHlwZV9jbWFrZTwvdGl0bGU+PHBhdGggZD1cXFwiTTE3LjI1NywxNi45MTksMi4yNDYsMjkuNzQ5LDE1Ljk5NCwyLjI4M1pcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjYSlcXFwiLz48cGF0aCBkPVxcXCJNMi4yNjIsMjkuNzY4bC0uMDM4LS4wM0wxNi4wMTIsMi4xOTNsLjAwOC4wODhMMTcuMjgzLDE2LjkzbC0uMDEuMDA4Wk0xNS45NzcsMi4zNzQsMi4zMjQsMjkuNjQ5LDE3LjIzLDE2LjkwOFpcXFwiLz48cGF0aCBkPVxcXCJNMTcuOTUyLDI0LjkzMSwxNiwyLjI4LDI5Ljc2NywyOS43NTFaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2IpXFxcIi8+PHBhdGggZD1cXFwiTTI5LjgxOCwyOS44bC0uMDYxLS4wMjVMMTcuOTI5LDI0Ljk0OGwwLS4wMTVMMTUuOTc1LDIuMjgybC4wNDctLjAxM1pNMTcuOTc2LDI0LjkxMywyOS43MTUsMjkuNywxNi4wMzYsMi40MDhaXFxcIi8+PHBhdGggZD1cXFwiTTExLjE2LDIyLjA5NGwxOC42MjEsNy42NTRIMi4yNVpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjYylcXFwiLz48cGF0aCBkPVxcXCJNMjkuNzgxLDI5Ljc3M0gyLjE4M2wuMDUxLS4wNDQsOC45MjEtNy42NjUuMDE0LjAwNiwxOC42MjIsNy42NTVabS0yNy40NjQtLjA1SDI5LjY1NGwtMTguNDg5LTcuNlpcXFwiLz48cGF0aCBkPVxcXCJNMTEuMTg5LDIyLjExMmw2LjA1OS01LjE2OC44NDMsNy45OFpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjZClcXFwiLz48cGF0aCBkPVxcXCJNMTguMTQ5LDI1bC0uMDc3LS4wMzItNi45NzgtMi44NDIsNi4xOTQtNS4yODMuMDEuMDk0Wm0tNi44NjUtMi45LDYuNzQ4LDIuNzQ5LS44MjQtNy44WlxcXCIvPjxwYXRoIGQ9XFxcIk0yOS43LDI5LjkxMUgyLjI4NWEuMjIxLjIyMSwwLDAsMS0uMTgyLS4wODguMjIyLjIyMiwwLDAsMSwuMDIyLS4yTDE1Ljg2NCwyLjE4N2EuMTY5LjE2OSwwLDAsMSwuMTQtLjFoMGEuMTU0LjE1NCwwLDAsMSwuMTMuMDg1TDI5Ljg2NywyOS42MDdhLjIzOC4yMzgsMCwwLDEsLjAyLjIyNkEuMjExLjIxMSwwLDAsMSwyOS43LDI5LjkxMVptLTI3LjQ2OC0uMTZhLjQ4NC40ODQsMCwwLDAsLjA1Ny4wMTFoMjcuNGwuMDczLS4wMDlhLjIyMS4yMjEsMCwwLDAtLjAyOC0uMDc3TDE2LDIuMjQ4LDE2LDIuMjYsMi4yNjEsMjkuNjg0YS4yNzkuMjc5LDAsMCwwLS4wMjUuMDY3WlxcXCIvPlwiLFxuXHRcIkNPQk9MXCI6IFwiPHBhdGggZD1cXFwiTTIyLjI0LDYuNTQ2YTQuNDQ5LDQuNDQ5LDAsMCwwLDEuNzY1LTIuNTIyLDQuNjM2LDQuNjM2LDAsMCwxLS4wMTgsMi4xNTdjLS4yMjMuNTgyLS41NjcsMS4xMDctLjgzNCwxLjY2OWEyMS43NzIsMjEuNzcyLDAsMCwxLDQuNTU5LTIuOTM4QzI3LjIzLDYuNCwyNS44OTEsNy4zLDI0LjkwNyw4LjQ0MmMuMTkuNDA5LjI4Ljk4OS44LDEuMTA5YTUuMDM2LDUuMDM2LDAsMCwwLDIuNS4xNTVjLjkxMi0uMzEzLDEuMzQ1LTEuMjU4LDEuOC0yLjAzNVY5LjE0YTE1LjczOCwxNS43MzgsMCwwLDEtLjU4MiwxLjc0OGMuMi41NDcuNDA5LDEuMDkyLjU4MiwxLjY0N3YuOTUyYy0uMjE0LjM2OC0uNDQyLjcyNi0uNjYzLDEuMDg5YTUuMjkzLDUuMjkzLDAsMCwwLTEuMDY4LTEuMTYyLDQuMDMsNC4wMywwLDAsMC0xLjg1MS0uMTI1LDMuMjEyLDMuMjEyLDAsMCwwLDIuNDEzLDEuNDdjLS4zNTkuMzctLjY2My45MTItMS4yMy45NjktMS42NDEuMjQ3LTMuMjA3LS41MDUtNC44MzktLjUtLjI4Mi4wMi0uNzA3LjAyNC0uNzg1LjM3MiwwLC43MzUuMjE3LDEuNDUzLjE5LDIuMTg4LS4wNTksMS4yNTgtLjUxMiwyLjQ2Ni0uNTI5LDMuNzI2YTEzLjc4NSwxMy43ODUsMCwwLDAsLjgzOCwzLjQ0OGMtLjUyMy0uMDc3LTEuMDQ0LS4xNjYtMS41NjItLjI2LS4xLjIwOC0uMTg0LjQyLS4yNi42MzRBNC41MTQsNC41MTQsMCwwLDAsMjEuOCwyNi41MzFjLS4wNjEuMTI3LS4xODIuMzgxLS4yNDEuNTA4bC0uNTczLjEzOGMtLjEzMS4yNDctLjI2My40OTItLjQuNzM5YTQuNDIxLDQuNDIxLDAsMCwwLTIuMi4wNjFjLS40NjYtLjE4Ni0uOTI4LS4zNzYtMS4zODktLjU2N2E1LjkzOSw1LjkzOSwwLDAsMCwuNDA3LTIuMzE1Yy0uMjgyLS45ODItMS42LS45ODQtMi0xLjg3N2E2LjIzMyw2LjIzMywwLDAsMS0xLjAyMi0yLjg1MWMtLjgyMy0uNDMzLTEuNDU1LTEuMjIxLTIuNC0xLjQtLjA0OC40MDktLjA4My44Mi0uMTUzLDEuMjI3QTYuMDE1LDYuMDE1LDAsMCwxLDEwLjQ4MSwyMi42Yy4wMzkuNDIyLjA3OS44NDIuMTIsMS4yNjUuMzQ2LjMyNC42OTEuNjQ4LDEuMDMzLjk3NGE5Ljc1Miw5Ljc1MiwwLDAsMS0xLjQyNi43MTMsMTEuMTE0LDExLjExNCwwLDAsMS0xLjY4Ny4wNzdjLS4yNTgtLjI1NC0uNTE4LS41MDgtLjc3Ny0uNzY0YTQuODcxLDQuODcxLDAsMCwwLC4xMTQtMi42MDhjLjE3MS0uNC4zMjYtLjgxMi40NzUtMS4yMjFhNS41NjUsNS41NjUsMCwwLDEtMy4wMS4yMDYsNS4xMiw1LjEyLDAsMCwxLTMuMjktNC4zMywzLjg1OSwzLjg1OSwwLDAsMSwxLjQwNy0zLjI2OEE2LjQxLDYuNDEsMCwwLDAsMy4yLDE2LjI1OWEzLjAzOCwzLjAzOCwwLDAsMCwyLjUsMi40NjYsMy40NjIsMy40NjIsMCwwLDAsMS45Ni0uNjQzLDcuNDgsNy40OCwwLDAsMSwuMzYzLTQuMTMzLDUuNTI0LDUuNTI0LDAsMCwxLDMuNTg2LTIuNjYsNC4yMzUsNC4yMzUsMCwwLDAsMi4wMTEtMS41NjYsMTAuNjcsMTAuNjcsMCwwLDEsMS41MjktMS4zM2MtLjIyOC0uMjE5LS40NTMtLjQ0LS42OC0uNjU5QTIuMTU0LDIuMTU0LDAsMCwwLDE1LjksNi4wMjNjMS4yODQtLjMsMi41NTEtLjY2MSwzLjgyLTEuMDExYTMuNzkzLDMuNzkzLDAsMCwwLDEuNDE1LjYwNmMuMzE3LjM0Ni40OTQsMS4xNTcsMS4xLjkyOE0xOC40NTgsMTkuOTA4Yy4wNDIuNzY4LS4wNDgsMS42NjUuNjc0LDIuMTU1LDAtLjc1NS0uMDQ2LTEuNTA3LS4xLTIuMjZaXFxcIiBzdHlsZT1cXFwiZmlsbDojMDA1Y2E1XFxcIi8+XCIsXG5cdFwiQ29mZmVlU2NyaXB0XCI6IFwiPHBhdGggZD1cXFwiTTEzLjExNCw1LjcyOGMuMDI1LjE1My0uMDUxLjI4LS4zMDYuNDA4YTMuNDU3LDMuNDU3LDAsMCwwLTEuNjMtLjIyOWMtLjYzNy4wNTEtMS4xNzIuMjU1LTEuMS42ODguMS40MzMuNzEzLjY4OCwxLjgwOC41ODYsMi42NzQtLjIyOSwyLjY0OS0yLjAzOCw2LjU3MS0yLjM5NCwzLjA1Ni0uMjgsNC43NjMuNjYyLDQuOTkyLDEuODA4LjE3OC44OTEtLjU2LDEuNzU3LTIuNzc2LDEuOTM2LTEuOTYxLjE3OC0zLjEwNy0uMzU3LTMuMjA5LS44OTEtLjA1MS0uMjguMS0uNjg4LDEuMDQ0LS43OS4xLjQzMy42MzcuODkxLDEuOTEuNzY0QzIxLjM0MSw3LjUzNiwyMi4xLDcuMiwyMiw2LjdjLS4xLS41MzUtMS4wNy0uODQtMi42LS43MTMtMy4xMDcuMjgtMy44NzEsMS45ODctNi41MiwyLjIxNkMxMSw4LjM3Niw5LjQ3Miw3LjY4OSw5LjI2OCw2LjY3Yy0uMDc2LS4zODItLjA3Ni0xLjI3MywxLjkxLTEuNDUyLDEuMDE5LS4wNzYsMS44MzQuMSwxLjkzNi41MDlaTTMuMTgxLDE2LjM3NEE1LjI3OSw1LjI3OSwwLDAsMCwyLjAxLDE5Ljk5YTQuMjA2LDQuMjA2LDAsMCwwLDEuNjU1LDMuMDU2LDQsNCwwLDAsMCwzLjM2Mi43OSwxMS40MzQsMTEuNDM0LDAsMCwwLDEuNS0uNDg0LDQuMjM4LDQuMjM4LDAsMCwxLTIuNzUxLTEuMDE5LDQuMTMsNC4xMywwLDAsMS0xLjczMi0yLjgyN0EzLjc5LDMuNzksMCwwLDEsNC42NTgsMTYuNSwzLjk3NywzLjk3NywwLDAsMSw3LjQwOSwxNWE0LjgwNiw0LjgwNiwwLDAsMSwzLjIwOS45NDIsNi45NSw2Ljk1LDAsMCwwLS44NjYtLjg2Niw0LjEsNC4xLDAsMCwwLTMuNDY0LS42ODgsNS4yLDUuMiwwLDAsMC0zLjEwNywxLjk4N1pNMTYuODMzLDEwLjQ5QTQwLjgzNyw0MC44MzcsMCwwLDEsOC41LDkuN0M2LjIzNyw5LjE0LDUuMDQsOC41MjksNS4wNCw3Ljc0YzAtLjMzMS4xNTMtLjYxMS42MTEtLjk0Mi0xLjQyNi41Ni0yLjE5LDEuMDE5LTIuMTksMS43MzIuMDc2Ljc5LDEuMzUsMS41NzksMy45NDgsMi4xOWEzOS40NDMsMzkuNDQzLDAsMCwwLDkuMzQ3Ljk0MkEzOC45OTMsMzguOTkzLDAsMCwwLDI2LjEsMTAuNzJjMi42LS42MTEsMy44NDYtMS40MjYsMy44NDYtMi4xOSwwLS41Ni0uNTYtMS4xLTEuNTc5LTEuNWEuODYyLjg2MiwwLDAsMSwuNDA4LjY4OGMwLC43OS0xLjE3MiwxLjQyNi0zLjU0LDEuOTYxQTM5LjMyNCwzOS4zMjQsMCwwLDEsMTYuODMzLDEwLjQ5Wm05LjM3MywyLjE5YTQyLjMxNSw0Mi4zMTUsMCwwLDEtOS4zNDcuOTQyLDQ0LjE0NCw0NC4xNDQsMCwwLDEtOS40MjQtLjk0MmMtMi4xOS0uNTYtMy4zNjItMS4xNzItMy43NjktMS44MDhhMjMuMTg2LDIzLjE4NiwwLDAsMCwyLjYsNy42NDFjLjk0MiwxLjQyNiwxLjg4NSwyLjY3NCwyLjgyNyw0LjAyNGE5Ljg4Myw5Ljg4MywwLDAsMSwuODY2LDIuMzY5LDQuNTU5LDQuNTU5LDAsMCwwLDIuNiwxLjczMiwxMC42MTEsMTAuNjExLDAsMCwwLDQuMTc3LjYxMWguMTUzYTExLjgzOSwxMS44MzksMCwwLDAsNC4zLS42MTEsNC44NjksNC44NjksMCwwLDAsMi41MjEtMS43MzJoLjA3NmE5LjU5Miw5LjU5MiwwLDAsMSwuNzktMi4zNjljLjk0Mi0xLjM1LDEuODg1LTIuNiwyLjgyNy00LjAyNEEyNC42MiwyNC42MiwwLDAsMCwzMCwxMC44NzJDMjkuNDkxLDExLjU4NSwyOC4zMTksMTIuMiwyNi4yMDUsMTIuNjgxWlxcXCIgc3R5bGU9XFxcImZpbGw6IzZmNGUzN1xcXCIvPlwiLFxuXHRcIkNyeXN0YWxcIjogXCI8cGF0aCBkPVxcXCJNMjkuOTQxLDE5LjgxNiwxOS44LDI5LjkyOGMtLjAyOC4wMjgtLjA4NS4wMjgtLjE2OS4wMjhMNS44LDI2LjI2N2MtLjAyOCwwLS4wODQtLjAyOC0uMTEzLS4xMTNMMiwxMi4zNTJhLjQxOS40MTksMCwwLDEsLjAyOC0uMTY5TDEyLjE2OCwyLjA3MmMuMDI4LS4wMjguMDg0LS4wMjguMTY5LS4wMjhsMTMuODMsMy43MThjLjAyOCwwLC4wODQuMDI4LjExMy4xMTNsMy42OSwxMy44QzMwLjAyNiwxOS43MzIsMzAsMTkuNzg4LDI5Ljk0MSwxOS44MTZaTTE2LjM5Myw4LjgzMiwyLjgxNywxMi40OTNxLS4wNDIsMCwwLC4wODRMMTIuNzYsMjIuNTJjLjAyOC4wMjguMDI4LDAsLjA4NCwwTDE2LjUwNiw4Ljk3MkMxNi40NDksOC44MzIsMTYuMzkzLDguODMyLDE2LjM5Myw4LjgzMlpcXFwiIHN0eWxlPVxcXCJmaWxsOiNjOGM4YzhcXFwiLz5cIixcblx0XCJDU1NcIjogXCI8cG9seWdvbiBwb2ludHM9XFxcIjUuOTAyIDI3LjIwMSAzLjY1NiAyIDI4LjM0NCAyIDI2LjA5NSAyNy4xOTcgMTUuOTg1IDMwIDUuOTAyIDI3LjIwMVxcXCIgc3R5bGU9XFxcImZpbGw6IzE1NzJiNlxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMTYgMjcuODU4IDI0LjE3IDI1LjU5MyAyNi4wOTIgNC4wNjEgMTYgNC4wNjEgMTYgMjcuODU4XFxcIiBzdHlsZT1cXFwiZmlsbDojMzNhOWRjXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIxNiAxMy4xOTEgMjAuMDkgMTMuMTkxIDIwLjM3MiAxMC4wMjYgMTYgMTAuMDI2IDE2IDYuOTM1IDE2LjAxMSA2LjkzNSAyMy43NSA2LjkzNSAyMy42NzYgNy43NjQgMjIuOTE3IDE2LjI4MiAxNiAxNi4yODIgMTYgMTMuMTkxXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIxNi4wMTkgMjEuMjE4IDE2LjAwNSAyMS4yMjIgMTIuNTYzIDIwLjI5MiAxMi4zNDMgMTcuODI3IDEwLjY3IDE3LjgyNyA5LjI0IDE3LjgyNyA5LjY3MyAyMi42OCAxNi4wMDQgMjQuNDM4IDE2LjAxOSAyNC40MzQgMTYuMDE5IDIxLjIxOFxcXCIgc3R5bGU9XFxcImZpbGw6I2ViZWJlYlxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMTkuODI3IDE2LjE1MSAxOS40NTUgMjAuMjkgMTYuMDA4IDIxLjIyIDE2LjAwOCAyNC40MzYgMjIuMzQ0IDIyLjY4IDIyLjM5MSAyMi4xNTggMjIuOTI4IDE2LjE1MSAxOS44MjcgMTYuMTUxXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIxNi4wMTEgNi45MzUgMTYuMDExIDguODU1IDE2LjAxMSAxMC4wMTggMTYuMDExIDEwLjAyNiA4LjU1NSAxMC4wMjYgOC41NTUgMTAuMDI2IDguNTQ1IDEwLjAyNiA4LjQ4MyA5LjMzMSA4LjM0MiA3Ljc2NCA4LjI2OCA2LjkzNSAxNi4wMTEgNi45MzVcXFwiIHN0eWxlPVxcXCJmaWxsOiNlYmViZWJcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjE2IDEzLjE5MSAxNiAxNS4xMTEgMTYgMTYuMjc0IDE2IDE2LjI4MiAxMi42MTEgMTYuMjgyIDEyLjYxMSAxNi4yODIgMTIuNjAxIDE2LjI4MiAxMi41MzkgMTUuNTg3IDEyLjM5OSAxNC4wMiAxMi4zMjUgMTMuMTkxIDE2IDEzLjE5MVxcXCIgc3R5bGU9XFxcImZpbGw6I2ViZWJlYlxcXCIvPlwiLFxuXHRcIkNTVlwiOiBcIjxwYXRoIGQ9XFxcIk0yMi4wMzgsMkg2LjM3NWExLjc1NSwxLjc1NSwwLDAsMC0xLjc1LDEuNzV2MjQuNUExLjc1NSwxLjc1NSwwLDAsMCw2LjM3NSwzMGgxOS4yNWExLjc1NSwxLjc1NSwwLDAsMCwxLjc1LTEuNzVWNi44NTZabS41MjUsMi44NDQsMS42NjMsMS41MzFIMjIuNTYzWk02LjM3NSwyOC4yNVYzLjc1SDIwLjgxM1Y4LjEyNWg0LjgxM1YyOC4yNVpcXFwiIHN0eWxlPVxcXCJmaWxsOiNjMmMyYzJcXFwiLz48cmVjdCB4PVxcXCI4LjEyNVxcXCIgeT1cXFwiMTUuMDk3XFxcIiB3aWR0aD1cXFwiMTMuMDc2XFxcIiBoZWlnaHQ9XFxcIjEuNzVcXFwiIHN0eWxlPVxcXCJmaWxsOiM4MjllYzJcXFwiLz48cmVjdCB4PVxcXCI4LjEyNVxcXCIgeT1cXFwiMjQuNDM5XFxcIiB3aWR0aD1cXFwiOS43NjJcXFwiIGhlaWdodD1cXFwiMS43NVxcXCIgc3R5bGU9XFxcImZpbGw6IzgyOWVjMlxcXCIvPjxyZWN0IHg9XFxcIjguMTI1XFxcIiB5PVxcXCIxOS43NjNcXFwiIHdpZHRoPVxcXCIxNS43NVxcXCIgaGVpZ2h0PVxcXCIxLjc1XFxcIiBzdHlsZT1cXFwiZmlsbDojODI5ZWMyXFxcIi8+PHJlY3QgeD1cXFwiOC4xMjVcXFwiIHk9XFxcIjEwLjIzXFxcIiB3aWR0aD1cXFwiMTUuNzVcXFwiIGhlaWdodD1cXFwiMS43NVxcXCIgc3R5bGU9XFxcImZpbGw6IzgyOWVjMlxcXCIvPlwiLFxuXHRcIkRcIjogXCI8ZGVmcz48bGluZWFyR3JhZGllbnQgaWQ9XFxcImFcXFwiIHgxPVxcXCIxODUuNDU1XFxcIiB5MT1cXFwiMTYwMS42NDFcXFwiIHgyPVxcXCIxODEuOTU1XFxcIiB5Mj1cXFwiMTYzMC4yMjRcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJ0cmFuc2xhdGUoLTYyLjUyMyAtNjY2LjY0Nikgc2NhbGUoMC40MjcpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjZmZmXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjZmZmXFxcIiBzdG9wLW9wYWNpdHk9XFxcIjBcXFwiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiYlxcXCIgeDE9XFxcIjE3Ni4xMzZcXFwiIHkxPVxcXCIxNjAwLjVcXFwiIHgyPVxcXCIxNzIuNjM2XFxcIiB5Mj1cXFwiMTYyOS4wODNcXFwiIHhsaW5rOmhyZWY9XFxcIiNhXFxcIi8+PC9kZWZzPjx0aXRsZT5maWxlX3R5cGVfZGxhbmc8L3RpdGxlPjxwYXRoIGQ9XFxcIk0zLjk3OCwxNS40NjIsMy45NjksOC41MDlBLjU4OC41ODgsMCwwLDEsNC41LDcuOTQ3YS42NTguNjU4LDAsMCwxLC4wNzYsMGw2LjA3NC0uMDA5YTE1LjcsMTUuNywwLDAsMSw2LjA2Ny45NSw4LjksOC45LDAsMCwxLDIuMjQ0LDEuMzU5LDQuNDY5LDQuNDY5LDAsMCwxLDIuOTQ2LTEuMDgzLDQuMTEsNC4xMSwwLDAsMSw0LjI3NiwzLjkyQTQuMTEsNC4xMSwwLDAsMSwyMS45MDcsMTdjLS4wODksMC0uMTc3LS4wMDgtLjI2NS0uMDEyYTYuNjE3LDYuNjE3LDAsMCwxLS4yMzIuOTUzLDg1LjM4Myw4NS4zODMsMCwwLDEsOC41OSwyLjZWMkgyVjE1LjRRMi45OTIsMTUuNDIsMy45NzgsMTUuNDYyWm0yMi44LTcuOTQ0YTEuMzIsMS4zMiwwLDAsMSwxLjM3NCwxLjI1OSwxLjM3OSwxLjM3OSwwLDAsMS0yLjc0NywwQTEuMzIsMS4zMiwwLDAsMSwyNi43OCw3LjUxN1pcXFwiIHN0eWxlPVxcXCJmaWxsOiNiMDM5MzFcXFwiLz48cGF0aCBkPVxcXCJNMTcuODYxLDE1Ljc4N2E0LjExNCw0LjExNCwwLDAsMC0xLjc0OC0zLjQ1OCw1LjgxNCw1LjgxNCwwLDAsMC0xLjUwOC0uODIyLDcuMzU0LDcuMzU0LDAsMCwwLTEuNjI5LS40MzgsMjEuNjI5LDIxLjYyOSwwLDAsMC0yLjU4OC0uMWwtMi42MTksMCwuMDA2LDQuNzM3YTg4LjgyNyw4OC44MjcsMCwwLDEsOS45MSwxLjQwOEE0LjkxOSw0LjkxOSwwLDAsMCwxNy44NjEsMTUuNzg3WlxcXCIgc3R5bGU9XFxcImZpbGw6I2IwMzkzMVxcXCIvPjxwYXRoIGQ9XFxcIk0yMC45OTMsMTguOTc5YTcuOTA2LDcuOTA2LDAsMCwxLTIuMTI4LDIuNTgyLDkuNzM5LDkuNzM5LDAsMCwxLTMuMjU2LDEuNzEsMTEuNTU4LDExLjU1OCwwLDAsMS0xLjk3MS40NzJoLS4wMTVhMzEuODU3LDMxLjg1NywwLDAsMS0zLjMyNi4xMTFsLTUuNjI1LjAyMmEuNjE2LjYxNiwwLDAsMS0uNjg2LS42ODFsLS4wMS03LjczNFEyLjk5MiwxNS40MiwyLDE1LjRWMzBIMzBWMjAuNTQ0YTg1LjM4Myw4NS4zODMsMCwwLDAtOC41OS0yLjZBNi45ODUsNi45ODUsMCwwLDEsMjAuOTkzLDE4Ljk3OVpcXFwiIHN0eWxlPVxcXCJmaWxsOiNiMDM5MzFcXFwiLz48cGF0aCBkPVxcXCJNMjAuOTkzLDE4Ljk3OWE3LjkwNiw3LjkwNiwwLDAsMS0yLjEyOCwyLjU4Miw5LjczOSw5LjczOSwwLDAsMS0zLjI1NiwxLjcxLDExLjU1OCwxMS41NTgsMCwwLDEtMS45NzEuNDcyaC0uMDE1YTMxLjg1NywzMS44NTcsMCwwLDEtMy4zMjYuMTExbC01LjYyNS4wMjJhLjYxNi42MTYsMCwwLDEtLjY4Ni0uNjgxbC0uMDEtNy43MzRRMi45OTIsMTUuNDIsMiwxNS40VjMwSDMwVjIwLjU0NGE4NS4zODMsODUuMzgzLDAsMCwwLTguNTktMi42QTYuOTg1LDYuOTg1LDAsMCwxLDIwLjk5MywxOC45NzlaXFxcIiBzdHlsZT1cXFwib3BhY2l0eTowLjMwMDAwMDAxMTkyMDkyOTtpc29sYXRpb246aXNvbGF0ZTtmaWxsOnVybCgjYSlcXFwiLz48cGF0aCBkPVxcXCJNMTAuNDc3LDIwLjgzNWExNi4wMTQsMTYuMDE0LDAsMCwwLDIuODc3LS4yLDcuNjMzLDcuNjMzLDAsMCwwLDEuNjI4LS41LDUuNjI4LDUuNjI4LDAsMCwwLDEuMTg3LS43NDgsNC40NTcsNC40NTcsMCwwLDAsMS41MTgtMi4yNzEsODguNjkxLDg4LjY5MSwwLDAsMC05LjkxLTEuNDA4bC4wMDYsNS4xMzNaXFxcIiBzdHlsZT1cXFwiZmlsbDojYjAzOTMxXFxcIi8+PHBhdGggZD1cXFwiTTEwLjQ3NywyMC44MzVhMTYuMDE0LDE2LjAxNCwwLDAsMCwyLjg3Ny0uMiw3LjYzMyw3LjYzMywwLDAsMCwxLjYyOC0uNSw1LjYyOCw1LjYyOCwwLDAsMCwxLjE4Ny0uNzQ4LDQuNDU3LDQuNDU3LDAsMCwwLDEuNTE4LTIuMjcxLDg4LjY5MSw4OC42OTEsMCwwLDAtOS45MS0xLjQwOGwuMDA2LDUuMTMzWlxcXCIgc3R5bGU9XFxcIm9wYWNpdHk6MC4zMDAwMDAwMTE5MjA5Mjk7aXNvbGF0aW9uOmlzb2xhdGU7ZmlsbDp1cmwoI2IpXFxcIi8+PHBhdGggZD1cXFwiTTIwLjM4MywxMS43NDZhNi45OTMsNi45OTMsMCwwLDEsMS4zNiw0LjE0OCw2LjYxOCw2LjYxOCwwLDAsMS0uMSwxLjFjLjA4OCwwLC4xNzYuMDEyLjI2NS4wMTJhNC4xMSw0LjExLDAsMCwwLDQuMjc2LTMuOTIsNC4xMSw0LjExLDAsMCwwLTQuMjc2LTMuOTIsNC40Nyw0LjQ3LDAsMCwwLTIuOTQ2LDEuMDgzQTguMTIzLDguMTIzLDAsMCwxLDIwLjM4MywxMS43NDZaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+PGVsbGlwc2UgY3g9XFxcIjI2Ljc4XFxcIiBjeT1cXFwiOC43NzdcXFwiIHJ4PVxcXCIxLjM3NFxcXCIgcnk9XFxcIjEuMjU5XFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+PHBhdGggZD1cXFwiTTQuNjczLDIzLjg3N2w1LjYyNS0uMDIyYTMxLjg3MSwzMS44NzEsMCwwLDAsMy4zMjYtLjExMWguMDE1YTExLjQ5LDExLjQ5LDAsMCwwLDEuOTcxLS40NzIsOS43MzksOS43MzksMCwwLDAsMy4yNTYtMS43MSw3LjkwNiw3LjkwNiwwLDAsMCwyLjEyOC0yLjU4Miw2Ljk4NSw2Ljk4NSwwLDAsMCwuNDE3LTEuMDM0LDcuMDU2LDcuMDU2LDAsMCwwLC4zMzItMi4wNTEsNi45OTIsNi45OTIsMCwwLDAtMS4zNi00LjE0OCw4LjEsOC4xLDAsMCwwLTEuNDIxLTEuNSw4Ljg3OCw4Ljg3OCwwLDAsMC0yLjI0NC0xLjM1OSwxNS42ODYsMTUuNjg2LDAsMCwwLTYuMDY3LS45NWwtNi4wNzQuMDA5YS42NTguNjU4LDAsMCwwLS4wNzYsMCwuNTg4LjU4OCwwLDAsMC0uNTMyLjU2MmwuMDA5LDYuOTUyLjAxLDcuNzM0QS42MTYuNjE2LDAsMCwwLDQuNjczLDIzLjg3N1ptMy4xLTEyLjkwOCwyLjYxOSwwYTIxLjYyMywyMS42MjMsMCwwLDEsMi41ODguMSw3LjM1NCw3LjM1NCwwLDAsMSwxLjYyOS40MzgsNS44MTQsNS44MTQsMCwwLDEsMS41MDguODIyLDQuMTE2LDQuMTE2LDAsMCwxLDEuNzQ4LDMuNDU4LDQuOTA1LDQuOTA1LDAsMCwxLS4xNzUsMS4zMjcsNC40NTcsNC40NTcsMCwwLDEtMS41MTgsMi4yNzEsNS42MTMsNS42MTMsMCwwLDEtMS4xODcuNzQ4LDcuNjY2LDcuNjY2LDAsMCwxLTEuNjI4LjUsMTYuMDA5LDE2LjAwOSwwLDAsMS0yLjg3Ny4ybC0yLjY5NCwwLS4wMDYtNS4xMzNaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+XCIsXG5cdFwiRGFydFwiOiBcIjxwYXRoIGQ9XFxcIk0xNi43MzksMi4wMzdhMS4zMTQsMS4zMTQsMCwwLDAtLjkxNi4zNzdsLS4wMTMuMDFMNy4yMiw3LjM4OWw4LjU2Niw4LjU2NnYuMDA2bDEwLjMsMTAuMywxLjk2My0zLjUzNkwyMC45NjgsNS43MjhsLTMuMy0zLjNhMS4zMDcsMS4zMDcsMCwwLDAtLjkyNy0uMzg4WlxcXCIgc3R5bGU9XFxcImZpbGw6IzY2YzNmYVxcXCIvPjxwYXRoIGQ9XFxcIk03LjI1LDcuMzUsMi4yODgsMTUuOTMxbC0uMDEuMDEzYTEuMzIyLDEuMzIyLDAsMCwwLS4zNzguOTE5LDEuMywxLjMsMCwwLDAsLjM4Ny45MjRMNi40LDIxLjlsMTYuMDg0LDYuMzI3LDMuNjM2LTIuMDItLjEtLjEtLjAyNSwwLTEwLjA4My0xMC4xSDE1LjlMNy4yNSw3LjM1WlxcXCIgc3R5bGU9XFxcImZpbGw6IzIxNTg5NlxcXCIvPjxwYXRoIGQ9XFxcIk03LjE5Miw3LjM2Mmw4Ljc2NCw4Ljc3M2guMDEzbDEwLjA4NywxMC4xLDMuODM5LS43MzJMMjkuOSwxNC4xNGwtNC4wNTQtMy45NzNhNi41MjEsNi41MjEsMCwwLDAtMy42MjQtMS42MTZsMC0uMDQ0TDcuMTkyLDcuMzYyWlxcXCIgc3R5bGU9XFxcImZpbGw6IzIzNTk5N1xcXCIvPjxwYXRoIGQ9XFxcIk03LjI1Niw3LjQxMWw4Ljc2OCw4Ljc2OHYuMDEzTDI2LjExNiwyNi4yODRsLS43MzQsMy44MzlIMTQuMDIybC0zLjk3MS00LjA1NmE2LjUyMiw2LjUyMiwwLDAsMS0xLjYxNC0zLjYyNWwtLjA0NCwwTDcuMjU2LDcuNDExWlxcXCIgc3R5bGU9XFxcImZpbGw6IzU4YjZmMFxcXCIvPlwiLFxuXHRcIkRoYWxsXCI6IFwiPHBhdGggZD1cXFwiTTE2LDIuMDdBMTMuOTMsMTMuOTMsMCwxLDEsMiwxNiwxMy45MywxMy45MywwLDAsMSwxNiwyLjA3Wk0xMy4yOCwyMi4zMmExLjQ5LDEuNDksMCwxLDEtMSwxLjgzQTEuNDksMS40OSwwLDAsMSwxMy4yOCwyMi4zMlptOC0xNS42OGEuNTMuNTMsMCwwLDEsLjM4LjY2LjUyLjUyLDAsMCwxLS42NS4zOGwtLjUtLjEzYTQyLjY3LDQyLjY3LDAsMCwwLS4zNyw3LjA3QzE4LjA2LDE2LjQ1LDE0LjM5LDIyLDE0LjM5LDIybDEuOTMtNy4xOGExLDEsMCwwLDAsLjg5LS42NS45MS45MSwwLDAsMC0xLjc1LS40NywxLDEsMCwwLDAsLjQ1LDFMMTQsMjEuODVhNjguMzgsNjguMzgsMCwwLDAtMS4zNC05LjI1LDM0LjI4LDM0LjI4LDAsMCwwLDMuMjEtNi4zMWwtLjUtLjEzQS41NS41NSwwLDAsMSwxNSw1LjVhLjUzLjUzLDAsMCwxLC42Ni0uMzhsNS42OCwxLjUyWlxcXCIgc3R5bGU9XFxcImZpbGw6I2I3YjdiNztmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPlwiLFxuXHRcIkRpZmZcIjogXCI8cmVjdCB4PVxcXCI2Ljk3NVxcXCIgeT1cXFwiM1xcXCIgd2lkdGg9XFxcIjE4LjA1XFxcIiBoZWlnaHQ9XFxcIjYuMDE3XFxcIiBzdHlsZT1cXFwiZmlsbDojYzAwMDAwXFxcIi8+PHBhdGggZD1cXFwiTTEyLjk5MiwxMC45NXY2LjAxN0g2Ljk3NXY2LjAxN2g2LjAxN1YyOWg2LjAxN1YyMi45ODNoNi4wMTdWMTYuOTY3SDE5LjAwOFYxMC45NVpcXFwiIHN0eWxlPVxcXCJmaWxsOmdyZWVuXFxcIi8+XCIsXG5cdFwiRGphbmdvL0ppbmphMlwiOiBcIjxkZWZzPjxyYWRpYWxHcmFkaWVudCBpZD1cXFwiYVxcXCIgY3g9XFxcIjE2XFxcIiBjeT1cXFwiLTExOS4yODNcXFwiIHI9XFxcIjEzLjVcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJtYXRyaXgoMSwgMCwgMCwgLTAuOTQ1LCAwLCAtOTYuNzM1KVxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiIzU3NTc1N1xcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiIzJmMmYyZlxcXCIvPjwvcmFkaWFsR3JhZGllbnQ+PC9kZWZzPjx0aXRsZT5maWxlX3R5cGVfamluamE8L3RpdGxlPjxwYXRoIGQ9XFxcIk0yOS4zNCwzLjI0MWEzOC4yNzEsMzguMjcxLDAsMCwxLTkuNDUxLDMuMDRjLTQuMjQxLjU1LTEyLjMyOSwxLjEtMTMuOTM1LjcxMkEyMy4zLDIzLjMsMCwwLDEsMy4yLDYuMTUxbC4zMzQsMS4xMzJMMi41LDguMTg4bC4xODMuMzIzLjQyNC4wMzIsMS4zLjE2Mi4xODMuNTgyLjcyNy4wNjYuMzY0LDEuMjI4czEuNTQ0LjEzLDIsLjEzLDEuMzYzLS4wNjQsMS4zNjMtLjA2NGwuMDMuNDg1LjMzNC4wNjR2LjU1bC0uNzI4LjY0OC4xODMuMDMydi4yMjVhMTUuODE2LDE1LjgxNiwwLDAsMS0yLjMuMDM0Yy0uNjY2LS4xLS43ODgtLjEtLjc4OC0uMWwtLjA2LjA2NC0uMDMuMjkxaC4xNTFsLjA2LDEuMjYyLDMuMzYzLS4xMy0uMjQzLDQuMzY1LS4wMy41NDktMi44NDgtLjE2Mi0uMDMtMS4xNjRoLjYzNWwuMDYxLS40NTMuNTc1LS4xMy4wOTEtLjEyOC0yLjE1MS0uNTE4LTEuNjM2LjQ4NS4yNzMuMjI3aC4yNzNsLjAzLjM4OS41NzUuMDMyVjE4LjdsLS42MzUuMTYyLjEyMS4yNTcuMTUxLjF2Ljg3M2guMzk0djQuMDQxbC0uNjM3LjEuMDkxLDEuMTY0LjM5My4wNjYtLjA2LDIuNjUxLDEuNzI3LjAzMi0uMzY0LTIuNjE5LDIuNjA1LS4wNjQtLjE4MSwxLjQyMi0uMjQzLDEsMi42MzUuMDMyLjAzLTIuNTg2LDEuODE3LS4xNjItLjA5LDEuNjQ5LS4wNjEuOTY5aDEuNTQ2bC0uMDYxLTIuNjUxLjIxMy4wMzQuMDYtMS4yNjJoLS4yNDNsLS4wOS0uNTE4TDEzLjgsMjEuOWwuMDYtMS43MTNoLjMzM1YxOS4xNDlsLS40MjQuMDMyLjA2MS0xLjIyLjQ5My0uMDQ5LjAyMy0uNC4yOC0uMDQxLjI4Ny0uMjE4TDEzLjE4NywxNi45bC0xLjcxMi4zNzkuMTY3LjI3NC4xODEtLjAxNS4yMTEtLjAwOC4wMzkuNS40NzctLjAyMy4wMDksMS4wODItMi4wNTMtLjA0Ny4wNjktMS4xNTYuMDY3LTEuMDUxVjE1LjQ1NUwxMC43LDE0bDQuMTExLS4yMSw0Ljg5Mi0uMjgyLjA0Ni45MjktLjE3NCwyLjIzMUwxOS41LDE4Ljc0NGwtMS44LS4wMzItLjAwOS0xLjQ1NS42NjctLjAyNC4wMy0uNDExLjI3My0uMDQxLS4wMTQtLjA4MS4yNzMtLjAxNS4xNTEtLjJMMTcuMDM0LDE2LDE1LDE2LjQ0bC4xNDQuMjUxLjIyNy0uMDE3di4xMTRoLjI4di40NmwuNi4wMDgtLjAwNywxLjI3N2gtLjYwNWwtLjAwOS4yOTEuMjEzLjAyNC0uMDIzLDEuMTA4LjQ0Ny4wMjQtLjA1Myw0LjM5LS41OTEuMTIuMDA3LjIxaC4yMDZ2MS4xMjRoLjM0bC0uMDksMS41MzZMMTUuOTc0LDI4LjdsMi4xNTEuMDU2LS4wNjktMS4xNjQtLjE1OC0uOTY5LS4wMzEtLjg0MSwxLjgyNi0uMDMyLS4wNTMsMS4zLS4wMDksMS4zNzQsMS4wMzEuMDgxLDEuNC0uMDU2LjQ0LS4xMy0uMjQzLS43MzYtLjA2LTEuMTU2LS4xMTQtLjgyNCwxLjc0Mi0uMDY0LS4wNzYsMS4wMS0uMDA3LDEuNTg1LjcuMDY0LjY5LS4wMTUuMzMzLS4xMDUtLjItMS41TDI1LjIsMjUuNDQ1bC4zLS4wMzJMMjUuNSwyNC40bC4wODMtLjAxNy0uMDE0LS4yMThoLS4zNDFsLS4wNjktLjc0NEwyNS4xMywyMC4ybC4yNTctLjAwOFYxOS4xMzNsLjEwNy4wMTd2LS4yMWwtLjM4LS4wMzQuMDA5LTEuMjI4LjYzNS0uMDU2LS4wMzctLjQxMy4yOC0uMDI0LS4wMTYtLjA4MS4zNzEtLjE4Ni0xLjg4Ni0uMzc5LTEuOTE2LjM4OS4xMjEuMjI2LjMtLjAyNC4wMTYuMWguMjVsLjAxNC40ODUuNjIxLS4wMDguMDUzLDEuMTg4LTIuMi0uMDE3LS4yNTctMS43ODYtLjIwNi0uOTQ2LS4xNjYtMS43LjEtLjk5Myw0LjM3Ny0uMzMyLjAxNC0xLjQ3OS4yMi0uMDU2LS4wMTQtLjIyNS0uMTY3LS4xcy0yLjM5My4zNTUtMy4xNTEuNDM2bC0uMzcxLjA0LS4wMjMtLjI3NC0uOTA1LS40NzQuMDExLS41NTIuMzExLS4wMDkuMDIzLS43NTlhMjQuODA3LDI0LjgwNywwLDAsMCwyLjU0NC0uMjgzYy42ODktLjE2MiwxLjY2Ni0uMzIzLDEuNjY2LS4zMjNMMjYuMiw3LjgwOWwuOTE3LS4yNjcuMDc2LS4yMSwyLjA3NC0uNTc0LjIzNi0uMTk0LS43ODgtMS43MjIuMDc2LS4zODkuNC0uMjEuMjg4LS44ODFaTTE5LjM3NCw5LjhsLS4wMTEuNjI2LjQ3LjAyLS4wMy41OTQtLjkyMS42LS4wNTcuMTc0LjM3MSwwLDAsLjE0Ni0yLjgxNC4xMzcuMDE5LS40MTYuMTI4LS4yMDcuMDA5LS4xMzMsMC0uMjg2LjA4LS4xOS4wMy0uMTU0di0uMTFsLjEyMS0uNDg1Wm0tNS44ODUuNTMzLS4wNjkuNDIxLjIyLjI1OS0uMDE0LjQ1My4yLjMxNS0uMDUzLjM3Mi4xNTEuMjE4LTIuODcxLjExMy0uMDA3LS4xLjMzMy0uMDQxLjAxNi0uMTIyLS43MjctLjM5NS0uMDM5LS42MzEuMzQ4LS4wMTcuMDMtLjY4Wm00LjI0OSw5LjcsMS43NDIuMTEzTDE5LjQyLDIyLjVsLjIyNywxLjkyM0wxNy44LDI0LjM1NFptLTExLjY2My4xLDIuNzg4LjE0NUw4LjYyLDIxLjl2MS4zNTlsLjIuNzU5LTIuNzI3LjEzWm0xNy44NDMuMDE1djQuMDFsLTEuNzcyLjEzLS4wNjEtMi4xMTgtLjItMS45NzNaTTEwLjUsMjAuMjRsMi4wNi4wMDguMDIxLDMuNzE4TDEwLjY1NywyNGwtLjEtMS4yMDUtLjAwNy0xLjJaXFxcIiBzdHlsZT1cXFwic3Ryb2tlOnJlZDtzdHJva2Utd2lkdGg6MC41cHg7ZmlsbDp1cmwoI2EpXFxcIi8+XCIsXG5cdFwiRG9ja2VyXCI6IFwiPHBhdGggZD1cXFwiTTE2LjU0LDEyLjY2M0gxOS40djIuOTI0aDEuNDQ2YTYuMjcyLDYuMjcyLDAsMCwwLDEuOTg4LS4zMzMsNS4wOTEsNS4wOTEsMCwwLDAsLjk2Ni0uNDM2LDMuNTg0LDMuNTg0LDAsMCwxLS42Ny0xLjg0OSwzLjkwNywzLjkwNywwLDAsMSwuNy0yLjc1M2wuMy0uMzQ4LjM1OC4yODhhNC41NTgsNC41NTgsMCwwLDEsMS43OTUsMi44OTIsNC4zNzUsNC4zNzUsMCwwLDEsMy4zMTkuMzA5bC4zOTMuMjI2LS4yMDcuNGE0LjE0MSw0LjE0MSwwLDAsMS00LjE1NywxLjk4M2MtMi40OCw2LjE2OC03Ljg3MSw5LjA4OC0xNC40MDksOS4wODgtMy4zNzgsMC02LjQ3Ni0xLjI2My04LjI0MS00LjI1OWwtLjAyOS0uMDQ5TDIuNywyMC4yMjdhOC4zMTYsOC4zMTYsMCwwLDEtLjY1OS00LjIwOGwuMDQtLjQzM0g0LjUyNlYxMi42NjNINy4zODdWOS44aDUuNzIxVjYuOTQySDE2LjU0djUuNzIxWlxcXCIgc3R5bGU9XFxcImZpbGw6IzAwOTZlNlxcXCIvPjxwYXRoIGQ9XFxcIk0xMi4wMDYsMjQuNTY3YTYuMDIyLDYuMDIyLDAsMCwxLTMuMTQtMy4wODksMTAuMzI5LDEwLjMyOSwwLDAsMS0yLjI2NC4zNDNxLS41LjAyOC0xLjA0NS4wMjgtLjYzMiwwLTEuMzMxLS4wMzdhOS4wNTEsOS4wNTEsMCwwLDAsNywyLjc2OVExMS42MTgsMjQuNTgxLDEyLjAwNiwyNC41NjdaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+PHBhdGggZD1cXFwiTTcuMDgsMTMuMzQ2aC4ydjIuMDY3aC0uMlptLS4zNzYsMGguMnYyLjA2N0g2LjdWMTMuMzQ2Wm0tLjM3NiwwaC4ydjIuMDY3aC0uMlptLS4zNzYsMGguMnYyLjA2N2gtLjJabS0uMzc2LDBoLjJ2Mi4wNjdoLS4yWm0tLjM2OCwwaC4ydjIuMDY3aC0uMlYxMy4zNDZaTTUsMTMuMTRINy40ODJ2Mi40NzlINVptMi44NTktMi44NjFoMi40OHYyLjQ3OUg3Ljg2M1ptMi4wNzcuMjA3aC4ydjIuMDY2aC0uMlptLS4zNzYsMGguMnYyLjA2NmgtLjJabS0uMzc2LDBoLjJ2Mi4wNjZoLS4yVjEwLjQ4NlptLS4zNzYsMGguMnYyLjA2NmgtLjJabS0uMzc2LDBoLjJ2Mi4wNjZoLS4yWm0tLjM2OCwwaC4ydjIuMDY2aC0uMlptLS4yMDcsMi42NTNoMi40OHYyLjQ4SDcuODYzVjEzLjE0Wm0yLjA3Ny4yMDdoLjJ2Mi4wNjdoLS4yWm0tLjM3NiwwaC4ydjIuMDY3aC0uMlptLS4zNzYsMGguMnYyLjA2N2gtLjJWMTMuMzQ2Wm0tLjM3NiwwaC4ydjIuMDY3aC0uMlptLS4zNzYsMGguMnYyLjA2N2gtLjJabS0uMzY4LDBoLjJ2Mi4wNjdoLS4yWm0yLjY1NC0uMjA3SDEzLjJ2Mi40OGgtMi40OFYxMy4xNFptMi4wNzYuMjA3SDEzdjIuMDY3aC0uMlptLS4zNzYsMGguMnYyLjA2N2gtLjJabS0uMzc2LDBoLjJ2Mi4wNjdoLS4yWm0tLjM3NiwwaC4ydjIuMDY3aC0uMlptLS4zNzYsMGguMnYyLjA2N2gtLjJabS0uMzY4LDBoLjJ2Mi4wNjdoLS4yWm0tLjIwNi0zLjA2N0gxMy4ydjIuNDc5aC0yLjQ4VjEwLjI3OVptMi4wNzYuMjA3SDEzdjIuMDY2aC0uMlptLS4zNzYsMGguMnYyLjA2NmgtLjJabS0uMzc2LDBoLjJ2Mi4wNjZoLS4yWm0tLjM3NiwwaC4ydjIuMDY2aC0uMlptLS4zNzYsMGguMnYyLjA2NmgtLjJabS0uMzY4LDBoLjJ2Mi4wNjZoLS4yWm0yLjY1NCwyLjY1M2gyLjQ3OXYyLjQ4aC0yLjQ4VjEzLjE0Wm0yLjA3Ni4yMDdoLjJ2Mi4wNjdoLS4yWm0tLjM3NiwwaC4ydjIuMDY3aC0uMlptLS4zNzYsMGguMnYyLjA2N2gtLjJabS0uMzc2LDBoLjJ2Mi4wNjdoLS4yWm0tLjM3NiwwaC4ydjIuMDY3aC0uMlptLS4zNjgsMGguMTkydjIuMDY3aC0uMlYxMy4zNDZabS0uMjA2LTMuMDY3aDIuNDc5djIuNDc5aC0yLjQ4VjEwLjI3OVptMi4wNzYuMjA3aC4ydjIuMDY2aC0uMlptLS4zNzYsMGguMnYyLjA2NmgtLjJabS0uMzc2LDBoLjJ2Mi4wNjZoLS4yWm0tLjM3NiwwaC4ydjIuMDY2aC0uMlptLS4zNzYsMGguMnYyLjA2NmgtLjJabS0uMzY4LDBoLjE5MnYyLjA2NmgtLjJWMTAuNDg2Wm0tLjIwNi0zLjA2N2gyLjQ3OVY5LjloLTIuNDhWNy40MTlabTIuMDc2LjIwNmguMlY5LjY5MWgtLjJabS0uMzc2LDBoLjJWOS42OTFoLS4yWm0tLjM3NiwwaC4yVjkuNjkxaC0uMlptLS4zNzYsMGguMlY5LjY5MWgtLjJabS0uMzc2LDBoLjJWOS42OTFoLS4yWm0tLjM2OCwwaC4xOTJWOS42OTFoLS4yVjcuNjI1Wm0yLjY1NCw1LjUxNGgyLjQ3OXYyLjQ4aC0yLjQ4VjEzLjE0Wm0yLjA3Ni4yMDdoLjE5NXYyLjA2N2gtLjJWMTMuMzQ2Wm0tLjM3NiwwaC4yMDZ2Mi4wNjdoLS4yMDZabS0uMzc2LDBoLjJ2Mi4wNjdoLS4yWm0tLjM3NiwwaC4ydjIuMDY3aC0uMlptLS4zNzYsMGguMnYyLjA2N2gtLjIwNVYxMy4zNDZabS0uMzY4LDBoLjJ2Mi4wNjdoLS4xOTRWMTMuMzQ2WlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPjxwYXRoIGQ9XFxcIk0xMC4xODgsMTkuNjM4YS42ODQuNjg0LDAsMSwxLS42ODQuNjg0QS42ODQuNjg0LDAsMCwxLDEwLjE4OCwxOS42MzhabTAsLjE5NGEuNDg5LjQ4OSwwLDAsMSwuMTc3LjAzMy4yLjIsMCwxLDAsLjI3NS4yNjkuNDkuNDksMCwxLDEtLjQ1My0uM1pcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz5cIixcblx0XCJET1QgKEdyYXBodml6KVwiOiBcIjxwb2x5Z29uIHBvaW50cz1cXFwiMjMuOTQyIDMwIDEyLjY3OSAzMCAxLjQxNyAzMCAxLjQxNyAxNiAxLjQxNyAyIDEyLjY3OSAyIDIzLjk0MiAyIDIzLjk0MiAxNiAyMy45NDIgMzBcXFwiIHN0eWxlPVxcXCJmaWxsOiNlNmU2ZTZcXFwiLz48cmVjdCB4PVxcXCIyLjEzMlxcXCIgeT1cXFwiMy4yMDJcXFwiIHdpZHRoPVxcXCIyMS4xMzVcXFwiIGhlaWdodD1cXFwiMC4yNjRcXFwiIHN0eWxlPVxcXCJmaWxsOiM0ZWQxZjhcXFwiLz48cmVjdCB4PVxcXCIyLjEzMlxcXCIgeT1cXFwiNy40MlxcXCIgd2lkdGg9XFxcIjIxLjEzNVxcXCIgaGVpZ2h0PVxcXCIwLjI2NFxcXCIgc3R5bGU9XFxcImZpbGw6IzRlZDFmOFxcXCIvPjxyZWN0IHg9XFxcIjIuMTMyXFxcIiB5PVxcXCIxMS42MzhcXFwiIHdpZHRoPVxcXCIyMS4xMzVcXFwiIGhlaWdodD1cXFwiMC4yNjRcXFwiIHN0eWxlPVxcXCJmaWxsOiM0ZWQxZjhcXFwiLz48cmVjdCB4PVxcXCIyLjEzMlxcXCIgeT1cXFwiMTUuODU2XFxcIiB3aWR0aD1cXFwiMjEuMTM1XFxcIiBoZWlnaHQ9XFxcIjAuMjY0XFxcIiBzdHlsZT1cXFwiZmlsbDojNGVkMWY4XFxcIi8+PHJlY3QgeD1cXFwiMi4xMzJcXFwiIHk9XFxcIjIwLjA3NFxcXCIgd2lkdGg9XFxcIjIxLjEzNVxcXCIgaGVpZ2h0PVxcXCIwLjI2NFxcXCIgc3R5bGU9XFxcImZpbGw6IzRlZDFmOFxcXCIvPjxyZWN0IHg9XFxcIjIuMTMyXFxcIiB5PVxcXCIyNC4yOTNcXFwiIHdpZHRoPVxcXCIyMS4xMzVcXFwiIGhlaWdodD1cXFwiMC4yNjRcXFwiIHN0eWxlPVxcXCJmaWxsOiM0ZWQxZjhcXFwiLz48cmVjdCB4PVxcXCIyLjEzMlxcXCIgeT1cXFwiMjguNTExXFxcIiB3aWR0aD1cXFwiMjEuMTM1XFxcIiBoZWlnaHQ9XFxcIjAuMjY0XFxcIiBzdHlsZT1cXFwiZmlsbDojNGVkMWY4XFxcIi8+PHJlY3QgeD1cXFwiMlxcXCIgeT1cXFwiMy4yMDJcXFwiIHdpZHRoPVxcXCIwLjI2NFxcXCIgaGVpZ2h0PVxcXCIyNS41NzNcXFwiIHN0eWxlPVxcXCJmaWxsOiM0ZWQxZjhcXFwiLz48cmVjdCB4PVxcXCI2LjIxOFxcXCIgeT1cXFwiMy4zMzNcXFwiIHdpZHRoPVxcXCIwLjI2NFxcXCIgaGVpZ2h0PVxcXCIyNS4zMzFcXFwiIHN0eWxlPVxcXCJmaWxsOiM0ZWQxZjhcXFwiLz48cmVjdCB4PVxcXCIxMC40MzZcXFwiIHk9XFxcIjMuMzMzXFxcIiB3aWR0aD1cXFwiMC4yNjRcXFwiIGhlaWdodD1cXFwiMjUuMzMxXFxcIiBzdHlsZT1cXFwiZmlsbDojNGVkMWY4XFxcIi8+PHJlY3QgeD1cXFwiMTQuNjU1XFxcIiB5PVxcXCIzLjMzM1xcXCIgd2lkdGg9XFxcIjAuMjY0XFxcIiBoZWlnaHQ9XFxcIjI1LjMzMVxcXCIgc3R5bGU9XFxcImZpbGw6IzRlZDFmOFxcXCIvPjxyZWN0IHg9XFxcIjE4Ljg3M1xcXCIgeT1cXFwiMy4zMzNcXFwiIHdpZHRoPVxcXCIwLjI2NFxcXCIgaGVpZ2h0PVxcXCIyNS4zMzFcXFwiIHN0eWxlPVxcXCJmaWxsOiM0ZWQxZjhcXFwiLz48cmVjdCB4PVxcXCIyMy4wOTFcXFwiIHk9XFxcIjMuMjAyXFxcIiB3aWR0aD1cXFwiMC4yNjRcXFwiIGhlaWdodD1cXFwiMjUuNTczXFxcIiBzdHlsZT1cXFwiZmlsbDojNGVkMWY4XFxcIi8+PGcgc3R5bGU9XFxcIm9wYWNpdHk6MC41XFxcIj48cmVjdCB4PVxcXCIyLjEzMlxcXCIgeT1cXFwiMjcuNDU2XFxcIiB3aWR0aD1cXFwiMjEuMTM1XFxcIiBoZWlnaHQ9XFxcIjAuMjY0XFxcIiBzdHlsZT1cXFwiZmlsbDojNGVkMWY4XFxcIi8+PHJlY3QgeD1cXFwiMi4xMzJcXFwiIHk9XFxcIjI2LjQwMlxcXCIgd2lkdGg9XFxcIjIxLjEzNVxcXCIgaGVpZ2h0PVxcXCIwLjI2NFxcXCIgc3R5bGU9XFxcImZpbGw6IzRlZDFmOFxcXCIvPjxyZWN0IHg9XFxcIjIuMTMyXFxcIiB5PVxcXCIyNS4zNDdcXFwiIHdpZHRoPVxcXCIyMS4xMzVcXFwiIGhlaWdodD1cXFwiMC4yNjRcXFwiIHN0eWxlPVxcXCJmaWxsOiM0ZWQxZjhcXFwiLz48cmVjdCB4PVxcXCIyLjEzMlxcXCIgeT1cXFwiMjMuMjM4XFxcIiB3aWR0aD1cXFwiMjEuMTM1XFxcIiBoZWlnaHQ9XFxcIjAuMjY0XFxcIiBzdHlsZT1cXFwiZmlsbDojNGVkMWY4XFxcIi8+PHJlY3QgeD1cXFwiMi4xMzJcXFwiIHk9XFxcIjIyLjE4NFxcXCIgd2lkdGg9XFxcIjIxLjEzNVxcXCIgaGVpZ2h0PVxcXCIwLjI2NFxcXCIgc3R5bGU9XFxcImZpbGw6IzRlZDFmOFxcXCIvPjxyZWN0IHg9XFxcIjIuMTMyXFxcIiB5PVxcXCIyMS4xMjlcXFwiIHdpZHRoPVxcXCIyMS4xMzVcXFwiIGhlaWdodD1cXFwiMC4yNjRcXFwiIHN0eWxlPVxcXCJmaWxsOiM0ZWQxZjhcXFwiLz48cmVjdCB4PVxcXCIyLjEzMlxcXCIgeT1cXFwiMTkuMDJcXFwiIHdpZHRoPVxcXCIyMS4xMzVcXFwiIGhlaWdodD1cXFwiMC4yNjRcXFwiIHN0eWxlPVxcXCJmaWxsOiM0ZWQxZjhcXFwiLz48cmVjdCB4PVxcXCIyLjEzMlxcXCIgeT1cXFwiMTcuOTY1XFxcIiB3aWR0aD1cXFwiMjEuMTM1XFxcIiBoZWlnaHQ9XFxcIjAuMjY0XFxcIiBzdHlsZT1cXFwiZmlsbDojNGVkMWY4XFxcIi8+PHJlY3QgeD1cXFwiMi4xMzJcXFwiIHk9XFxcIjE2LjkxMVxcXCIgd2lkdGg9XFxcIjIxLjEzNVxcXCIgaGVpZ2h0PVxcXCIwLjI2NFxcXCIgc3R5bGU9XFxcImZpbGw6IzRlZDFmOFxcXCIvPjxyZWN0IHg9XFxcIjIuMTMyXFxcIiB5PVxcXCIxNC44MDJcXFwiIHdpZHRoPVxcXCIyMS4xMzVcXFwiIGhlaWdodD1cXFwiMC4yNjRcXFwiIHN0eWxlPVxcXCJmaWxsOiM0ZWQxZjhcXFwiLz48cmVjdCB4PVxcXCIyLjEzMlxcXCIgeT1cXFwiMTMuNzQ3XFxcIiB3aWR0aD1cXFwiMjEuMTM1XFxcIiBoZWlnaHQ9XFxcIjAuMjY0XFxcIiBzdHlsZT1cXFwiZmlsbDojNGVkMWY4XFxcIi8+PHJlY3QgeD1cXFwiMi4xMzJcXFwiIHk9XFxcIjEyLjY5M1xcXCIgd2lkdGg9XFxcIjIxLjEzNVxcXCIgaGVpZ2h0PVxcXCIwLjI2NFxcXCIgc3R5bGU9XFxcImZpbGw6IzRlZDFmOFxcXCIvPjxyZWN0IHg9XFxcIjIuMTMyXFxcIiB5PVxcXCIxMC41ODNcXFwiIHdpZHRoPVxcXCIyMS4xMzVcXFwiIGhlaWdodD1cXFwiMC4yNjRcXFwiIHN0eWxlPVxcXCJmaWxsOiM0ZWQxZjhcXFwiLz48cmVjdCB4PVxcXCIyLjEzMlxcXCIgeT1cXFwiOS41MjlcXFwiIHdpZHRoPVxcXCIyMS4xMzVcXFwiIGhlaWdodD1cXFwiMC4yNjRcXFwiIHN0eWxlPVxcXCJmaWxsOiM0ZWQxZjhcXFwiLz48cmVjdCB4PVxcXCIyLjEzMlxcXCIgeT1cXFwiOC40NzRcXFwiIHdpZHRoPVxcXCIyMS4xMzVcXFwiIGhlaWdodD1cXFwiMC4yNjRcXFwiIHN0eWxlPVxcXCJmaWxsOiM0ZWQxZjhcXFwiLz48cmVjdCB4PVxcXCIyLjEzMlxcXCIgeT1cXFwiNi4zNjVcXFwiIHdpZHRoPVxcXCIyMS4xMzVcXFwiIGhlaWdodD1cXFwiMC4yNjRcXFwiIHN0eWxlPVxcXCJmaWxsOiM0ZWQxZjhcXFwiLz48cmVjdCB4PVxcXCIyLjEzMlxcXCIgeT1cXFwiNS4zMTFcXFwiIHdpZHRoPVxcXCIyMS4xMzVcXFwiIGhlaWdodD1cXFwiMC4yNjRcXFwiIHN0eWxlPVxcXCJmaWxsOiM0ZWQxZjhcXFwiLz48cmVjdCB4PVxcXCIyLjEzMlxcXCIgeT1cXFwiNC4yNTZcXFwiIHdpZHRoPVxcXCIyMS4xMzVcXFwiIGhlaWdodD1cXFwiMC4yNjRcXFwiIHN0eWxlPVxcXCJmaWxsOiM0ZWQxZjhcXFwiLz48L2c+PGcgc3R5bGU9XFxcIm9wYWNpdHk6MC41XFxcIj48cmVjdCB4PVxcXCIyMi4wMzZcXFwiIHk9XFxcIjMuMzMzXFxcIiB3aWR0aD1cXFwiMC4yNjRcXFwiIGhlaWdodD1cXFwiMjUuMzMxXFxcIiBzdHlsZT1cXFwiZmlsbDojNGVkMWY4XFxcIi8+PHJlY3QgeD1cXFwiMjAuOTgyXFxcIiB5PVxcXCIzLjMzM1xcXCIgd2lkdGg9XFxcIjAuMjY0XFxcIiBoZWlnaHQ9XFxcIjI1LjMzMVxcXCIgc3R5bGU9XFxcImZpbGw6IzRlZDFmOFxcXCIvPjxyZWN0IHg9XFxcIjE5LjkyN1xcXCIgeT1cXFwiMy4zMzNcXFwiIHdpZHRoPVxcXCIwLjI2NFxcXCIgaGVpZ2h0PVxcXCIyNS4zMzFcXFwiIHN0eWxlPVxcXCJmaWxsOiM0ZWQxZjhcXFwiLz48cmVjdCB4PVxcXCIxNy44MThcXFwiIHk9XFxcIjMuMzMzXFxcIiB3aWR0aD1cXFwiMC4yNjRcXFwiIGhlaWdodD1cXFwiMjUuMzMxXFxcIiBzdHlsZT1cXFwiZmlsbDojNGVkMWY4XFxcIi8+PHJlY3QgeD1cXFwiMTYuNzY0XFxcIiB5PVxcXCIzLjMzM1xcXCIgd2lkdGg9XFxcIjAuMjY0XFxcIiBoZWlnaHQ9XFxcIjI1LjMzMVxcXCIgc3R5bGU9XFxcImZpbGw6IzRlZDFmOFxcXCIvPjxyZWN0IHg9XFxcIjE1LjcwOVxcXCIgeT1cXFwiMy4zMzNcXFwiIHdpZHRoPVxcXCIwLjI2NFxcXCIgaGVpZ2h0PVxcXCIyNS4zMzFcXFwiIHN0eWxlPVxcXCJmaWxsOiM0ZWQxZjhcXFwiLz48cmVjdCB4PVxcXCIxMy42XFxcIiB5PVxcXCIzLjMzM1xcXCIgd2lkdGg9XFxcIjAuMjY0XFxcIiBoZWlnaHQ9XFxcIjI1LjMzMVxcXCIgc3R5bGU9XFxcImZpbGw6IzRlZDFmOFxcXCIvPjxyZWN0IHg9XFxcIjEyLjU0NVxcXCIgeT1cXFwiMy4zMzNcXFwiIHdpZHRoPVxcXCIwLjI2NFxcXCIgaGVpZ2h0PVxcXCIyNS4zMzFcXFwiIHN0eWxlPVxcXCJmaWxsOiM0ZWQxZjhcXFwiLz48cmVjdCB4PVxcXCIxMS40OTFcXFwiIHk9XFxcIjMuMzMzXFxcIiB3aWR0aD1cXFwiMC4yNjRcXFwiIGhlaWdodD1cXFwiMjUuMzMxXFxcIiBzdHlsZT1cXFwiZmlsbDojNGVkMWY4XFxcIi8+PHJlY3QgeD1cXFwiOS4zODJcXFwiIHk9XFxcIjMuMzMzXFxcIiB3aWR0aD1cXFwiMC4yNjRcXFwiIGhlaWdodD1cXFwiMjUuMzMxXFxcIiBzdHlsZT1cXFwiZmlsbDojNGVkMWY4XFxcIi8+PHJlY3QgeD1cXFwiOC4zMjdcXFwiIHk9XFxcIjMuMzMzXFxcIiB3aWR0aD1cXFwiMC4yNjRcXFwiIGhlaWdodD1cXFwiMjUuMzMxXFxcIiBzdHlsZT1cXFwiZmlsbDojNGVkMWY4XFxcIi8+PHJlY3QgeD1cXFwiNy4yNzNcXFwiIHk9XFxcIjMuMzMzXFxcIiB3aWR0aD1cXFwiMC4yNjRcXFwiIGhlaWdodD1cXFwiMjUuMzMxXFxcIiBzdHlsZT1cXFwiZmlsbDojNGVkMWY4XFxcIi8+PHJlY3QgeD1cXFwiNS4xNjRcXFwiIHk9XFxcIjMuMzMzXFxcIiB3aWR0aD1cXFwiMC4yNjRcXFwiIGhlaWdodD1cXFwiMjUuMzMxXFxcIiBzdHlsZT1cXFwiZmlsbDojNGVkMWY4XFxcIi8+PHJlY3QgeD1cXFwiNC4xMDlcXFwiIHk9XFxcIjMuMzMzXFxcIiB3aWR0aD1cXFwiMC4yNjRcXFwiIGhlaWdodD1cXFwiMjUuMzMxXFxcIiBzdHlsZT1cXFwiZmlsbDojNGVkMWY4XFxcIi8+PHJlY3QgeD1cXFwiMy4wNTVcXFwiIHk9XFxcIjMuMzMzXFxcIiB3aWR0aD1cXFwiMC4yNjRcXFwiIGhlaWdodD1cXFwiMjUuMzMxXFxcIiBzdHlsZT1cXFwiZmlsbDojNGVkMWY4XFxcIi8+PC9nPjxwYXRoIGQ9XFxcIk0xMyw4Ljk3NmMtMi4zMDgsMC00LjEzMS0xLjI3NC00LjE5My0yLjk2OWgwYTIuNzc1LDIuNzc1LDAsMCwxLDEuMjUzLTIuMzIsNS4zLDUuMywwLDAsMSwyLjk0My0uOTYzLDUuMjk0LDUuMjk0LDAsMCwxLDMuMDA2Ljc0MywyLjc3NSwyLjc3NSwwLDAsMSwxLjQyMSwyLjIyMWMuMDY1LDEuNzUyLTEuNzc5LDMuMTk0LTQuMiwzLjI4M0MxMy4xNTgsOC45NzQsMTMuMDgsOC45NzYsMTMsOC45NzZabS4yMzItNS4ycS0uMDk1LDAtLjE5LDBhNC4yMzgsNC4yMzgsMCwwLDAtMi4zNTQuNzU2LDEuNzYxLDEuNzYxLDAsMCwwLS44MjgsMS40MzVDOS45LDcuMDksMTEuNDI4LDcuOTc4LDEzLjIsNy45MTdzMy4yMjMtMS4wNjksMy4xODEtMi4xOTFhMS43NjEsMS43NjEsMCwwLDAtLjkzMi0xLjM2OUE0LjE2NSw0LjE2NSwwLDAsMCwxMy4yMzQsMy43NzNaXFxcIiBzdHlsZT1cXFwiZmlsbDojNjU2NTY1XFxcIi8+PHBhdGggZD1cXFwiTTYuNCwyOS4yODFBNS4yMzgsNS4yMzgsMCwwLDEsMy42LDI4LjUxOWEyLjc3NSwyLjc3NSwwLDAsMS0xLjQxLTIuMjI5Yy0uMDU2LTEuNzUyLDEuOC0zLjE4NSw0LjIxMy0zLjI2MnM0LjM1NiwxLjIzNiw0LjQxMiwyLjk4OEEyLjc3NSwyLjc3NSwwLDAsMSw5LjU0OCwyOC4zM2E1LjMsNS4zLDAsMCwxLTIuOTQ4Ljk0OFE2LjUsMjkuMjgxLDYuNCwyOS4yODFabS4xODYtNS4yLS4xNTYsMGMtMS43NjYuMDU2LTMuMjI5LDEuMDUyLTMuMTkzLDIuMTc0YTEuNzYxLDEuNzYxLDAsMCwwLC45MjQsMS4zNzQsNC4yMzUsNC4yMzUsMCwwLDAsMi40LjU5Myw0LjIzNSw0LjIzNSwwLDAsMCwyLjM1Ny0uNzQ0LDEuNzYxLDEuNzYxLDAsMCwwLC44MzUtMS40M0M5LjcyNCwyNC45NjEsOC4yOSwyNC4wOCw2LjU5MSwyNC4wOFpcXFwiIHN0eWxlPVxcXCJmaWxsOiM2NTY1NjVcXFwiLz48cGF0aCBkPVxcXCJNMTkuMjYxLDI5LjI2YTUuMjM4LDUuMjM4LDAsMCwxLTIuODA3LS43NjIsMi43NzUsMi43NzUsMCwwLDEtMS40MS0yLjIyOWgwYy0uMDU1LTEuNzUyLDEuOC0zLjE4NSw0LjIxMy0zLjI2MmE1LjMsNS4zLDAsMCwxLDMsLjc1OUEyLjYsMi42LDAsMCwxLDIyLjQsMjguMzFhNS4zLDUuMywwLDAsMS0yLjk0OC45NDhRMTkuMzU4LDI5LjI2LDE5LjI2MSwyOS4yNlpNMTYuMSwyNi4yMzZhMS43NjEsMS43NjEsMCwwLDAsLjkyNCwxLjM3NCw0LjU3LDQuNTcsMCwwLDAsNC43NTctLjE1MSwxLjU1OCwxLjU1OCwwLDAsMC0uMDg5LTIuOCw0LjIyNiw0LjIyNiwwLDAsMC0yLjQtLjU5M2MtMS43NjYuMDU2LTMuMjI4LDEuMDUyLTMuMTkzLDIuMTc0WlxcXCIgc3R5bGU9XFxcImZpbGw6IzY1NjU2NVxcXCIvPjxwYXRoIGQ9XFxcIk02LjIsMjMuNDc3QTI3LjQsMjcuNCwwLDAsMSw5Ljc2OSw4Ljk4NmwuNjg3LjM5MUEyNi42MDksMjYuNjA5LDAsMCwwLDYuOTg2LDIzLjQ1WlxcXCIgc3R5bGU9XFxcImZpbGw6IzY1NjU2NVxcXCIvPjxwYXRoIGQ9XFxcIk0xMC44NTMsNy45NTdhNy4xNzEsNy4xNzEsMCwwLDAtLjA3NSwyLjMybC0uNzU4LS45My0xLjE3OC0uMjNBNy4xNjUsNy4xNjUsMCwwLDAsMTAuODUzLDcuOTU3WlxcXCIgc3R5bGU9XFxcImZpbGw6IzY1NjU2NVxcXCIvPjxwYXRoIGQ9XFxcIk0xOS44NTQsMjMuNDc3bC0uNzktLjAyN2EyNi41OSwyNi41OSwwLDAsMC0uOTE1LTcuODg0LDI2LjYyNCwyNi42MjQsMCwwLDAtMi41NTQtNi4xODlsLjY4Ny0uMzkxYTI3LjQyMywyNy40MjMsMCwwLDEsMi42Myw2LjM3M0EyNy4zNzIsMjcuMzcyLDAsMCwxLDE5Ljg1NCwyMy40NzdaXFxcIiBzdHlsZT1cXFwiZmlsbDojNjU2NTY1XFxcIi8+PHBhdGggZD1cXFwiTTE1LjIsNy45NTdhNy4xNzEsNy4xNzEsMCwwLDAsMi4wMTEsMS4xNTlsLTEuMTc4LjIzLS43NTguOTNBNy4xNjUsNy4xNjUsMCwwLDAsMTUuMiw3Ljk1N1pcXFwiIHN0eWxlPVxcXCJmaWxsOiM2NTY1NjVcXFwiLz48cmVjdCB4PVxcXCIxMS4zNDhcXFwiIHk9XFxcIjkuOTQ1XFxcIiB3aWR0aD1cXFwiMy41MTVcXFwiIGhlaWdodD1cXFwiMC43OTFcXFwiIHRyYW5zZm9ybT1cXFwibWF0cml4KDAuMDE2LCAtMSwgMSwgMC4wMTYsIDIuNTU3LCAyMy4yNzkpXFxcIiBzdHlsZT1cXFwiZmlsbDojNjU2NTY1XFxcIi8+PHBhdGggZD1cXFwiTTEzLjA1NCwxMy41MjlhNy4xNzEsNy4xNzEsMCwwLDAtMS4xLTIuMDQ2bDEuMTIyLjQyNiwxLjEzNS0uMzlBNy4xNjUsNy4xNjUsMCwwLDAsMTMuMDU0LDEzLjUyOVpcXFwiIHN0eWxlPVxcXCJmaWxsOiM2NTY1NjVcXFwiLz48cmVjdCB4PVxcXCI3LjgwOVxcXCIgeT1cXFwiMjAuMDgxXFxcIiB3aWR0aD1cXFwiNC43NTdcXFwiIGhlaWdodD1cXFwiMC43OTFcXFwiIHRyYW5zZm9ybT1cXFwidHJhbnNsYXRlKC0xMi41NiAxOC4xMDgpIHJvdGF0ZSgtNTcuNjAzKVxcXCIgc3R5bGU9XFxcImZpbGw6IzY1NjU2NVxcXCIvPjxwYXRoIGQ9XFxcIk04LjE0NywyMy42OTRhNy4xNzEsNy4xNzEsMCwwLDAsLjEzMy0yLjMxN2wuNzM0Ljk0OSwxLjE3MS4yNkE3LjE2NSw3LjE2NSwwLDAsMCw4LjE0NywyMy42OTRaXFxcIiBzdHlsZT1cXFwiZmlsbDojNjU2NTY1XFxcIi8+PHJlY3QgeD1cXFwiMTUuNDE4XFxcIiB5PVxcXCIxOC4wNTFcXFwiIHdpZHRoPVxcXCIwLjc5MVxcXCIgaGVpZ2h0PVxcXCI0LjkxOVxcXCIgdHJhbnNmb3JtPVxcXCJ0cmFuc2xhdGUoLTguMjU3IDEwLjk1MSkgcm90YXRlKC0zMC43MDgpXFxcIiBzdHlsZT1cXFwiZmlsbDojNjU2NTY1XFxcIi8+PHBhdGggZD1cXFwiTTE3LjgsMjMuODU2YTcuMTcxLDcuMTcxLDAsMCwwLTIuMDA2LTEuMTY4bDEuMTc5LS4yMjUuNzYyLS45MjdBNy4xNjUsNy4xNjUsMCwwLDAsMTcuOCwyMy44NTZaXFxcIiBzdHlsZT1cXFwiZmlsbDojNjU2NTY1XFxcIi8+PHBhdGggZD1cXFwiTTEzLjAyNCwxOS4xMjVhNS4yMzgsNS4yMzgsMCwwLDEtMi44MDctLjc2MiwyLjc3NSwyLjc3NSwwLDAsMS0xLjQxLTIuMjI5LDIuNzc1LDIuNzc1LDAsMCwxLDEuMjY2LTIuMzE0LDUuMyw1LjMsMCwwLDEsMi45NDgtLjk0OCw2LjcxMiw2LjcxMiwwLDAsMSwyLjEzNC4zMTNsLS4zMzEsMWE1LjY2OCw1LjY2OCwwLDAsMC0xLjc2OS0uMjYxLDQuMjM4LDQuMjM4LDAsMCwwLTIuMzU4Ljc0NCwxLjc2MSwxLjc2MSwwLDAsMC0uODM1LDEuNDMsMS43NjEsMS43NjEsMCwwLDAsLjkyNCwxLjM3NCw0LjI0Miw0LjI0MiwwLDAsMCwyLjQuNTkzLDUuNyw1LjcsMCwwLDAsMS42NzgtLjM3OGwuMzc4Ljk4NWE2Ljg0NCw2Ljg0NCwwLDAsMS0yLjAyMi40NDhRMTMuMTIxLDE5LjEyNSwxMy4wMjQsMTkuMTI1WlxcXCIgc3R5bGU9XFxcImZpbGw6IzY1NjU2NVxcXCIvPjxwYXRoIGQ9XFxcIk0xNS40MzUsMTIuODc2YTQuMzM4LDQuMzM4LDAsMCwwLS45ODQsMS42MjIsMi4wNjQsMi4wNjQsMCwwLDEtLjAxNiwyLjgwNiw0LjQsNC40LDAsMCwwLC45ODIsMS42LDMuOTMyLDMuOTMyLDAsMCwwLC4wNzgtNS45ODZDMTUuNDc2LDEyLjksMTUuNDU0LDEyLjg5MywxNS40MzUsMTIuODc2WlxcXCIgc3R5bGU9XFxcImZpbGw6IzY1NjU2NVxcXCIvPjxwYXRoIGQ9XFxcIk0xOS41MjUsMTUuMjc4YTI3LjkzMSwyNy45MzEsMCwwLDAtMS4yNjMtMy43NDIsNC4zNzYsNC4zNzYsMCwwLDAtMS43NzcuNTE3LDI2LjA2MywyNi4wNjMsMCwwLDEsMS4yNTMsMy42ODUsMjYuMDM4LDI2LjAzOCwwLDAsMSwuNzM0LDQuNTM0LDQuMzQ3LDQuMzQ3LDAsMCwwLDEuODI1LS4zNTFBMjcuOSwyNy45LDAsMCwwLDE5LjUyNSwxNS4yNzhaXFxcIiBzdHlsZT1cXFwiZmlsbDojNjU2NTY1XFxcIi8+PHBhdGggZD1cXFwiTTE2LjE1MywxMi4yMjlBNC40MzcsNC40MzcsMCwxLDAsMjIuMywxMy41LDQuNDM3LDQuNDM3LDAsMCwwLDE2LjE1MywxMi4yMjlabTQuODEyLDcuMzMyYTQuMzQ2LDQuMzQ2LDAsMSwxLDEuMjQ5LTYuMDE4QTQuMzQ2LDQuMzQ2LDAsMCwxLDIwLjk2NSwxOS41NjFaXFxcIiBzdHlsZT1cXFwiZmlsbDojMmMyOTI4XFxcIi8+PHBhdGggZD1cXFwiTTIyLjAxNSwxOS4xODZhLjgyMi44MjIsMCwwLDAtLjE5Mi0uMjA5LDQuMzQ3LDQuMzQ3LDAsMCwxLS4zMzMuMzE5LDQuNTIyLDQuNTIyLDAsMCwxLS40NDYuMzM3LDQuNzMsNC43MywwLDAsMS0uOTQuNDc3LjY2OS42NjksMCwwLDAsLjAzMS4xLjY0LjY0LDAsMCwwLC4wNDcuMDk0bC40ODcuOEwyMi41LDE5Ljk4NFpcXFwiIHN0eWxlPVxcXCJmaWxsOiMyODI4MjhcXFwiLz48cmVjdCB4PVxcXCIyMC43OTNcXFwiIHk9XFxcIjIwLjc4NFxcXCIgd2lkdGg9XFxcIjIuMTQ3XFxcIiBoZWlnaHQ9XFxcIjAuNDRcXFwiIHRyYW5zZm9ybT1cXFwidHJhbnNsYXRlKC03Ljc0IDE0LjQ2NSkgcm90YXRlKC0zMS4zOTQpXFxcIiBzdHlsZT1cXFwiZmlsbDojMjgyODI4XFxcIi8+PHJlY3QgeD1cXFwiMjIuODY4XFxcIiB5PVxcXCIyMC45NlxcXCIgd2lkdGg9XFxcIjIuMTQ3XFxcIiBoZWlnaHQ9XFxcIjYuODg3XFxcIiB0cmFuc2Zvcm09XFxcInRyYW5zbGF0ZSgtOS4yMDcgMTYuMDQ0KSByb3RhdGUoLTMxLjM5NClcXFwiIHN0eWxlPVxcXCJmaWxsOiMyODI4MjhcXFwiLz48cGF0aCBkPVxcXCJNMjcuMDU0LDI3LjQ0M2wtLjIzNi0uMzg3LTEuODMzLDEuMTE5LjIzNi4zODdhLjkyNC45MjQsMCwwLDAsMS4yNzkuMTU5bC4xMS0uMDY3QS45MjQuOTI0LDAsMCwwLDI3LjA1NCwyNy40NDNaXFxcIiBzdHlsZT1cXFwiZmlsbDojMjgyODI4XFxcIi8+PHBhdGggZD1cXFwiTTIwLjY4LDE0Ljg0NWEuMzE1LjMxNSwwLDAsMSwuMzM4LjAyNywxLjA3OCwxLjA3OCwwLDAsMSwuMjk0LjU3OCwxLjEsMS4xLDAsMCwxLC4wMjkuNjU0LjMyNy4zMjcsMCwwLDEtLjI3OC4yLjQ2OC40NjgsMCwwLDEtLjM3LS4xLjkyMi45MjIsMCwwLDEtLjI2Mi0uNS45NTUuOTU1LDAsMCwxLS4wMS0uNTg1QS40NjYuNDY2LDAsMCwxLDIwLjY4LDE0Ljg0NVptLjA2LjIyN2EuMTQ5LjE0OSwwLDAsMC0uMDc0LjA2My4yNDcuMjQ3LDAsMCwwLS4wMjcuMTMyLDEuNjI2LDEuNjI2LDAsMCwwLC4wNjQuMzU1LDEuNTkyLDEuNTkyLDAsMCwwLC4xMTIuMzI5LjI2OC4yNjgsMCwwLDAsLjA5NC4xMS4xNDIuMTQyLDAsMCwwLC4wOTQuMDE1LjEyMS4xMjEsMCwwLDAsLjA3OC0uMDQ4LjIxMS4yMTEsMCwwLDAsLjAyOC0uMTI4LDIuNjQzLDIuNjQzLDAsMCwwLS4xODYtLjcyMi4yMzUuMjM1LDAsMCwwLS4wOTMtLjEwN0EuMTE2LjExNiwwLDAsMCwyMC43MzksMTUuMDcyWlxcXCIgc3R5bGU9XFxcImZpbGw6IzAwZmY4MFxcXCIvPjxwYXRoIGQ9XFxcIk0yMS42OTQsMTQuNGEuMy4zLDAsMCwxLC4zNDYuMDU3LDEuNDkzLDEuNDkzLDAsMCwxLC4zMjUuNywxLjUyMSwxLjUyMSwwLDAsMSwuMDYuNzcxLjMxLjMxLDAsMCwxLS4yNy4yMjguNDQ2LjQ0NiwwLDAsMS0uMzc5LS4xMzcsMS4zMSwxLjMxLDAsMCwxLS4yOTItLjYxNywxLjM0MSwxLjM0MSwwLDAsMS0uMDQxLS43QS40NDEuNDQxLDAsMCwxLDIxLjY5NCwxNC40Wm0uMDcyLjI3M2EuMTM2LjEzNiwwLDAsMC0uMDcyLjA2OS4zMTUuMzE1LDAsMCwwLS4wMjEuMTU1LDIuMzUxLDIuMzUxLDAsMCwwLC4wODQuNDI3LDIuMzEsMi4zMSwwLDAsMCwuMTMxLjQuMzQ3LjM0NywwLDAsMCwuMS4xMzUuMTMuMTMsMCwwLDAsLjEuMDIxLjExLjExLDAsMCwwLC4wNzYtLjA1NC4yNzUuMjc1LDAsMCwwLC4wMjItLjE1LDMuNzczLDMuNzczLDAsMCwwLS4yMjQtLjg2Mi4zMTEuMzExLDAsMCwwLS4xLS4xMzJBLjEuMSwwLDAsMCwyMS43NjYsMTQuNjc0WlxcXCIgc3R5bGU9XFxcImZpbGw6IzAwZmY4MFxcXCIvPjxwYXRoIGQ9XFxcIk0yMy40NzIsMTUuOTM0bC0uMjY5LjAzOC0uMzc5LTEuNDM5YS45NTUuOTU1LDAsMCwxLS4yNTcuMzkybC0uMDg3LS4zMzFhLjg0MS44NDEsMCwwLDAsLjE2OS0uMjYuODc0Ljg3NCwwLDAsMCwuMDc1LS4zODNsLjItLjA4OVpcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMGZmODBcXFwiLz48cGF0aCBkPVxcXCJNMjQuNDU1LDE1Ljc5NGwtLjI2OS4wMzgtLjQyOS0xLjYyNWExLDEsMCwwLDEtLjI0Ny40MjlsLS4xLS4zNzZhLjg3NC44NzQsMCwwLDAsLjE2Mi0uMjg0LDEuMDI4LDEuMDI4LDAsMCwwLC4wNjQtLjQyNGwuMi0uMDg5WlxcXCIgc3R5bGU9XFxcImZpbGw6IzAwZmY4MFxcXCIvPjxwYXRoIGQ9XFxcIk0yNC42MzYsMTMuMTE3Yy4xMjctLjA1NS4yNDktLjAwOC4zNjkuMTQ0YTMuMTEsMy4xMSwwLDAsMSwuNDE2LDEuMDM0LDMuMTQzLDMuMTQzLDAsMCwxLC4xNTEsMS4xMWMtLjAyOS4xOS0uMTExLjI5NC0uMjQ3LjMxMnMtLjI3Mi0uMDU5LS40LS4yMzFhMi44NTUsMi44NTUsMCwwLDEtLjM4MS0uOTUsMi44NzEsMi44NzEsMCwwLDEtLjEzMi0xLjAzOUEuNDM3LjQzNywwLDAsMSwyNC42MzYsMTMuMTE3Wm0uMTA3LjRhLjEyNC4xMjQsMCwwLDAtLjA2Ny4wODguNTg0LjU4NCwwLDAsMCwwLC4yMjEsNS4yMTgsNS4yMTgsMCwwLDAsLjEzOS42MzUsNS4xNTMsNS4xNTMsMCwwLDAsLjE4NC42LjY2LjY2LDAsMCwwLC4xMi4yMDguMTE4LjExOCwwLDAsMCwuMS4wNC4xLjEsMCwwLDAsLjA3MS0uMDcyLjUyOC41MjgsMCwwLDAsMC0uMjE2LDUuNDQyLDUuNDQyLDAsMCwwLS4xNDQtLjY1Myw1LjQ0Nyw1LjQ0NywwLDAsMC0uMTg5LS42MTkuNjEyLjYxMiwwLDAsMC0uMTE5LS4yMDVBLjA5My4wOTMsMCwwLDAsMjQuNzQzLDEzLjUyMlpcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMGZmODBcXFwiLz48cGF0aCBkPVxcXCJNMjYuNjM4LDE1LjQ4OGwtLjI2OS4wMzgtLjU0LTIuMDM5QTEuMTUxLDEuMTUxLDAsMCwxLDI1LjYsMTRsLS4xMjYtLjQ3NWEuOTkuOTksMCwwLDAsLjE0OC0uMzM3LDEuNDM2LDEuNDM2LDAsMCwwLC4wMzktLjUxNWwuMi0uMDg4WlxcXCIgc3R5bGU9XFxcImZpbGw6IzAwZmY4MFxcXCIvPjxwYXRoIGQ9XFxcIk0yNi42NjYsMTIuMjM2Yy4xMjctLjA1NS4yNTUuMDEyLjM4NS4yYTQuNTg0LDQuNTg0LDAsMCwxLC40NzgsMS4yNjgsNC42Miw0LjYyLDAsMCwxLC4yMTMsMS4zNDNjLS4wMTguMjI5LS4xLjM1Mi0uMjMyLjM3cy0uMjc4LS4wODEtLjQyMS0uM2E0LjI4NCw0LjI4NCwwLDAsMS0uNDQzLTEuMTc5LDQuMjgzLDQuMjgzLDAsMCwxLS4xOTQtMS4yNzJDMjYuNDY4LDEyLjQzOCwyNi41MzksMTIuMjkxLDI2LjY2NiwxMi4yMzZabS4xMzEuNXEtLjA0Ni4wMTgtLjA2NC4xYS44MjkuODI5LDAsMCwwLC4wMDkuMjY2LDcuODU2LDcuODU2LDAsMCwwLC4xNzguNzc5cS4xNDMuNTQxLjIyMS43MzhhLjk0Ny45NDcsMCwwLDAsLjEzNC4yNTguMTE5LjExOSwwLDAsMCwuMS4wNTJxLjA0OC0uMDA5LjA2OC0uMDg1YS43NjIuNzYyLDAsMCwwLS4wMDgtLjI2Miw4LjExNyw4LjExNywwLDAsMC0uMTgyLS44cS0uMTQ4LS41NTctLjIyNy0uNzU3YS44OTIuODkyLDAsMCwwLS4xMzMtLjI1NlEyNi44NDMsMTIuNzE0LDI2LjgsMTIuNzMyWlxcXCIgc3R5bGU9XFxcImZpbGw6IzAwZmY4MFxcXCIvPjxwYXRoIGQ9XFxcIk0yNy42ODEsMTEuOGMuMTI3LS4wNTUuMjU3LjAyMy4zOTMuMjM0YTUuNDMxLDUuNDMxLDAsMCwxLC41MDksMS4zODUsNS40NjcsNS40NjcsMCwwLDEsLjI0NCwxLjQ2Yy0uMDEzLjI0OS0uMDg4LjM4MS0uMjI0LjRzLS4yODEtLjA5Mi0uNDMtLjMyOGE1LjExLDUuMTEsMCwwLDEtLjQ3My0xLjI5NCw1LjEsNS4xLDAsMCwxLS4yMjUtMS4zODhDMjcuNDg2LDEyLjAwOCwyNy41NTUsMTEuODUxLDI3LjY4MSwxMS44Wm0uMTQ0LjU0MnEtLjA0Ni4wMTgtLjA2Mi4xMDZhLjk3Ljk3LDAsMCwwLC4wMTUuMjg5cS4wNC4yNTkuMi44NTF0LjI0LjgwN2ExLjExMiwxLjExMiwwLDAsMCwuMTQuMjg0cS4wNTcuMDY3LjEwNi4wNTl0LjA2Ni0uMDkxYS45LjksMCwwLDAtLjAxNC0uMjg0cS0uMDQtLjI2LS4yLS44Njd0LS4yNDUtLjgyN2ExLjA1MywxLjA1MywwLDAsMC0uMTQtLjI4MVEyNy44NzEsMTIuMzIsMjcuODI1LDEyLjMzOFpcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMGZmODBcXFwiLz48cGF0aCBkPVxcXCJNMjkuOTE1LDE1LjAzNGwtLjI3LjAzNy0uNzA2LTIuNjYxYTEuNDc4LDEuNDc4LDAsMCwxLS4xOTIuNjM2bC0uMTY2LS42MjVBMS4yNDgsMS4yNDgsMCwwLDAsMjguNzA4LDEyYTIuMjE0LDIuMjE0LDAsMCwwLDAtLjY1M2wuMi0uMDg4WlxcXCIgc3R5bGU9XFxcImZpbGw6IzAwZmY4MFxcXCIvPjxwYXRoIGQ9XFxcIk0yOS43MTIsMTAuOTIxYy4xMjctLjA1NC4yNjMuMDQzLjQwOS4yOTRhNy4zNDUsNy4zNDUsMCwwLDEsLjU3MiwxLjYxOUE3LjM4Miw3LjM4MiwwLDAsMSwzMSwxNC41MjdjMCwuMjg4LS4wNzIuNDQtLjIwOS40NThzLS4yODYtLjExNC0uNDQ3LS4zOTNhNi45ODQsNi45ODQsMCwwLDEtLjUzNS0xLjUyNCw2Ljk0NCw2Ljk0NCwwLDAsMS0uMjg3LTEuNjIxQzI5LjUyMywxMS4xNTEsMjkuNTg2LDEwLjk3NSwyOS43MTIsMTAuOTIxWm0uMTY4LjYzM3EtLjA0Ni4wMTgtLjA1OS4xMTlhMS4yODcsMS4yODcsMCwwLDAsLjAyNy4zMzRxLjA1MS4zLjIzNS45OTR0LjI3Ny45NDZhMS40ODQsMS40ODQsMCwwLDAsLjE1NC4zMzRxLjA2LjA4LjEwOS4wNzF0LjA2My0uMWExLjIsMS4yLDAsMCwwLS4wMjYtLjMzcS0uMDUxLS4zLS4yMzktMS4wMTF0LS4yODItLjk2NWExLjQyLDEuNDIsMCwwLDAtLjE1My0uMzMyUTI5LjkyNiwxMS41MzYsMjkuODgsMTEuNTUzWlxcXCIgc3R5bGU9XFxcImZpbGw6IzAwZmY4MFxcXCIvPjxwYXRoIGQ9XFxcIk0yMS4xNjcsMTYuMzYyYS40MjIuNDIyLDAsMCwxLC4zMTguMTg1LDEuMDA1LDEuMDA1LDAsMCwxLS4yNzcsMS4wMy40Mi40MiwwLDAsMS0uMzY2LDAsLjU5LjU5LDAsMCwxLS4zMTEtLjI2MS44MDguODA4LDAsMCwxLC4yNTQtLjg5M0EuNTYxLjU2MSwwLDAsMSwyMS4xNjcsMTYuMzYyWm0tLjA1MS4xODlhLjE3NS4xNzUsMCwwLDAtLjE5Mi4wODcsMS40ODcsMS40ODcsMCwwLDAtLjE1NS41NjcuMjE2LjIxNiwwLDAsMCwuMDM5LjEyNC4xOTEuMTkxLDAsMCwwLC4wODQuMDU4LjE0NS4xNDUsMCwwLDAsLjE4OC0uMDY5LDEuNjY2LDEuNjY2LDAsMCwwLC4xNjQtLjYuMTg5LjE4OSwwLDAsMC0uMDQtLjEyMUEuMTYzLjE2MywwLDAsMCwyMS4xMTcsMTYuNTUxWlxcXCIgc3R5bGU9XFxcImZpbGw6IzAwZmY4MFxcXCIvPjxwYXRoIGQ9XFxcIk0yMi4zNzYsMTYuNTQ4YS4zODIuMzgyLDAsMCwxLC4zMTEuMjEyLDEuMDI0LDEuMDI0LDAsMCwxLS4wMTkuNjYsMS4wMjIsMS4wMjIsMCwwLDEtLjMxNS41ODEuMzguMzgsMCwwLDEtLjM3My4wMjUuNTMzLjUzMywwLDAsMS0uMy0uMjksMS4xODksMS4xODksMCwwLDEsLjMwOS0xLjFBLjUuNSwwLDAsMSwyMi4zNzYsMTYuNTQ4Wm0tLjA2Mi4yM2EuMTY3LjE2NywwLDAsMC0uMS4wMTMuMjM1LjIzNSwwLDAsMC0uMS4xLDIuMjE5LDIuMjE5LDAsMCwwLS4xODkuNjk0LjI2OS4yNjksMCwwLDAsLjAzMy4xNDcuMTY3LjE2NywwLDAsMCwuMDgzLjA2NC4xNDMuMTQzLDAsMCwwLC4xLDAsLjIwNi4yMDYsMCwwLDAsLjA5NC0uMSwyLjQzNiwyLjQzNiwwLDAsMCwuMi0uNzI3LjI0LjI0LDAsMCwwLS4wMzQtLjE0NEEuMTQxLjE0MSwwLDAsMCwyMi4zMTQsMTYuNzc4WlxcXCIgc3R5bGU9XFxcImZpbGw6IzAwZmY4MFxcXCIvPjxwYXRoIGQ9XFxcIk0yMy4zNywxOC41NDFsLS4yODEtLjExLjMyOC0xLjIyNWExLDEsMCwwLDEtLjQ0Mi4xNTJsLjA3NS0uMjgxYS44ODEuODgxLDAsMCwwLC4yOTItLjEuNjguNjgsMCwwLDAsLjI1OS0uMjM4bC4yNDIuMDM3WlxcXCIgc3R5bGU9XFxcImZpbGw6IzAwZmY4MFxcXCIvPjxwYXRoIGQ9XFxcIk0yNC43OTMsMTYuOTE5YS4zNDguMzQ4LDAsMCwxLC4zLjI2NiwxLjc1MSwxLjc1MSwwLDAsMS0uMDc1Ljg3LDEuNzQ5LDEuNzQ5LDAsMCwxLS4zNzEuNzkxLjM0NS4zNDUsMCwwLDEtLjM4OC4wNzguNDg4LjQ4OCwwLDAsMS0uMjg4LS4zNDgsMS41ODcsMS41ODcsMCwwLDEsLjA2Ny0uNzksMS41NzcsMS41NzcsMCwwLDEsLjM1NC0uNzI3QS40NTcuNDU3LDAsMCwxLDI0Ljc5MywxNi45MTlabS0uMDg0LjMxMmEuMTQzLjE0MywwLDAsMC0uMTA3LjAyNS4zNTMuMzUzLDAsMCwwLS4xMDYuMTQxLDQuMTI2LDQuMTI2LDAsMCwwLS4yNTcuOTQ4LjQwOC40MDgsMCwwLDAsLjAyMS4xOTIuMTQzLjE0MywwLDAsMCwuMDguMDc1LjEyLjEyLDAsMCwwLC4xLS4wMTEuMzE4LjMxOCwwLDAsMCwuMTA1LS4xMzcsNC40MTgsNC40MTgsMCwwLDAsLjI2Ni0uOTgxLjM3NC4zNzQsMCwwLDAtLjAyMi0uMTg5QS4xMTkuMTE5LDAsMCwwLDI0LjcxLDE3LjIzMVpcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMGZmODBcXFwiLz48cGF0aCBkPVxcXCJNMjUuNjQ5LDE5LjQzbC0uMjgxLS4xMS40MjgtMS42YTEuMDMzLDEuMDMzLDAsMCwxLS40NjIuMjI3bC4xLS4zNzFhLjkuOSwwLDAsMCwuMy0uMTUxLjkzLjkzLDAsMCwwLC4yODEtLjMyMWwuMjQyLjAzN1pcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMGZmODBcXFwiLz48cGF0aCBkPVxcXCJNMjcuMjExLDE3LjI5MWEuMzQ0LjM0NCwwLDAsMSwuMjgyLjMxOSwyLjY5MiwyLjY5MiwwLDAsMS0uMTMxLDEuMDgsMi42OSwyLjY5LDAsMCwxLS40MjcsMSwuMzQuMzQsMCwwLDEtLjQuMTMuNDg3LjQ4NywwLDAsMS0uMjczLS40MDUsMi40OTQsMi40OTQsMCwwLDEsLjEyMi0xLDIuNDcsMi40NywwLDAsMSwuNDEtLjkzN0EuNDUxLjQ1MSwwLDAsMSwyNy4yMTEsMTcuMjkxWm0tLjEwNi4zOTRhLjEzMy4xMzMsMCwwLDAtLjExLjAzNi41MDkuNTA5LDAsMCwwLS4xMTcuMTgyLDYuNjIyLDYuNjIyLDAsMCwwLS4zMjUsMS4yLjU5MS41OTEsMCwwLDAsLjAwOS4yMzcuMTMzLjEzMywwLDAsMCwuMDc3LjA4Ni4xMS4xMSwwLDAsMCwuMTA3LS4wMjMuNDY1LjQ2NSwwLDAsMCwuMTE2LS4xNzgsNC42MzksNC42MzksMCwwLDAsLjItLjYxOSw0LjY1OCw0LjY1OCwwLDAsMCwuMTM2LS42MTUuNTUyLjU1MiwwLDAsMC0uMDEtLjIzNUEuMTEuMTEsMCwwLDAsMjcuMTA1LDE3LjY4NVpcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMGZmODBcXFwiLz48cGF0aCBkPVxcXCJNMjcuOTI3LDIwLjMybC0uMjgxLS4xMS41MjgtMS45NzFhMS4xMzQsMS4xMzQsMCwwLDEtLjQ4Mi4zbC4xMjMtLjQ2YS45NzIuOTcyLDAsMCwwLC4zMTctLjIsMS4yNDgsMS4yNDgsMCwwLDAsLjMtLjRsLjI0Mi4wMzdaXFxcIiBzdHlsZT1cXFwiZmlsbDojMDBmZjgwXFxcIi8+PHBhdGggZD1cXFwiTTI4Ljk1MywyMC43MjFsLS4yODEtLjExLjU3My0yLjEzOWExLjIsMS4yLDAsMCwxLS40OTEuMzM2bC4xMzQtLjVhMS4wMiwxLjAyLDAsMCwwLC4zMjMtLjIyLDEuNDEzLDEuNDEzLDAsMCwwLC4zMTQtLjQ0bC4yNDIuMDM3WlxcXCIgc3R5bGU9XFxcImZpbGw6IzAwZmY4MFxcXCIvPjxwYXRoIGQ9XFxcIk0zMC43MTcsMTcuODNjLjE1MS4wMjMuMjM4LjE1NS4yNjIuNGE0LjQzNiw0LjQzNiwwLDAsMS0uMjEzLDEuMzg1LDQuNDM0LDQuNDM0LDAsMCwxLS41MDksMS4zMDdjLS4xNC4xOTUtLjI4LjI2My0uNDIyLjIwN3MtLjIyNi0uMjItLjI1LS40ODlhNC4xOTQsNC4xOTQsMCwwLDEsLjItMS4zLDQuMTQzLDQuMTQzLDAsMCwxLC40OTItMS4yNDFDMzAuNDIsMTcuOSwzMC41NjYsMTcuODA3LDMwLjcxNywxNy44M1ptLS4xMzcuNTEzYS4xMzIuMTMyLDAsMCwwLS4xMTUuMDUzLjguOCwwLDAsMC0uMTMzLjI0MSw3LjU4Nyw3LjU4NywwLDAsMC0uMjQ0Ljc5MSw3LjUzOSw3LjUzOSwwLDAsMC0uMTguNzc5LjkzLjkzLDAsMCwwLS4wMDkuMy4xMzEuMTMxLDAsMCwwLC4wNzMuMS4xMDguMTA4LDAsMCwwLC4xMTEtLjAzOS43NDIuNzQyLDAsMCwwLC4xMzItLjIzNyw3LjgsNy44LDAsMCwwLC4yNDgtLjgwNiw3LjgzNSw3LjgzNSwwLDAsMCwuMTg1LS44Ljg4NC44ODQsMCwwLDAsLjAwOC0uM1EzMC42MzMsMTguMzUzLDMwLjU4LDE4LjM0M1pcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMGZmODBcXFwiLz5cIixcblx0XCJFZGl0b3JDb25maWdcIjogXCI8cGF0aCBkPVxcXCJNOC43MDksMTguMzUxYTEuMjY3LDEuMjY3LDAsMCwwLC41MzItMS4zNzlDOC42OTIsMTcuMjA3LDguNzE4LDE3Ljc0OSw4LjcwOSwxOC4zNTFaXFxcIiBzdHlsZT1cXFwiZmlsbDojZTNlM2Y4XFxcIi8+PHBhdGggZD1cXFwiTTE0LjkyNCwxOS44NTJhLjg3MS44NzEsMCwwLDAsLjYyLTEuMTM1QTEuNDMsMS40MywwLDAsMCwxNC45MjQsMTkuODUyWlxcXCIgc3R5bGU9XFxcImZpbGw6I2UzZTNmOFxcXCIvPjxwYXRoIGQ9XFxcIk0yLjcxMywyNy4wNzlhMS41MzgsMS41MzgsMCwwLDAsLjUyNCwxLjM1M2MxLjQxNC43OTQsNi4zNzIuMTc1LDguMDU2LS4yYTE0Ljk5NCwxNC45OTQsMCwwLDAsMi40MjYtMS4yMTMsMjIuNjQzLDIyLjY0MywwLDAsMCw0LjcxMy0yLjU1N2MxLjA4Mi0uNzk0LDIuOC0zLjAyOSwyLjk4NS00LjM2NGwtMS40NzUtLjMzMmMtLjAzNSwxLjUtLjM3NSwxLjg0Mi0xLjcxMSwyLjE5MWExMC42NjIsMTAuNjYyLDAsMCwxLTMuNTcuMTQsMy4zNjIsMy4zNjIsMCwwLDEtMi4zMTMtMS41NjJjLTEuMDY1LTEuNDE0LjIzNi0yLjQtMS40NDktMi41LTEuNzcyLDIuMTczLTQuOS42MTEtNi4yNjcuMzkzYTMwLjA2NiwzMC4wNjYsMCwwLDAtMS45MzgsNy42LDIuNzQ4LDIuNzQ4LDAsMCwxLDIuMTM4LjMyM2MyLjY4OCwxLjAzOS4zNCwxLjk1NS0uNzMzLDEuNjg1QzMuMzY4LDI3Ljg2NCwzLjE0MSwyNy4zODQsMi43MTMsMjcuMDc5WlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZkZmRmZFxcXCIvPjxwYXRoIGQ9XFxcIk02LjIzMSwxNC41MzdhMTEuNTM5LDExLjUzOSwwLDAsMSwyLjk4NSwxLjEyNmMxLjUxLjc1MSwxLjc4MS42NDYsMS45MiwxLjY5My4wMTcuMTkyLS4wMTcuMy41MzIuNDcxLjkyNS4yODgtLjUzMi0uMjI3LDEuOTQ2LS4yMThBMTYuNjQsMTYuNjQsMCwwLDEsMTkuNTU5LDE4LjljLjQ1NC4yODguMzY3LjY1NSwxLjkuNjExYTE4Ljc2NywxOC43NjcsMCwwLDAtMS4yLTYuMTYyYy0uODY0LTIuMDA3LTIuMDA3LTIuMzEzLTQuMzM4LTMuMDY0LTEuMzYyLS40MzYtNS4zNTktLjkxNi02LjYtLjE0OC0xLjE2MS43MjQtMS4zNzksMS41ODktMi40NjEsMy4xMDdBNS4zNjYsNS4zNjYsMCwwLDAsNi4yMzEsMTQuNTM3WlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZkZmRmZFxcXCIvPjxwYXRoIGQ9XFxcIk0xNS44NCwxOC4yNDZjLjg3My4zNTgtLjA0NCwyLjY3MS0xLjI1NywyLjExMi0uMzkzLTEuMTA4LjU0MS0xLjczNy43OTQtMi4yMzRhOC41MSw4LjUxLDAsMCwwLTIuNDYxLS4xNDhjLS41NzYuMjE4LS43MDcsMS40NDktLjQxLDIuMDI1LDEuNCwyLjc0MSw3LjU2NywyLjE1Niw2LjkxMy4wMjYtLjI2Mi0uODY0LS41MDYtMS0xLjM4OC0xLjNBNi44ODUsNi44ODUsMCwwLDAsMTUuODQsMTguMjQ2WlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZkZmRmZFxcXCIvPjxwYXRoIGQ9XFxcIk00Ljg2OSwxNy45NDFjLjcuNjcyLDIuMjc4Ljc3NywzLjMuODI5QzguMywxNy40MTcsOC40MTMsMTYuNCw5LjUsMTYuNDgzYTEuNiwxLjYsMCwwLDEtLjMwNSwyLjEzLDEuMzg2LDEuMzg2LDAsMCwwLDEuMzYyLTEuNzYzLDE0LjU0MiwxNC41NDIsMCwwLDAtNC40Ni0xLjg5NEE5LjUwNiw5LjUwNiwwLDAsMCw0Ljg2OSwxNy45NDFaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmRmZGZkXFxcIi8+PHBhdGggZD1cXFwiTTMuMjI4LDI2LjU4MWMuNTc2LS4wNTIsMi4wNzcuMzg0LDIuMi44NzNDNC40OTQsMjcuNTY4LDMuMzA3LDI3LjQ4LDMuMjI4LDI2LjU4MVptLS41MTUuNWMuNDI4LjMwNS42NTUuNzg2LDEuMzg4Ljk2LDEuMDc0LjI3MSwzLjQyMS0uNjQ2LjczMy0xLjY4NUEyLjc0OCwyLjc0OCwwLDAsMCwyLjcsMjYuMDMyYTMwLjA2NiwzMC4wNjYsMCwwLDEsMS45MzgtNy42YzEuMzcuMjE4LDQuNDk1LDEuNzgxLDYuMjY3LS4zOTMsMS42ODUuMS4zODQsMS4wODIsMS40NDksMi41QTMuMzYyLDMuMzYyLDAsMCwwLDE0LjY2MiwyMi4xYTEwLjY2MiwxMC42NjIsMCwwLDAsMy41Ny0uMTRjMS4zMzUtLjM0OSwxLjY3Ni0uNjksMS43MTEtMi4xOTFsMS40NzUuMzMyYy0uMTgzLDEuMzM1LTEuOSwzLjU3LTIuOTg1LDQuMzY0YTIyLjY0MywyMi42NDMsMCwwLDEtNC43MTMsMi41NTcsMTQuOTk0LDE0Ljk5NCwwLDAsMS0yLjQyNiwxLjIxM2MtMS42ODUuMzc1LTYuNjQyLDEtOC4wNTYuMkExLjUzOCwxLjUzOCwwLDAsMSwyLjcxMywyNy4wNzlabTEyLjIxMS03LjIyN2ExLjQzLDEuNDMsMCwwLDEsLjYyLTEuMTM1QS44NzEuODcxLDAsMCwxLDE0LjkyNCwxOS44NTJabS45MTYtMS42MDZhNi44ODUsNi44ODUsMCwwLDEsMi4xOTEuNDhjLjg4Mi4zLDEuMTI2LjQzNiwxLjM4OCwxLjMuNjU1LDIuMTMtNS41MTYsMi43MTQtNi45MTMtLjAyNi0uMy0uNTc2LS4xNjYtMS44MDcuNDEtMi4wMjVhOC41MSw4LjUxLDAsMCwxLDIuNDYxLjE0OGMtLjI1My41LTEuMTg3LDEuMTI2LS43OTQsMi4yMzRDMTUuOCwyMC45MTcsMTYuNzEzLDE4LjYsMTUuODQsMTguMjQ2Wm0tNy4xMzEuMWMuMDA5LS42LS4wMTctMS4xNDMuNTMyLTEuMzc5QTEuMjY3LDEuMjY3LDAsMCwxLDguNzA5LDE4LjM1MVptLTMuODQtLjQxYTkuNTA2LDkuNTA2LDAsMCwxLDEuMjIyLTIuOTg1LDE0LjU0MiwxNC41NDIsMCwwLDEsNC40NiwxLjg5NEExLjM4NiwxLjM4NiwwLDAsMSw5LjE5LDE4LjYxM2ExLjYsMS42LDAsMCwwLC4zMDUtMi4xM2MtMS4wODItLjA3OS0xLjIuOTM0LTEuMzI3LDIuMjg3QzcuMTQ3LDE4LjcxNyw1LjU2NywxOC42MTMsNC44NjksMTcuOTQxWk00LDE3LjI0MmMtLjMyMy0uODktLjMyMy0yLjI3OCwxLjA0Ny0yLjM5MmwtLjcsMS45NDZDNC4xNjIsMTcuMjE2LDQuMTYyLDE3LjEyLDQsMTcuMjQyWm0yLjIzNC0yLjcwNmE1LjM2Niw1LjM2NiwwLDAsMSwuNjI4LTEuMjkyYzEuMDgyLTEuNTE5LDEuMy0yLjM4MywyLjQ2MS0zLjEwNywxLjIzOS0uNzY4LDUuMjM3LS4yODgsNi42LjE0OCwyLjMzLjc1MSwzLjQ3NCwxLjA1Niw0LjMzOCwzLjA2NGExOC43NjcsMTguNzY3LDAsMCwxLDEuMiw2LjE2MmMtMS41MzYuMDQ0LTEuNDQ5LS4zMjMtMS45LS42MTFhMTYuNjQsMTYuNjQsMCwwLDAtNS45NDQtMS4yOTJjLTIuNDc5LS4wMDktMS4wMjEuNTA2LTEuOTQ2LjIxOC0uNTUtLjE3NS0uNTE1LS4yNzktLjUzMi0uNDcxLS4xNC0xLjA0Ny0uNDEtLjk0My0xLjkyLTEuNjkzQTExLjUzOSwxMS41MzksMCwwLDAsNi4yMzEsMTQuNTM3Wm0xNS40NDktLjQyOGMtLjE2Ni0uNTUuMTQtLjUxNS42NzItLjg5YTkuMDIxLDkuMDIxLDAsMCwxLC45MjUtLjY1NWMxLjQwNS0uNzg2LDQuMDI0LS45MTYsNS4xNDEuMDE3QTIuNDc5LDIuNDc5LDAsMCwxLDI5LjUsMTQuNjVhNS44MzgsNS44MzgsMCwwLDEtMi42MTgsMy44MzIsNS4yMTMsNS4yMTMsMCwwLDEtNC43ODMsMS4yYy0uMTU3LS4zODQtLjAzNS0yLjgxOS0uMjE4LTMuNzE4LS4xNjYtLjgtLjA3OS0uODkuMzg0LTEuMzcsMS4zNjItMS40MTQsNC4zMTItMi40NDQsNS45ODgtMS4yMzEuNzA3LjUyNC41MDYuNzI0Ljg3MywxLjEyNi40NTQtLjQ4OS0uMzkzLTIuMTMtMy41MTctMi4wMjVDMjMuNDg2LDEyLjUyOSwyMi41NywxNC4xODcsMjEuNjgsMTQuMTA5Wk04Ljk3MSw5LjE0M2E4LjA5NCw4LjA5NCwwLDAsMSwyLjI3OC00LjZDMTIuNiwzLjUsMTQuMDE2LDIuNTA5LDE2LjA5NCwzLjY4N2MuNTE1LjI4OC40ODkuNDM2LjU0MSwxLjE1MmEzLjMxMiwzLjMxMiwwLDAsMS0uMTkyLDEuNWMtMS4zNzksNC40NTEtMi41MzEsMS44OTQtNi45NDgsMi45NWE2LjM3NCw2LjM3NCwwLDAsMSwyLjEyMS0zLjQxM2MxLjItMS4xNjEsMi4wNi0xLjkxMSwzLjg1OC0xLjY2N2ExLjg0MiwxLjg0MiwwLDAsMS0uMDUyLDIuMzIyYy0uOCwxLjI5Mi0xLDEuMjEzLS44ODIsMi4wOTUuNjI4LS4xNTcuODItLjc2OCwxLjEwOC0xLjM3OSwxLjc1NC0zLjY2Ni0uNzk0LTQuMTExLTIuMzU3LTMuNDM5QTEwLjM3MiwxMC4zNzIsMCwwLDAsOS43NjYsNy41NTRjLS4xMjIuMjQ0LS4yNTMuNTU5LS4zNjcuODI5Wm02LjkxMy4xODNDMTYuMDY3LDguMjM1LDE3LjE1LDcuOTY0LDE3LjE1LDQuNmMwLTEuNDQ5LTEuNzgxLTIuNzQ5LTQuMTExLTEuNzgxLTIsLjgyLTIuMywxLjQ0OS0zLjM2OSwzLjA1NS0xLDEuNTE5LS45NjksMy4xODYtMS44MzMsNC41OTEtLjI1My40LS40OC41NDEtLjc1OS45NDMtLjIuMy0uMzQ5LjY3Mi0uNTUsMS4wMjFBMTIuOTQsMTIuOTQsMCwwLDAsNS4zNjcsMTQuNGMtMS4wNDcuMDI2LTEuOTI5LjA0NC0yLjAzNCwxLjEyNi0uMTQsMS40ODQuNTU5LDEuODUuNTU5LDIuNDA5LS4wMDkuNi0yLjQ1Myw2LjY3Ny0xLjc3MiwxMC4zLjE5MiwxLC44NDcsMSwxLjg5NCwxLjEyNmExNy45MywxNy45MywwLDAsMCw4LjA1Ni0uNzA3bDQuMS0xLjk2NGExOC44NSwxOC44NSwwLDAsMCwzLjU2MS0yLjUsMTIuMzgzLDEyLjM4MywwLDAsMCwxLjMwOS0xLjcxOSwzLjIxMywzLjIxMywwLDAsMCwuOC0yLjIwOCw4LjQ3Myw4LjQ3MywwLDAsMSwyLjk4NSwxYy0uMDYxLjYtLjM1OC4zMTQtLjM1OC44NTVhMS4zNTUsMS4zNTUsMCwwLDAsMS4wNDctLjg5Yy0uMzU4LS41MjQtLjczMy0uNDM2LTEuMjQ4LS44NTVhOC4yMTIsOC4yMTIsMCwwLDEsMS43MTktLjcwN2MxLjIyMi0uNTA2LDMuMzA4LTIuMDQyLDMuODIzLTMuNDM5YTQuNDQ5LDQuNDQ5LDAsMCwwLS41NTktMy43MzYsNS40NDQsNS40NDQsMCwwLDAtMy42NDgtMS4xNjFjLTEuNTgsMC0zLjIxMiwxLjEzNS00LjQ4NiwxLjYyMy0uNDg5LS40MjgtLjUyNC0uOTE2LS44ODItMS4zODhBMTIuMjgxLDEyLjI4MSwwLDAsMCwxNS44ODQsOS4zMjZaXFxcIiBzdHlsZT1cXFwiZmlsbDojMDIwMjAyXFxcIi8+PHBhdGggZD1cXFwiTTIxLjY4LDE0LjEwOWMuODkuMDc5LDEuODA3LTEuNTgsMy45MjgtMS42NSwzLjEyNS0uMSwzLjk3MSwxLjUzNiwzLjUxNywyLjAyNS0uMzY3LS40LS4xNjYtLjYtLjg3My0xLjEyNi0xLjY3Ni0xLjIxMy00LjYyNi0uMTgzLTUuOTg4LDEuMjMxLS40NjMuNDgtLjU1LjU2Ny0uMzg0LDEuMzcuMTgzLjkuMDYxLDMuMzM0LjIxOCwzLjcxOGE1LjIxMyw1LjIxMywwLDAsMCw0Ljc4My0xLjJBNS44MzgsNS44MzgsMCwwLDAsMjkuNSwxNC42NWEyLjQ3OSwyLjQ3OSwwLDAsMC0xLjA4Mi0yLjA2OWMtMS4xMTctLjkzNC0zLjczNi0uOC01LjE0MS0uMDE3YTkuMDIxLDkuMDIxLDAsMCwwLS45MjUuNjU1QzIxLjgxOSwxMy41OTQsMjEuNTE0LDEzLjU1OSwyMS42OCwxNC4xMDlaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmRmMmYyXFxcIi8+PHBhdGggZD1cXFwiTTguOTcxLDkuMTQzLDkuNCw4LjM4M2MuMTEzLS4yNzEuMjQ0LS41ODUuMzY3LS44MjlBMTAuMzcyLDEwLjM3MiwwLDAsMSwxMy4yOTIsMy44MWMxLjU2Mi0uNjcyLDQuMTExLS4yMjcsMi4zNTcsMy40MzktLjI4OC42MTEtLjQ4LDEuMjIyLTEuMTA4LDEuMzc5LS4xMjItLjg4Mi4wNzktLjguODgyLTIuMDk1YTEuODQyLDEuODQyLDAsMCwwLC4wNTItMi4zMjJjLTEuOC0uMjQ0LTIuNjYyLjUwNi0zLjg1OCwxLjY2N0E2LjM3NCw2LjM3NCwwLDAsMCw5LjUsOS4yOTFjNC40MTYtMS4wNTYsNS41NjksMS41LDYuOTQ4LTIuOTVhMy4zMTIsMy4zMTIsMCwwLDAsLjE5Mi0xLjVjLS4wNTItLjcxNi0uMDI2LS44NjQtLjU0MS0xLjE1Mi0yLjA3Ny0xLjE3OC0zLjQ5MS0uMTkyLTQuODQ0Ljg1NUE4LjA5NCw4LjA5NCwwLDAsMCw4Ljk3MSw5LjE0M1pcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZWYzZjNcXFwiLz48cGF0aCBkPVxcXCJNNCwxNy4yNDJjLjE2Ni0uMTIyLjE2Ni0uMDI2LjM0OS0uNDQ1bC43LTEuOTQ2QzMuNjczLDE0Ljk2NCwzLjY3MywxNi4zNTIsNCwxNy4yNDJaXFxcIiBzdHlsZT1cXFwiZmlsbDojZWZlZmVmXFxcIi8+PHBhdGggZD1cXFwiTTUuNDI4LDI3LjQ1NGMtLjEyMi0uNDg5LTEuNjIzLS45MjUtMi4yLS44NzNDMy4zMDcsMjcuNDgsNC40OTQsMjcuNTY4LDUuNDI4LDI3LjQ1NFpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmYWYxZjFcXFwiLz5cIixcblx0XCJFSlNcIjogXCI8cGF0aCBkPVxcXCJNMiwxNy42NzJWMTQuMzI4bDExLjg2LTYuMlYxMS4yTDUuMSwxNS45MzlsOC43NjIsNC44MzV2My4xWm0yNy44MTQtOC44OEwxOS40NjUsMjMuMjI5SDE1LjkxMkwyNi4yODEsOC43OTFaTTI2Ljk0NywyMS41YS43OTQuNzk0LDAsMCwwLC42MTktLjI3OCwxLjA2MSwxLjA2MSwwLDAsMCwuMjQ4LS43MzIsMS4xNDEsMS4xNDEsMCwwLDAtLjI0OC0uNzUzLjc2OC43NjgsMCwwLDAtMS4yMTcsMCwxLjE0MSwxLjE0MSwwLDAsMC0uMjQ4Ljc1MywxLjA5LDEuMDksMCwwLDAsLjIzNy43MzJBLjc2My43NjMsMCwwLDAsMjYuOTQ3LDIxLjVabTIuMTg2LDEuMDQyYTMuMjM3LDMuMjM3LDAsMCwxLTQuMzUyLS4wMSwyLjg2NCwyLjg2NCwwLDAsMSwwLTQuMSwzLjIyMywzLjIyMywwLDAsMSw0LjM1MiwwQTIuNzczLDIuNzczLDAsMCwxLDMwLDIwLjQ4NiwyLjc0LDIuNzQsMCwwLDEsMjkuMTM0LDIyLjUzOFpNMTguODIxLDEzLjA2MWEuNzk0Ljc5NCwwLDAsMCwuNjE5LS4yNzgsMS4wNjEsMS4wNjEsMCwwLDAsLjI0OC0uNzMyLDEuMTQxLDEuMTQxLDAsMCwwLS4yNDgtLjc1My43NjkuNzY5LDAsMCwwLTEuMjE3LDAsMS4xNDEsMS4xNDEsMCwwLDAtLjI0OC43NTMsMS4wOSwxLjA5LDAsMCwwLC4yMzcuNzMyQS43NjMuNzYzLDAsMCwwLDE4LjgyMSwxMy4wNjFaTTIxLjAwNywxNC4xYTMuMjM3LDMuMjM3LDAsMCwxLTQuMzUyLS4wMSwyLjg2NCwyLjg2NCwwLDAsMSwwLTQuMSwzLjIyMywzLjIyMywwLDAsMSw0LjM1MiwwLDIuNzczLDIuNzczLDAsMCwxLC44NjYsMi4wNjNBMi43NCwyLjc0LDAsMCwxLDIxLjAwNywxNC4xWlxcXCIgc3R5bGU9XFxcImZpbGw6IzkwYTkzYVxcXCIvPlwiLFxuXHRcIkVsaXhpclwiOiBcIjxkZWZzPjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiYVxcXCIgeDE9XFxcIjE3LjI0OVxcXCIgeTE9XFxcIi0zMzUuNTk3XFxcIiB4Mj1cXFwiMTQuOTczXFxcIiB5Mj1cXFwiLTMwOS45OTRcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJtYXRyaXgoMSwgMCwgMCwgLTEsIDAsIC0zMDYpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjZmZmXFxcIiBzdG9wLW9wYWNpdHk9XFxcIjBcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuMDFcXFwiIHN0b3AtY29sb3I9XFxcIiNmN2Y2ZjhcXFwiIHN0b3Atb3BhY2l0eT1cXFwiMC4wNFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC4wOVxcXCIgc3RvcC1jb2xvcj1cXFwiI2FhOWNiM1xcXCIgc3RvcC1vcGFjaXR5PVxcXCIwLjM5XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjJcXFwiIHN0b3AtY29sb3I9XFxcIiM2ZjU2N2VcXFwiIHN0b3Atb3BhY2l0eT1cXFwiMC42NlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC4zMlxcXCIgc3RvcC1jb2xvcj1cXFwiIzQ1MjQ1OVxcXCIgc3RvcC1vcGFjaXR5PVxcXCIwLjg2XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjVcXFwiIHN0b3AtY29sb3I9XFxcIiMyZDA4NDNcXFwiIHN0b3Atb3BhY2l0eT1cXFwiMC45N1xcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiIzI2MDAzZFxcXCIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjx0aXRsZT5maWxlX3R5cGVfZWxpeGlyPC90aXRsZT48cGF0aCBkPVxcXCJNMTcuOCw4LjU5MWMyLjA3OSw0LjU4NCw3LjY0LDYuNSw3LjE0MSwxMi40NzQtLjU4Miw3LjAxNy01LjU1MSw4Ljc4NC04LjMxNiw4LjkwOWE4LjgxNSw4LjgxNSwwLDAsMS05LjQtNy40ODVDNS42MTgsMTUuMDQ2LDEyLjY1NSwzLjYzMiwxNi43MDksMkExNS4wODMsMTUuMDgzLDAsMCwwLDE3LjgsOC41OTFabS0uMTY2LDE4Ljg1N2EuNDIzLjQyMywwLDAsMC0uMDU3LS4zMjdjLS41OTMtMS4xLTUuODEtMS42NDUtNi45MDctMS43NTJhOC4yNzIsOC4yNzIsMCwwLDAsMS42MzUsMS4zLDcuNzY2LDcuNzY2LDAsMCwwLDIuODE0LDEuMDQxQzE1LjkyMiwyNy44MzEsMTcuNDY3LDI3LjkzMywxNy42MzUsMjcuNDQ3WlxcXCIgc3R5bGU9XFxcImZpbGw6IzdjNjQ4ZlxcXCIvPjxnIHN0eWxlPVxcXCJvcGFjaXR5OjAuMjVcXFwiPjxwYXRoIGQ9XFxcIk0xOC4yNDgsMTAuNjE4YzQuNDcsNC44MjMsNi40NDUsNC45NzksNi4yMzcsMTAuNDc4LS4yNDksNi40NzYtNC41NDMsOC4xOTEtNy4wNTgsOC40Mi00LjIuNTUxLTcuNDk1LTEuNTI4LTguMzU4LTUuNjg2QzcuMzEyLDE3LjA2MywxMi45NzgsNi4wMjMsMTYuNjM3LDQuMzZBMTUuMzIzLDE1LjMyMywwLDAsMCwxOC4yNTgsMTAuNlpcXFwiIHN0eWxlPVxcXCJmaWxsOiMyNjAwM2RcXFwiLz48L2c+PGcgc3R5bGU9XFxcIm9wYWNpdHk6MC43NVxcXCI+PHBhdGggZD1cXFwiTTE3LjM4NSw5LjkyMUMyMC4zNjksMTQsMjQuMzE5LDEzLjcsMjUsMTkuNjQxYy4wOTQsNi45MjMtMy42LDkuMjgzLTYuMjM3LDkuOTQ4LTQuNSwxLjI3OS04LjUxNC0uNjQ1LTEwLjA5NC01LTMuMDM1LTcsMi42NTEtMTguNTE0LDYuMzEtMjAuOTE1YTE1LjA4MywxNS4wODMsMCwwLDAsMi4zNyw2LjIzN1pcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjYSlcXFwiLz48L2c+XCIsXG5cdFwiRWxtXCI6IFwiPHBhdGggZD1cXFwiTTE2LDE2Ljc2OCwyLjc2OCwzMEgyOS4yMzJaXFxcIiBzdHlsZT1cXFwiZmlsbDojNWZiNGNiXFxcIi8+PHBhdGggZD1cXFwiTTI0LjEzLDIzLjM2MiwzMCwyOS4yMzJWMTcuNDkyWlxcXCIgc3R5bGU9XFxcImZpbGw6I2VlYTQwMFxcXCIvPjxwYXRoIGQ9XFxcIk0xNS4yMzIsMTYsMiwyLjc2OFYyOS4yMzJaXFxcIiBzdHlsZT1cXFwiZmlsbDojNTk2Mjc3XFxcIi8+PHBhdGggZD1cXFwiTTMwLDE0LjQ0OFYySDE3LjU1MlpcXFwiIHN0eWxlPVxcXCJmaWxsOiM1ZmI0Y2JcXFwiLz48cGF0aCBkPVxcXCJNMjMuMzkyLDkuMzc2bDYuNTk0LDYuNTk0LTYuNjI0LDYuNjI0TDE2Ljc2OCwxNlpNMi43NjgsMiw4Ljg2Myw4LjFIMjIuMTExTDE2LjAxNiwyWlxcXCIgc3R5bGU9XFxcImZpbGw6IzhjZDYzNlxcXCIvPjxwYXRoIGQ9XFxcIk0xNiwxNS4yMzJsNi4wNTEtNi4wNTFIOS45NDlaXFxcIiBzdHlsZT1cXFwiZmlsbDojZWVhNDAwXFxcIi8+XCIsXG5cdFwiRVJCXCI6IFwiPHBhdGggZD1cXFwiTTcuMjUsMjQuNzVoMTcuNUwxMi41LDEyLjUsNy4yNSwxNy43NVpNMiwzMEgzMFYySDE2TDIsMTZabTI1LjM3NS0yLjYyNUg0LjYyNXYtMTAuNWwxMi4yNS0xMi4yNWgxMC41WlxcXCIgc3R5bGU9XFxcImZpbGw6IzkyMWExZVxcXCIvPlwiLFxuXHRcIkVybGFuZ1wiOiBcIjxwYXRoIGQ9XFxcIk02LjM4OCwyMy44NjdhMTEuMDEyLDExLjAxMiwwLDAsMS0zLjQ0MS04LjIzNCwxMC43NjUsMTAuNzY1LDAsMCwxLDIuODY0LTcuNUgydjE1LjczWm0yMC4wNjYsMGExNi40NCwxNi40NCwwLDAsMCwyLjUzNy0zLjEzNmwtNC4yMTgtMS44NzNhOC4zMDYsOC4zMDYsMCwwLDEtNi42NDEsNC4xMmMtNC4zNTktLjAxNC02LjA3Mi0zLjMyOS02LjA2My03LjU4NEgyOC4zNmE2LjQ2NSw2LjQ2NSwwLDAsMCwwLS45MzUsOS4wNTcsOS4wNTcsMCwwLDAtMi4wMjktNi4zMjZIMzB2MTUuNzNIMjYuNDU2Wk0xMi4zMzIsMTEuNzQyYTMuNzIzLDMuNzIzLDAsMCwxLDMuOS0zLjIzLDMuMjksMy4yOSwwLDAsMSwzLjUzMiwzLjIzWlxcXCIgc3R5bGU9XFxcImZpbGw6I2EyMDAzZVxcXCIvPlwiLFxuXHRcIkYjXCI6IFwiPHBhdGggZD1cXFwiTTIsMTYsMTUuMjg4LDIuNzEyVjkuMzU2TDguNjQ0LDE2bDYuNjQ0LDYuNjQ0djYuNjQ0WlxcXCIgc3R5bGU9XFxcImZpbGw6IzM3OGJiYVxcXCIvPjxwYXRoIGQ9XFxcIk0xMC41NDIsMTZsNC43NDYtNC43NDZ2OS40OTJaXFxcIiBzdHlsZT1cXFwiZmlsbDojMzc4YmJhXFxcIi8+PHBhdGggZD1cXFwiTTMwLDE2LDE2LjIzNywyLjcxMlY5LjM1NkwyMi44ODEsMTZsLTYuNjQ0LDYuNjQ0djYuNjQ0WlxcXCIgc3R5bGU9XFxcImZpbGw6IzMwYjlkYlxcXCIvPlwiLFxuXHRcIkZpcmVzdG9yZSBzZWN1cml0eSBydWxlc1wiOiBcIjxwYXRoIGQ9XFxcIk01LjgsMjQuNmwuMTctLjIzN0wxMy45OSw5LjE0OWwuMDE3LS4xNjEtMy41MzUtNi42NGEuNjU2LjY1NiwwLDAsMC0xLjIyNy4yMDdaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZjMjRhXFxcIi8+PHBhdGggZD1cXFwiTTUuOSwyNC40MmwuMTI4LS4yNUwxMy45NjUsOS4xMTQsMTAuNDM5LDIuNDQ4YS42LjYsMCwwLDAtMS4xMzMuMjA2WlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmYTcxMlxcXCIvPjxwYXRoIGQ9XFxcIk0xNi41ODQsMTQuMDFsMi42MzItMi43TDE2LjU4Myw2LjI4OWEuNjc4LjY3OCwwLDAsMC0xLjE5NSwwTDEzLjk4MSw4Ljk3MVY5LjJaXFxcIiBzdHlsZT1cXFwiZmlsbDojZjRiZDYyXFxcIi8+PHBhdGggZD1cXFwiTTE2LjUzNywxMy45LDE5LjEsMTEuMjgsMTYuNTM3LDYuNGEuNTg5LjU4OSwwLDAsMC0xLjA3NC0uMDQ3TDE0LjA0OSw5LjA4MmwtLjA0Mi4xMzlaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZhNTBlXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCI1LjgwMiAyNC42MDEgNS44NzkgMjQuNTIzIDYuMTU4IDI0LjQxIDE2LjQxOCAxNC4xODggMTYuNTQ4IDEzLjgzNCAxMy45ODkgOC45NTYgNS44MDIgMjQuNjAxXFxcIiBzdHlsZT1cXFwiZmlsbDojZjY4MjBjXFxcIi8+PHBhdGggZD1cXFwiTTE2LjkxMiwyOS43NTYsMjYuMiwyNC41NzcsMjMuNTQ2LDguMjQ2QS42MzUuNjM1LDAsMCwwLDIyLjQ3MSw3LjlMNS44LDI0LjZsOS4yMzMsNS4xNTVhMS45MjcsMS45MjcsMCwwLDAsMS44NzgsMFxcXCIgc3R5bGU9XFxcImZpbGw6I2ZkZTA2OFxcXCIvPjxwYXRoIGQ9XFxcIk0yNi4xMTUsMjQuNTM0LDIzLjQ4Myw4LjMyNmEuNTU3LjU1NywwLDAsMC0uOTY3LS4zNTNMNS45LDI0LjU2OWw5LjEzMSw1LjFhMS45MTIsMS45MTIsMCwwLDAsMS44NjMsMFpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmY2NhM2ZcXFwiLz48cGF0aCBkPVxcXCJNMTYuOTEyLDI5LjZhMS45MjcsMS45MjcsMCwwLDEtMS44NzgsMEw1Ljg3NiwyNC41MjIsNS44LDI0LjZsOS4yMzMsNS4xNTVhMS45MjcsMS45MjcsMCwwLDAsMS44NzgsMEwyNi4yLDI0LjU3N2wtLjAyMy0uMTRaXFxcIiBzdHlsZT1cXFwiZmlsbDojZWVhYjM3XFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIyMy4yMDEgMTMgMTUuNDA1IDE2LjUzNCAxNS40MDUgMjcuNjAzIDIxLjYyNSAyNC43ODUgMjEuNjI1IDMxIDMxIDI2Ljc0MyAzMSAxNi41MzQgMjMuMjAxIDEzXFxcIiBzdHlsZT1cXFwiZmlsbDojMjUyNTI1XFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIyMy4yMDEgMTQuNzMgMTYuOTg1IDE3LjU0OSAxNi45ODUgMjAuMzI3IDIzLjIwMSAxNy41MDcgMjkuNDIxIDIwLjMyNyAyOS40MjEgMTcuNTQ5IDIzLjIwMSAxNC43M1xcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMjMuMjAxIDE5LjU2NCAxNi45ODUgMjIuMzgxIDE2Ljk4NSAyNS4xNTggMjMuMjAxIDIyLjMzNyAyOS40MjEgMjUuMTU4IDI5LjQyMSAyMi4zODEgMjMuMjAxIDE5LjU2NFxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMjguNjA2IDI2LjA5OCAyNS41NTEgMjQuNzEyIDIzLjIwMSAyNS43NzggMjMuMjAxIDI4LjU0OCAyOC42MDYgMjYuMDk4XFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+XCIsXG5cdFwiRmxvd1wiOiBcIjxkZWZzPjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiYVxcXCIgeDE9XFxcIi02Ny45MDdcXFwiIHkxPVxcXCItMzA4LjU1MVxcXCIgeDI9XFxcIi02Ny44NTdcXFwiIHkyPVxcXCItMzA4LjU2NFxcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcIm1hdHJpeCg4Ny44MjIsIDAsIDAsIC04OC41MzMsIDU5ODQuNTMyLCAtMjcyOTAuNjE3KVxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiI2ZmZDQ0MVxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiI2ZmYjA0N1xcXCIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJiXFxcIiB4MT1cXFwiLTY3LjY3NFxcXCIgeTE9XFxcIi0zMTAuMTIxXFxcIiB4Mj1cXFwiLTY3LjY0N1xcXCIgeTI9XFxcIi0zMTAuMDYzXFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwibWF0cml4KDg3LjgyMiwgMCwgMCwgLTg4LjUzMywgNTk2NC42NjcsIC0yNzQ0MylcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiNmZmQ3NTRcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiNmZmI1MzJcXFwiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiY1xcXCIgeDE9XFxcIi02Ny4wMjlcXFwiIHkxPVxcXCItMzEwLjkxXFxcIiB4Mj1cXFwiLTY3LjAyOVxcXCIgeTI9XFxcIi0zMTAuODZcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJtYXRyaXgoODcuODIyLCAwLCAwLCAtODguNTMzLCA1OTAyLjgsIC0yNzUxOC43MzMpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjZmZkNjQyXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjZmZkNDQxXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjZmZiNTMyXFxcIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9XFxcImRcXFwiIHgxPVxcXCItNjYuMjUyXFxcIiB5MT1cXFwiLTMxMC4zNzdcXFwiIHgyPVxcXCItNjYuMzJcXFwiIHkyPVxcXCItMzEwLjM2MlxcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcIm1hdHJpeCgxMDYuMTk4LCAwLCAwLCAtODguNTUxLCA3MDQ4LjQyOCwgLTI3NDc0LjE2NylcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiNmZmQ0NDFcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiNmZmE4MjlcXFwiLz48L2xpbmVhckdyYWRpZW50PjwvZGVmcz48dGl0bGU+ZmlsZV90eXBlX2Zsb3c8L3RpdGxlPjxwYXRoIGQ9XFxcIk0yMy40MjYsMjkuNDFWMjIuMTcyaC03LjE4bDcuMTgsNy4yMzhcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmRmNTE7ZmlsbC1vcGFjaXR5OjAuNjk5OTk5OTg4MDc5MDcxXFxcIi8+PHBhdGggZD1cXFwiTTI0LjIzMSwyNS4zMDZWMTcuNDc3SDE2LjQ2Nmw3Ljc2Niw3LjgyOVxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmODkwMDtmaWxsLW9wYWNpdHk6MC42OTk5OTk5ODgwNzkwNzFcXFwiLz48cGF0aCBkPVxcXCJNMTkuNTE1LDIyLjE3MVYzMGg3Ljc2NmwtNy43NjYtNy44MjlcXFwiIHN0eWxlPVxcXCJmaWxsLW9wYWNpdHk6MC42OTk5OTk5ODgwNzkwNzE7ZmlsbDp1cmwoI2EpXFxcIi8+PHBhdGggZD1cXFwiTTIyLjYwOCwxOFYxMS44MDlIMTYuNDY2TDIyLjYwOCwxOFxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZGY0ZjtmaWxsLW9wYWNpdHk6MC42OTk5OTk5ODgwNzkwNzFcXFwiLz48cGF0aCBkPVxcXCJNMjUuNTI0LDE2LjUyNVY4LjdIMTcuNzU5bDcuNzY2LDcuODI5XFxcIiBzdHlsZT1cXFwiZmlsbC1vcGFjaXR5OjAuNzk5OTk5OTUyMzE2Mjg0O2ZpbGw6dXJsKCNiKVxcXCIvPjxwYXRoIGQ9XFxcIk0xMi4yODgsMlY5LjgyOWg3Ljc2NkwxMi4yODgsMlxcXCIgc3R5bGU9XFxcImZpbGwtb3BhY2l0eTowLjgwMDAwMDAxMTkyMDkyOTtmaWxsOnVybCgjYylcXFwiLz48cGF0aCBkPVxcXCJNMTQuMTEsMTQuMjYyVjYuNDMzSDQuNzE5bDcuNzMyLDcuODMsMS42NTksMFxcXCIgc3R5bGU9XFxcImZpbGwtb3BhY2l0eTowLjg3OTk5OTk5NTIzMTYyODtmaWxsOnVybCgjZClcXFwiLz48cGF0aCBkPVxcXCJNMTQuMTEsMjkuOTU4VjIwLjQ4N0g0LjcxOWw5LjM5MSw5LjQ3MVxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmYjcwMDtmaWxsLW9wYWNpdHk6MC42OTk5OTk5ODgwNzkwNzFcXFwiLz48cGF0aCBkPVxcXCJNMTQuMTEyLDIyLjExNFYxNC4yODVINi4zNDZsNy43NjYsNy44MjlcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmI3MDA7ZmlsbC1vcGFjaXR5OjAuNVxcXCIvPjxwYXRoIGQ9XFxcIk0xNi40NjUsMTEuODA5djcuODI5aDcuNzY2bC03Ljc2Ni03LjgyOVxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmY2QyNTtmaWxsLW9wYWNpdHk6MC42OTk5OTk5ODgwNzkwNzFcXFwiLz48cGF0aCBkPVxcXCJNMTQuMDkyLDEyLjY5MVY0Ljg2Mkg2LjMyNmw3Ljc2Niw3LjgyOVxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmODkwMDtmaWxsLW9wYWNpdHk6MC43MDAwMDAwNDc2ODM3MTZcXFwiLz48cGF0aCBkPVxcXCJNMTYuMjQ2LDIyLjE3MVYzMGg3Ljc2NmwtNy43NjYtNy44MjlcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZjg5MDA7ZmlsbC1vcGFjaXR5OjAuNjk5OTk5OTg4MDc5MDcxXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIyMS4xMjIgMjIuMTcyIDE4LjYwOSAxOS42MzggMTYuNDY1IDE5LjYzOCAxNi40NjYgMTEuODA5IDIwLjg0NyAxMS44MDkgMTguODgyIDkuODI5IDE0LjA5MiA5LjgyOSAxNC4xMSAxNC4yNjIgMTQuMTEgMjAuNDg3IDE0LjExIDMwIDE2LjI0NiAzMCAxNi4yNDYgMjIuMTcyIDIxLjEyMiAyMi4xNzJcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz5cIixcblx0XCJGb3J0cmFuXCI6IFwiPGcgaWQ9XFxcImczNzY4XFxcIj48cmVjdCBpZD1cXFwicmVjdDg4MVxcXCIgeD1cXFwiMi4zNFxcXCIgeT1cXFwiMi4zNFxcXCIgd2lkdGg9XFxcIjI3LjMzXFxcIiBoZWlnaHQ9XFxcIjI3LjMzXFxcIiByeD1cXFwiNS4wOFxcXCIgc3R5bGU9XFxcImZpbGw6IzczNGY5NlxcXCIvPjxwYXRoIGlkPVxcXCJwYXRoMTQxMlxcXCIgZD1cXFwiTTYuMDYsMjUuNWMwLTEuMDksMC0xLjE5LjEtMS4xOWwxLjI1LS4wNmMxLDAsMS4xOC0uMDYsMS40Mi0uMTlhLjc0Ljc0LDAsMCwwLC4zOS0uMzdjLjEyLS4yMy4xMi0uMjkuMTItNy43MiwwLTcsMC03LjUtLjEtNy42N2ExLjA2LDEuMDYsMCwwLDAtLjYzLS41LDEwLjIzLDEwLjIzLDAsMCwwLTEuMzgtLjFsLTEuMTcsMFY1LjMySDI1Ljk0djguODJIMjQuODlhOC41Niw4LjU2LDAsMCwxLTEuMi0uMDVjLS4xNCwwLS4xNS0uMDUtLjIyLS45NWExMi43MywxMi43MywwLDAsMC0uMzUtMi40MywzLjIyLDMuMjIsMCwwLDAtMi42My0yLjgxYy0uNTctLjEtMy4xLS4yLTUuMTktLjJIMTMuODd2Ni42M2wuNzUsMEE2LjMzLDYuMzMsMCwwLDAsMTYuNDksMTRhMS44OCwxLjg4LDAsMCwwLC44OS0uOTEsNS44Niw1Ljg2LDAsMCwwLC4zOS0xLjc1YzAtLjMzLjA4LS42Ni4xLS43M3MwLS4xMywxLjE4LS4xM0gyMC4yVjIxLjA2SDE3Ljg1bDAtLjYxYTcuODUsNy44NSwwLDAsMC0uNTQtMi42NmMtLjM2LS42OC0xLjA1LTEtMi40NS0xLjA4bC0uNzYtLjA3LS4yLDAsMCwzLjM0YzAsMy41MSwwLDMuNjUuMywzLjk0cy40My4zMiwzLjIyLjQyYy4wNSwwLC4wNy4yOC4wNywxLjE5djEuMThINi4wNlpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48L2c+XCIsXG5cdFwiRnJlZU1hcmtlciBUZW1wbGF0ZSBMYW5ndWFnZVwiOiBcIjxwYXRoIGQ9XFxcIk0yNC4wMjMsMjAuOSwyNS40MDgsMjNsNC42MTUtN0wyNS40MDgsOWwtMS4zODUsMi4xTDI3LjI1NSwxNlpcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMDUwYjJcXFwiLz48cGF0aCBkPVxcXCJNNy45NzcsMTEuMSw2LjU5Miw5LDEuOTc3LDE2bDQuNjE1LDcsMS4zODUtMi4xTDQuNzQ1LDE2WlxcXCIgc3R5bGU9XFxcImZpbGw6IzAwNTBiMlxcXCIvPjxwYXRoIGQ9XFxcIk0xMy4wMzUsOWgyLjhsLS40OTQsMi44aDIuOEwxOC42MzUsOWgyLjhsLS40OTQsMi44aDIuOGwtLjQ5NSwyLjhoLTIuOGwtLjQ5MywyLjhoMi44bC0uNDk0LDIuOGgtMi44TDE4Ljk2NywyM2gtMi44bC40OTMtMi44LTIuOCwwTDEzLjM3NSwyM0gxMC41NjdsLjQ5My0yLjgtMi44LDAsLjQ5NC0yLjhoMi44bC40OTMtMi43OTNoLTIuOEw5Ljc0MSwxMS44aDIuOFptMS4zMTksOC40aDIuOGwuNDk0LTIuOGgtMi44WlxcXCIgc3R5bGU9XFxcImZpbGw6IzAwNTBiMlxcXCIvPlwiLFxuXHRcIkdhbWVNYWtlciBMYW5ndWFnZVwiOiBcIjxwYXRoIGQ9XFxcIk0xNC4yMTYsMjQuMTY3aC0uOTg5YTMuMjQsMy4yNCwwLDAsMS0yLjgxMS0xLjY0OUw2LjY2NywxNmw0LjY4MS04LjE2N0gxNi4ybC00LjM0LDguMTc2LjA1Ny4wMzJMMTMuOTM2LDE5LjVIMTYuODJaTTguNDU1LDEwLjUzNWwtMS4yNy0yLjIxYTEsMSwwLDAsMC0uODU5LS40OTJIMmw0LDYuOTkyWk0yMS41NCw5LjQ4MmEzLjIzOSwzLjIzOSwwLDAsMC0yLjgxMi0xLjY0OUgxNy41MjNMMTUuMDQ1LDEyLjVIMTguMDJMMjAuMDgzLDE2bC00LjUzMSw4LjE2N2g1LjA1NkwyNS4zMzMsMTZaTTI2LDE3LjE3MmwtMi40Nyw0LjI3LDEuMjgzLDIuMjMzYTEsMSwwLDAsMCwuODU5LjQ5MkgzMFpcXFwiIHN0eWxlPVxcXCJmaWxsOiM4YmMzNGFcXFwiLz5cIixcblx0XCJHLWNvZGVcIjogXCI8cGF0aCBkPVxcXCJNMTcuMzMzLDE2LjM1NmgwTDE3LjMwOSwyMC44bC0yLjEtMS4wMTguMDIzLTQuNDM3aDBsMTAuNTU4LTMuMDM4LDIuMTA2LDEuMDEzWlxcXCIgc3R5bGU9XFxcImZpbGw6IzhlMDAwMFxcXCIvPjxwYXRoIGQ9XFxcIk0yNC40OTIsMTguNTc2YTE0LjkwOSwxNC45MDksMCwwLDEtMS4zNDMsMy4wNzQsNy44Niw3Ljg2LDAsMCwxLTEuMzksMS44MjksNi44LDYuOCwwLDAsMS0xLjcsMS4zMjQsNy40MDUsNy40MDUsMCwwLDEtMi4wMDYuODU1LDYsNiwwLDAsMS0zLjA3Mi4yM0E0LjY2OCw0LjY2OCwwLDAsMSwxMi40NCwyNC42NGE1LjMyMiw1LjMyMiwwLDAsMS0uNjM2LS42MjlsLS41MDgtLjI0NGE0LjcxNyw0LjcxNywwLDAsMCwuNDU3LjE4MSw1LjUyLDUuNTIsMCwwLDEtMS4wMTUtMS43NTgsOC4xMzUsOC4xMzUsMCwwLDEtLjQzLTEuNTMzYy0uMDIzLS4xMzEtLjA0My0uMjM5LS4wNjEtLjM0YTcuMjkyLDcuMjkyLDAsMCwwLC4zNzcsMS4zNTQsNS44MzYsNS44MzYsMCwwLDAsMS42MTQsMi4zMTljLjA2LjA1NC4xMjcuMS4xOS4xNDguMDQuMDA4LjA3OC4wMjIuMTE5LjAyOWE2LjQ1NCw2LjQ1NCwwLDAsMCwyLjkyOC0uMjE5LDguNCw4LjQsMCwwLDAsMS45MS0uODA3LDcuNjU4LDcuNjU4LDAsMCwwLDEuNTg5LTEuMjI3LDguNjYyLDguNjYyLDAsMCwwLDEuMjktMS42OSwxMi42NjcsMTIuNjY3LDAsMCwwLDEuMDE5LTIuMTk0TDIzLjMsMTljLjA1Ni0uMTUzLjA5MS0uMjU0LjA5MS0uMjU0WlxcXCIgc3R5bGU9XFxcImZpbGw6IzhlMDAwMFxcXCIvPjxwYXRoIGQ9XFxcIk0yNC41MjQsNC4wMTNhMTEuNiwxMS42LDAsMCwwLTYuNTg4LTEuOTk0LDEzLjgsMTMuOCwwLDAsMC05LjM3Myw0Ljg0QTE4LjI0MywxOC4yNDMsMCwwLDAsNCwxOC44Yy4wMjEsMy44NTEsMS40ODEsNy44MDYsNS4xMTIsOS41NzVhMTMuNTYzLDEzLjU2MywwLDAsMCw0LjE1OSwxLjU2NCwxMi4xMTQsMTIuMTE0LDAsMCwwLDYuODY5LTEuNTI5Yy0yLjczNCwxLjMzMy02LjEyLDEuOTkzLTguODk0LjQtMi42ODktMS41NDMtMy45ODMtNC43MjQtNC4yMjEtNy43LS41MTItNi40LDMuMS0xMy42NCw5LjEzMi0xNi4yODEsMy41MTItMS41MzcsNy4zMDctMS41ODUsMTAuMjM5LDEuMUMyNi43MjcsNS4yNDQsMjUsNC4zMDUsMjQuNTI0LDQuMDEzWm0tMTQuMzU5LDI0LjgtLjEzOC0uMDkzWlxcXCIgc3R5bGU9XFxcImZpbGw6IzhlMDAwMFxcXCIvPjxwYXRoIGQ9XFxcIk0yMi41MjksMjYuNzg4Yy0zLjA0NCwyLjU4Mi03LjkyLDQuMTQ5LTExLjU1NCwxLjg1N0M3LjI0LDI2LjI4OSw2LjUzLDIxLjA4OSw3LjIxMiwxNy4wODNhMTcuMjE4LDE3LjIxOCwwLDAsMSw2LjctMTAuOTdjMy43NzEtMi42MzYsOC44OC0zLjQ5LDEyLjQ4OS0uMTgybC0yLjI3LDMuMjkxYy0yLjUxLTIuMzU1LTYuMy0xLjk1Ni04Ljk0NS0uMDUyQTEyLjQzNCwxMi40MzQsMCwwLDAsMTAuNSwxNi4yYy0uNjYyLDIuNjIzLS41LDYuMDExLDEuNSw4LjA0NywyLjA4OCwyLjEyOSw1LjExMiwyLjExNiw3LjY1Ni44QTEwLjMzNCwxMC4zMzQsMCwwLDAsMjQuNSwxOC42MzZMMTcuMzA3LDIwLjhsLjAyMi00LjQzOEwyNy44OSwxMy4zMTlsLjEuODA2aDBBMTYuNjI1LDE2LjYyNSwwLDAsMSwyMi41MjksMjYuNzg4WlxcXCIgc3R5bGU9XFxcImZpbGw6I2JhMDAwMFxcXCIvPlwiLFxuXHRcIkdEU2NyaXB0XCI6IFwiPHBhdGggZD1cXFwiTTI4LjE2NiwyMS4wMjl2MS42NTJhLjM3NC4zNzQsMCwwLDEtLjI2LjM1N2wtMi42Ljg0MWEuMzY3LjM2NywwLDAsMS0uMzM1LS4wNTQuMzc0LjM3NCwwLDAsMS0uMTU1LS4zdi0xLjhsLTIuNDM4LjQ2NFYyNC4wMmEuMzc1LjM3NSwwLDAsMS0uMzI1LjM3MWwtMy41MjUuNDgzYy0uMDE2LDAtLjAzNCwwLS4wNTEsMEEuMzc0LjM3NCwwLDAsMSwxOC4xLDI0LjVWMjIuNTU3bC0xLjgxOS4wMDhoLS4yNjdsLTEuODE5LS4wMDhWMjQuNWEuMzc1LjM3NSwwLDAsMS0uMzc1LjM3NmMtLjAxNywwLS4wMzQsMC0uMDUyLDBsLTMuNTI1LS40ODNhLjM3NS4zNzUsMCwwLDEtLjMyNC0uMzcxVjIyLjE4NGwtMi40MzktLjQ2NHYxLjhhLjM3NC4zNzQsMCwwLDEtLjE1NC4zLjM3LjM3LDAsMCwxLS4zMzYuMDU0bC0yLjYtLjg0MWEuMzc0LjM3NCwwLDAsMS0uMjU5LS4zNTdWMjEuMDI5bC0xLjYwOC0uNTQxYTQuNTU4LDQuNTU4LDAsMCwwLS4xMjQsMS4wNGMwLDQuMzE3LDYuMDgyLDcuNjUsMTMuNiw3LjY3NGguMDE5YzcuNTE3LS4wMjQsMTMuNi0zLjM1NiwxMy42LTcuNjc0YTQuNTQsNC41NCwwLDAsMC0uMS0uOTVaXFxcIiBmaWxsPVxcXCIjNDc4Y2JmXFxcIi8+PHBhdGggZD1cXFwiTTMuNzExLDEzLjM3M1YyMC4xbC45MDcuMzA2YS4zNzQuMzc0LDAsMCwxLC4yNTYuMzU1djEuNjVsMS44NTUuNlYyMS4yNjdhLjM3Ni4zNzYsMCwwLDEsLjQ0NS0uMzY5bDMuMTg5LjYwOWEuMzc0LjM3NCwwLDAsMSwuMzA1LjM2OHYxLjgxOGwyLjc3NS4zNzl2LTEuODlhLjM3NC4zNzQsMCwwLDEsLjM3Ni0uMzc1aDBsMi4zMjcuMDA5LDIuMzI2LS4wMDlhLjM3NC4zNzQsMCwwLDEsLjM3Ny4zNzV2MS44OWwyLjc3NS0uMzc5VjIxLjg3NGEuMzczLjM3MywwLDAsMSwuMy0uMzY4bDMuMTg5LS42MDlhLjM3Ny4zNzcsMCwwLDEsLjQ0Ni4zNjl2MS43NDFsMS44NTUtLjZWMjAuNzZhLjM3NC4zNzQsMCwwLDEsLjI1NS0uMzU1bC42MTgtLjIwOFYxMy4zNzNoLjAxN0EyNi43OTIsMjYuNzkyLDAsMCwwLDMwLDEwLjkzMWExOS4wMiwxOS4wMiwwLDAsMC0yLjUwOS0zLjI4OEEyNC41MDcsMjQuNTA3LDAsMCwwLDI1LDkuMDkxYTEzLjAxLDEzLjAxLDAsMCwwLTEuMjc5LTEuMDUyLDE1LjM2NSwxNS4zNjUsMCwwLDAtMS4zNzUtLjg5NCwyOC4zNTMsMjguMzUzLDAsMCwwLC4yMzItMy4wNzFBMTUuOTY4LDE1Ljk2OCwwLDAsMCwxOC44NDcsMi44YTI2LjQ0LDI2LjQ0LDAsMCwwLTEuMzg1LDIuNyw5LjQ2LDkuNDYsMCwwLDAtMS40NTMtLjExNmgtLjAxOGE5LjQ1Nyw5LjQ1NywwLDAsMC0xLjQ1NC4xMTYsMjYuMjc1LDI2LjI3NSwwLDAsMC0xLjM4NS0yLjdBMTUuOTYxLDE1Ljk2MSwwLDAsMCw5LjQyMiw0LjA3NWEyOC4xNDIsMjguMTQyLDAsMCwwLC4yMzIsMy4wNzEsMTUuMzEyLDE1LjMxMiwwLDAsMC0xLjM3Ni44OTRBMTMuMDYsMTMuMDYsMCwwLDAsNyw5LjA5MWEyNC41NTMsMjQuNTUzLDAsMCwwLTIuNDktMS40NDhBMTkuMDIsMTkuMDIsMCwwLDAsMiwxMC45MzFhMjYuNzkyLDI2Ljc5MiwwLDAsMCwxLjY5NCwyLjQ0M1pcXFwiIGZpbGw9XFxcIiM0NzhjYmZcXFwiLz48cGF0aCBkPVxcXCJtMTIuNDYyIDE2LjZhMi43MzkgMi43MzkgMCAxIDEtMi43NC0yLjczOCAyLjczOSAyLjczOSAwIDAgMSAyLjc0IDIuNzM4XFxcIiBmaWxsPVxcXCIjZmZmXFxcIi8+PHBhdGggZD1cXFwibTExLjggMTYuNzY0YTEuODE5IDEuODE5IDAgMSAxLTEuODE5LTEuODE5IDEuODE3IDEuODE3IDAgMCAxIDEuODE5IDEuODE5XFxcIiBmaWxsPVxcXCIjNDE0MDQyXFxcIi8+PHBhdGggZD1cXFwiTTE2LjE2NiwxOS41OWEuODQ0Ljg0NCwwLDAsMS0uODgyLS44VjE2LjI2N2EuODg2Ljg4NiwwLDAsMSwxLjc2NCwwdjIuNTIyYS44NDUuODQ1LDAsMCwxLS44ODMuOFxcXCIgZmlsbD1cXFwiI2ZmZlxcXCIvPjxwYXRoIGQ9XFxcIm0xOS44NzEgMTYuNmEyLjczOSAyLjczOSAwIDEgMCAyLjc0LTIuNzM4IDIuNzM5IDIuNzM5IDAgMCAwLTIuNzQgMi43MzhcXFwiIGZpbGw9XFxcIiNmZmZcXFwiLz48cGF0aCBkPVxcXCJtMjAuNTMxIDE2Ljc2NGExLjgxOCAxLjgxOCAwIDEgMCAxLjgxNy0xLjgxOSAxLjgxNyAxLjgxNyAwIDAgMC0xLjgxNyAxLjgxOVxcXCIgZmlsbD1cXFwiIzQxNDA0MlxcXCIvPlwiLFxuXHRcIkdpdFwiOiBcIjxwYXRoIGQ9XFxcIk0yOS40NzIsMTQuNzUzLDE3LjI0NywyLjUyOGExLjgsMS44LDAsMCwwLTIuNTUsMEwxMi4xNTgsNS4wNjdsMy4yMiwzLjIyYTIuMTQxLDIuMTQxLDAsMCwxLDIuNzEyLDIuNzNsMy4xLDMuMWEyLjE0MywyLjE0MywwLDEsMS0xLjI4NSwxLjIxbC0yLjg5NS0yLjg5NXY3LjYxN2EyLjE0MSwyLjE0MSwwLDEsMS0xLjc2NC0uMDYyVjEyLjNhMi4xNDYsMi4xNDYsMCwwLDEtMS4xNjUtMi44MTRMMTAuOTExLDYuMzE0LDIuNTI4LDE0LjdhMS44LDEuOCwwLDAsMCwwLDIuNTUxTDE0Ljc1MywyOS40NzJhMS44LDEuOCwwLDAsMCwyLjU1LDBMMjkuNDcyLDE3LjNhMS44LDEuOCwwLDAsMCwwLTIuNTUxXFxcIiBzdHlsZT1cXFwiZmlsbDojZGQ0YzM1XFxcIi8+PHBhdGggZD1cXFwiTTEyLjE1OCw1LjA2N2wzLjIyLDMuMjJhMi4xNDEsMi4xNDEsMCwwLDEsMi43MTIsMi43M2wzLjEsMy4xYTIuMTQzLDIuMTQzLDAsMSwxLTEuMjg1LDEuMjFsLTIuODk1LTIuODk1djcuNjE3YTIuMTQxLDIuMTQxLDAsMSwxLTEuNzY0LS4wNjJWMTIuM2EyLjE0NiwyLjE0NiwwLDAsMS0xLjE2NS0yLjgxNEwxMC45MTEsNi4zMTRcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz5cIixcblx0XCJHTFNMXCI6IFwiPHBhdGggZD1cXFwiTTcuNzc5LDE4LjkyM0EyLjMzMywyLjMzMywwLDAsMSw1LjQsMTcuMTZjLjMwNiwxLjQ2MiwxLjk2MSwyLjg5Miw3LjE4MywzLjUyOWExNC4yMjgsMTQuMjI4LDAsMCwwLDkuMjMyLTEuNjEycy43MzMtLjMyMi4yOTMuMTc2YzAsMC0zLjEwNywyLjg3My05LjIsMi45UzEuOTcsMTkuMTA3LDIsMTZjLS4wMjktMy4xMDcsNC44MDYtNi4xODUsMTAuOS02LjE1NXM5LjIsMi45LDkuMiwyLjljLjQ0LjUtLjI5My4xNzYtLjI5My4xNzYtMS4wODQtLjctNC4yODYtMi4wODktOS4yMzItMS42MTItNC44NjYuNDY5LTYuNDUzLDIuMTIyLTYuOTgxLDMuMjM1YTMuMjU0LDMuMjU0LDAsMCwwLS4zMTgsMS4yNCwyLjQyNCwyLjQyNCwwLDAsMSwyLjUtMi4zMTZBMi41MDcsMi41MDcsMCwwLDEsMTAuMywxNi4xOTUsMi41MDYsMi41MDYsMCwwLDEsNy43NzksMTguOTJabTE5LjY0Ny0xLjA3NEgzMHYuOTM3SDI2LjM0NFYxMy42MDloMS4wODJ2NC4yNFpNMjMuNDU0LDE2aDIuMTYzdjIuNzkxSDI0LjlsLS4xMDgtLjY0OWExLjksMS45LDAsMCwxLTEuNjE0Ljc4NiwyLjQxNCwyLjQxNCwwLDAsMS0yLjM3OS0yLjcxMSwyLjQ4NSwyLjQ4NSwwLDAsMSwyLjUzMS0yLjc0QTIuMDUzLDIuMDUzLDAsMCwxLDI1LjYsMTUuMjE3SDI0LjUxNWExLjEzNiwxLjEzNiwwLDAsMC0xLjEzMi0uODUxYy0uNzcxLDAtMS40ODUuNTM0LTEuNDg1LDEuODYsMCwxLjQxMy43NzEsMS43ODEsMS41MDYsMS43ODFhMS4yOCwxLjI4LDAsMCwwLDEuMjU0LTEuMTM5aC0xLjJWMTZaTTcuNzgxLDE0LjFhMS44NiwxLjg2LDAsMCwwLTEuOCwyLjEwNSwxLjg2LDEuODYsMCwwLDAsMS44LDIuMTA1LDEuODYsMS44NiwwLDAsMCwxLjgtMi4xMDVBMS44NiwxLjg2LDAsMCwwLDcuNzgxLDE0LjFabTIuOTExLDEuMzgzaC41MjV2LjQ2OGguMDEzYTEuMTIsMS4xMiwwLDAsMSwuOTg3LS41NjMsMS41NjUsMS41NjUsMCwwLDEsMS41MDYsMS42NzcsMS42NzUsMS42NzUsMCwwLDEtMS41ODMsMS44MjQsMSwxLDAsMCwxLS44OC0uNDQzaC0uMDEzVjIwLjFoLS41NTdWMTUuNDc5Wk0xMi4xLDE4LjRjLjYwOCwwLDEuMDE5LS41MjcsMS4wMTktMS4yNTQsMC0uNDI0LS4xNzEtMS4yNjQtMS4wMzItMS4yNjQtLjgsMC0uODkzLjg2Ny0uODkzLDEuNDA2LDAsLjg4LjU1MSwxLjExNC45MDUsMS4xMTRabTUtLjY1MmExLjM3OCwxLjM3OCwwLDAsMS0xLjQ4OCwxLjEzMywxLjQ4NywxLjQ4NywwLDAsMS0xLjQ4Mi0xLjY1OGMwLTEuMDI1LjQ5NC0xLjg0MiwxLjU4OC0xLjg0Mi45NTYsMCwxLjQyNC43NiwxLjQyNCwxLjkzMUgxNC43MjFjMCwuNjkuMzIzLDEuMDg5Ljk2MiwxLjA4OWEuODQxLjg0MSwwLDAsMCwuODU0LS42NTJIMTcuMVptLS41OS0uODhjLS4wMzItLjUxMy0uMjQ3LS45ODctLjkyNC0uOTg3YS45NzIuOTcyLDAsMCwwLS45MTguOTg3aDEuODQyWm0zLjcxMywxLjkxN2gtLjU1N1YxNi43NTFjMC0uNTc2LS4xNjUtLjg2Ny0uNzA5LS44NjctLjMxNywwLS44NzQuMi0uODc0LDEuMXYxLjhoLS41NTdWMTUuNDc5aC41MjV2LjQ2OGguMDEzYTEuMiwxLjIsMCwwLDEsMS0uNTYzLDEuMDQ2LDEuMDQ2LDAsMCwxLDEuMTU4LDEuMTUydjIuMjUzXFxcIiBzdHlsZT1cXFwiZmlsbDojNDM4NmI1XFxcIi8+XCIsXG5cdFwiR28gbW9kdWxlXCI6IFwiPHN2ZyB4bWxucz1cXFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcXFwiIHZpZXdCb3g9XFxcIjAgMCAyNTQuNSAyMjVcXFwiPjx0aXRsZT5maWxlX3R5cGVfZ29fcGFja2FnZTwvdGl0bGU+PHBhdGggZD1cXFwiTTYxLjk0OSwxMy4wNjhjMTYuMDYtLjE0NywzMi4xNDMsMCw0OC4yMTEtLjA2Mi0zLjgxLDE2LjQwOC03LjQ2NiwzMi44NjItMTEuMjYxLDQ5LjI3N0gyNS41NDhjLTIuMzE5LDAtNC42MzcuMDc3LTYuOTU2LS4wOTNDMzMsNDUuNzc1LDQ3LjU2NiwyOS41LDYxLjk0OSwxMy4wNjhaXFxcIiBzdHlsZT1cXFwiZmlsbDojZjJlNmM5XFxcIi8+PHBhdGggZD1cXFwiTTE0My41MDksMTMuMDE0aDQ4LjA3MmMxNC40MzcsMTYuNDMxLDI5LjAxMywzMi43MjMsNDMuNDExLDQ5LjE3Ny05LjI3NC4xOTMtMTguNTQ5LDAtMjcuODIzLjA4NUgxNTQuNjU0QzE1MS4wMDYsNDUuODM3LDE0Ny4xMTEsMjkuNDYsMTQzLjUwOSwxMy4wMTRaXFxcIiBzdHlsZT1cXFwiZmlsbDojZjJlNmM5XFxcIi8+PHBhdGggZD1cXFwiTTExMC4xNiwxMy4wMTRoMzMuMzQ5YzMuNiwxNi40NDYsNy40ODksMzIuODIzLDExLjE2LDQ5LjI1NEg5OC45QzEwMi42OTQsNDUuODY4LDEwNi4zNSwyOS40MjIsMTEwLjE2LDEzLjAxNFpcXFwiIHN0eWxlPVxcXCJmaWxsOiNlZmM3NWVcXFwiLz48cGF0aCBkPVxcXCJNMTguNTkyLDYyLjE4M2MyLjMxOS4xNyw0LjYzNy4wODUsNi45NTYuMDkzSDk4LjlxMCwyNi4wMjYuMDU0LDUyLjA1MmExOC44NTcsMTguODU3LDAsMCwwLDEuOTc5LjEzOWg1Mi4xMTRhMTQuNjkzLDE0LjY5MywwLDAsMCwxLjU0Ni0uMTA4Yy4xNDctMTcuMzY2LDAtMzQuNzMyLjA3LTUyLjFoNTIuNTE2YzkuMjc0LS4wNDYsMTguNTQ5LjEwOCwyNy44MjMtLjA4NVYyMTIuNjJIMTguNlExOC41OTIsMTM3LjQwNSwxOC41OTIsNjIuMTgzWlxcXCIgc3R5bGU9XFxcImZpbGw6I2U3YmY1NVxcXCIvPjxwYXRoIGQ9XFxcIk05OC45LDYyLjI5MWg1NS43NjljLS4wNjIsMTcuMzY2LjA4NSwzNC43MzItLjA3LDUyLjEtLjUxOC4wNTQtMS4wMzYuMDkzLTEuNTQ2LjEwOEgxMDAuOTRhMTguODU3LDE4Ljg1NywwLDAsMS0xLjk3MS0uMTMxQzk4Ljg2MSw5Ni45OTMsOTguOTY5LDc5LjYzNCw5OC45LDYyLjI5MVpcXFwiIHN0eWxlPVxcXCJmaWxsOiNkYmI1NTFcXFwiLz48cmVjdCB4PVxcXCIzNC4zODlcXFwiIHk9XFxcIjE2My42ODJcXFwiIHdpZHRoPVxcXCI3Mi40MTdcXFwiIGhlaWdodD1cXFwiMjcuODg1XFxcIiBzdHlsZT1cXFwiZmlsbDojZjJmMmYyXFxcIi8+PHBhdGggZD1cXFwiTTYxLjQyMiwxMzcuMDg1Yy0uMzg4LDAtLjQ4Ny0uMTk0LS4yOTEtLjQ4N2wyLjA0MS0yLjYyNWExLjM5MywxLjM5MywwLDAsMSwxLjA2OS0uNDg3aDM0LjdjLjM4OCwwLC40ODcuMjkxLjI5MS41ODRMOTcuNTgyLDEzNi42YTEuNDgxLDEuNDgxLDAsMCwxLS45NzIuNTg0WlxcXCIgc3R5bGU9XFxcImZpbGw6I2NlMzI2MlxcXCIvPjxwYXRoIGQ9XFxcIk00Ni43NCwxNDYuMDI4Yy0uMzg4LDAtLjQ4Ny0uMTk0LS4yOTEtLjQ4N2wyLjA0MS0yLjYyNWExLjM5MywxLjM5MywwLDAsMSwxLjA2OS0uNDg3SDkzLjg5YS40NDcuNDQ3LDAsMCwxLC40ODcuNTg0bC0uNzc4LDIuMzMzYS44NS44NSwwLDAsMS0uODc1LjU4NFpcXFwiIHN0eWxlPVxcXCJmaWxsOiNjZTMyNjJcXFwiLz48cGF0aCBkPVxcXCJNNzAuMjY0LDE1NC45NzFjLS4zODgsMC0uNDg3LS4yOTEtLjI5MS0uNTg0bDEuMzU3LTIuNDNhMS4yODksMS4yODksMCwwLDEsLjk3Mi0uNTg0SDkxLjc0N2MuMzg4LDAsLjU4NC4yOTEuNTg0LjY4MWwtLjE5NCwyLjMzM2EuNzMxLjczMSwwLDAsMS0uNjgxLjY4MVpcXFwiIHN0eWxlPVxcXCJmaWxsOiNjZTMyNjJcXFwiLz48cGF0aCBkPVxcXCJNMTcxLjE2MywxMzUuMzM1Yy02LjEyNCwxLjU1Ni0xMC4zLDIuNzIyLTE2LjMzLDQuMjgtMS40NjIuMzg4LTEuNTU2LjQ4Ny0yLjgxOS0uOTcyYTEzLjAxMSwxMy4wMTEsMCwwLDAtNC41NjktMy42OTRjLTYuMTI0LTMuMDEzLTEyLjA1NC0yLjEzOC0xNy41OTQsMS40NjJhMjAuNjcxLDIwLjY3MSwwLDAsMC05LjkxOCwxOC40NjksMTUuMjQyLDE1LjI0MiwwLDAsMCwxMy4xMjMsMTUuMjYxYzYuNjEuODc1LDEyLjE1MS0xLjQ2MiwxNi41MjUtNi40MTUuODc1LTEuMDY5LDEuNjUzLTIuMjM2LDIuNjI1LTMuNkgxMzMuNDQ2Yy0yLjA0MSwwLTIuNTI4LTEuMjYzLTEuODQ3LTIuOTE2LDEuMjYzLTMuMDEzLDMuNi04LjA2OCw0Ljk1OC0xMC42YTIuNjI1LDIuNjI1LDAsMCwxLDIuNDMtMS41NTZoMzUuMzg0Yy0uMTk0LDIuNjI1LS4xOTQsNS4yNDktLjU4NCw3Ljg3NGE0MS40NTYsNDEuNDU2LDAsMCwxLTcuOTY3LDE5LjA0MmMtNi45OTUsOS4yMzQtMTYuMTM2LDE0Ljk3LTI3LjcsMTYuNTI1LTkuNTI2LDEuMjYzLTE4LjM3NC0uNTg0LTI2LjE0OC02LjQxNUEzMC41MzMsMzAuNTMzLDAsMCwxLDk5LjYyNSwxNjAuNTFjLTEuMjYzLTEwLjYsMS44NDctMjAuMTIyLDguMjYyLTI4LjQ4MUE0My4xMzcsNDMuMTM3LDAsMCwxLDEzNS4xLDExNS4yMTJjOS4xMzctMS42NTMsMTcuODg2LS41ODQsMjUuNzYsNC43NjNBMzAuNDcxLDMwLjQ3MSwwLDAsMSwxNzIuMTQsMTMzLjY4QzE3Mi43MTksMTM0LjU1OCwxNzIuMzMsMTM1LjA0NCwxNzEuMTYzLDEzNS4zMzVaXFxcIiBzdHlsZT1cXFwiZmlsbDojY2UzMjYyXFxcIi8+PHBhdGggZD1cXFwiTTIwMy4zMzgsMTg5LjA5Yy04Ljg0Ni0uMTk0LTE2LjkxMy0yLjcyMi0yMy43MTktOC41NTRhMzAuNDg1LDMwLjQ4NSwwLDAsMS0xMC41LTE4Ljc2MWMtMS43NS0xMC45ODQsMS4yNjMtMjAuNyw3Ljg3NC0yOS4zNTYsNy4xLTkuMzMxLDE1LjY1MS0xNC4xOTIsMjcuMjE4LTE2LjIzMyw5LjkxOC0xLjc1LDE5LjI0Ny0uNzc4LDI3LjcsNC45NTgsNy42OCw1LjI0OSwxMi40NDIsMTIuMzQ1LDEzLjcwNiwyMS42NzYsMS42NTMsMTMuMTIzLTIuMTM4LDIzLjgxNi0xMS4xNzksMzIuOTUzYTQ0LjU0Miw0NC41NDIsMCwwLDEtMjMuMzI5LDEyLjQ0MkMyMDguNDksMTg4LjcsMjA1Ljg2NiwxODguOCwyMDMuMzM4LDE4OS4wOVptMjMuMTM1LTM5LjI3MWEyNy45NzgsMjcuOTc4LDAsMCwwLS4yOTEtMy4yMDgsMTYuMDEzLDE2LjAxMywwLDAsMC0xOC4zNzUtMTMuMjM1cS0uNzM0LjExOS0xLjQ1NC4zMDZjLTkuMDQsMi4wNDEtMTQuODczLDcuNzc3LTE3LjAxMSwxNi45MTNhMTYuMDA5LDE2LjAwOSwwLDAsMCw4Ljk0MywxOC4zNzQsMTcuODIsMTcuODIsMCwwLDAsMTUuODQ1LS41ODRjNy42NzktMy45ODUsMTEuODU5LTEwLjIwNiwxMi4zNDgtMTguNTY2WlxcXCIgc3R5bGU9XFxcImZpbGw6I2NlMzI2MlxcXCIvPjwvc3ZnPlwiLFxuXHRcIkdvXCI6IFwiPHN2ZyB4bWxucz1cXFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcXFwiIHZpZXdCb3g9XFxcIjAgMCAyNTQuNSAyMjVcXFwiPjx0aXRsZT5maWxlX3R5cGVfZ288L3RpdGxlPjxwYXRoIGQ9XFxcIk0tNDYuOTI2LDg5Yy0uNjIxLDAtLjc3Ny0uMzExLS40NjYtLjc3N2wzLjI2Mi00LjE5NGEyLjIyNSwyLjIyNSwwLDAsMSwxLjcwOC0uNzc3SDEzLjAyNmMuNjIxLDAsLjc3Ny40NjYuNDY2LjkzMmwtMi42NCw0LjAzOGEyLjM2NywyLjM2NywwLDAsMS0xLjU1My45MzJaXFxcIiBzdHlsZT1cXFwiZmlsbDojMDBhY2Q3XFxcIi8+PHBhdGggZD1cXFwiTS03MC4zNzksMTAzLjI4NWMtLjYyMSwwLS43NzctLjMxMS0uNDY2LS43NzdsMy4yNjItNC4xOTRhMi4yMjUsMi4yMjUsMCwwLDEsMS43MDgtLjc3N0g0Ljk1YS43MTQuNzE0LDAsMCwxLC43NzcuOTMyTDQuNDg0LDEwMi4yYTEuMzU4LDEuMzU4LDAsMCwxLTEuNC45MzJaXFxcIiBzdHlsZT1cXFwiZmlsbDojMDBhY2Q3XFxcIi8+PHBhdGggZD1cXFwiTS0zMi43OTIsMTE3LjU3NGMtLjYyMSwwLS43NzctLjQ2Ni0uNDY2LS45MzJsMi4xNzQtMy44ODNhMi4wNiwyLjA2LDAsMCwxLDEuNTUzLS45MzJIMS41MzNjLjYyMSwwLC45MzIuNDY2LjkzMiwxLjA4N2wtLjMxMSwzLjcyOGExLjE2NywxLjE2NywwLDAsMS0xLjA4NywxLjA4N1pcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMGFjZDdcXFwiLz48cGF0aCBkPVxcXCJNMTI4LjQyNiw4Ni4yYy05Ljc4NSwyLjQ4NS0xNi40NjQsNC4zNDktMjYuMDkzLDYuODM0LTIuMzMuNjIxLTIuNDg1Ljc3Ny00LjUtMS41NTMtMi4zMy0yLjY0LTQuMDM4LTQuMzQ5LTcuMy01LjktOS43ODUtNC44MTUtMTkuMjU5LTMuNDE3LTI4LjExMiwyLjMzLTEwLjU2MSw2LjgzNC0xNiwxNi45MjktMTUuODQyLDI5LjUxLjE1NSwxMi40MjUsOC43LDIyLjY3NiwyMC45NjgsMjQuMzg1LDEwLjU2MSwxLjQsMTkuNDE0LTIuMzMsMjYuNC0xMC4yNTEsMS40LTEuNzA4LDIuNjQtMy41NzIsNC4xOTQtNS43NDdINjguMTYzYy0zLjI2MiwwLTQuMDM4LTIuMDE5LTIuOTUxLTQuNjU5LDIuMDE5LTQuODE1LDUuNzQ3LTEyLjg5MSw3LjkyMS0xNi45MjlhNC4xOTQsNC4xOTQsMCwwLDEsMy44ODMtMi40ODVoNTYuNTM1Yy0uMzExLDQuMTk0LS4zMTEsOC4zODctLjkzMiwxMi41ODFhNjYuMjM5LDY2LjIzOSwwLDAsMS0xMi43MzYsMzAuNDQyQzEwOC43LDE1OS41MSw5NC4xLDE2OC42NzMsNzUuNjE4LDE3MS4xNThjLTE1LjIyMSwyLjAxOS0yOS4zNTUtLjkzMi00MS43OC0xMC4yNTFhNDguNzg1LDQ4Ljc4NSwwLDAsMS0xOS43MjUtMzQuNDhjLTIuMDE5LTE2LjkyOSwyLjk1MS0zMi4xNSwxMy4yLTQ1LjUwOEMzOC4zNDIsNjYuNDc1LDUyLjk0Miw1Ny4zMTIsNzAuOCw1NC4wNWMxNC42LTIuNjQsMjguNTc4LS45MzIsNDEuMTU5LDcuNjFhNDguNjg2LDQ4LjY4NiwwLDAsMSwxOC4wMTcsMjEuOUMxMzAuOTExLDg0Ljk1OCwxMzAuMjg5LDg1LjczNSwxMjguNDI2LDg2LjJaXFxcIiBzdHlsZT1cXFwiZmlsbDojMDBhY2Q3XFxcIi8+PHBhdGggZD1cXFwiTTE3OS44MzUsMTcyLjA5Yy0xNC4xMzQtLjMxMS0yNy4wMjUtNC4zNDktMzcuOS0xMy42NjhhNDguNzExLDQ4LjcxMSwwLDAsMS0xNi43NzQtMjkuOTc2Yy0yLjgtMTcuNTUxLDIuMDE5LTMzLjA4MiwxMi41ODEtNDYuOTA1LDExLjMzOC0xNC45MSwyNS4wMDYtMjIuNjc2LDQzLjQ4OC0yNS45MzgsMTUuODQyLTIuOCwzMC43NTMtMS4yNDMsNDQuMjY1LDcuOTIxLDEyLjI3LDguMzg3LDE5Ljg4LDE5LjcyNSwyMS45LDM0LjYzNSwyLjY0LDIwLjk2OC0zLjQxNywzOC4wNTItMTcuODYxLDUyLjY1MmE3MS4xNyw3MS4xNywwLDAsMS0zNy4yNzYsMTkuODhDMTg4LjA2NywxNzEuNDY5LDE4My44NzQsMTcxLjYyNCwxNzkuODM1LDE3Mi4wOVpNMjE2LjgsMTA5LjM0M2E0NC43LDQ0LjcsMCwwLDAtLjQ2Ni01LjEyNWMtMi44LTE1LjM3Ni0xNi45MjktMjQuMDc0LTMxLjY4NC0yMC42NTctMTQuNDQ0LDMuMjYyLTIzLjc2MywxMi40MjUtMjcuMTgsMjcuMDI1YTI1LjU3OSwyNS41NzksMCwwLDAsMTQuMjg5LDI5LjM1NWM4LjU0MiwzLjcyOCwxNy4wODUsMy4yNjIsMjUuMzE3LS45MzJDMjA5LjM0NSwxMzIuNjQsMjE2LjAyNCwxMjIuNywyMTYuOCwxMDkuMzQzWlxcXCIgc3R5bGU9XFxcImZpbGw6IzAwYWNkN1xcXCIvPjwvc3ZnPlwiLFxuXHRcIkdyYWRsZVwiOiBcIjxwYXRoIGQ9XFxcIk0xMy41LDYuOTY1aDcuOTIzbDQsNi44ODdIMjkuOThBMTQuMSwxNC4xLDAsMCwwLDExLjAyNCwyLjkzMkwxMy41LDYuOTY1XFxcIiBzdHlsZT1cXFwiZmlsbDojMDA2NTMzXFxcIi8+PHBhdGggZD1cXFwiTTI1LjYyOCwxOGwtNC4yMDksNy4yNTJIMTAuODA2TDUuNSwxNi4xMDgsOS43MzksOC44LDcuNCw0Ljk4MUExNC4wMywxNC4wMywwLDEsMCwzMCwxOEgyNS42MjhcXFwiIHN0eWxlPVxcXCJmaWxsOiM4MmI4MTZcXFwiLz48cGF0aCBkPVxcXCJNMjEuMDYxLDE1Ljk2M2E1LjAyNiw1LjAyNiwwLDEsMS01LjAyNi01LDUuMDEzLDUuMDEzLDAsMCwxLDUuMDI2LDVcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMDY1MzJcXFwiLz5cIixcblx0XCJHcmFwaFFMXCI6IFwiPHJlY3QgeD1cXFwiLTAuNDNcXFwiIHk9XFxcIjEyLjUzNFxcXCIgd2lkdGg9XFxcIjIyLjkwMVxcXCIgaGVpZ2h0PVxcXCIxLjE4N1xcXCIgdHJhbnNmb3JtPVxcXCJ0cmFuc2xhdGUoLTUuODU4IDE2LjEwNykgcm90YXRlKC01OS45OTkpXFxcIiBzdHlsZT1cXFwiZmlsbDojZTEwMDk4XFxcIi8+PHJlY3QgeD1cXFwiNC41NDVcXFwiIHk9XFxcIjIxLjE2MlxcXCIgd2lkdGg9XFxcIjIyLjkwMlxcXCIgaGVpZ2h0PVxcXCIxLjE4N1xcXCIgc3R5bGU9XFxcImZpbGw6I2UxMDA5OFxcXCIvPjxyZWN0IHg9XFxcIjEwLjQzXFxcIiB5PVxcXCIxOC4wMDhcXFwiIHdpZHRoPVxcXCIxLjE4N1xcXCIgaGVpZ2h0PVxcXCIxMy4yMjdcXFwiIHRyYW5zZm9ybT1cXFwidHJhbnNsYXRlKC0xNS44MTIgMjEuODU3KSByb3RhdGUoLTU5Ljk5OSlcXFwiIHN0eWxlPVxcXCJmaWxsOiNlMTAwOThcXFwiLz48cmVjdCB4PVxcXCIyMC4zODFcXFwiIHk9XFxcIjAuNzcxXFxcIiB3aWR0aD1cXFwiMS4xODdcXFwiIGhlaWdodD1cXFwiMTMuMjI3XFxcIiB0cmFuc2Zvcm09XFxcInRyYW5zbGF0ZSg0LjA5MiAyMS44NTYpIHJvdGF0ZSgtNTkuOTk5KVxcXCIgc3R5bGU9XFxcImZpbGw6I2UxMDA5OFxcXCIvPjxyZWN0IHg9XFxcIjQuNDEyXFxcIiB5PVxcXCI2Ljc4N1xcXCIgd2lkdGg9XFxcIjEzLjIyN1xcXCIgaGVpZ2h0PVxcXCIxLjE4N1xcXCIgdHJhbnNmb3JtPVxcXCJ0cmFuc2xhdGUoLTIuMjEzIDYuNTAyKSByb3RhdGUoLTMwLjAwMSlcXFwiIHN0eWxlPVxcXCJmaWxsOiNlMTAwOThcXFwiLz48cmVjdCB4PVxcXCIyMC4zODlcXFwiIHk9XFxcIjEuNjc3XFxcIiB3aWR0aD1cXFwiMS4xODdcXFwiIGhlaWdodD1cXFwiMjIuOTAxXFxcIiB0cmFuc2Zvcm09XFxcInRyYW5zbGF0ZSgtMy43NTMgMTIuMjUpIHJvdGF0ZSgtMzAuMDAxKVxcXCIgc3R5bGU9XFxcImZpbGw6I2UxMDA5OFxcXCIvPjxyZWN0IHg9XFxcIjUuNDU0XFxcIiB5PVxcXCI5LjM4NlxcXCIgd2lkdGg9XFxcIjEuMTg3XFxcIiBoZWlnaHQ9XFxcIjEzLjIyOFxcXCIgc3R5bGU9XFxcImZpbGw6I2UxMDA5OFxcXCIvPjxyZWN0IHg9XFxcIjI1LjM2XFxcIiB5PVxcXCI5LjM4NlxcXCIgd2lkdGg9XFxcIjEuMTg3XFxcIiBoZWlnaHQ9XFxcIjEzLjIyOFxcXCIgc3R5bGU9XFxcImZpbGw6I2UxMDA5OFxcXCIvPjxyZWN0IHg9XFxcIjE1LjIyMlxcXCIgeT1cXFwiMjQuMDk3XFxcIiB3aWR0aD1cXFwiMTEuNTA0XFxcIiBoZWlnaHQ9XFxcIjEuMDM3XFxcIiB0cmFuc2Zvcm09XFxcInRyYW5zbGF0ZSgtOS40OTggMTMuNzg1KSByb3RhdGUoLTMwLjAwMSlcXFwiIHN0eWxlPVxcXCJmaWxsOiNlMTAwOThcXFwiLz48cGF0aCBkPVxcXCJNMjguMTIsMjNhMi41LDIuNSwwLDEsMS0uOTE1LTMuNDExQTIuNSwyLjUsMCwwLDEsMjguMTIsMjNcXFwiIHN0eWxlPVxcXCJmaWxsOiNlMTAwOThcXFwiLz48cGF0aCBkPVxcXCJNOC4yLDExLjVhMi41LDIuNSwwLDEsMS0uOTE1LTMuNDExQTIuNSwyLjUsMCwwLDEsOC4yLDExLjVcXFwiIHN0eWxlPVxcXCJmaWxsOiNlMTAwOThcXFwiLz48cGF0aCBkPVxcXCJNMy44OCwyM2EyLjUsMi41LDAsMSwxLDMuNDExLjkxNUEyLjUsMi41LDAsMCwxLDMuODgsMjNcXFwiIHN0eWxlPVxcXCJmaWxsOiNlMTAwOThcXFwiLz48cGF0aCBkPVxcXCJNMjMuOCwxMS41YTIuNSwyLjUsMCwxLDEsMy40MTEuOTE1QTIuNSwyLjUsMCwwLDEsMjMuOCwxMS41XFxcIiBzdHlsZT1cXFwiZmlsbDojZTEwMDk4XFxcIi8+PHBhdGggZD1cXFwiTTE2LDMwYTIuNSwyLjUsMCwxLDEsMi41LTIuNUEyLjQ5MywyLjQ5MywwLDAsMSwxNiwzMFxcXCIgc3R5bGU9XFxcImZpbGw6I2UxMDA5OFxcXCIvPjxwYXRoIGQ9XFxcIk0xNiw2Ljk5MWEyLjUsMi41LDAsMSwxLDIuNS0yLjUsMi40OTMsMi40OTMsMCwwLDEtMi41LDIuNVxcXCIgc3R5bGU9XFxcImZpbGw6I2UxMDA5OFxcXCIvPlwiLFxuXHRcIkdyb292eVwiOiBcIjxwYXRoIGQ9XFxcIk03LjQ1MywyOS44NjVjMC0uMDc0LjQ5NC0xLjcxNywxLjEtMy42NTFBMjEuODA4LDIxLjgwOCwwLDAsMCw5LjUsMjIuNmMtLjA3OS0uMDU2LS4zNS4wNDUtLjYuMjI0LS43NjQuNTM4LS45Mi40LTEuNDkxLTEuMzU2LS42MTctMS45LS42MzktMi4wOTEtLjMxNy0yLjgxLjIxLS40Ny4yLS41NzktLjE0Ny0xLjI3N2EzLjc1LDMuNzUsMCwwLDEtLjM3Ny0xLjA0NGMwLS4yNi0xLjQxMy0xLjQzOC0zLjY0Ny0zLjA0QTMuODQ1LDMuODQ1LDAsMCwxLDIsMTIuNWExMC40NzcsMTAuNDc3LDAsMCwxLDIuMzc4LS4wMzlsMi4zNzguMS4yMzItLjc0MWMuOTgxLTMuMTMsMi40NjMtNS45NTcsMy4xMjItNS45NTcuMTM3LDAsLjQxNi4yNjUuNjE5LjU4OC4zMzEuNTI3LjM3Ni44NTMuNDM1LDMuMTI2YTIzLjAxMywyMy4wMTMsMCwwLDAsLjE2NSwyLjczOWMuMDU1LjExLjIyOC0uMDM1LjM4NS0uMzIyLjItLjM2Ny40MTItLjQ2Ny43MS0uMzM1cy40ODUuMDQzLjY0Ni0uMzQ1Yy4yNDItLjU4MiwxLjQ1NS00LjUxMywxLjQ1NS00LjcxNywwLS4wNjkuMjQtLjkuNTM0LTEuODQ2cy42MzEtMi4wMzYuNzUxLTIuNDI0Yy4yMTMtLjY4OC4yNDYtLjYwNywxLjUyNCwzLjcyNiwxLjMyLDQuNDc0LDIuMDMsNi4xMjQsMi4zODUsNS41NDQuMjQ4LS40LDEuNTUtLjQyOCwxLjkxNC0uMDM0LjIwNy4yMjQuMzM4LjIyMS40NTMtLjAxLjIzNy0uNDguOC0uNC45NTMuMTQuMTE3LjQyMy4xNDcuNDIzLjMyLDBhLjgxMi44MTIsMCwwLDEsLjY5Mi0uNDY2Yy4zODksMCwuNTM4LjE2NC42NjYuNzM1bC4xNjUuNzM1LDIuNTU4LS4xODNBMTEuNTIxLDExLjUyMSwwLDAsMSwzMCwxMi40NjhhMjAuNzksMjAuNzksMCwwLDEtMi4zMjEsMS44ODljLTEuMjc3Ljk2LTIuMzQyLDEuNzc1LTIuMzY4LDEuODFhMTcuNjA3LDE3LjYwNywwLDAsMCwuMTI4LDEuODY3LDExLjA3NSwxMS4wNzUsMCwwLDEtLjU0NCw1LjcxMyw0LjMwOCw0LjMwOCwwLDAsMS0xLjAyMSwxLjQ5Yy0uMjc4LjE4Ni0uNTA2LjQtLjUwNi40ODZzLjMsMS4wNzcuNjYsMi4yMTJBOS42ODIsOS42ODIsMCwwLDEsMjQuNTY4LDMwYy0uMTA5LDAtMi43NTctMi4wNy02Ljg3Ni01LjM3M2ExMS4xNDMsMTEuMTQzLDAsMCwwLTEuNjQzLTEuMTg0Yy0uMTcxLDAtMS42NDksMS4xMzMtNS45ODQsNC41ODgtMi41MTQsMi0yLjYxMiwyLjA3My0yLjYxMiwxLjgzNVptNS4xNTgtNC43MjdjMS4zMzctMS4wNTEsMi42NjQtMi4wNzgsMi45NDctMi4yODIuNDg4LS4zNTEuNjUxLS4yNjMsMy4wMjEsMS42MzEsMS4zNzgsMS4xLDIuNzM3LDIuMTc0LDMuMDIxLDIuMzg0cy44NjguNjY2LDEuMywxLjAxM2MuNDkxLjQuNzQyLjQ5Mi42NzQuMjU2LS43Ny0yLjYzNC0uNzkzLTIuNjc4LTEuMzI3LTIuNDc2LS42NDQuMjQ0LTEuMDQzLS4wMDYtMS4yNDktLjc4M2ExLjczOSwxLjczOSwwLDAsMSwuMjQtMS40NTEsMi4zNzcsMi4zNzcsMCwwLDAtLjIyMS0yLjczMSw0LjI4OSw0LjI4OSwwLDAsMS0uNjg2LTEuNTNsLS4yNDEtMS4wMjMtLjUxNy43MWMtLjYzNi44NzMtMS40MTEuOTE4LTIuMDU5LjExOWwtLjQ3Ny0uNTg4LS41NTQuNzYyYy0uNTU1Ljc2My0xLjE5NC44NjItMS44NDQuMjg0LS4xNzktLjE1OS0uMjU4LS4xLS4yNTguMmExLjI0LDEuMjQsMCwwLDEtLjM3NS43NzdjLS42MTkuNTctMS4yMjMuNDE5LTEuNjMzLS40MDlMMTIsMTkuMjQ5bC0uMy43NzVhNy4wMzIsNy4wMzIsMCwwLDEtLjg1MywxLjQ3OSwxMy44OTEsMTMuODkxLDAsMCwwLTEuNDU1LDMuNjYzYy0uNSwxLjYyNy0uOSwzLjA0Mi0uOSwzLjE0M3MuMzgxLS4xNDEuODQ3LS41MzgsMS45NDItMS41ODIsMy4yNzktMi42MzNabTExLjM0My0xLjEzMWMxLjAxNS0xLjE1NCwxLjI1LTMuMjg4LjgtNy4yNzEtLjM3NS0zLjMyOS0uNTYyLTQuNDE5LS43ODQtNC41NjUtLjE1NC0uMS0uMTc3LjAxLS4wOTEuNDI2LjU2MiwyLjcuNTkzLDQuMDUzLjEsNC40MzQtLjMzNy4yNjItLjY5NS0uNzE5LS45NzYtMi42NzUtLjIxOC0xLjUxNS0uNDQ1LTIuMi0uNjE3LTEuODVhMy4zNTksMy4zNTksMCwwLDAsLjE2LDEuMDcsMjYuNzE4LDI2LjcxOCwwLDAsMSwuMzk0LDMuMzgxLDIxLjc1NywyMS43NTcsMCwwLDAsLjM3NSwzLjE1MWMuMzA5Ljk4NS44Ljc0NywxLjExOC0uNTRzLjM1LS40MjUuMDQ0LDEuMDU1Yy0uMzE3LDEuNTM2LTEuMjYsMi0yLjM1MiwxLjE1LS4xNzUtLjEzNi0uMjM0LDAtLjIzNC41NTVhNC45ODgsNC45ODgsMCwwLDEtLjMsMS41bC0uMy43NjUuNDA4LjEzOUEyLjI0NywyLjI0NywwLDAsMCwyMy45NTQsMjQuMDA3Wk05LjM0NiwyMS40NjhjMi4xMTgtMS4yMzIsMi41LTIuNjY4LDEuNzkzLTYuODA1YTIxLjk0MSwyMS45NDEsMCwwLDEtLjMtMi4zYzAtMS4wMjktLjI1Ni0uNTU0LS40NDguODMyLS4yNTQsMS44MzItMS4wMTYsMy4zODktMS42NTcsMy4zODMtLjU1Ny0uMDA1LS43MzgtLjIxLS45NjgtMS4wOTQtLjQxMy0xLjU4NS4wMzctNC4wMTgsMS4xODQtNi40MDYuODQtMS43NDksMS4zLTEuOTA4LDEuMy0uNDQ4LDAsMi4yNzYtLjc3Niw1LjYyNS0xLjE4NCw1LjExNWEzLjgxNCwzLjgxNCwwLDAsMSwuMDY1LTIuMmMuMi0uNzIuMTU3LTEuODE4LS4wNjYtMS44MTgtLjI1OSwwLS43NzMsMS45MS0uODQxLDMuMTI3LS4wNiwxLjA3Ni0uMDIyLDEuMzM4LjIzMSwxLjYxMi44ODguOTYyLDIuMDUyLTEuOTczLDIuMTExLTUuMzIzLjAzMS0xLjc1OS0uMTM4LTIuMjU0LS42NzQtMS45ODItLjc4MS40LTIuODgzLDUuODgzLTIuODgzLDcuNTIzLDAsMS4yODMuMzE5LDIuMTg2Ljg4LDIuNDkxLjk1NC41MTksMS44NzYtLjQsMi41MjktMi41MzFsLjI3NS0uODk0VjE0Ljk3YzAsMS43NTktLjU2NywyLjY4Ni0yLjM1NywzLjg1MmE4Ljg5Myw4Ljg5MywwLDAsMC0uODUyLjYsOS43NTgsOS43NTgsMCwwLDAsLjg5MiwyLjUzNCw1LjI4Myw1LjI4MywwLDAsMCwuOTY5LS40ODRabTEyLjc2NC0yLjE4NGMuMjEzLS40NzUuMjUtLjk5Mi4yLTIuODE3LS4wNS0xLjk4Ni0uMS0yLjMzNy0uNDg2LTMuMTQ0LS42OTEtMS40NTgtMS41NDQtMS4wODYtMS4wNDUuNDU1LjI2NS44Mi41ODkuNjguNDc1LS4yMDUtLjA5MS0uNy4wNzktLjcyMy4zNzUtLjA0MS41NTYsMS4yODEuNDE2LDMuMDU1LS4yNDIsMy4wNTUtLjQ1LDAtLjU5LS4zOS0uODgzLTIuNDU5YTYuNzUyLDYuNzUyLDAsMCwwLS4zNjItMS43MTRjLS4yMTcsMC0uMzE0LjM4OC0uMTc5LjcxOGEyOC4yMywyOC4yMywwLDAsMSwuNDUyLDIuODU5Yy40NDEsMy41MDcsMS4wNTcsNC43MDcsMS42OSwzLjI5M1ptLTguMzguMDU2YTMuMzg1LDMuMzg1LDAsMCwwLC4wOTUtMS4zM2MtLjA2LTEuMDA4LS4wOTQtMS4wODEtLjM2NC0uNzktLjM4Ny40MTktLjgtLjM3NS0uOTQ0LTEuOC0uMTA3LTEuMDgyLS4xNC0xLjA2MS42NC0uNDE1LjEuMDgxLjM0Ni0uMTk0LjU1My0uNjExLjM3Ny0uNzYzLjUtMS42OC4yMjgtMS42OC0uMDgxLDAtLjE0Ny4xMzQtLjE0Ny4zLDAsLjQyOS0uNC4zNjgtLjQ5NC0uMDc1LS4wNTMtLjI1OC0uMTY2LS4xNjctLjM2Ny4zLS4xNi4zNjktLjM1Ni42NzEtLjQzNC42NzFzLS4xODUtLjMtLjIzNy0uNjcxYy0uMDktLjY0Ni0uMS0uNjUtLjMtLjExM2EuOTUxLjk1MSwwLDAsMC0uMDEuOTY0LDE4LjgxOCwxOC44MTgsMCwwLDEsLjUyMSwzLjc5MWMwLDEuMTc0LjgsMi4xLDEuMjY3LDEuNDYzWm0yLjY4OC0xLjU1NmE3LjA1NSw3LjA1NSwwLDAsMCwuNDE2LTQuMjU5Yy0uMjM2LTEuMTQxLS42NDUtMS41NjgtMS4yMjItMS4yNzUtLjQyOS4yMTgtMS4wODIsMi43NDYtMS4wODQsNC4yLDAsMi4yNjIsMS4wNiwzLjAxNSwxLjg5LDEuMzM3Wm0tMS4wMDctMS43OTJhMy43NywzLjc3LDAsMCwxLS4yOS0xLjQxNmMwLS43NDUuMDIyLS43NzIuMi0uMy4yMi41ODYuNjExLjY4OC43NjEuMmExLjAzNSwxLjAzNSwwLDAsMC0uMDY1LS42NTZjLS4yMzItLjQ2OS0uMi0xLjEwNy4wNDktMS4xMDcuMjgsMCwuNjcyLDEuMTU0LjY3MiwxLjk4MiwwLC42MDktLjYxMywxLjg5My0uOSwxLjg5My0uMDcsMC0uMjYtLjI2OC0uNDIyLS42Wk0xOS4zNDgsMTcuN2E2LjQ0Nyw2LjQ0NywwLDAsMC0uMTQxLTQuOTE4Yy0uMzU4LS43NzMtMS4xNTMtLjkwNi0xLjQ3OS0uMjQ4YTExLjYwNywxMS42MDcsMCwwLDAtLjQ4OSwzLjg5NUMxNy40NzcsMTguMzQ4LDE4LjcxNiwxOS4xLDE5LjM0OCwxNy43Wk0xOC4xLDE1LjUyN2EyLjQ5MiwyLjQ5MiwwLDAsMS0uMzE4LTEuNTY1Yy4wMDgtLjkwOS4wMzEtLjk5MS4xMzUtLjQ3Mi4xNTMuNzY0LjQ3MywxLjA1Mi43NTMuNjc5LjE3NC0uMjMxLjE2Ni0uMzQxLS4wNS0uNjc2LS4yODgtLjQ0Ny0uMzQ0LTEuMDc5LS4xLTEuMDc5YTUuMDM3LDUuMDM3LDAsMCwxLDEuMDE3LDIuMjVjMCwuNDgtLjU2NCwxLjMyNy0uODg0LDEuMzI3QzE4LjUyNywxNS45OTEsMTguMjc2LDE1Ljc4MiwxOC4xLDE1LjUyN1ptOC42NjItMS4zMTgsMS41NDctMS4xNzUtMS42NTgtLjAxMmMtMS40ODQtLjAxMS0xLjY1OC4wNDMtMS42NTYuNTFhMTEuNTMyLDExLjUzMiwwLDAsMCwuMiwxLjg1N2MuMDExLDAsLjcxNi0uNTM0LDEuNTY3LTEuMThaTTYuNTM1LDE0bC4xNTgtLjk0OUw1LjMsMTIuOTU2Yy0uNzY0LS4wNTItMS4zODktLjAxMi0xLjM4OS4wODhhMTQuMSwxNC4xLDAsMCwwLDIuNDQ3LDEuOTM0QzYuMzcxLDE0Ljk2MSw2LjQ0OCwxNC41MjEsNi41MzUsMTRabTkuNTI2LTIuOTQxYTEuNjI0LDEuNjI0LDAsMCwxLC44MTkuNmMuMTkyLjM0OS4yNzYuMzI2LjU3My0uMTYzLjE5MS0uMzE1LjQ0LS41NzIuNTUzLS41NzJzLjItLjA2Ni4yLS4xNDZjMC0uMjc4LTIuMTIyLTcuMzA2LTIuMi03LjNzLTIuMjcsNy4zODYtMi4zMzcsNy45MjVjLS4wMjguMjI2LjA2LjMwOS4yMzEuMjE5LjE1Mi0uMDgxLjM2My4wNjMuNDY4LjMxOS4xNy40MTUuMjQuMzgyLjY0NC0uMzA2LjM4NC0uNjU0LjU0NC0uNzQyLDEuMDQ4LS41NzlaXFxcIiBzdHlsZT1cXFwiZmlsbDojMzMzXFxcIi8+PHBhdGggZD1cXFwiTTE0LjUsMTIuMTc1YS44NS44NSwwLDAsMS0uMTE1LS4yLjczNy43MzcsMCwwLDAtLjE5NC0uMjkuMjgxLjI4MSwwLDAsMC0uMy0uMDYxYy0uMDg3LjAzNS0uMTExLjAzOS0uMTUuMDI0LS4wNjUtLjAyNi0uMDg5LS4xMDYtLjA3LS4yNDIuMDIzLS4xNjkuMi0uODI1LjU0OC0yLjA1NC43MTEtMi41LDEuNjY2LTUuNjQ2LDEuNzcyLTUuODM5LjAxMi0uMDIxLjAxMi0uMDIxLjAyNCwwLC4wNjMuMTE0LjQzMiwxLjI2Ni45MzcsMi45MjIuNjgyLDIuMjQsMS4yNSw0LjIxLDEuMjUsNC4zMzksMCwuMDc5LS4wNi4xMjctLjE4Ni4xNDctLjE1Ny4wMjYtLjMzOS4yMTItLjU4Ny42YTEuNjc0LDEuNjc0LDAsMCwxLS4yMjYuMzFjLS4wNDguMDQ2LS4wNTIuMDQ4LS4xLjA0OHMtLjA1NiwwLS4xLS4wNDNhLjk1OC45NTgsMCwwLDEtLjEtLjE0NCwxLjI2OCwxLjI2OCwwLDAsMC0uNDE0LS40MjIsMS41MjUsMS41MjUsMCwwLDAtLjczOC0uMjgxLjQzNC40MzQsMCwwLDAtLjQuMTU2LDIuNzE4LDIuNzE4LDAsMCwwLS40MTYuNmMtLjI1Ny40MjUtLjM0OC41MTMtLjQ0MS40MjZaXFxcIiBzdHlsZT1cXFwiZmlsbDojNjM5OGFhXFxcIi8+PHBhdGggZD1cXFwiTTYuMjUyLDE0LjkyOGExOS4wNTUsMTkuMDU1LDAsMCwxLTIuMy0xLjgzOGMtLjAzMS0uMDM4LS4wMzQtLjA0NC0uMDI1LS4wNTdhMi43LDIuNywwLDAsMSwxLjE0LS4wODVjLjIzLjAxMiwxLjYxOS4xLDEuNjIxLjEwOHMtLjMsMS43NzktLjMyMSwxLjg4MUM2LjM1NywxNC45ODEsNi4zMzcsMTQuOTc5LDYuMjUyLDE0LjkyOFpcXFwiIHN0eWxlPVxcXCJmaWxsOiM2Mzk4YWFcXFwiLz48cGF0aCBkPVxcXCJNMjUuMTc3LDE1LjM1QTE0LjIzOSwxNC4yMzksMCwwLDEsMjUsMTMuNTZhLjU1My41NTMsMCwwLDEsLjA0NC0uMjljLjA4MS0uMTUxLjI0NS0uMjA1LjctLjIzLjIyOC0uMDEzLDEuMjgxLS4wMTUsMi4wMjUsMGwuNTIxLjAwOEwyNy4wMjksMTRjLTEuMTQ0Ljg2Ny0xLjgxLDEuMzY5LTEuODM0LDEuMzgyLS4wMDYsMC0uMDEyLS4wMDYtLjAxOC0uMDI3aDBaXFxcIiBzdHlsZT1cXFwiZmlsbDojNjM5OGFhXFxcIi8+PHBhdGggZD1cXFwiTTguNTA2LDI4LjI4MWMwLS4wNzEuMTQ5LS42LjUyNy0xLjg3OC45MDUtMy4wNTcsMS4zMTktNC4xNjUsMS44MjctNC44OTJhNy42NjQsNy42NjQsMCwwLDAsLjk2OS0xLjc5MkwxMiwxOS4yOTJsLjIyNS40NDhjLjM5NC43ODQuNjMyLDEuMDExLDEuMDYyLDEuMDE2YTEuMjM5LDEuMjM5LDAsMCwwLDEuMS0xLjEzN2MwLS4xMjQuMDQ0LS4yNTEuMDg2LS4yNTFhMS4xMTksMS4xMTksMCwwLDEsLjIyNi4xNCwxLjI3MSwxLjI3MSwwLDAsMCwuNjY2LjMuODc5Ljg3OSwwLDAsMCwuNjA5LS4xNDgsMi40NywyLjQ3LDAsMCwwLC43MTEtLjc2NGMuMTg3LS4yNTIuMzQ3LS40NTkuMzU0LS40NTlzLjE0My4xNTkuMy4zNTJhNS4wOTEsNS4wOTEsMCwwLDAsLjQyMi40NjcsMS4wNDksMS4wNDksMCwwLDAsMS41NDktLjA4LDYuMTExLDYuMTExLDAsMCwwLC40NjctLjU3MmMuMTY4LS4yMjguMzA3LS40MS4zMS0uNHMuMDY2LjI2OS4xNDEuNTg0LjE2OS42Ny4yMDkuNzg5YTMuODI2LDMuODI2LDAsMCwwLC42NDIsMS4yMzQsMi4xNywyLjE3LDAsMCwxLC40NjYsMS4yNDYsMy4wNTEsMy4wNTEsMCwwLDEtLjM1MiwxLjQ0NywyLjA3LDIuMDcsMCwwLDAtLjI2Ny45MzQsMi4wMTcsMi4wMTcsMCwwLDAsLjIxMy44NTEuNzczLjc3MywwLDAsMCwxLjA2OS40MTMsMS4zNTEsMS4zNTEsMCwwLDEsLjMxNi0uMDY4Yy4yLDAsLjMxNS4xOTMuNTQyLjg4MS4xNTcuNDc0LjUsMS42MzcuNSwxLjY5NSwwLC4wMy0uMDE2LjA1MS0uMDM5LjA1MWExLjQ4NiwxLjQ4NiwwLDAsMS0uNDA3LS4yMjRjLS4yLS4xNDQtMi42MTItMi4wMjktMy40MDgtMi42NjMtMi4xMjgtMS42OTMtMi44MjgtMi4yMzMtMy4xNzEtMi40NDYtLjM3LS4yMy0uNjIyLS4yODUtLjgyNy0uMTc3LS4yNTQuMTMzLTMuNzI2LDIuODQ3LTUuNzUxLDQuNUExMC44NDYsMTAuODQ2LDAsMCwxLDguNjUsMjguMjUxYy0uMTQ5LjA4My0uMTQzLjA4MS0uMTQzLjAzWlxcXCIgc3R5bGU9XFxcImZpbGw6IzYzOThhYVxcXCIvPlwiLFxuXHRcIkhhbWxcIjogXCI8cGF0aCBkPVxcXCJNMTUuMzExLDE2LjA0MywxMy40LDI5LjcyNmE2LjMyMiw2LjMyMiwwLDAsMS01Ljk1Ni0xLjI1bDMuMS0xMy4yNjZMNC42OSwzLjM0YTguMDMxLDguMDMxLDAsMCwxLDMuNzktLjY0Nmw1LjE0NCw5LjcsOC45MTQtNy41ODFzMywxLjA0MSwzLjI3LDIuMDQxbC0xMC41LDkuMTg0WlxcXCIgc3R5bGU9XFxcImZpbGw6I2VjZGZhN1xcXCIvPjxwYXRoIGQ9XFxcIk0yNy4wMTYsMTcuNDExYTQuMjQ0LDQuMjQ0LDAsMCwwLS41NDEtLjgxMiw1LjcsNS43LDAsMCwwLTEuNDU4LTEuMTg3LDcuMzMxLDcuMzMxLDAsMCwwLTEuNjg3LS43OTFsLS4yMjktLjA2Mi0uMTg3LS4wNjJjLS4xMjUtLjA0Mi0uMjI5LS4xLS4zMzMtLjE0NmExLjI4MiwxLjI4MiwwLDAsMS0uNDU4LS40MTdBMS43NTQsMS43NTQsMCwwLDEsMjIsMTIuNjQyYTIuNTE4LDIuNTE4LDAsMCwxLC4xLS4zNzVjLjA0Mi0uMTI1LjA4My0uMjUuMTI1LS40YTIuNjkxLDIuNjkxLDAsMCwwLC4wNjItLjZsLjEtLjA4MywxLjI1LTEuMDQxYy4yMjktLjE4Ny40NTgtLjQuNjg3LS41ODNhMi4yLDIuMiwwLDAsMSwuMjI5LjE0NnMuNjQ2LjA2MiwxLS45MTZsLS4xODctLjEyNS4xMjUtLjEuMzEyLS4yNzFhLjYxMy42MTMsMCwwLDAsLjIyOS0uMzc1LjUyOS41MjksMCwwLDAtLjQxNy4xMjVsLS4zMzMuMjUtLjIyOS4xNjdMMjIuMTg0LDYuNDc4Yy4xNDYtLjEyNS4yNzEtLjIyOS40MTctLjM1NGwuNi0uNTQxLjA2Mi0uMDYyYy4wNjIuMDQyLjEuMDgzLjE2Ny4xMjUuMTQ2LjEuMzEyLjIwOC40NTguMjkybC45MTYuNWMuMjkyLjE2Ny42LjMzMy45MTYuNDc5YTMuMzIzLDMuMzIzLDAsMCwwLC40NzkuMjA4Yy4wODMuMDIxLjE2Ny4wNjIuMjUuMDgzLjA0MiwwLC4xLjAyMS4xNDYuMDIxaC4xYS4xNTEuMTUxLDAsMCwwLC4xMjUtLjA4M1Y3LjEyM2EuMDc3LjA3NywwLDAsMSwuMDIxLS4wNjJWNi45NzdhLjEwOC4xMDgsMCwwLDAtLjA0Mi0uMDgzYy0uMDIxLS4wNDItLjA2Mi0uMDgzLS4wODMtLjEyNWExLjU5LDEuNTksMCwwLDAtLjE4Ny0uMTg3Yy0uMTI1LS4xMjUtLjI3MS0uMjI5LS40LS4zMzMtLjI3MS0uMjA4LS41NjItLjQtLjg1NC0uNTgzYTcuNTQ1LDcuNTQ1LDAsMCwwLS45LS41LDMuMzIzLDMuMzIzLDAsMCwwLS40NzktLjIwOGMtLjA4My0uMDIxLS4xNjctLjA2Mi0uMjcxLS4wODMtLjA0MiwwLS4xLS4wMjEtLjE2Ny0uMDIxYS4zMS4zMSwwLDAsMC0uMTI1LjAyMS41MjIuNTIyLDAsMCwwLS4xNjcuMSwxLjYsMS42LDAsMCwwLS4zNzUuMjA4bC0uNjI1LjM1NGMtLjE4Ny4xNDYtLjQuMzEyLS41ODMuNDU4bC0uMjA4LS4xNDZzLS44NzUuMDgzLS41ODMuNjQ2bC4wODMuMDgzYy0uODMzLjY4Ny0xLjY0NSwxLjQtMi40NTcsMi4wODMtLjgzMy43MDgtMS42NDUsMS40MTYtMi40NzgsMi4xNDVsLTEuMjI5LDEuMDgzYTEuODc4LDEuODc4LDAsMCwxLS4yMDguMTg3Yy0uMDQyLS4xMjUtLjEtLjIyOS0uMTQ2LS4zMzNsLS4yOTItLjYyNS0uNTYyLTEuMjVjLS4zNzUtLjgzMy0uNzUtMS42NjYtMS4xNDUtMi41TDExLjIwOSw0Ljg5NWwtLjE4Ny0uMzc1aC4yNXMuMDgzLS42ODctLjQxNy0uODEyYTEuNCwxLjQsMCwwLDAtLjIwOC4wMjFjLS4xODctLjM3NS0uMzU0LS43NS0uNTQxLTEuMTI1aDBsLS4wODMtLjMxMkEuMzMuMzMsMCwwLDAsOS45LDIuMWEuMzUyLjM1MiwwLDAsMC0uMS0uMDQyYy0uMDYyLS4wMjEtLjEtLjAyMS0uMTY3LS4wNDJBMS4yODEsMS4yODEsMCwwLDAsOS4zNTUsMmE0LjA1Nyw0LjA1NywwLDAsMC0uNTIxLjA0Miw4Ljc2Nyw4Ljc2NywwLDAsMC0xLjAyLjE4N2MtLjMzMy4wODMtLjY2Ni4xNjctMSwuMjcxYTMuMjcyLDMuMjcyLDAsMCwwLS40NzkuMTg3bC0uMjUuMTI1Yy0uMDQyLjAyMS0uMDgzLjA2Mi0uMTI1LjA4M0w1LjksMi45NThjLS4wMjEuMDIxLS4wMjEuMDQyLS4wNDIuMDYydi4wNjJoMFYzLjFhLjE2NC4xNjQsMCwwLDAsLjEuMTI1Yy4wNDIuMDIxLjA2Mi4wNDIuMDgzLjA0MmExLjMyNywxLjMyNywwLDAsMSwuMTQ2LjA0MiwxLjE4OCwxLjE4OCwwLDAsMCwuMjcxLjAyMSw0LjM4NCw0LjM4NCwwLDAsMCwuNTIxLS4wNDJjLjMzMy0uMDQyLjY4Ny0uMDgzLDEuMDItLjE0NmwxLjAyLS4xNjdjLjE2Ny0uMDIxLjMzMy0uMDYyLjUyMS0uMS4xNDYuMjkyLjI5Mi42LjQzNy45LS45NTguMDgzLTIuNDU3LjIwOC0zLjM5NS4zMTItLjEtLjE4Ny0uMTg3LS4zNTQtLjI5Mi0uNTQxYS4xMjcuMTI3LDAsMCwwLS4xNDYtLjA2Mi4xMDguMTA4LDAsMCwwLS4wNjIuMTQ2Yy4wNjIuMTY3LjEyNS4zMTIuMTg3LjQ3OWExLjE2NywxLjE2NywwLDAsMC0uNS4xMjVBMS44MjgsMS44MjgsMCwwLDAsNi40LDUuNjQ1YTMuNTY3LDMuNTY3LDAsMCwxLC40NTgtLjEyNWwuNDM3LDEsMS4yNSwyLjgzMiwxLjI3LDIuODMyYy40MTcuOTM3Ljg1NCwxLjg3NCwxLjI5MSwyLjgzMmgwYS4wMi4wMiwwLDAsMCwuMDIxLjAyMWwtLjE4Ny42MjUtLjUsMS43NDljLS4zMTIsMS4xNjYtLjYsMi4zNTMtLjksMy41Mkw5LjEwNSwyMi43bC0uNDE3LDEuNzdjLS4yOTIsMS4xODctLjU2MiwyLjM1My0uOSwzLjUyYS4xMjUuMTI1LDAsMCwwLC4wMjEuMDgzLDMuMDc2LDMuMDc2LDAsMCwwLC42LjU2Miw2LjA0OCw2LjA0OCwwLDAsMCwuNjg3LjQxNyw5LjQsOS40LDAsMCwwLDEuNS42LDYuOTcyLDYuOTcyLDAsMCwwLDEuNjI0LjI3MSwzLjcyOCwzLjcyOCwwLDAsMCwuODMzLS4wNDIsNi41NDcsNi41NDcsMCwwLDAsLjgzMy0uMTY3LjI1NC4yNTQsMCwwLDAsLjE2Ny0uMTg3di0uMDIxYy4yMjktMS4xNDUuNDE3LTIuMzEyLjYyNS0zLjQ1N2wuNTgzLTMuNDc4Yy4xODctMS4xNjYuNC0yLjMxMi41ODMtMy40NzguMDIxLS4xMjUuMDQyLS4yNzEuMDYyLS40LjA0Mi4wNDIuMDYyLjEuMS4xNDZhNC4xMzcsNC4xMzcsMCwwLDAsLjcwOC42NDYsNy4yMTIsNy4yMTIsMCwwLDAsMS41ODMuODMzLDExLjc3NCwxMS43NzQsMCwwLDAsMS42NjYuNSwxMC4xODIsMTAuMTgyLDAsMCwwLDEuMS4xODcsMi42MjEsMi42MjEsMCwwLDAtLjI1LDEuMjA4LjExNS4xMTUsMCwwLDAsLjA2Mi4xaC4wMjFhNS4xNjQsNS4xNjQsMCwwLDAsMS4yNy40NzksNC4zMzMsNC4zMzMsMCwwLDAsMS4zNzUuMDYyLDIuNjI3LDIuNjI3LDAsMCwwLDEuMzMzLS41NjIsMi44MjQsMi44MjQsMCwwLDAsLjgxMi0xLjE2NmwuMDIxLS4wMjFWMjEuMWwuMDYyLS41NjJ2LS4wMjFhNS40MjcsNS40MjcsMCwwLDAsLjYyNS0uNDE3LDIuNzEsMi43MSwwLDAsMCwuNjQ2LS43MjksMS44MzMsMS44MzMsMCwwLDAsLjI1LTEsMi41NjMsMi41NjMsMCwwLDAtLjI5Mi0uOTU4Wm0tLjQtMTAuNVptLTEuNDc5LTEuMWE3LjEyLDcuMTIsMCwwLDEsLjgzMy41NDFjLjEyNS4xLjI3MS4xODcuNC4zMTJhMS4yNTcsMS4yNTcsMCwwLDEsLjE2Ny4xNjdsLjA0Mi4wNDJoLS4wNDJjLS4wODMtLjAyMS0uMTQ2LS4wNDItLjIyOS0uMDYyLS4xNDYtLjA2Mi0uMzEyLS4xMjUtLjQ1OC0uMTg3YTcuMTMyLDcuMTMyLDAsMCwxLS44NzUtLjQ3OUE1LjYxLDUuNjEsMCwwLDEsMjQuMiw1LjUyYTIuNSwyLjUsMCwwLDEtLjIyOS0uMjVsLjMxMi4xMjVhNi40LDYuNCwwLDAsMSwuODU0LjQxN1ptLTEuNDE2LS45MTYuMDIxLjAyMXYuMDQyYS4wMi4wMiwwLDAsMC0uMDIxLS4wMjFWNC44OTVaTTguODc2LDIuNTYyYTUuMDIxLDUuMDIxLDAsMCwxLS45MzcuMzMzLDUuMzQ3LDUuMzQ3LDAsMCwxLS45NzkuMTY3LDQuMDEzLDQuMDEzLDAsMCwxLS41LjAyMS43ODEuNzgxLDAsMCwxLS4yMjktLjAyMUg2LjE2OWMuMDIxLDAsLjAyMS0uMDIxLjA0Mi0uMDIxLjA2Mi0uMDQyLjE0Ni0uMDYyLjIwOC0uMS4xNDYtLjA2Mi4zMTItLjEuNDU4LS4xNjcuMzEyLS4wODMuNjQ2LS4xNjcuOTc5LS4yMjlhOC40LDguNCwwLDAsMSwuOTc5LS4xMjVBMS41NzYsMS41NzYsMCwwLDAsOS4xNDcsMi40YTEuNTM2LDEuNTM2LDAsMCwxLS4yNzEuMTY3Wm0xNC40NTMsNy4xLTEuMjkxLDEtMS4yOTEsMS4wMmMtLjM1NC4yOTItLjcwOC41ODMtMS4wNjIuODU0LjAyMS0uMDIxLjA0Mi0uMDYyLjA2Mi0uMDgzLjE2Ny0uMjI5LjMzMy0uNDM3LjUtLjY0Ni4zNTQtLjQxNy42ODctLjg1NCwxLjA2Mi0xLjI1cy43NzEtLjc5MSwxLjE2Ni0xLjE0NWE0Ljg3Miw0Ljg3MiwwLDAsMSwuNjQ2LS41bC4xODctLjEyNWMuMTg3LjE0Ni40LjI5Mi41ODMuNDM3LS4xNjcuMTQ2LS4zNzUuMjkyLS41NjIuNDM3Wk04LjA2NCw3LjFsLjEuMWE1LjYzLDUuNjMsMCwwLDEsLjU4My42NDYsMi4yMSwyLjIxLDAsMCwxLC4zNzUuNzI5LjkyMS45MjEsMCwwLDEtLjA2Mi42MjVsLS4wMjEtLjA2Mkw4LjA2NCw3LjFabTEuMDIsMi4xNjZhLjcyLjcyLDAsMCwwLC4xNDYtLjI1Ljg2Ni44NjYsMCwwLDAsLjA0Mi0uNDU4QTEuNywxLjcsMCwwLDAsOC45LDcuNzI3YTQuMDE1LDQuMDE1LDAsMCwwLS45NzktLjlsLS4yMjktLjQ3OWMtLjE0Ni0uMzEyLS4yOTItLjYyNS0uNDU4LS45MTYuMzEyLS4wODMuNjg3LS4yMDgsMS4xLS4zMTJBMjAuMzEzLDIwLjMxMywwLDAsMSw5LjM1NSw3YTcuOTYzLDcuOTYzLDAsMCwxLC43NzEsMi41NDFjLjAyMS4yMDgsMCwuNDM3LDAsLjY2NnMwLC40NTguMDIxLjY4N2E3LjYwOSw3LjYwOSwwLDAsMCwuMTQ2Ljk1OEw5LjA4NCw5LjI2OFpNMTQsMjYuMjQyYS45LjksMCwwLDEtLjE4Ny4yMDguNC40LDAsMCwxLS4zMzMuMS4zNTguMzU4LDAsMCwxLS4yMjktLjIyOS45ODEuOTgxLDAsMCwxLS4wODMtLjM1NCwyLjI3NSwyLjI3NSwwLDAsMSwuMDQyLS43NSwyLjgxNiwyLjgxNiwwLDAsMSwuMjI5LS43MDgsMS40NzgsMS40NzgsMCwwLDEsLjIwOC0uMjkyLjM0MS4zNDEsMCwwLDEsLjI5Mi0uMTI1Yy4xLDAsLjIwOC4xLjI3MS4yMDhhLjc0Ljc0LDAsMCwxLC4wODMuMTg3bC0uMjUsMS40NzljLS4wMjEuMS0uMDIxLjE4Ny0uMDQyLjI3MVptMS4yMjktNy4xODUtLjM3NSwyLjE4N2EzLjMyOSwzLjMyOSwwLDAsMC0uMS0uNDM3Yy0uMS0uNC0uMjI5LS43NzEtLjM1NC0xLjE0NWExNS41MzcsMTUuNTM3LDAsMCwwLS45NTgtMi4xNjZjLjIyOS43NzEuNSwxLjUuNzcxLDIuMjQ5LjE0Ni4zNzUuMjcxLjc1LjQsMS4xbC4xODcuNTYyYzAsLjAyMS4wMjEuMDYyLjAyMS4wODMtLjA2Mi4zMzMtLjEyNS42NjYtLjE2NywxLjAybC0uMzEyLDEuOWMtLjAyMS0uMDQyLS4wMjEtLjA4My0uMDQyLS4xMjVhLjQ4Ni40ODYsMCwwLDAtLjMxMi0uMjkyLjUyNS41MjUsMCwwLDAtLjQxNy4xMjUsMS45NDQsMS45NDQsMCwwLDAtLjI3MS4zMTIsMi4wMzYsMi4wMzYsMCwwLDAtLjI3MS43NSwyLjEzMSwyLjEzMSwwLDAsMCwwLC44MTIsMS4wMjEsMS4wMjEsMCwwLDAsLjE0Ni40LjQ4Ni40ODYsMCwwLDAsLjMzMy4yNzEuNDI4LjQyOCwwLDAsMCwuMzc1LS4xNjdjLjA0Mi0uMDQyLjA4My0uMS4xMjUtLjE0Ni0uMTQ2Ljk3OS0uMzEyLDEuOTU4LS40NTgsMi45NTdhMi43MjcsMi43MjcsMCwwLDEtLjU2Mi4xMjVjLS4yNS4wNDItLjUuMDYyLS43NS4wODNhNS41MzEsNS41MzEsMCwwLDEtMS41NDEtLjE0Niw3Ljg0Niw3Ljg0NiwwLDAsMS0xLjUtLjQ3OSwzLjYyNSwzLjYyNSwwLDAsMS0xLjIyOS0uODU0Yy4zMTItMS4xNDUuNjY2LTIuMjkxLDEuMDItMy40MzZsLjU0MS0xLjcyOS41MjEtMS43NDljLjM1NC0xLjE2Ni43MDgtMi4zMzMsMS4wNDEtMy41LjE2Ny0uNTgzLjMxMi0xLjE2Ni40NzktMS43NDlhMy42MjYsMy42MjYsMCwwLDAsLjE4Ny0xLjgzM3YtLjAyMWMtLjAyMS0uMDIxLS4wNDItLjAyMS0uMDQyLDBhMy4xMDksMy4xMDksMCwwLDAtLjI1LjI5MmMtLjIyOS0uNTIxLS40NzktMS4wMi0uNzA4LTEuNTQxYTQuNzY1LDQuNzY1LDAsMCwxLS4xNjctLjU4Myw3LjE2NSw3LjE2NSwwLDAsMS0uMjA4LTEuMzEyYy0uMDIxLS4yMjktLjAyMS0uNDM3LS4wMjEtLjY2NnMuMDIxLS40NTgsMC0uNjg3YTcuNjI1LDcuNjI1LDAsMCwwLS44MzMtMi42LDEyLjU4NywxMi41ODcsMCwwLDAtMS4xLTEuODMzYy42ODctLjE4NywxLjQxNi0uMzc1LDItLjQ3OS4wODMuMTg3LjE4Ny4zNTQuMjcxLjU0MUwxMS45MzgsNy42bDEuMjUsMi40MzcuNjI1LDEuMjA4LjMxMi42Yy4wODMuMTI1LjEyNS4yNzEuMjA4LjM3NWwtLjgxMi43NWEuMDY5LjA2OSwwLDAsMCwwLC4xLjA3My4wNzMsMCwwLDAsLjEuMDIxYy40MzctLjMxMi44NzUtLjY0NiwxLjMxMi0uOTc5bDEuMzEyLTFjLjg3NS0uNjY2LDEuNzI5LTEuMzMzLDIuNTgyLTJzMS43MDgtMS4zNTQsMi41NjItMi4wNDFsLjAyMS0uMDIxYTI0LjMxNiwyNC4zMTYsMCwwLDAsMS44NzQsMS42NDUsNi4xNjIsNi4xNjIsMCwwLDAtLjg3NS41NDEsOC45NDMsOC45NDMsMCwwLDAtMS4yMjksMS4xMjUsMTIuMjc5LDEyLjI3OSwwLDAsMC0xLjA0MSwxLjI5MSwxMS43NzgsMTEuNzc4LDAsMCwwLS42NDYsMWMtMS4yNywxLjA0MS0yLjUyLDIuMS0zLjcyOCwzLjIwN2EuMTI4LjEyOCwwLDAsMC0uMDIxLjE0Ni4xMzguMTM4LDAsMCwwLC4xNDYuMDQyLDkuMTM0LDkuMTM0LDAsMCwwLS4zMTIsMS4yNWMtLjEyNS41ODMtLjI1LDEuMTY2LS4zNTQsMS43NDlabTkuMjA1LDIuNzkxYTIuNTI3LDIuNTI3LDAsMCwxLTEuMDIuNDU4LDMuNzY3LDMuNzY3LDAsMCwxLTEuMTg3LjA0Miw3LjM2MSw3LjM2MSwwLDAsMS0xLjE0NS0uMjA4LDIuMDM3LDIuMDM3LDAsMCwxLC4xNjctMS4wNDFjLjE0Ni4wMjEuMjcxLjAyMS40MTcuMDQyYS4xMTQuMTE0LDAsMCwwLC4xMjUtLjA4My4xMjQuMTI0LDAsMCwwLS4wODMtLjE2N2gwYy0uMS0uMDQyLS4xODctLjA2Mi0uMjkyLS4xYTIuNzcxLDIuNzcxLDAsMCwxLC4yOTItLjRjLjEyNS0uMTI1LjI1LS4yNS4zNzUtLjM1NGEzLjk5MiwzLjk5MiwwLDAsMCwuODU0LjQsMi44ODEsMi44ODEsMCwwLDAsMS4xMjUuMSwxLjU1LDEuNTUsMCwwLDAsMS4wMi0uNTQxLDEuNTI0LDEuNTI0LDAsMCwwLC4zNTQtLjkxNi44NS44NSwwLDAsMSwuMDIxLjQsNC41MTEsNC41MTEsMCwwLDEtLjA4My41MjFsLS4wNjIuMzEyTDI1LDIwLjQ5NGEuOTE5LjkxOSwwLDAsMC0uMzMzLjM1NC43NTEuNzUxLDAsMCwwLC40NzksMGMuMDIxLDAsLjAyMS0uMDIxLjA0Mi0uMDIxLS4wMjEuMDYyLS4wMjEuMS0uMDQyLjE2N2EyLjU1MiwyLjU1MiwwLDAsMS0uNzA4Ljg1NFpNMjYuNSwxOS4xMTlhMi4yLDIuMiwwLDAsMS0uNDU4LjYyNSwyLjYzOCwyLjYzOCwwLDAsMS0uMjcxLjIyOSwyLjU4NSwyLjU4NSwwLDAsMC0uMDYyLS41NjIsMS41MzQsMS41MzQsMCwwLDAtLjA4My0uMjkyLjUzMS41MzEsMCwwLDAtLjE4Ny0uMjVoMGMtLjAyMSwwLS4wNDIsMC0uMDQyLjAyMWgwYTEuOTUsMS45NSwwLDAsMS0uNTYyLjc3MSwxLjQyOSwxLjQyOSwwLDAsMS0uODEyLjI5MiwyLjg1NywyLjg1NywwLDAsMS0uOTE2LS4xMjVjLS4zMTItLjA4My0uNjI1LS4xODctLjkzNy0uMjkybC0uMDQyLS4wMjFhLjIuMiwwLDAsMC0uMTg3LjA0MmMtLjE2Ny4yMDgtLjI5Mi40LS40MzcuNi0uMS4xNjctLjE4Ny4zMTItLjI3MS40NzktLjM3NS0uMTQ2LS43MjktLjI3MS0xLjEtLjQxNy0uNTIxLS4yMDgtMS4wNDEtLjQxNy0xLjUyLS42NjZhNy42NDgsNy42NDgsMCwwLDEtMS40LS44MTIsMi45NDksMi45NDksMCwwLDEtLjk3OS0xLjA2MnYtLjAyMWEuNDA5LjQwOSwwLDAsMC0uMTg3LS4xODdjMC0uMDQyLjAyMS0uMS4wMjEtLjE0NmE3LjM3LDcuMzcsMCwwLDAsLjEtMS41MmMxLjY4Ny0xLjE4NywzLjMzMi0yLjQzNyw0Ljk1Ny0zLjcyOGwtLjA2Mi4xODdhMy4yNywzLjI3LDAsMCwwLS4xNDYsMS4wMkEyLjA4OSwyLjA4OSwwLDAsMCwyMi4xMjIsMTUuMWEyLjgyNSwyLjgyNSwwLDAsMCwuNDc5LjE4N2wuMjUuMDYyLjIwOC4wNDJhNi42NDUsNi42NDUsMCwwLDEsMS41NDEuNjI1LDYuMTU2LDYuMTU2LDAsMCwxLDEuMzEyLjk3OSwyLjI3NSwyLjI3NSwwLDAsMSwuNzA4LDEuMzMzLDEuNTEsMS41MSwwLDAsMS0uMTI1Ljc5MVpcXFwiIHN0eWxlPVxcXCJmaWxsOiMzZjNlMjlcXFwiLz48cGF0aCBkPVxcXCJNMTIuNjY3LDIzLjkwOWEyLjE2MSwyLjE2MSwwLDAsMC0uMzU0Ljc3MSwxLjU1NiwxLjU1NiwwLDAsMC0uMDYyLjQxN2wtLjAyMS40MTdhNC41MzMsNC41MzMsMCwwLDAsLjE0NiwxLjY2Niw3LjY0Nyw3LjY0NywwLDAsMCwuNjY2LDEuNTJjLS4wODMtLjI3MS0uMTg3LS41MjEtLjI3MS0uNzcxcy0uMTY3LS41MjEtLjIyOS0uNzkxYTUuODksNS44OSwwLDAsMS0uMS0xLjZsLjAyMS0uNDE3YTIuNTUyLDIuNTUyLDAsMCwxLC4wNDItLjQsMy4xMzcsMy4xMzcsMCwwLDEsLjI5Mi0uNzI5LDIuOTY3LDIuOTY3LDAsMCwxLC41MjEtLjYyNSwyLjU5MSwyLjU5MSwwLDAsMSwuNjY2LS40NzksMi43NiwyLjc2LDAsMCwwLTEuMzEyLDEuMDJaXFxcIiBzdHlsZT1cXFwiZmlsbDojM2YzZTI5XFxcIi8+XCIsXG5cdFwiSGFuZGxlYmFyc1wiOiBcIjxwYXRoIGQ9XFxcIk0xMi4zLDEzLjFhNC4yMzgsNC4yMzgsMCwwLDEsMi43MjguOUE0LjU5Miw0LjU5MiwwLDAsMSwxNiwxNS4xMjdhNC4xNDQsNC4xNDQsMCwwLDEsMi4wMzktMS43NDcsNC43NTcsNC43NTcsMCwwLDEsMy4yODYuMDE5LDcuODMzLDcuODMzLDAsMCwxLDIuNDQzLDEuNTU4Yy41NjguNSwxLjA5NCwxLjA1LDEuNjc5LDEuNTMzYTMuNCwzLjQsMCwwLDAsMS4wMTkuNjE0LDEuNDIsMS40MiwwLDAsMCwxLjQ2LS4zNzkuOTY1Ljk2NSwwLDAsMC0uMDU1LTEuMzIzLjU0NS41NDUsMCwwLDAtLjguMTA4LjY1OS42NTksMCwwLDAsLjA1LjY4NiwxLjIyMiwxLjIyMiwwLDAsMS0uNi0uOTI2LDEuMDIyLDEuMDIyLDAsMCwxLC42OTEtMS4wMzIsMi4wMDUsMi4wMDUsMCwwLDEsMi4zMTIuNjYxLDMuMjU4LDMuMjU4LDAsMCwxLC40NCwyLjMwOCwyLjc2MiwyLjc2MiwwLDAsMS0xLjEzNywxLjg3Miw1LjA1MSw1LjA1MSwwLDAsMS0zLjAxMy44LDguNDg4LDguNDg4LDAsMCwxLTIuOTMyLS42M2MtMS41NTgtLjYyNi0zLjAxNi0xLjQ5Mi00LjYyNS0xLjk5MmExMy45NzcsMTMuOTc3LDAsMCwwLTEuNy0uMzYzYy0uNDMuMDA3LS44NjEtLjAxNS0xLjI5LjAxNWE1LjY5Miw1LjY5MiwwLDAsMC0xLjUzNC4zNDljLTEuNjM2LjUwOS0zLjExNiwxLjQtNC43LDIuMDI0YTcuNjI1LDcuNjI1LDAsMCwxLTQuMjQ5LjQ3NCwzLjc0LDMuNzQsMCwwLDEtMi4xMjUtMS4xNEEyLjg1NiwyLjg1NiwwLDAsMSwyLDE2LjY2OGEyLjcyMiwyLjcyMiwwLDAsMSwuNTU1LTEuODc0LDEuOTk0LDEuOTk0LDAsMCwxLDEuNjg3LS42OCwxLjQyNSwxLjQyNSwwLDAsMSwxLjA2My41MiwxLjA0LDEuMDQsMCwwLDEsLjEyMi45MTEsMS40NTcsMS40NTcsMCwwLDEtLjU1Ni42NDQuNjQzLjY0MywwLDAsMCwuMDUxLS42ODEuNTQ3LjU0NywwLDAsMC0uODMxLS4wNzkuOTc1Ljk3NSwwLDAsMC0uMTUxLDEuMTEsMS4zMzEsMS4zMzEsMCwwLDAsMS4wMzIuNjIzLDIuMzMyLDIuMzMyLDAsMCwwLDEuNi0uN0EyOC41MjYsMjguNTI2LDAsMCwxLDkuNCwxNC4wNTMsNS4yNTEsNS4yNTEsMCwwLDEsMTIuMywxMy4xWlxcXCIgc3R5bGU9XFxcImZpbGw6I2MxOTc3MFxcXCIvPlwiLFxuXHRcIkhhc2tlbGxcIjogXCI8ZGVmcz48bGluZWFyR3JhZGllbnQgaWQ9XFxcImFcXFwiIHgxPVxcXCIwLjk5NlxcXCIgeTE9XFxcIi0yMDYuMDU3XFxcIiB4Mj1cXFwiMC45NTFcXFwiIHkyPVxcXCItMjA2LjA1N1xcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcIm1hdHJpeCgyNTkuOTQxLCAwLCAwLCAtMTgzLjQ4NywgLTIzNy45NDEsIC0zNzc5Mi43ODgpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjZmFiYTA5XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjYjQyYzAxXFxcIi8+PC9saW5lYXJHcmFkaWVudD48L2RlZnM+PHRpdGxlPmZpbGVfdHlwZV9oYXNrZWxsMjwvdGl0bGU+PHBhdGggZD1cXFwiTTIsMjUuODgyLDguNTg4LDE2LDIsNi4xMThINi45NDFMMTMuNTI5LDE2LDYuOTQxLDI1Ljg4MlptNi41ODgsMEwxNS4xNzcsMTYsOC41ODgsNi4xMThoNC45NDFMMjYuNzA2LDI1Ljg4MkgyMS43NjVsLTQuMTE3LTYuMTc2LTQuMTE4LDYuMTc2Wk0yNC41MSwyMC4xMThsLTIuMi0zLjI5NEgzMHYzLjI5NFptLTMuMjk0LTQuOTQxLTIuMi0zLjI5NEgzMHYzLjI5NFpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjYSlcXFwiLz5cIixcblx0XCJIYXhlXCI6IFwiPHBhdGggZD1cXFwiTTE2LDUuNSw1LjUsMTYsMTYsMjYuNSwyNi41LDE2LDE2LDUuNVxcXCIgc3R5bGU9XFxcImZpbGw6I2Y2ODcxMlxcXCIvPjxwYXRoIGQ9XFxcIk0yLDIsMTYsNS41LDUuNSwxNiwyLDJcXFwiIHN0eWxlPVxcXCJmaWxsOiNmYWIyMGJcXFwiLz48cGF0aCBkPVxcXCJNMzAsMiwyNi41LDE2LDE2LDUuNSwzMCwyXFxcIiBzdHlsZT1cXFwiZmlsbDojZjQ3MjE2XFxcIi8+PHBhdGggZD1cXFwiTTMwLDMwLDE2LDI2LjUsMjYuNSwxNiwzMCwzMFxcXCIgc3R5bGU9XFxcImZpbGw6I2YyNWMxOVxcXCIvPjxwYXRoIGQ9XFxcIk0yLDMwLDUuNSwxNiwxNiwyNi41LDIsMzBcXFwiIHN0eWxlPVxcXCJmaWxsOiNmODljMGVcXFwiLz48cGF0aCBkPVxcXCJNMTYsNS41LDIsMkg5bDcsMy41XFxcIiBzdHlsZT1cXFwiZmlsbDojZmJjNzA3XFxcIi8+PHBhdGggZD1cXFwiTTE2LDUuNSwzMCwySDIzTDE2LDUuNVxcXCIgc3R5bGU9XFxcImZpbGw6I2ZiYzcwN1xcXCIvPjxwYXRoIGQ9XFxcIk0xNiwyNi41LDMwLDMwSDIzbC03LTMuNVxcXCIgc3R5bGU9XFxcImZpbGw6I2Y2ODcxMlxcXCIvPjxwYXRoIGQ9XFxcIk0xNiwyNi41LDIsMzBIOWw3LTMuNVxcXCIgc3R5bGU9XFxcImZpbGw6I2YyNWMxOVxcXCIvPjxwYXRoIGQ9XFxcIk01LjUsMTYsMiwzMFYyM2wzLjUtN1xcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZjIwMFxcXCIvPjxwYXRoIGQ9XFxcIk01LjUsMTYsMiwyVjlsMy41LDdcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmYyMDBcXFwiLz48cGF0aCBkPVxcXCJNMjYuNSwxNiwzMCwyVjlsLTMuNSw3XFxcIiBzdHlsZT1cXFwiZmlsbDojZjE0NzFkXFxcIi8+PHBhdGggZD1cXFwiTTI2LjUsMTYsMzAsMzBWMjNsLTMuNS03XFxcIiBzdHlsZT1cXFwiZmlsbDojZjE0NzFkXFxcIi8+XCIsXG5cdFwiSExTTFwiOiBcIjxwb2x5Z29uIHBvaW50cz1cXFwiOS41MjUgMjEuOTQ3IDcuNTYgMjEuOTQ3IDcuNTYgMTcuMSAzLjk1OCAxNy4xIDMuOTU4IDIxLjk0NyAyIDIxLjk0NyAyIDEwLjA0NCAzLjk1OCAxMC4wNDQgMy45NTggMTQuNzkyIDcuNTYgMTQuNzkyIDcuNTYgMTAuMDQ0IDkuNTI1IDEwLjA0NCA5LjUyNSAyMS45NDdcXFwiIHN0eWxlPVxcXCJmaWxsOmJsdWVcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjE2LjY5MiAyMS45NDcgMTEuNTEzIDIxLjk0NyAxMS41MTMgMTAuMDQ0IDEzLjQ3MiAxMC4wNDQgMTMuNDcyIDE5Ljc3MyAxNi42OTIgMTkuNzczIDE2LjY5MiAyMS45NDdcXFwiIHN0eWxlPVxcXCJmaWxsOmJsdWVcXFwiLz48cGF0aCBkPVxcXCJNMTcuNDYyLDIxLjQ5MVYxOC44MzRhMy42NzYsMy42NzYsMCwwLDAsMS4xNDYuOTA5LDIuODA5LDIuODA5LDAsMCwwLDEuMjQ5LjMsMi4wNSwyLjA1LDAsMCwwLC42NDYtLjA5MiwxLjMwOSwxLjMwOSwwLDAsMCwuNDYxLS4yNTIsMS4wMjksMS4wMjksMCwwLDAsLjI3Ni0uMzgyLDEuMjMxLDEuMjMxLDAsMCwwLC4wOTEtLjQ3OCwxLjMsMS4zLDAsMCwwLS4xNDUtLjYyMywxLjkwNywxLjkwNywwLDAsMC0uNC0uNTA2LDQuMDc3LDQuMDc3LDAsMCwwLS42LS40NDhxLS4zNDYtLjIxNS0uNzQ2LS40MzlhNC4wNDUsNC4wNDUsMCwwLDEtMS41MTktMS40MTksMy44ODQsMy44ODQsMCwwLDEtLjUtMi4wMjYsNC4yMzIsNC4yMzIsMCwwLDEsLjI3My0xLjYsMy4wMiwzLjAyLDAsMCwxLC43NDQtMS4xLDIuOTM4LDIuOTM4LDAsMCwxLDEuMDg4LS42MzQsNC4xNjcsNC4xNjcsMCwwLDEsMS4zMS0uMiw1LjgxNiw1LjgxNiwwLDAsMSwxLjIuMTExLDMuOCwzLjgsMCwwLDEsLjk2Ny4zNDV2Mi40ODJhMi44NTksMi44NTksMCwwLDAtLjQ3Ni0uMzY1LDMuMjEyLDMuMjEyLDAsMCwwLS41My0uMjYyQTMuMSwzLjEsMCwwLDAsMjEuNDYsMTJhMi43OTQsMi43OTQsMCwwLDAtLjUxMi0uMDUsMS45OTQsMS45OTQsMCwwLDAtLjYwNi4wODcsMS4zNDcsMS4zNDcsMCwwLDAtLjQ2MS4yNDUsMS4wOTIsMS4wOTIsMCwwLDAtLjI5MS4zNzcsMS4xNDQsMS4xNDQsMCwwLDAtLjEuNDk0LDEuMiwxLjIsMCwwLDAsLjExNS41MzYsMS42NTcsMS42NTcsMCwwLDAsLjMyOC40NDgsMy40NjEsMy40NjEsMCwwLDAsLjUxNS40MTVjLjIuMTM2LjQzLjI3NS42ODYuNDE5YTcuMDk0LDcuMDk0LDAsMCwxLC45MzYuNjM1LDMuNzEyLDMuNzEyLDAsMCwxLC43MTMuNzU5LDMuMjY5LDMuMjY5LDAsMCwxLC40NTUuOTY3LDQuNTczLDQuNTczLDAsMCwxLC4xNTgsMS4yNjYsNC40MzksNC40MzksMCwwLDEtLjI3NywxLjY3MiwyLjg4OCwyLjg4OCwwLDAsMS0uNzQ5LDEuMSwyLjgyMywyLjgyMywwLDAsMS0xLjEuNiw0Ljc0Miw0Ljc0MiwwLDAsMS0xLjMyNS4xODIsNS40NzYsNS40NzYsMCwwLDEtMS4zNjEtLjE2NkEzLjQxLDMuNDEsMCwwLDEsMTcuNDYyLDIxLjQ5MVpcXFwiIHN0eWxlPVxcXCJmaWxsOmJsdWVcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjMwIDIxLjk0NyAyNC44MjIgMjEuOTQ3IDI0LjgyMiAxMC4wNDQgMjYuNzggMTAuMDQ0IDI2Ljc4IDE5Ljc3MyAzMCAxOS43NzMgMzAgMjEuOTQ3XFxcIiBzdHlsZT1cXFwiZmlsbDpibHVlXFxcIi8+XCIsXG5cdFwiSFRNTFwiOiBcIjxwb2x5Z29uIHBvaW50cz1cXFwiNS45MDIgMjcuMjAxIDMuNjU1IDIgMjguMzQ1IDIgMjYuMDk1IDI3LjE5NyAxNS45ODUgMzAgNS45MDIgMjcuMjAxXFxcIiBzdHlsZT1cXFwiZmlsbDojZTQ0ZjI2XFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIxNiAyNy44NTggMjQuMTcgMjUuNTkzIDI2LjA5MiA0LjA2MSAxNiA0LjA2MSAxNiAyNy44NThcXFwiIHN0eWxlPVxcXCJmaWxsOiNmMTY2MmFcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjE2IDEzLjQwNyAxMS45MSAxMy40MDcgMTEuNjI4IDEwLjI0MiAxNiAxMC4yNDIgMTYgNy4xNTEgMTUuOTg5IDcuMTUxIDguMjUgNy4xNTEgOC4zMjQgNy45ODEgOS4wODMgMTYuNDk4IDE2IDE2LjQ5OCAxNiAxMy40MDdcXFwiIHN0eWxlPVxcXCJmaWxsOiNlYmViZWJcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjE2IDIxLjQzNCAxNS45ODYgMjEuNDM4IDEyLjU0NCAyMC41MDkgMTIuMzI0IDE4LjA0NCAxMC42NTEgMTguMDQ0IDkuMjIxIDE4LjA0NCA5LjY1NCAyMi44OTYgMTUuOTg2IDI0LjY1NCAxNiAyNC42NSAxNiAyMS40MzRcXFwiIHN0eWxlPVxcXCJmaWxsOiNlYmViZWJcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjE1Ljk4OSAxMy40MDcgMTUuOTg5IDE2LjQ5OCAxOS43OTUgMTYuNDk4IDE5LjQzNyAyMC41MDcgMTUuOTg5IDIxLjQzNyAxNS45ODkgMjQuNjUzIDIyLjMyNiAyMi44OTYgMjIuMzcyIDIyLjM3NCAyMy4wOTggMTQuMjM3IDIzLjE3NCAxMy40MDcgMjIuMzQxIDEzLjQwNyAxNS45ODkgMTMuNDA3XFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIxNS45ODkgNy4xNTEgMTUuOTg5IDkuMDcxIDE1Ljk4OSAxMC4yMzUgMTUuOTg5IDEwLjI0MiAyMy40NDUgMTAuMjQyIDIzLjQ0NSAxMC4yNDIgMjMuNDU1IDEwLjI0MiAyMy41MTcgOS41NDggMjMuNjU4IDcuOTgxIDIzLjczMiA3LjE1MSAxNS45ODkgNy4xNTFcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz5cIixcblx0XCJIVFRQXCI6IFwiPGRlZnM+PHJhZGlhbEdyYWRpZW50IGlkPVxcXCJhXFxcIiBjeD1cXFwiMTIuMjc4XFxcIiBjeT1cXFwiMjQuNTU3XFxcIiByPVxcXCIxOC4zNzFcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJtYXRyaXgoMSwgMCwgMCwgLTEsIC0wLjAwMSwgMzQuMDAxKVxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiI2QzZTlmZlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC4xNTVcXFwiIHN0b3AtY29sb3I9XFxcIiNkM2U5ZmZcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNzVcXFwiIHN0b3AtY29sb3I9XFxcIiM0MDc0YWVcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiMzNjQ4NmNcXFwiLz48L3JhZGlhbEdyYWRpZW50PjxyYWRpYWxHcmFkaWVudCBpZD1cXFwiYlxcXCIgY3g9XFxcIjEwLjY1N1xcXCIgY3k9XFxcIjI2Ljc0NlxcXCIgcj1cXFwiMjYuNjZcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJtYXRyaXgoMSwgMCwgMCwgLTEsIC0wLjAwMSwgMzQuMDAxKVxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiI2ZmZlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiI2ZmZlxcXCIgc3RvcC1vcGFjaXR5PVxcXCIwLjE2NVxcXCIvPjwvcmFkaWFsR3JhZGllbnQ+PHJhZGlhbEdyYWRpZW50IGlkPVxcXCJjXFxcIiBjeD1cXFwiLTQ1LjA1XFxcIiBjeT1cXFwiOS4yODVcXFwiIHI9XFxcIjQuMTE1XFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwidHJhbnNsYXRlKC0yMS45NzEgNDEuOTQyKSByb3RhdGUoMTQzLjczNClcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiNmZmZcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiNmZmZcXFwiIHN0b3Atb3BhY2l0eT1cXFwiMFxcXCIvPjwvcmFkaWFsR3JhZGllbnQ+PHJhZGlhbEdyYWRpZW50IGlkPVxcXCJkXFxcIiBjeD1cXFwiLTQxLjQ1NlxcXCIgY3k9XFxcIjMyLjE1NFxcXCIgcj1cXFwiNC4xMTVcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJ0cmFuc2xhdGUoMy41NzEgODcuMDc1KSByb3RhdGUoMTQzLjczNCkgc2NhbGUoMS4yOTcpXFxcIiB4bGluazpocmVmPVxcXCIjY1xcXCIvPjxyYWRpYWxHcmFkaWVudCBpZD1cXFwiZVxcXCIgY3g9XFxcIi00OC40ODVcXFwiIGN5PVxcXCIxMy4yMzlcXFwiIHI9XFxcIjQuMTE1XFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwidHJhbnNsYXRlKC0yMy4wODQgNTUuNDEzKSByb3RhdGUoMTQzLjczNClcXFwiIHhsaW5rOmhyZWY9XFxcIiNjXFxcIi8+PHJhZGlhbEdyYWRpZW50IGlkPVxcXCJmXFxcIiBjeD1cXFwiLTQwLjg4M1xcXCIgY3k9XFxcIjE2LjAzNlxcXCIgcj1cXFwiNC4xMTVcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJtYXRyaXgoLTAuODcsIDAuNjM5LCAtMC42MzgsIC0wLjg3LCAtOS4zNTEsIDQ3LjcwNilcXFwiIHhsaW5rOmhyZWY9XFxcIiNjXFxcIi8+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJnXFxcIiB4MT1cXFwiLTY2LjUwMlxcXCIgeTE9XFxcIjIuMjE5XFxcIiB4Mj1cXFwiLTY0LjYyNlxcXCIgeTI9XFxcIjYuNzQ5XFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwibWF0cml4KDAuOTM5LCAtMC44NzksIC0wLjY4MywgLTAuNzMsIDg0LjgxLCAtMzMuNjI4KVxcXCIgeGxpbms6aHJlZj1cXFwiI2NcXFwiLz48bGluZWFyR3JhZGllbnQgaWQ9XFxcImhcXFwiIHgxPVxcXCItMjYuNzkxXFxcIiB5MT1cXFwiMzkuMTU5XFxcIiB4Mj1cXFwiLTI0Ljk5OVxcXCIgeTI9XFxcIjQ0LjY4M1xcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcIm1hdHJpeCgxLjEzMSwgMC42MTMsIDAuNDc3LCAtMC44NzksIDIxLjY0OCwgNjkuMDcxKVxcXCIgeGxpbms6aHJlZj1cXFwiI2NcXFwiLz48bGluZWFyR3JhZGllbnQgaWQ9XFxcImlcXFwiIHgxPVxcXCItNjMuMzg0XFxcIiB5MT1cXFwiOC4xNzdcXFwiIHgyPVxcXCItNjMuNTdcXFwiIHkyPVxcXCI0LjY5XFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwibWF0cml4KDAuOTE4LCAtMC44NTksIC0wLjY2OCwgLTAuNzEzLCA3Ny44NTcsIC0zNi40OTMpXFxcIiB4bGluazpocmVmPVxcXCIjY1xcXCIvPjxsaW5lYXJHcmFkaWVudCBpZD1cXFwialxcXCIgeDE9XFxcIi05OS4yNTlcXFwiIHkxPVxcXCI4OS41NDVcXFwiIHgyPVxcXCItOTguODI1XFxcIiB5Mj1cXFwiOTMuMDIzXFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwibWF0cml4KC0xLjI4LCAtMC4xMjYsIC0wLjA5OCwgMC45OTUsIC0xMDEuNjM3LCAtOTMuMDE1KVxcXCIgeGxpbms6aHJlZj1cXFwiI2NcXFwiLz48cmFkaWFsR3JhZGllbnQgaWQ9XFxcImtcXFwiIGN4PVxcXCItMjAuNzEyXFxcIiBjeT1cXFwiNTcuNjFcXFwiIHI9XFxcIjIuODM2XFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwibWF0cml4KDAsIC0wLjg0MywgLTAuNzIxLCAwLCAyNi42MjUsIC0yMS42OTYpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjNzI5ZmNmXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjM2I2MWE2XFxcIi8+PC9yYWRpYWxHcmFkaWVudD48cmFkaWFsR3JhZGllbnQgaWQ9XFxcImxcXFwiIGN4PVxcXCItMjAuNzEyXFxcIiBjeT1cXFwiMzkuODU4XFxcIiByPVxcXCIyLjgzNlxcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcInRyYW5zbGF0ZSgyNi42MjUgNjMuMDk2KSByb3RhdGUoOTApIHNjYWxlKDAuODQzIDAuNzIxKVxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiIzcyOWZjZlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiIzUwOWUyZlxcXCIvPjwvcmFkaWFsR3JhZGllbnQ+PC9kZWZzPjx0aXRsZT5maWxlX3R5cGVfaHR0cDwvdGl0bGU+PHBhdGggZD1cXFwiTTI4LjAyNiwxNC4yQTExLjg3NywxMS44NzcsMCwxLDEsMTYuMTQ5LDIuMzI1LDExLjg3OCwxMS44NzgsMCwwLDEsMjguMDI2LDE0LjJaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2EpXFxcIi8+PHBhdGggZD1cXFwiTTE2LjE0OSwyNi4zODZBMTIuMTgzLDEyLjE4MywwLDEsMSwyOC4zMzMsMTQuMiwxMi4yLDEyLjIsMCwwLDEsMTYuMTQ5LDI2LjM4NlptMC0yMy43NTRBMTEuNTcxLDExLjU3MSwwLDEsMCwyNy43MiwxNC4yLDExLjU4NCwxMS41ODQsMCwwLDAsMTYuMTQ5LDIuNjMyWlxcXCIgc3R5bGU9XFxcImZpbGw6IzM5Mzk2Y1xcXCIvPjxwYXRoIGQ9XFxcIk0yNy42OTMsMTIuNDI0aDBsLS4zMjguMzcxYTcsNywwLDAsMC0uNjU2LS42NDRsLS41LjA3NC0uNDYtLjUxOXYuNjQzbC4zOTQuMy4yNjIuMy4zNS0uNGMuMDg4LjE2NS4xNzUuMzMuMjYzLjV2LjQ5NWwtLjM5NC40NDUtLjcyMi41LS41NDYuNTQ1LS4zNS0uNC4xNzUtLjQ0NS0uMzUtLjQtLjU5MS0xLjI2Mi0uNS0uNTY5TDIzLjYsMTIuMWwuMi43MTguMzcxLjQyMWExNy4wNjksMTcuMDY5LDAsMCwwLC43LDEuNzgzLDkuOTc5LDkuOTc5LDAsMCwwLDEuMjY4LS4xdi4zNDdsLS41MjUsMS4yODctLjQ4MS41NDQtLjM5NC44NDNWMTkuMzNsLjEzMi41NDUtLjIxOS4yNDctLjQ4Mi4zLS41LjQyMS40MTYuNDctLjU2OS41LjEwOS4zMjEtLjg1My45NjZIMjIuMmwtLjQ4MS4zaC0uMzA3di0uNGwtLjEzLS43OTNjLS4xNjktLjUtLjM0Ni0uOTkxLS41MjUtMS40ODQsMC0uMzY0LjAyMi0uNzI1LjA0NC0xLjA4OWwuMjE5LS40OTUtLjMwNy0uNTk1LjAyMi0uODE3LS40MTYtLjQ3LjIwOC0uNjgtLjMzOC0uMzg0SDE5LjZsLS4yLS4yMjMtLjU5MS4zNzItLjI0LS4yNzMtLjU0Ny40N0wxNi45MTEsMTUuMjdsLS40MzctMS4wNC4zOTQtLjU5My0uMjE5LS4yNDcuNDgxLTEuMTM5Yy4zOTUtLjQ5MS44MDctLjk2MywxLjIyNS0xLjQzNmwuNzQ0LS4yLjgzMS0uMS41NjkuMTQ5LjgwOS44MTYuMjg0LS4zMjEuMzkzLS4wNDkuNzQ0LjI0N0gyMy4zbC4zOTQtLjM0Ny4xNzUtLjI0Ny0uMzk0LS4yNDctLjY1Ni0uMDQ5YTYuNiw2LjYsMCwwLDAtLjU2OC0uNzQzbC0uMjE5LjEtLjA4OC42NDQtLjM5NC0uNDQ1LS4wODctLjUtLjQzNy0uMzQ2aC0uMTc2bC40MzguNDk1LS4xNzUuNDQ1LS4zNS4xLjIxOS0uNDQ1LS4zOTQtLjItLjM0OS0uNC0uNjU3LjE0OC0uMDg3LjItLjM5NC4yNDgtLjIxOS41NDUtLjU0Ni4yNzItLjI0MS0uMjcySDE3LjgzVjkuNDI4bC41NjktLjNoLjQzN2wtLjA4OC0uMzQ2TDE4LjQsOC40MzhsLjU5LS4xMjQuMzI4LS4zNzEuMjYyLS40NDZoLjQ4MmwtLjEzMi0uMzQ2LjMwNy0uMnYuNGwuNjU2LjE0OC42NTYtLjU0NC4wNDQtLjI0OC41NjgtLjRhNC4zNTMsNC4zNTMsMCwwLDAtLjYxMi4xVjUuOTYzbC4yMTktLjVoLS4yMTlsLS40OC40NDUtLjEzMi4yNDguMTMyLjM0Ny0uMjE5LjU5My0uMzUtLjItLjMwNi0uMzQ2LS40ODIuMzQ2LS4xNzUtLjc5Mi44MzEtLjU0NHYtLjNsLjUyNS0uMzQ2LjgzMS0uMi41NjkuMiwxLjA0OS4yLS4yNjIuM0gyMi41MWwuNTY5LjU5NC40MzctLjQ5NS4xMzMtLjIxOGExNS41MywxNS41MywwLDAsMSwyLjYzNSwzLjE0N0ExMS40NTIsMTEuNDUyLDAsMCwxLDI3LjY5MywxMi40MjRaXFxcIiBzdHlsZT1cXFwiZmlsbDojMjA0YTg3O2ZpbGwtb3BhY2l0eTowLjcxMzQ1MDMxMjYxNDQ0MDlcXFwiLz48cGF0aCBkPVxcXCJNMTYuODYxLDUuNTE3bC0uMDQ0LjMuMzA3LjIuNTI0LS4zNDYtLjI2Mi0uMy0uMzUuMi0uMTc0LS4wNVxcXCIgc3R5bGU9XFxcImZpbGw6IzIwNGE4NztmaWxsLW9wYWNpdHk6MC43MTM0NTAzMTI2MTQ0NDA5XFxcIi8+PHBhdGggZD1cXFwiTTE3LjM0MywzLjQ4OGwtMS4xMzgtLjQ0Ni0xLjMxMi4xNDgtMS42MTkuNDQ1LS4zMDYuMywxLjAwNi42OTN2LjRsLS4zOTQuNC41MjUsMS4wNC4zNDktLjIuNDM4LS42OTNhMTUuMDUzLDE1LjA1MywwLDAsMCwxLjkyNC0uNzQzbC41MjUtMS4zMzdcXFwiIHN0eWxlPVxcXCJmaWxsOiMyMDRhODc7ZmlsbC1vcGFjaXR5OjAuNzEzNDUwMzEyNjE0NDQwOVxcXCIvPjxwYXRoIGQ9XFxcIk0xOC41MjQsNy42NDcsMTguMzQ5LDcuMmwtLjMwNy4xLjA4OC41NDQuMzk0LS4yXFxcIiBzdHlsZT1cXFwiZmlsbDojMjA0YTg3O2ZpbGwtb3BhY2l0eTowLjcxMzQ1MDMxMjYxNDQ0MDlcXFwiLz48cGF0aCBkPVxcXCJNMTguNyw3LjU0N2wtLjA4OC41OTUuNDgxLS4xLjM1LS4zNDYtLjMwNi0uM2MtLjEtLjI3NC0uMjIxLS41MjktLjM1LS43OTJoLS4yNjJ2LjNsLjE3NC4ydi40NDVcXFwiIHN0eWxlPVxcXCJmaWxsOiMyMDRhODc7ZmlsbC1vcGFjaXR5OjAuNzEzNDUwMzEyNjE0NDQwOVxcXCIvPjxwYXRoIGQ9XFxcIk0xMi4yMjUsMTYuOTUzbC0uMzUtLjY5My0uNjU2LS4xNDgtLjM1LS45NC0uODc1LjEtLjc0My0uNTQ0LS43ODguNjkzdi4xMDlhMywzLDAsMCwxLS43NDMtLjIwOWwtLjE3NS0uNDk1VjE0LjI4bC0uNTI1LjA0OXEuMDY2LS41Mi4xMzEtMS4wMzlINi44NDVsLS4zMDYuNC0uMzA2LjE0OEw1LjgsMTMuNTg3bC0uMDQ0LS41NDUuMDg4LS41OTQuNjU2LS40OTVINy4wMmwuMDg3LS4zLjY1Ni4xNDguNDgxLjU5NS4wODgtLjk5MS44MzEtLjY5My4zMDYtLjc0My42MTItLjI0Ny4zNS0uNDk1Ljc4Ny0uMTQ5LjM5NC0uNTkzSDEwLjQzMmwuNzQ0LS4zNDdIMTEuN2wuNzQ0LS4yNDguMDg4LS4zLS4yNjMtLjI0OC0uMzA2LS4xLjA4OC0uMy0uMjE5LS40NDUtLjUyNS4yLjA4OC0uNC0uNjEyLS4zNDdMMTAuMyw2LjhsLjA0NC4zLS40ODEuMi0uMzA2LjY0My0uMTMxLS41OTRMOC41OTQsN2wtLjEzMS0uNDQ1LDEuMDk0LS42NDQuNDgxLS40NDUuMDQ0LS41NDQtLjI2Mi0uMTQ5LS4zNS0uMDUtLjIxOS41NDVzLS4zNjYuMDcyLS40Ni4wOTVBMTIuNSwxMi41LDAsMCwwLDQuNiwxMy4zNzFhNi43ODksNi43ODksMCwwLDAsLjQwOS43MTFsLjkxOC41NDQuOTE4LjI0OC4zOTQuNS42MTIuNDQ1LjM1LS4wNDkuMjYyLjExOHYuMDhsLS4zNS45NC0uMjYzLjQuMDg4LjItLjIxOS43NDIuNzg3LDEuNDM2Ljc4Ny42OTMuMzUuNDk1TDkuNiwyMS45bC4yNjMuNTkzTDkuNiwyMy42MzdzLS4wMjEtLjAwNy4wMTMuMTA3YTUuMjc4LDUuMjc4LDAsMCwwLDEuNDg4LjgwOWwuMTYxLS4xMjMtLjA4Ny0uMjQ3LjM1LS4zNDcuMTMxLS4zNDcuNTY5LS4yLjQzNy0xLjA4OS0uMTMxLS4zLjMwNi0uNDQ1LjY1Ni0uMTQ5LjM1LS43OTItLjA4OC0uOTkuNTI1LS43NDMuMDg4LS43NDNjLS43MTgtLjM1Ni0xLjQzLS43MjMtMi4xNDMtMS4wODlcXFwiIHN0eWxlPVxcXCJmaWxsOiMyMDRhODc7ZmlsbC1vcGFjaXR5OjAuNzEzNDUwMzEyNjE0NDQwOVxcXCIvPjxwYXRoIGQ9XFxcIk0xMS4yNjMsNS43MTVsLjQzNy4zaC4zNVY1LjY2NmwtLjQzNy0uMi0uMzUuMjQ3XFxcIiBzdHlsZT1cXFwiZmlsbDojMjA0YTg3O2ZpbGwtb3BhY2l0eTowLjcxMzQ1MDMxMjYxNDQ0MDlcXFwiLz48cGF0aCBkPVxcXCJNMTAuMTI2LDUuMzE5bC0uMjE5LjU0NGguNDM4bC4yMTktLjVjLjE4OS0uMTMzLjM3Ni0uMjY4LjU2OC0uNGwuNDM4LjE0OS44NzUuNTk0LjQzOC0uNC0uNDgyLS4yLS4yMTktLjQ0Ni0uODMxLS4xLS4wNDQtLjI0OC0uMzk0LjEtLjE3NS4zNDYtLjIxOS0uNDQ2LS4wODcuMi4wNDQuNS0uMzUuM1xcXCIgc3R5bGU9XFxcImZpbGw6IzIwNGE4NztmaWxsLW9wYWNpdHk6MC43MTM0NTAzMTI2MTQ0NDA5XFxcIi8+PHBhdGggZD1cXFwiTTExLjcsNC4wODFsLjIxOS0uMi40MzgtLjFhNi45LDYuOSwwLDAsMSwuOTE4LS4zNDdsLS4xNzQtLjMtLjU2NS4wODEtLjI2Ny4yNjYtLjQ0LjA2NC0uMzkxLjE4NC0uMTkuMDkyLS4xMTYuMTU1LjU2OC4xXFxcIiBzdHlsZT1cXFwiZmlsbDojMjA0YTg3O2ZpbGwtb3BhY2l0eTowLjcxMzQ1MDMxMjYxNDQ0MDlcXFwiLz48cGF0aCBkPVxcXCJNMTIuNDQ0LDguNzg1bC4yNjMtLjQtLjM5NC0uMy4xMzEuNjkzXFxcIiBzdHlsZT1cXFwiZmlsbDojMjA0YTg3O2ZpbGwtb3BhY2l0eTowLjcxMzQ1MDMxMjYxNDQ0MDlcXFwiLz48cGF0aCBkPVxcXCJNMTYuMTQ5LDI1Ljc4M0ExMS41OCwxMS41OCwwLDEsMSwyNy43MjksMTQuMiwxMS41OTMsMTEuNTkzLDAsMCwxLDE2LjE0OSwyNS43ODNabTAtMjIuNTQ4QTEwLjk2OCwxMC45NjgsMCwxLDAsMjcuMTE3LDE0LjIsMTAuOTgsMTAuOTgsMCwwLDAsMTYuMTQ5LDMuMjM1WlxcXCIgc3R5bGU9XFxcIm9wYWNpdHk6MC4zOTU2MDQ0MDE4MjY4NTg1O2lzb2xhdGlvbjppc29sYXRlO2ZpbGw6dXJsKCNiKVxcXCIvPjxwYXRoIGQ9XFxcIk01LjU0MSwxMC4yNDFhNC4xMTUsNC4xMTUsMCwxLDAsNi42MzYtNC44NjZoMEE0LjExNSw0LjExNSwwLDAsMCw1LjU0LDEwLjI0WlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNjKVxcXCIvPjxwYXRoIGQ9XFxcIk03LjgzNiw4LjU1OGExLjI2OCwxLjI2OCwwLDEsMCwyLjA0Ni0xLjVoMGExLjI2OCwxLjI2OCwwLDAsMC0yLjA0NiwxLjVaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+PHBhdGggZD1cXFwiTTE3Ljk1MiwyNC44YTUuMzM3LDUuMzM3LDAsMSwwLDguNjA3LTYuMzEydjBBNS4zMzcsNS4zMzcsMCwwLDAsMTcuOTUsMjQuOFpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjZClcXFwiLz48cGF0aCBkPVxcXCJNMjAuOTI4LDIyLjYxNmExLjY0NSwxLjY0NSwwLDEsMCwyLjY1My0xLjk0NmgwYTEuNjQ1LDEuNjQ1LDAsMCwwLTIuNjUzLDEuOTQ2WlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPjxwYXRoIGQ9XFxcIk00Ljg1OSwxOC40OTNBNC4xMTUsNC4xMTUsMCwxLDAsMTEuNSwxMy42MjZoMGE0LjExNSw0LjExNSwwLDAsMC02LjYzNiw0Ljg2NlpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjZSlcXFwiLz48cGF0aCBkPVxcXCJNNy4xNTQsMTYuODA5YTEuMjY4LDEuMjY4LDAsMSwwLDIuMDQ2LTEuNWgwYTEuMjY4LDEuMjY4LDAsMCwwLTIuMDQ2LDEuNVpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48cGF0aCBkPVxcXCJNMTIuNDA4LDEwLjI2OUE0LjQ0MSw0LjQ0MSwwLDEsMCwxOS41Nyw1LjAxNmgwYTQuNDQxLDQuNDQxLDAsMSwwLTcuMTYyLDUuMjUzWlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNmKVxcXCIvPjxwYXRoIGQ9XFxcIk0xNC44ODUsOC40NTJhMS4zNjksMS4zNjksMCwxLDAsMi4yMDgtMS42MTloMGExLjM2OSwxLjM2OSwwLDEsMC0yLjIwOCwxLjYxOVpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48cGF0aCBkPVxcXCJNMTIuNjgsMjYuMjM4YTMuODMsMy44MywwLDAsMS0yLjkwOS0xLjA4N2MtMS4xMzMtMS4yMS0xLjItMy4yNTUtLjItNS43NTdhMjEuNTQyLDIxLjU0MiwwLDAsMSw1LjMwNy03LjMyNkMyMC4wNjQsNy4yMTUsMjUuOTQ1LDUuMzU2LDI4LjI3LDcuODM5YzEuMTMzLDEuMjExLDEuMiwzLjI1NS4yLDUuNzU3YTIxLjU1MywyMS41NTMsMCwwLDEtNS4zMDgsNy4zMjZBMjEuNTUxLDIxLjU1MSwwLDAsMSwxNS41LDI1LjczMyw5LjIyOSw5LjIyOSwwLDAsMSwxMi42OCwyNi4yMzhaTTI1LjM0Miw3LjI4Yy0yLjcsMC02LjYsMS45MDgtMTAuMSw1LjE4M0EyMSwyMSwwLDAsMCwxMC4wNzEsMTkuNmMtLjkyMSwyLjMtLjg4Nyw0LjEzOC4wOTQsNS4xODdzMi44MTcsMS4yLDUuMTY5LjQzN2EyMSwyMSwwLDAsMCw3LjQ2LTQuNjkyLDIxLDIxLDAsMCwwLDUuMTc1LTcuMTMyYy45MjEtMi4zLjg4OC00LjEzOC0uMDk1LTUuMTg3QTMuMzQsMy4zNCwwLDAsMCwyNS4zNDIsNy4yOFpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjZylcXFwiLz48cGF0aCBkPVxcXCJNMjEuNjgxLDIyLjA5NGEyMC42MzMsMjAuNjMzLDAsMCwxLTkuMzM5LTIuNzU5QzYuMSwxNS45NSwyLjQ3MywxMC45NTcsNC4wOTQsNy45NjhjLjc5LTEuNDU4LDIuNy0yLjE3NSw1LjQtMi4wMTJBMjEuNTQyLDIxLjU0MiwwLDAsMSwxOC4xMiw4LjY3NGEyMS41NDUsMjEuNTQ1LDAsMCwxLDYuOTg3LDUuNzQ2YzEuNiwyLjE2NywyLjA1MSw0LjE2MywxLjI2MSw1LjYyMUMyNS42MjIsMjEuNDE2LDIzLjkxNSwyMi4wOTQsMjEuNjgxLDIyLjA5NFpNOC43NTksNi40NzRjLTIuMSwwLTMuNTcyLjYxMi00LjE5LDEuNzUxQzMuMTE3LDEwLjksNi43MiwxNS42NzQsMTIuNiwxOC44NnMxMS44NDMsMy42LDEzLjI5NC45MjRjLjY4NS0xLjI2My4yNTEtMy4wNTQtMS4yMi01LjA0MmEyMSwyMSwwLDAsMC02LjgxLTUuNTkzQTIxLDIxLDAsMCwwLDkuNDU5LDYuNVE5LjEsNi40NzQsOC43NTksNi40NzRaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2gpXFxcIi8+PHBhdGggZD1cXFwiTTEwLDI0LjA3OGEzLjc1NywzLjc1NywwLDAsMS0yLjg1MS0xLjA2NWMtMS4xMS0xLjE4Ny0xLjE4MS0zLjE4OS0uMi01LjYzOWEyMS4wNjIsMjEuMDYyLDAsMCwxLDUuMTg5LTcuMTYzYzUuMDczLTQuNzQ3LDEwLjgzLTYuNTYzLDEzLjEtNC4xMzJoMGMyLjI3NSwyLjQzMS4wODMsOC4wNTMtNC45OSwxMi44YTIxLjA1OSwyMS4wNTksMCwwLDEtNy40OTEsNC43QTkuMDI0LDkuMDI0LDAsMCwxLDEwLDI0LjA3OFpNMjIuMzczLDUuNTUzYy0yLjYzLDAtNi40MzksMS44NjQtOS44NTYsNS4wNjJBMjAuNSwyMC41LDAsMCwwLDcuNDYzLDE3LjU4Yy0uOSwyLjIzOS0uODY2LDQuMDM0LjA5LDUuMDU1czIuNzQ1LDEuMTcyLDUuMDM4LjQyNGEyMC41MTMsMjAuNTEzLDAsMCwwLDcuMjg0LTQuNTgyYzQuNzY2LTQuNDYsNi45OTQtOS44NTMsNC45NjUtMTIuMDJoMEEzLjI1NiwzLjI1NiwwLDAsMCwyMi4zNzMsNS41NTNaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2kpXFxcIi8+PHBhdGggZD1cXFwiTTE3LjUxMiwxOS40MTNjLS44NiwwLTEuNzQ4LS4wNDMtMi42NTktLjEzM0M3Ljc4NCwxOC41ODQsMi41MDcsMTUuMzg4LDIuODQsMTJoMGMuMzMzLTMuMzgzLDYuMTMzLTUuNDksMTMuMi00Ljc5MXMxMi4zNDUsMy44OTIsMTIuMDEyLDcuMjc1QzI3Ljc2MywxNy40MzYsMjMuMzI0LDE5LjQxMywxNy41MTIsMTkuNDEzWk0zLjM3OCwxMi4wNTdjLS4zLDMuMDMxLDQuODczLDYuMDMsMTEuNTI4LDYuNjg2czEyLjMxMi0xLjI3NywxMi42MTEtNC4zMDhTMjIuNjQ0LDguNDA2LDE1Ljk4OCw3Ljc1LDMuNjc3LDkuMDI3LDMuMzc4LDEyLjA1N1pcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjailcXFwiLz48cGF0aCBkPVxcXCJNNi4yNTEsMjkuOTY2aDYuNjc0VjIwLjgwOWgyLjk4MUw5LjU0OCwxMS40MzQsMy4yOTUsMjAuNzgybDIuOTU4LjAzMVpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjaylcXFwiLz48cGF0aCBkPVxcXCJNMTIuOTI0LDMwLjA0NUg2LjI1MWEuMDQ5LjA0OSwwLDAsMS0uMDM5LS4wMjNjLS4wMS0uMDE1LS4wMTYtMy4xMzUtLjAxNi0zLjE1NmwwLTUuOTc1LTIuOS0uMDNhLjA2LjA2LDAsMCwxLS4wNTEtLjA0OC4xLjEsMCwwLDEsLjAxMS0uMDg1TDkuNTA4LDExLjM4YS4wNTYuMDU2LDAsMCwxLC4wNDEtLjAyNS4wNS4wNSwwLDAsMSwuMDQuMDI0bDYuMzU3LDkuMzc1YS4xLjEsMCwwLDEsLjAxMS4wODYuMDU5LjA1OSwwLDAsMS0uMDUxLjA0OEgxMi45OHY5LjA3OEMxMi45OCwzMC4wMSwxMi45NTUsMzAuMDQ1LDEyLjkyNCwzMC4wNDVabS02LjYxOC0uMTU4aDYuNTYyVjIwLjgwOWMwLS4wNDQuMDI1LS4wNzkuMDU2LS4wNzloMi44NUw5LjU0OSwxMS41NDksMy40MjQsMjAuN2wyLjgzLjAzYy4wMzEsMCwuMDU1LjAzNi4wNTUuMDc5WlxcXCIgc3R5bGU9XFxcImZpbGw6IzE4Mzg2OFxcXCIvPjxwYXRoIGQ9XFxcIk0xOS4wNTMsMjAuNTg3bC0yLjk1OC4wMzEsNi4yNTQsOS4zNDgsNi4zNTctOS4zNzVIMjUuNzI0VjExLjQzNEgxOS4wNTFaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2wpXFxcIi8+PHBhdGggZD1cXFwiTTI1Ljc4LDExLjQzNHY5LjA3OGgyLjkyNWEuMDU5LjA1OSwwLDAsMSwuMDUxLjA0OC4xLjEsMCwwLDEtLjAxMS4wODZsLTYuMzU3LDkuMzc1YS4wNS4wNSwwLDAsMS0uMDQuMDI0LjA1Ni4wNTYsMCwwLDEtLjA0MS0uMDI1bC02LjI1NC05LjM0OGEuMS4xLDAsMCwxLS4wMTEtLjA4NS4wNi4wNiwwLDAsMSwuMDUxLS4wNDhsMi45LS4wMywwLTUuOTc1YzAtLjAyMS4wMDYtMy4xNDEuMDE2LTMuMTU2YS4wNDkuMDQ5LDAsMCwxLC4wMzktLjAyM2g2LjY3NEMyNS43NTUsMTEuMzU1LDI1Ljc4LDExLjM5LDI1Ljc4LDExLjQzNFptLTYuNjcyLDkuMTUzYzAsLjA0My0uMDI1LjA3OS0uMDU1LjA3OWwtMi44My4wMyw2LjEyNSw5LjE1Niw2LjIyNi05LjE4MWgtMi44NWMtLjAzMSwwLS4wNTYtLjAzNS0uMDU2LS4wNzlWMTEuNTEzSDE5LjEwN1pcXFwiIHN0eWxlPVxcXCJmaWxsOiMxODM4NjhcXFwiLz5cIixcblx0XCJJZHJpc1wiOiBcIjxwYXRoIGQ9XFxcIk0xMy4zNzYsNi4yYzMuNiwxLjEsNC41LDIsNS44LDUuMi0uMy00LTEuOS01LjYtNS44LTUuMlpcXFwiIHN0eWxlPVxcXCJmaWxsOiM4YTA4MTlcXFwiLz48cGF0aCBkPVxcXCJNOC4zNzYsMTIuNGMyLjMuNyw1LDEuMyw2LDUuNy40LTUuNS0yLjItNS44LTYtNS43WlxcXCIgc3R5bGU9XFxcImZpbGw6IzhhMDgxOVxcXCIvPjxwYXRoIGQ9XFxcIk05Ljk3Niw4LjhjMy41LjcsNS43LDEuNyw3LDYuMi4zLTUuOC0yLjktNi40LTctNi4yWlxcXCIgc3R5bGU9XFxcImZpbGw6IzhhMDgxOVxcXCIvPjxwYXRoIGQ9XFxcIk0xNC41NzYsMmMxOS4xLDEyLjQtNC4yLDEyLjcuOCwyNy4xbDMsLjljLTguMy0xMS4yLDE4LjQtMTctMy44LTI4WlxcXCIgc3R5bGU9XFxcImZpbGw6IzhhMDgxOVxcXCIvPlwiLFxuXHRcIkluaVwiOiBcIjxwYXRoIGQ9XFxcIk0yMy4yNjUsMjQuMzgxbC45LS44OTRjNC4xNjQuMTM2LDQuMjI4LS4wMSw0LjQxMS0uNDM4bDEuMTQ0LTIuNzg1TDI5LjgwNSwyMGwtLjA5My0uMjMxYy0uMDQ5LS4xMjItLjItLjQ4Ni0yLjgtMi45NjVWMTUuNWMzLTIuODksMi45MzYtMy4wMzgsMi43NjUtMy40NjFMMjguNTM4LDkuMjI1Yy0uMTcxLS40MjItLjIzNi0uNTg3LTQuMzctLjQ3NGwtLjktLjkzYTIwLjE2NiwyMC4xNjYsMCwwLDAtLjE0MS00LjEwNmwtLjExNi0uMjYzLTIuOTc0LTEuM2MtLjQzOC0uMi0uNTkyLS4yNzItMy40LDIuNzg2bC0xLjI2Mi0uMDE5Yy0yLjg5MS0zLjA4Ni0zLjAyOC0zLjAzLTMuNDYxLTIuODU1TDkuMTQ5LDMuMTgyYy0uNDMzLjE3NS0uNTg2LjIzNy0uNDE4LDQuNDM3bC0uODkzLjg5Yy00LjE2Mi0uMTM2LTQuMjI2LjAxMi00LjQwNy40MzhMMi4yODUsMTEuNzMzLDIuMTk1LDEybC4wOTQuMjMyYy4wNDkuMTIuMTk0LjQ4LDIuOCwyLjk2MmwwLDEuM2MtMywyLjg5LTIuOTM1LDMuMDM4LTIuNzYzLDMuNDYybDEuMTM4LDIuODE3Yy4xNzQuNDMxLjIzNi41ODQsNC4zNjkuNDc2bC45LjkzNWEyMC4yNDMsMjAuMjQzLDAsMCwwLC4xMzcsNC4xbC4xMTYuMjY1LDIuOTkzLDEuMzA4Yy40MzUuMTgyLjU4Ni4yNDcsMy4zODYtMi44bDEuMjYyLjAxNmMyLjg5NSwzLjA5LDMuMDQzLDMuMDMsMy40NjYsMi44NTlsMi43NTktMS4xMTVDMjMuMjg4LDI4LjY0NCwyMy40NCwyOC41ODMsMjMuMjY1LDI0LjM4MVpNMTEuNDA3LDE3Ljg1N2E0Ljk1Nyw0Ljk1NywwLDEsMSw2LjQ4OCwyLjgyNEE1LjAxNCw1LjAxNCwwLDAsMSwxMS40MDcsMTcuODU3WlxcXCIgc3R5bGU9XFxcImZpbGw6Izk5YjhjNFxcXCIvPlwiLFxuXHRcIklvXCI6IFwiPHBhdGggZD1cXFwiTTIsMi44ODdINy4wNzVWNy41MUgyWm0uMDUyLDYuODNINy4wNFYyOC42MjZIMi4wNTJaXFxcIiBzdHlsZT1cXFwiZmlsbDojYzJjMmMyXFxcIi8+PHBhdGggZD1cXFwiTTEzLjI3MSwyNi40NTRhOS43OTEsOS43OTEsMCwwLDEtMi42MTYtNy4xNzgsMTAuMTQ4LDEwLjE0OCwwLDAsMSwyLjYxNi03LjM0Myw5LjMyMSw5LjMyMSwwLDAsMSw3LjA0Ny0yLjcyLDkuMzQsOS4zNCwwLDAsMSw3LjA3NSwyLjcyQTEwLjE2OCwxMC4xNjgsMCwwLDEsMzAsMTkuMjc2YTkuODA5LDkuODA5LDAsMCwxLTIuNjA3LDcuMTc4LDkuNDU2LDkuNDU2LDAsMCwxLTcuMDc1LDIuNjU5QTkuNDM2LDkuNDM2LDAsMCwxLDEzLjI3MSwyNi40NTRabTEwLjQzNi0yLjk3MmE2LjcsNi43LDAsMCwwLDEuMTY2LTQuMjU4LDYuOTQzLDYuOTQzLDAsMCwwLTEuMTY2LTQuMzU0LDQuMDQ3LDQuMDQ3LDAsMCwwLTMuMzg5LTEuNDg2LDQuMDIyLDQuMDIyLDAsMCwwLTMuMzgsMS40ODYsNi45OTEsNi45OTEsMCwwLDAtMS4xNTYsNC4zNTQsNi43NDQsNi43NDQsMCwwLDAsMS4xNTYsNC4yNTgsNC4wNTMsNC4wNTMsMCwwLDAsMy4zOCwxLjQ2QTQuMDc4LDQuMDc4LDAsMCwwLDIzLjcwNywyMy40ODJaXFxcIiBzdHlsZT1cXFwiZmlsbDojYzJjMmMyXFxcIi8+XCIsXG5cdFwiSmF2YVwiOiBcIjxwYXRoIGQ9XFxcIk0xMi4zMjUsMjMuNjU0cy0xLjA3LjYyMi43NjEuODMzYTE2LjAyMywxNi4wMjMsMCwwLDAsNS44LS4yNDYsMTAuMDg4LDEwLjA4OCwwLDAsMCwxLjU0MS43NTJjLTUuNDgxLDIuMzQ5LTEyLjQwNS0uMTM2LTguMS0xLjMzOVxcXCIgc3R5bGU9XFxcImZpbGw6IzUzODJhMVxcXCIvPjxwYXRoIGQ9XFxcIk0xMS42NTYsMjAuNTg4cy0xLjIuODg4LjYzMywxLjA3OGEyMi42MTgsMjIuNjE4LDAsMCwwLDcuNDgxLS4zNTksMy4zMiwzLjMyLDAsMCwwLDEuMTUyLjdjLTYuNjI3LDEuOTM4LTE0LjAwOS4xNTMtOS4yNjYtMS40MjFcXFwiIHN0eWxlPVxcXCJmaWxsOiM1MzgyYTFcXFwiLz48cGF0aCBkPVxcXCJNMTcuMywxNS4zODhhMi4wNTEsMi4wNTEsMCwwLDEtLjM1NSwyLjk1NHMzLjQyOS0xLjc3LDEuODU0LTMuOTg3Yy0xLjQ3MS0yLjA2Ny0yLjYtMy4wOTUsMy41MDgtNi42MzYsMCwwLTkuNTg2LDIuMzk0LTUuMDA3LDcuNjY5XFxcIiBzdHlsZT1cXFwiZmlsbDojNTM4MmExXFxcIi8+PHBhdGggZD1cXFwiTTI0LjU1MiwyNS45MjFzLjc5Mi42NTItLjg3MiwxLjE1N2MtMy4xNjQuOTU4LTEzLjE2OCwxLjI0OC0xNS45NDguMDM4LTEtLjQzNS44NzQtMS4wMzgsMS40NjQtMS4xNjRhMy44LDMuOCwwLDAsMSwuOTY2LS4xMDhjLTEuMTExLS43ODMtNy4xODEsMS41MzctMy4wODMsMi4yLDExLjE3NiwxLjgxMiwyMC4zNzItLjgxNiwxNy40NzMtMi4xMjRcXFwiIHN0eWxlPVxcXCJmaWxsOiM1MzgyYTFcXFwiLz48cGF0aCBkPVxcXCJNMTIuODQsMTcuNDEycy01LjA4OSwxLjIwOS0xLjgsMS42NDhhMzguMjI1LDM4LjIyNSwwLDAsMCw2LjczMS0uMDcyYzIuMTA2LS4xNzgsNC4yMjEtLjU1NSw0LjIyMS0uNTU1YTguOTM0LDguOTM0LDAsMCwwLTEuMjguNjg1Yy01LjE2OCwxLjM1OS0xNS4xNTEuNzI3LTEyLjI3Ny0uNjYzYTkuNjI5LDkuNjI5LDAsMCwxLDQuNDA3LTEuMDQyXFxcIiBzdHlsZT1cXFwiZmlsbDojNTM4MmExXFxcIi8+PHBhdGggZD1cXFwiTTIxLjk2OSwyMi41MTVjNS4yNTMtMi43MywyLjgyNC01LjM1MywxLjEyOS01YTMuOTMyLDMuOTMyLDAsMCwwLS42LjE2MS45NTcuOTU3LDAsMCwxLC40NDktLjM0NmMzLjM1NC0xLjE3OSw1LjkzMywzLjQ3OC0xLjA4Myw1LjMyMmEuNDU4LjQ1OCwwLDAsMCwuMTA2LS4xMzhcXFwiIHN0eWxlPVxcXCJmaWxsOiM1MzgyYTFcXFwiLz48cGF0aCBkPVxcXCJNMTguOCwyczIuOTA5LDIuOTEtMi43NTksNy4zODZjLTQuNTQ2LDMuNTktMS4wMzcsNS42MzcsMCw3Ljk3NS0yLjY1My0yLjM5NC00LjYtNC41LTMuMjk0LTYuNDYzQzE0LjY2NCw4LjAxOSwxOS45NzYsNi42MjMsMTguOCwyXFxcIiBzdHlsZT1cXFwiZmlsbDojNTM4MmExXFxcIi8+PHBhdGggZD1cXFwiTTEzLjM1NiwyOS45MTJjNS4wNDIuMzIzLDEyLjc4Ni0uMTc5LDEyLjk2OS0yLjU2NSwwLDAtLjM1My45LTQuMTY3LDEuNjIzYTQxLjQ1OCw0MS40NTgsMCwwLDEtMTIuNzYuMnMuNjQ1LjUzMywzLjk1OS43NDZcXFwiIHN0eWxlPVxcXCJmaWxsOiM1MzgyYTFcXFwiLz5cIixcblx0XCJKYXZhU2NyaXB0XCI6IFwiPHJlY3QgeD1cXFwiMlxcXCIgeT1cXFwiMlxcXCIgd2lkdGg9XFxcIjI4XFxcIiBoZWlnaHQ9XFxcIjI4XFxcIiBzdHlsZT1cXFwiZmlsbDojZjVkZTE5XFxcIi8+PHBhdGggZD1cXFwiTTIwLjgwOSwyMy44NzVhMi44NjYsMi44NjYsMCwwLDAsMi42LDEuNmMxLjA5LDAsMS43ODctLjU0NSwxLjc4Ny0xLjMsMC0uOS0uNzE2LTEuMjIyLTEuOTE2LTEuNzQ3bC0uNjU4LS4yODJjLTEuOS0uODA5LTMuMTYtMS44MjItMy4xNi0zLjk2NCwwLTEuOTczLDEuNS0zLjQ3NiwzLjg1My0zLjQ3NmEzLjg4OSwzLjg4OSwwLDAsMSwzLjc0MiwyLjEwN0wyNSwxOC4xMjhBMS43ODksMS43ODksMCwwLDAsMjMuMzExLDE3YTEuMTQ1LDEuMTQ1LDAsMCwwLTEuMjU5LDEuMTI4YzAsLjc4OS40ODksMS4xMDksMS42MTgsMS42bC42NTguMjgyYzIuMjM2Ljk1OSwzLjUsMS45MzYsMy41LDQuMTMzLDAsMi4zNjktMS44NjEsMy42NjctNC4zNiwzLjY2N2E1LjA1NSw1LjA1NSwwLDAsMS00Ljc5NS0yLjY5MVptLTkuMjk1LjIyOGMuNDEzLjczMy43ODksMS4zNTMsMS42OTMsMS4zNTMuODY0LDAsMS40MS0uMzM4LDEuNDEtMS42NTNWMTQuODU2aDIuNjMxdjguOTgyYzAsMi43MjQtMS42LDMuOTY0LTMuOTI5LDMuOTY0YTQuMDg1LDQuMDg1LDAsMCwxLTMuOTQ3LTIuNFpcXFwiLz5cIixcblx0XCJKU09OXCI6IFwiPHBhdGggZD1cXFwiTTQuMDE0LDE0Ljk3NmEyLjUxLDIuNTEsMCwwLDAsMS41NjctLjUxOEEyLjM3NywyLjM3NywwLDAsMCw2LjM4NiwxMy4xLDE1LjI2MSwxNS4yNjEsMCwwLDAsNi42LDEwLjE1NnEuMDEyLTIuMDg1LjA3NS0yLjc0N2E1LjIzNiw1LjIzNiwwLDAsMSwuNDE4LTEuNjg2LDMuMDI1LDMuMDI1LDAsMCwxLC43NTUtMS4wMThBMy4wNDYsMy4wNDYsMCwwLDEsOSw0LjEyNSw2Ljc2Miw2Ljc2MiwwLDAsMSwxMC41NDQsNGguN1Y1Ljk2aC0uMzg3YTIuMzM4LDIuMzM4LDAsMCwwLTEuNzIzLjQ2OEEzLjQsMy40LDAsMCwwLDguNzA5LDguNTJhMzYuMDU0LDM2LjA1NCwwLDAsMS0uMTM3LDQuMTMzLDQuNzM0LDQuNzM0LDAsMCwxLS43NjgsMi4wNkE0LjU2Nyw0LjU2NywwLDAsMSw2LjEsMTZhMy44MDksMy44MDksMCwwLDEsMS45OTIsMS43NTQsOC44NjEsOC44NjEsMCwwLDEsLjYxOCwzLjg2NXEwLDIuNDM1LjA1LDIuOUExLjc1NSwxLjc1NSwwLDAsMCw5LjI2NCwyNS43YTIuNjM5LDIuNjM5LDAsMCwwLDEuNTkyLjMzN2guMzg3VjI4aC0uN2E1LjY1NSw1LjY1NSwwLDAsMS0xLjc3My0uMiwyLjk3LDIuOTcsMCwwLDEtMS4zMjQtLjkzLDMuMzUzLDMuMzUzLDAsMCwxLS42ODEtMS42M0EyNC4xNzUsMjQuMTc1LDAsMCwxLDYuNiwyMi4wMDYsMTYuNDY5LDE2LjQ2OSwwLDAsMCw2LjM4NiwxOC45YTIuNDA4LDIuNDA4LDAsMCwwLS44MDUtMS4zNjEsMi40ODksMi40ODksMCwwLDAtMS41NjctLjUyNFpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmNWRlMTlcXFwiLz48cGF0aCBkPVxcXCJNMjcuOTg2LDE3LjAxMWEyLjQ4OSwyLjQ4OSwwLDAsMC0xLjU2Ny41MjQsMi40MDgsMi40MDgsMCwwLDAtLjgwNSwxLjM2MSwxNi40NjksMTYuNDY5LDAsMCwwLS4yMTIsMy4xMDksMjQuMTc1LDI0LjE3NSwwLDAsMS0uMTY5LDMuMjM0LDMuMzUzLDMuMzUzLDAsMCwxLS42ODEsMS42MywyLjk3LDIuOTcsMCwwLDEtMS4zMjQuOTMsNS42NTUsNS42NTUsMCwwLDEtMS43NzMuMmgtLjdWMjYuMDRoLjM4N2EyLjYzOSwyLjYzOSwwLDAsMCwxLjU5Mi0uMzM3LDEuNzU1LDEuNzU1LDAsMCwwLC41MDYtMS4xODZxLjA1LS40NjIuMDUtMi45YTguODYxLDguODYxLDAsMCwxLC42MTgtMy44NjVBMy44MDksMy44MDksMCwwLDEsMjUuOSwxNmE0LjU2Nyw0LjU2NywwLDAsMS0xLjctMS4yODYsNC43MzQsNC43MzQsMCwwLDEtLjc2OC0yLjA2LDM2LjA1NCwzNi4wNTQsMCwwLDEtLjEzNy00LjEzMywzLjQsMy40LDAsMCwwLS40MjUtMi4wOTIsMi4zMzgsMi4zMzgsMCwwLDAtMS43MjMtLjQ2OGgtLjM4N1Y0aC43QTYuNzYyLDYuNzYyLDAsMCwxLDIzLDQuMTI1YTMuMDQ2LDMuMDQ2LDAsMCwxLDEuMTQ5LjU4MSwzLjAyNSwzLjAyNSwwLDAsMSwuNzU1LDEuMDE4LDUuMjM2LDUuMjM2LDAsMCwxLC40MTgsMS42ODZxLjA2Mi42NjIuMDc1LDIuNzQ3YTE1LjI2MSwxNS4yNjEsMCwwLDAsLjIxMiwyLjk0NywyLjM3NywyLjM3NywwLDAsMCwuODA1LDEuMzU1LDIuNTEsMi41MSwwLDAsMCwxLjU2Ny41MThaXFxcIiBzdHlsZT1cXFwiZmlsbDojZjVkZTE5XFxcIi8+XCIsXG5cdFwiSlNPTjVcIjogXCI8cGF0aCBkPVxcXCJNMTIuODE1LDE1LjE2N2wuNjgtNS42NzZoNi40ODl2MmgtNC40TDE1LjMyOSwxMy43YTIuNCwyLjQsMCwwLDEsLjI1Mi0uMTIyLDIuOTYyLDIuOTYyLDAsMCwxLC4zNzQtLjEzLDIuOSwyLjksMCwwLDEsLjQ1OC0uMTA2LDIuODM0LDIuODM0LDAsMCwxLC41MTItLjA0NiwzLjk4MywzLjk4MywwLDAsMSwxLjQ2Ni4yNTIsMi43MzYsMi43MzYsMCwwLDEsMS4wNzYuNzIzLDMuMTY3LDMuMTY3LDAsMCwxLC42NjQsMS4xNjgsNSw1LDAsMCwxLC4yMjgsMS41ODgsNC4xNTcsNC4xNTcsMCwwLDEtLjIzNiwxLjM4NywzLjMwNywzLjMwNywwLDAsMS0xLjksMi4wMjksNC4zLDQuMywwLDAsMS0xLjcxNS4zMTIsNC43NSw0Ljc1LDAsMCwxLTEuNDU4LS4yMjgsNC4wNTQsNC4wNTQsMCwwLDEtMS4yNTItLjY1NiwzLjM1OSwzLjM1OSwwLDAsMS0uODc4LTEuMDQ2LDIuNzg3LDIuNzg3LDAsMCwxLS4zMi0xLjM4MkgxNS4xOGExLjQ1OCwxLjQ1OCwwLDAsMCwuMzkuOTcsMS4zODMsMS4zODMsMCwwLDAsMS41NTguMjA2LDEuMDg5LDEuMDg5LDAsMCwwLC40LS40MTIsMS43NDksMS43NDksMCwwLDAsLjIwNi0uNjE4LDQuMyw0LjMsMCwwLDAsLjA2Mi0uNzQsMi43MDksMi43MDksMCwwLDAtLjA5Mi0uNzQsMS41MDYsMS41MDYsMCwwLDAtLjI4Mi0uNTU4LDEuMjI5LDEuMjI5LDAsMCwwLS41LS4zNDksMS43OCwxLjc4LDAsMCwwLS43MTgtLjEzLDIuMTIxLDIuMTIxLDAsMCwwLS41LjA1NCwxLjgwNSwxLjgwNSwwLDAsMC0uMzgyLjEzOCwxLjMxOCwxLjMxOCwwLDAsMC0uMjc0LjE5LDEuMjgsMS4yOCwwLDAsMC0uMTkuMmwtMi4wNDgtLjQ4MlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPjxwYXRoIGQ9XFxcIk01Ljk4NSwyMy4zNDNhNC40NSw0LjQ1LDAsMCwxLTEuMzExLS41OCwzLjIsMy4yLDAsMCwxLS44NDgtLjgyNCwzLjAxMiwzLjAxMiwwLDAsMS0uNDU4LTEuMDA4LDQuODc5LDQuODc5LDAsMCwxLS4xMy0xLjE0M3YtMS41NWEyLjMsMi4zLDAsMCwwLS4wNzYtLjYxOCwxLjE4NCwxLjE4NCwwLDAsMC0uMjIyLS40NjYuOTY5Ljk2OSwwLDAsMC0uMzgyLS4zMDZBMS4zMjQsMS4zMjQsMCwwLDAsMiwxNi43NDRWMTUuMDEyYTEuMDc0LDEuMDc0LDAsMCwwLC45MzctLjQsMS44NDEsMS44NDEsMCwwLDAsLjMtMS4xdi0xLjU1YTQuODc5LDQuODc5LDAsMCwxLC4xMy0xLjE0MywzLjAzNywzLjAzNywwLDAsMSwuNDU4LTEuMDA4QTMuMTcsMy4xNywwLDAsMSw0LjY3MSw5YTQuNDgyLDQuNDgyLDAsMCwxLDEuMzExLS41OGwuNDgsMS4zNDRhMS4yMjIsMS4yMjIsMCwwLDAtLjQ4OC4zMjgsMS43NDIsMS43NDIsMCwwLDAtLjMwNi41LDIuNTI0LDIuNTI0LDAsMCwwLS4xNi42MzQsNS44MjcsNS44MjcsMCwwLDAtLjA0Ni43NHYxLjU1QTIuODQ0LDIuODQ0LDAsMCwxLDUuMTI2LDE0LjlhMi4zNywyLjM3LDAsMCwxLTEuMDc2Ljk4MywyLjM1NiwyLjM1NiwwLDAsMSwxLjA3Ni45OTIsMi44MDgsMi44MDgsMCwwLDEsLjMzNiwxLjM3NHYxLjU1YTUuODI3LDUuODI3LDAsMCwwLC4wNDYuNzQsMi41ODYsMi41ODYsMCwwLDAsLjE2LjYzNCwxLjY4NCwxLjY4NCwwLDAsMCwuMzA2LjVBMS4yMjIsMS4yMjIsMCwwLDAsNi40NjIsMjJjMC0uMDA1LS40NzcsMS4zNDQtLjQ3NywxLjM0NFxcXCIgc3R5bGU9XFxcImZpbGw6Izk5OVxcXCIvPjxwYXRoIGQ9XFxcIk04LjIxNSwxOS4zOTNhMS4yODksMS4yODksMCwwLDEsLjEtLjUxMiwxLjIxMiwxLjIxMiwwLDAsMSwuMjktLjQsMS4zNzMsMS4zNzMsMCwwLDEsLjQ1LS4yNzQsMS42MzcsMS42MzcsMCwwLDEsLjU4LS4xLDEuNTU1LDEuNTU1LDAsMCwxLC41NzIuMSwxLjI2OSwxLjI2OSwwLDAsMSwuNDUuMjc0LDEuMDc3LDEuMDc3LDAsMCwxLC4yOS40LDEuMjk0LDEuMjk0LDAsMCwxLDAsMS4wMjQsMS4xNTEsMS4xNTEsMCwwLDEtLjI5LjQxMiwxLjM4OCwxLjM4OCwwLDAsMS0uNDUuMjY4LDEuNjEzLDEuNjEzLDAsMCwxLS41NzIuMSwxLjU3OCwxLjU3OCwwLDAsMS0uNTgtLjEsMS40MDksMS40MDksMCwwLDEtLjQ1LS4yNjgsMS4yMjksMS4yMjksMCwwLDEtLjM5LS45MjRtMC02LjA4OGExLjI4OSwxLjI4OSwwLDAsMSwuMS0uNTEyLDEuMjEyLDEuMjEyLDAsMCwxLC4yOS0uNCwxLjM3MywxLjM3MywwLDAsMSwuNDUtLjI3NCwxLjYzNywxLjYzNywwLDAsMSwuNTgtLjEsMS41NTUsMS41NTUsMCwwLDEsLjU3Mi4xLDEuMjY5LDEuMjY5LDAsMCwxLC40NS4yNzQsMS4wNzcsMS4wNzcsMCwwLDEsLjI5LjQsMS4yOTQsMS4yOTQsMCwwLDEsMCwxLjAyNCwxLjE1MSwxLjE1MSwwLDAsMS0uMjkuNDEyLDEuMzg4LDEuMzg4LDAsMCwxLS40NS4yNjgsMS42MTMsMS42MTMsMCwwLDEtLjU3Mi4xLDEuNTc4LDEuNTc4LDAsMCwxLS41OC0uMSwxLjQwOSwxLjQwOSwwLDAsMS0uNDUtLjI2OCwxLjIyOSwxLjIyOSwwLDAsMS0uMzktLjkyNFxcXCIgc3R5bGU9XFxcImZpbGw6Izk5OVxcXCIvPjxwYXRoIGQ9XFxcIk0yNC4yNCwyMC4yOTNhMy42NDgsMy42NDgsMCwwLDEtLjEyMi45MjksNC41MzQsNC41MzQsMCwwLDEtLjMzNi44OTEsNC43MDYsNC43MDYsMCwwLDEtLjUuODA3LDQuMDA1LDQuMDA1LDAsMCwxLS42MS42NjRsLTEuMy0uNjFjLjA4MS0uMTczLjE2OC0uMzQ5LjI2LS41MjZhNC44NDYsNC44NDYsMCwwLDAsLjI2OC0uNTU4LDQuNDQzLDQuNDQzLDAsMCwwLC4yMDYtLjY1NiwzLjQwNiwzLjQwNiwwLDAsMCwuMDg0LS44VjE4LjY1NmgyLjA1OWwtLjAwOCwxLjYzNlxcXCIgc3R5bGU9XFxcImZpbGw6Izk5OVxcXCIvPjxwYXRoIGQ9XFxcIk0yNS41MzgsMjEuOTk0YTEuMjUxLDEuMjUxLDAsMCwwLC40ODgtLjMyOCwxLjcwNywxLjcwNywwLDAsMCwuMzA2LS41LDIuNTI1LDIuNTI1LDAsMCwwLC4xNi0uNjM0LDUuODI2LDUuODI2LDAsMCwwLC4wNDYtLjc0di0xLjU1YTIuODQ0LDIuODQ0LDAsMCwxLC4zMzYtMS4zODIsMi4zNjQsMi4zNjQsMCwwLDEsMS4wODQtLjk4MywyLjM2NCwyLjM2NCwwLDAsMS0xLjA4NC0uOTgzLDIuODQ0LDIuODQ0LDAsMCwxLS4zMzYtMS4zODJ2LTEuNTVhNS44MjcsNS44MjcsMCwwLDAtLjA0Ni0uNzQsMi41ODYsMi41ODYsMCwwLDAtLjE2LS42MzQsMS42ODQsMS42ODQsMCwwLDAtLjMwNi0uNSwxLjIyMiwxLjIyMiwwLDAsMC0uNDg4LS4zMjhsLjQ4LTEuMzM4QTQuNDUsNC40NSwwLDAsMSwyNy4zMjksOWEzLjA5MiwzLjA5MiwwLDAsMSwuODQ4LjgxNSwyLjg5MiwyLjg5MiwwLDAsMSwuNDUsMS4wMDgsNC42MDYsNC42MDYsMCwwLDEsLjEzOCwxLjE0M3YxLjU1YTIuNjU1LDIuNjU1LDAsMCwwLC4wNjguNjI2LDEuNDQ4LDEuNDQ4LDAsMCwwLC4yMjIuNDc0LDEuMDM3LDEuMDM3LDAsMCwwLC4zODIuMywxLjM3NiwxLjM3NiwwLDAsMCwuNTY0LjEwNnYxLjczMWExLjA3NywxLjA3NywwLDAsMC0uOTQ2LjQxMiwxLjgyOCwxLjgyOCwwLDAsMC0uMjksMS4wODR2MS41NWE0LjYwNiw0LjYwNiwwLDAsMS0uMTM4LDEuMTQzLDIuOTE1LDIuOTE1LDAsMCwxLS40NSwxLjAwOCwzLjE1NywzLjE1NywwLDAsMS0uODQ4LjgyNCw0LjQ4Miw0LjQ4MiwwLDAsMS0xLjMxMS41OGwtLjQ4LTEuMzUyXFxcIiBzdHlsZT1cXFwiZmlsbDojOTk5XFxcIi8+XCIsXG5cdFwiSnVsaWFcIjogXCI8cGF0aCBkPVxcXCJNNy40NDgsMjEuOTgzVjEzLjc3NWwtMi40MzIuNjY5djguNzI5YTIuNjYsMi42NiwwLDAsMS0uMTA2LjkyOS4zMzYuMzM2LDAsMCwxLS4zMDguMjM5LjQwNS40MDUsMCwwLDEtLjIxMi0uMDc0LDEuMjgyLDEuMjgyLDAsMCwxLS4yODctLjMsMi44MTMsMi44MTMsMCwwLDAtLjM3Ny0uNDA5Ljg3NC44NzQsMCwwLDAtLjYxMS0uMjA3LDEuMjIsMS4yMiwwLDAsMC0uODEyLjI1NS43ODkuNzg5LDAsMCwwLS4zLjYyN0EuOTA3LjkwNywwLDAsMCwyLjU0MiwyNWEzLjExNSwzLjExNSwwLDAsMCwxLjU2MS4zMTksNy4wNjUsNy4wNjUsMCwwLDAsMS4zNy0uMTIyLDIuMzYxLDIuMzYxLDAsMCwwLDEuMDU3LS40ODMsMi4yOTIsMi4yOTIsMCwwLDAsLjY4LTEuMDE0LDUuMDk0LDUuMDk0LDAsMCwwLC4yMzktMS43MTVaXFxcIiBzdHlsZT1cXFwiZmlsbDojMjUyNTI1XFxcIi8+PHBhdGggZD1cXFwiTTEwLjgyNSwxNC4wMDhIOC40djUuNjE4YTIuMjQxLDIuMjQxLDAsMCwwLC4yMTguOTc3LDIuNDg5LDIuNDg5LDAsMCwwLC42LjgsMi45LDIuOSwwLDAsMCwuODkyLjUzNiwzLjA0NSwzLjA0NSwwLDAsMCwxLjEuMiwyLjU1LDIuNTUsMCwwLDAsMS4wNTEtLjI0NCw0LjM0Nyw0LjM0NywwLDAsMCwxLjAxOS0uNjQ4di43NDNIMTUuNzFWMTQuMDA4SDEzLjI4OXY1Ljc1NmEyLjc2NCwyLjc2NCwwLDAsMS0uNjQ4LjcwNiwxLjEzOSwxLjEzOSwwLDAsMS0uNjQ4LjI4MSwxLjE1NSwxLjE1NSwwLDAsMS0uNDU3LS4wOSwxLjI2MywxLjI2MywwLDAsMS0uMzcyLS4yMzksMS4wNiwxLjA2LDAsMCwxLS4yNS0uMzU2LDEuMDkxLDEuMDkxLDAsMCwxLS4wOS0uNDQxWlxcXCIgc3R5bGU9XFxcImZpbGw6IzI1MjUyNVxcXCIvPjxwYXRoIGQ9XFxcIk0xOS4wNzQsMjEuOTgzVjEwLjEzMmwtMi40MTEuNjY5VjIxLjk4M1pcXFwiIHN0eWxlPVxcXCJmaWxsOiMyNTI1MjVcXFwiLz48cGF0aCBkPVxcXCJNMjAuMDM4LDE0LjQ0NHY3LjU0aDIuNDIxVjEzLjc3NVpcXFwiIHN0eWxlPVxcXCJmaWxsOiMyNTI1MjVcXFwiLz48cGF0aCBkPVxcXCJNMjcuNTY4LDE3Ljg2M3YyLjNxLS4zNzIuMjc2LS42NzQuNDU3YTEuMTY1LDEuMTY1LDAsMCwxLS42LjE4MS40NjguNDY4LDAsMCwxLS4yNzYtLjA5LDEsMSwwLDAsMS0uMjM0LS4yMzksMS4xMzgsMS4xMzgsMCwwLDEtLjE2NS0uMzU2LDEuNTc2LDEuNTc2LDAsMCwxLS4wNTgtLjQzLjk2OC45NjgsMCwwLDEsLjE4MS0uNTUyLDIuMzA2LDIuMzA2LDAsMCwxLC40NzMtLjUsNC41NzIsNC41NzIsMCwwLDEsLjY0OC0uNDMsNy42MTIsNy42MTIsMCwwLDEsLjcwNi0uMzQ1Wk0zMCwyMS45ODNWMTZhMi4wODMsMi4wODMsMCwwLDAtLjE5MS0uOSwxLjc3OSwxLjc3OSwwLDAsMC0uNTk1LS42OSwzLjAwNiwzLjAwNiwwLDAsMC0xLjAyNS0uNDQxLDYuMjI1LDYuMjI1LDAsMCwwLTEuNDgxLS4xNTQsNS43MzUsNS43MzUsMCwwLDAtMS4zMjcuMTQ5LDQuNiw0LjYsMCwwLDAtMS4xLjQsMi4zNzMsMi4zNzMsMCwwLDAtLjc1OS42MTEsMS4yMTYsMS4yMTYsMCwwLDAtLjI4MS43Ny45NTguOTU4LDAsMCwwLC4zMTkuNzM4LDEuMTc4LDEuMTc4LDAsMCwwLC44MjguMjkyLDEuMzY0LDEuMzY0LDAsMCwwLC41NDctLjEuOC44LDAsMCwwLC4zMzUtLjI1NS45ODYuOTg2LDAsMCwwLC4xNjUtLjM3MiwxLjk3OCwxLjk3OCwwLDAsMCwuMDQ4LS40MzUsMS4wMzEsMS4wMzEsMCwwLDEsLjIyMy0uNjY5Ljk3NS45NzUsMCwwLDEsLjgtLjI3NiwxLjAwOCwxLjAwOCwwLDAsMSwuNzgxLjMxOSwxLjU5NCwxLjU5NCwwLDAsMSwuMjkyLDEuMDgzdi43ODZsLS4yNjUuMDY0cS0uNDg4LjE0OS0uOTg4LjMxM3QtLjk2MS4zNjFhNy44ODQsNy44ODQsMCwwLDAtLjg2NS40MywzLjUxMSwzLjUxMSwwLDAsMC0uNzA2LjUzMSwyLjMxOSwyLjMxOSwwLDAsMC0uNDc4LjY2OSwxLjkxOCwxLjkxOCwwLDAsMC0uMTc1LjgyOCwyLjAzNCwyLjAzNCwwLDAsMCwuMTY1LjgyMywxLjg3NiwxLjg3NiwwLDAsMCwuNDczLjY1MywyLjI1NSwyLjI1NSwwLDAsMCwuNzQ5LjQzNSwyLjkwNywyLjkwNywwLDAsMCwuOTkzLjE1OSwzLjY3OSwzLjY3OSwwLDAsMCwuNy0uMDU4LDIuNTA5LDIuNTA5LDAsMCwwLC41MzYtLjE2NSwyLjIwOSwyLjIwOSwwLDAsMCwuNDMtLjI1cS4xOTEtLjE0My4zOTMtLjMxM3YuNjM3WlxcXCIgc3R5bGU9XFxcImZpbGw6IzI1MjUyNVxcXCIvPjxjaXJjbGUgY3g9XFxcIjYuMjA0XFxcIiBjeT1cXFwiMTEuNjcyXFxcIiByPVxcXCIxLjVcXFwiIHN0eWxlPVxcXCJmaWxsOiM2NjgyZGZcXFwiLz48cGF0aCBkPVxcXCJNNi4yLDEzLjI4N2ExLjYxNSwxLjYxNSwwLDEsMSwxLjYxNS0xLjYxNUExLjYxNywxLjYxNywwLDAsMSw2LjIsMTMuMjg3Wm0wLTNhMS4zODUsMS4zODUsMCwxLDAsMS4zODUsMS4zODVBMS4zODYsMS4zODYsMCwwLDAsNi4yLDEwLjI4N1pcXFwiIHN0eWxlPVxcXCJmaWxsOiM0MDYzZDhcXFwiLz48Y2lyY2xlIGN4PVxcXCIyMS40MTdcXFwiIGN5PVxcXCIxMS42NzJcXFwiIHI9XFxcIjEuNVxcXCIgc3R5bGU9XFxcImZpbGw6I2Q1NjM1Y1xcXCIvPjxwYXRoIGQ9XFxcIk0yMS40MTcsMTMuMjg3YTEuNjE1LDEuNjE1LDAsMSwxLDEuNjE1LTEuNjE1QTEuNjE3LDEuNjE3LDAsMCwxLDIxLjQxNywxMy4yODdabTAtM0ExLjM4NSwxLjM4NSwwLDEsMCwyMi44LDExLjY3MiwxLjM4NiwxLjM4NiwwLDAsMCwyMS40MTcsMTAuMjg3WlxcXCIgc3R5bGU9XFxcImZpbGw6I2NiM2MzM1xcXCIvPjxjaXJjbGUgY3g9XFxcIjIzLjM4NVxcXCIgY3k9XFxcIjguMjk3XFxcIiByPVxcXCIxLjVcXFwiIHN0eWxlPVxcXCJmaWxsOiM2MGFkNTFcXFwiLz48cGF0aCBkPVxcXCJNMjMuMzg1LDkuOTEyQTEuNjE1LDEuNjE1LDAsMSwxLDI1LDguMywxLjYxNywxLjYxNywwLDAsMSwyMy4zODUsOS45MTJabTAtM0ExLjM4NSwxLjM4NSwwLDEsMCwyNC43Nyw4LjMsMS4zODYsMS4zODYsMCwwLDAsMjMuMzg1LDYuOTEyWlxcXCIgc3R5bGU9XFxcImZpbGw6IzM4OTgyNlxcXCIvPjxjaXJjbGUgY3g9XFxcIjI1LjM1NFxcXCIgY3k9XFxcIjExLjY3MlxcXCIgcj1cXFwiMS41XFxcIiBzdHlsZT1cXFwiZmlsbDojYWE3OWMxXFxcIi8+PHBhdGggZD1cXFwiTTI1LjM1NCwxMy4yODdhMS42MTUsMS42MTUsMCwxLDEsMS42MTUtMS42MTVBMS42MTcsMS42MTcsMCwwLDEsMjUuMzU0LDEzLjI4N1ptMC0zYTEuMzg1LDEuMzg1LDAsMSwwLDEuMzg1LDEuMzg1QTEuMzg2LDEuMzg2LDAsMCwwLDI1LjM1NCwxMC4yODdaXFxcIiBzdHlsZT1cXFwiZmlsbDojOTU1OGIyXFxcIi8+XCIsXG5cdFwiS290bGluXCI6IFwiPGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJhXFxcIiB4MT1cXFwiMzExLjMzNlxcXCIgeTE9XFxcIjE0NTIuMDY0XFxcIiB4Mj1cXFwiMjgzLjM0MlxcXCIgeTI9XFxcIjE0ODAuMDU4XFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwidHJhbnNsYXRlKC0yODEuNCAtMTQ1MClcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiNlNDQ4NTdcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNDdcXFwiIHN0b3AtY29sb3I9XFxcIiM5ZDRiOWRcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiM2ZDVmYWFcXFwiLz48L2xpbmVhckdyYWRpZW50PjwvZGVmcz48dGl0bGU+ZmlsZV90eXBlX2tvdGxpbjwvdGl0bGU+PHBhdGggZD1cXFwiTTMwLDMwSDJWMkgzMEwxNiwxNlpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjYSlcXFwiLz5cIixcblx0XCJLdXN0b1wiOiBcIjxyZWN0IHg9XFxcIjAuNTVcXFwiIHk9XFxcIjIyLjMzOVxcXCIgd2lkdGg9XFxcIjE1LjQzM1xcXCIgaGVpZ2h0PVxcXCIyLjc5NlxcXCIgcng9XFxcIjAuNDM5XFxcIiB0cmFuc2Zvcm09XFxcInRyYW5zbGF0ZSgtMTQuMzYzIDEyLjc5Nykgcm90YXRlKC00NC45OTkpXFxcIiBzdHlsZT1cXFwiZmlsbDojYjhkNDMyXFxcIi8+PHJlY3QgeD1cXFwiMS4zNzJcXFwiIHk9XFxcIjE2LjM4MlxcXCIgd2lkdGg9XFxcIjkuODU5XFxcIiBoZWlnaHQ9XFxcIjIuNzk2XFxcIiByeD1cXFwiMC40MzlcXFwiIHRyYW5zZm9ybT1cXFwidHJhbnNsYXRlKC0xMC43MjcgOS42NjMpIHJvdGF0ZSgtNDQuOTk5KVxcXCIgc3R5bGU9XFxcImZpbGw6I2I4ZDQzMlxcXCIvPjxyZWN0IHg9XFxcIjkuMjMyXFxcIiB5PVxcXCIyNC4zMDFcXFwiIHdpZHRoPVxcXCI5Ljg1OVxcXCIgaGVpZ2h0PVxcXCIyLjc5NlxcXCIgcng9XFxcIjAuNDM5XFxcIiB0cmFuc2Zvcm09XFxcInRyYW5zbGF0ZSgtMTQuMDI0IDE3LjU0MSkgcm90YXRlKC00NC45OTkpXFxcIiBzdHlsZT1cXFwiZmlsbDojYjhkNDMyXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIzMCAyIDIgMiAzMCAyOS45OTkgMzAgMlxcXCIgc3R5bGU9XFxcImZpbGw6IzAwNzhkNFxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMTAuMjgyIDEwLjI4MiAyMS43MTggMjEuNzE4IDMwIDEzLjQzNiAzMCAyIDE4LjU2NCAyIDEwLjI4MiAxMC4yODJcXFwiIHN0eWxlPVxcXCJmaWxsOiM1OWI0ZDlcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjMwIDI5Ljk5OSAzMCAyIDE2IDE2IDMwIDI5Ljk5OVxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZjtvcGFjaXR5OjAuMjAwMDAwMDAyOTgwMjMyMjQ7aXNvbGF0aW9uOmlzb2xhdGVcXFwiLz48cmVjdCB4PVxcXCIxNi4yMjZcXFwiIHk9XFxcIjkuMDAxXFxcIiB3aWR0aD1cXFwiMi43OTZcXFwiIGhlaWdodD1cXFwiMi43OTZcXFwiIHJ4PVxcXCIwLjYyMlxcXCIgdHJhbnNmb3JtPVxcXCJ0cmFuc2xhdGUoLTIuMTkyIDE1LjUwNykgcm90YXRlKC00NC45OTkpXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+PHJlY3QgeD1cXFwiMjAuMThcXFwiIHk9XFxcIjUuMDQ4XFxcIiB3aWR0aD1cXFwiMi43OTZcXFwiIGhlaWdodD1cXFwiMi43OTZcXFwiIHJ4PVxcXCIwLjYyMlxcXCIgdHJhbnNmb3JtPVxcXCJ0cmFuc2xhdGUoMS43NjIgMTcuMTQ2KSByb3RhdGUoLTQ0Ljk5OSlcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48cmVjdCB4PVxcXCIyMC4xOFxcXCIgeT1cXFwiMTIuOTU1XFxcIiB3aWR0aD1cXFwiMi43OTZcXFwiIGhlaWdodD1cXFwiMi43OTZcXFwiIHJ4PVxcXCIwLjYyMlxcXCIgdHJhbnNmb3JtPVxcXCJ0cmFuc2xhdGUoLTMuODI5IDE5LjQ2MSkgcm90YXRlKC00NC45OTkpXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+PHJlY3QgeD1cXFwiMjQuMTMzXFxcIiB5PVxcXCI5LjAwMlxcXCIgd2lkdGg9XFxcIjIuNzk2XFxcIiBoZWlnaHQ9XFxcIjIuNzk2XFxcIiByeD1cXFwiMC42MjJcXFwiIHRyYW5zZm9ybT1cXFwidHJhbnNsYXRlKDAuMTI0IDIxLjA5OSkgcm90YXRlKC00NC45OTkpXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+XCIsXG5cdFwiTGFUZVhcIjogXCI8cGF0aCBkPVxcXCJNMTEuMzMzLDEzLjEyMmMtLjEyOC0xLjU2Mi0uMjQxLTIuNzU2LTIuMjg3LTIuNzU2SDcuOTF2OC40aDIuMTQ1di42MTFsLTMuMDgzLS4wMjktMy4wODIuMDI5di0uNjExSDYuMDM0di04LjRINC44ODRjLTIuMDQ2LDAtMi4xNTksMS4yMDgtMi4yODcsMi43NTZIMmwuMjg0LTMuMzY3aDkuMzYybC4yODQsMy4zNjdoLS42WlxcXCIgc3R5bGU9XFxcImZpbGw6I2NmY2ZjZlxcXCIvPjxwYXRoIGQ9XFxcIk0xOS4yODksMjIuNTNIMTAuNDFWMjEuOTJoMS41MDZWMTMuNDY3SDEwLjQxdi0uNjExaDguNjM3bC40MTIsMy4zNjdoLS42Yy0uMjEzLTEuODMzLS42ODItMi43NTYtMi44NTUtMi43NTZIMTMuNzkxVjE3LjJoLjgzOGMxLjM2NCwwLDEuNTA1LS42LDEuNTA1LTEuNjYyaC42djMuOTM1aC0uNmMwLTEuMDgtLjE0Mi0xLjY2Mi0xLjUwNS0xLjY2MmgtLjgzOHY0LjEwNmgyLjIxNmMyLjQ3MiwwLDMtMS4xMDgsMy4zLTMuMjI1aC42WlxcXCIgc3R5bGU9XFxcImZpbGw6I2NmY2ZjZlxcXCIvPjxwYXRoIGQ9XFxcIk0yNy43MjcsMTkuMTg2Yy0uNTQsMC0xLjk2LDAtMi40MTUuMDI5VjE4LjZoMS4xNzlsLTIuNTU3LTMuNTUyLTIuNTI5LDMuMzgxQTQuMSw0LjEsMCwwLDAsMjIuNywxOC42di42MTFjLS4zNTUtLjAyOS0xLjU3Ni0uMDI5LTIuMDE3LS4wMjktLjQsMC0xLjU0OCwwLTEuODc1LjAyOVYxOC42aC4zODNhNy40NTksNy40NTksMCwwLDAsLjgyNC0uMDQzYy41LS4wNDMuNTQtLjA4NS42NjctLjI1NkwyMy41MzYsMTQuNWwtMy4xNTMtNC40MThIMTlWOS40N2MuMzg0LjAyOCwxLjc5LjAyOCwyLjI3My4wMjguNTgyLDAsMS45MTgsMCwyLjQyOS0uMDI4di42MTFIMjIuNTI4bDIuMTE3LDIuOTU1LDIuMDc0LTIuNzg0YTQuMSw0LjEsMCwwLDAtMS4yOTMtLjE3VjkuNDdjLjM1Ni4wMjgsMS41OTEuMDI4LDIuMDMyLjAyOC40LDAsMS41MzQsMCwxLjg2MS0uMDI4di42MTFoLS4zNjlhNS4yNjQsNS4yNjQsMCwwLDAtLjgzOC4wNDNjLS40NjkuMDQzLS41MjYuMDcxLS42NjcuMjU2bC0yLjQsMy4yMUwyOC42MzYsMTguNkgzMHYuNjExQzI5LjY0NSwxOS4xODYsMjguMTgyLDE5LjE4NiwyNy43MjcsMTkuMTg2WlxcXCIgc3R5bGU9XFxcImZpbGw6I2NmY2ZjZlxcXCIvPlwiLFxuXHRcIkxlc3NcIjogXCI8ZGVmcz48bGluZWFyR3JhZGllbnQgaWQ9XFxcImFcXFwiIHgxPVxcXCItMy42MDlcXFwiIHkxPVxcXCItNDkyLjY4NVxcXCIgeDI9XFxcIi0zLjYwOVxcXCIgeTI9XFxcIi00ODAuMjcxXFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwidHJhbnNsYXRlKDE5LjcxMiA1MDIuODkxKVxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMC4xNVxcXCIgc3RvcC1jb2xvcj1cXFwiIzJhNGY4NFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC4zODhcXFwiIHN0b3AtY29sb3I9XFxcIiMyOTRlODJcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiMxNzJlNGVcXFwiLz48L2xpbmVhckdyYWRpZW50PjwvZGVmcz48dGl0bGU+ZmlsZV90eXBlX2xlc3M8L3RpdGxlPjxwYXRoIGQ9XFxcIk0yOC41NTksMjAuMjI2YTIuNCwyLjQsMCwwLDEtMi4zOTQsMi4zOTRINi4wNGEyLjQsMi40LDAsMCwxLTIuMzk0LTIuMzk0VjEyLjZBMi40LDIuNCwwLDAsMSw2LjA0LDEwLjIwNkgyNi4xNjVBMi40LDIuNCwwLDAsMSwyOC41NTksMTIuNlpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjYSlcXFwiLz48cGF0aCBkPVxcXCJNMjQuMzQ5LDE2LjI1YTEuOTcyLDEuOTcyLDAsMCwxLDEuNTc4LDEuODkxLDEuNjksMS42OSwwLDAsMS0uNjUzLDEuNCwyLjkzNCwyLjkzNCwwLDAsMS0xLjg2Mi41NTksNC41NTgsNC41NTgsMCwwLDEtMi4yNDEtLjYxOCwxLjk4NiwxLjk4NiwwLDAsMSwuMTYtLjY2OSwxLjgzLDEuODMsMCwwLDEsLjM1LS41NzYsMy43LDMuNywwLDAsMCwxLjY0OS40OTMuOTY1Ljk2NSwwLDAsMCwuNTEtLjExMi4zMzkuMzM5LDAsMCwwLC4xNzgtLjNxMC0uMzUzLS41NDYtLjUyOWwtLjY1My0uMjQ3cS0xLjQ4Mi0uNTQtMS40ODItMS43NjJhMS43NTMsMS43NTMsMCwwLDEsLjYyMy0xLjQxNiwyLjU4NywyLjU4NywwLDAsMSwxLjY3OC0uNjQ4LDUuMDk0LDUuMDk0LDAsMCwxLDEuMTUuMTQ3LDQuNTU1LDQuNTU1LDAsMCwxLDEuMDMyLjQ3MiwxLjY2OCwxLjY2OCwwLDAsMS0uMTMuNzIyLDEuMjIsMS4yMiwwLDAsMS0uMzguNTU4LDQuMjYxLDQuMjYxLDAsMCwwLTEuNjYtLjQ0Ni41NDQuNTQ0LDAsMCwwLS4zNjIuMTA2LjMzOC4zMzgsMCwwLDAtLjEyNC4yN3EwLC4yODIuNDUxLjQ0NmwuNzM2LjI1OVpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmNmY2ZjZcXFwiLz48cGF0aCBkPVxcXCJNMTkuMSwxNi4yNWExLjk3MiwxLjk3MiwwLDAsMSwxLjU3NywxLjg5MSwxLjY5MSwxLjY5MSwwLDAsMS0uNjUyLDEuNCwyLjkzNywyLjkzNywwLDAsMS0xLjg2Mi41NTksNC41Niw0LjU2LDAsMCwxLTIuMjQxLS42MTgsMS45ODEsMS45ODEsMCwwLDEsLjE2LS42NjksMS44MjEsMS44MjEsMCwwLDEsLjM1LS41NzYsMy43LDMuNywwLDAsMCwxLjY0OS40OTMuOTYzLjk2MywwLDAsMCwuNTEtLjExMi4zNC4zNCwwLDAsMCwuMTc4LS4zcTAtLjM1My0uNTQ2LS41MjlsLS42NTMtLjI0N3EtMS40ODItLjU0LTEuNDgyLTEuNzYyYTEuNzUyLDEuNzUyLDAsMCwxLC42MjMtMS40MTYsMi41ODUsMi41ODUsMCwwLDEsMS42NzctLjY0OCw1LjA4OCw1LjA4OCwwLDAsMSwxLjE1LjE0Nyw0LjU1Miw0LjU1MiwwLDAsMSwxLjAzMi40NzIsMS42NjgsMS42NjgsMCwwLDEtLjEzLjcyMiwxLjIyLDEuMjIsMCwwLDEtLjM4LjU1OCw0LjI2Myw0LjI2MywwLDAsMC0xLjY2MS0uNDQ2LjU0My41NDMsMCwwLDAtLjM2Mi4xMDYuMzM5LjMzOSwwLDAsMC0uMTI0LjI3cTAsLjI4Mi40NTEuNDQ2bC43MzYuMjU5WlxcXCIgc3R5bGU9XFxcImZpbGw6I2Y2ZjZmNlxcXCIvPjxwYXRoIGQ9XFxcIk0xNS4yNjQsMTYuMzMzYTIuODIyLDIuODIyLDAsMCwwLS4xNzItMSwyLjIzOSwyLjIzOSwwLDAsMC0uNDkyLS43ODcsMi4yOCwyLjI4LDAsMCwwLS43NzctLjUxNywyLjczNywyLjczNywwLDAsMC0xLjAyNi0uMzE0LDIuOCwyLjgsMCwwLDAtMS4xOC4zNjEsMi4yNTYsMi4yNTYsMCwwLDAtLjgzLjY0NiwyLjc2NSwyLjc2NSwwLDAsMC0uNDg3Ljk2OSw0LjQsNC40LDAsMCwwLS4xNiwxLjIxNiw1LjY4MSw1LjY4MSwwLDAsMCwuMTMsMS4yNTcsMi42MjgsMi42MjgsMCwwLDAsLjQ0NSwxLDIuMTA3LDIuMTA3LDAsMCwwLC44MTguNjU3LDIuOTM1LDIuOTM1LDAsMCwwLDEuMjUxLjI3NywzLjk1MiwzLjk1MiwwLDAsMCwyLjMyNC0uNzEyLDEuODY1LDEuODY1LDAsMCwwLS40ODQtMS4wODEsNi4xODgsNi4xODgsMCwwLDEtLjg1Ny4yNjIsMy4yMDgsMy4yMDgsMCwwLDEtLjY1Ni4wNzksMS4wMTcsMS4wMTcsMCwwLDEtLjgxNS0uMjksMS4xODcsMS4xODcsMCwwLDEtLjI3MS0uNzdoMy4wODNBNC40NDcsNC40NDcsMCwwLDAsMTUuMjY0LDE2LjMzM1ptLTMuMjQ4LjA4MWEyLjQzMywyLjQzMywwLDAsMSwuMjE4LTEsLjYzMi42MzIsMCwwLDEsLjU1OS0uMjY0LjY2LjY2LDAsMCwxLC41ODIuMjgyLDEuNzQ5LDEuNzQ5LDAsMCwxLC4xOTQuODU2di4xM0gxMi4wMTZaXFxcIiBzdHlsZT1cXFwiZmlsbDojZjZmNmY2XFxcIi8+PHBhdGggZD1cXFwiTTI5LjE4LDE3LjJhMS42MDUsMS42MDUsMCwwLDAtLjUzLDEuMjY1djIuMDUxYTEuODEsMS44MSwwLDAsMS0uNjgzLDEuNTU3LDIuOCwyLjgsMCwwLDEtMS42NTQuNTQ5bC0uMzczLDBWMjEuNTk0YTEuMjQxLDEuMjQxLDAsMCwwLC41OTUtLjMzNCwxLjM2OSwxLjM2OSwwLDAsMCwuNDE5LTEuMDQ3VjE4LjU1NmEyLjU0NSwyLjU0NSwwLDAsMSwuMjU3LTEuMzIzLDIuNSwyLjUsMCwwLDEsMS4yLS44MzgsMi41MjgsMi41MjgsMCwwLDEtMS4zMjQtMS4xNzksMi45NTYsMi45NTYsMCwwLDEtLjEzNS0xLjE2NVYxMi41MzNhMS40NTgsMS40NTgsMCwwLDAtLjM2Ni0xLjA1NCwxLjE1MiwxLjE1MiwwLDAsMC0uNjQ4LS4zMTR2LS45NmMuNDQ1LDAsLjY2OSwwLC45MjgsMGExLjY3NiwxLjY3NiwwLDAsMSwxLjAyMy40NDIsMiwyLDAsMCwxLC42NzMsMS4wMDksMi4zMywyLjMzLDAsMCwxLC4wODYuN3YxLjc1N2ExLjg0NiwxLjg0NiwwLDAsMCwuNSwxLjM4MywyLjExMywyLjExMywwLDAsMCwuODU0LjQ3OXYuNzk0YTEuOTQzLDEuOTQzLDAsMCwwLS44Mi40MjZaXFxcIiBzdHlsZT1cXFwiZmlsbDojZjZmNmY2O3N0cm9rZTojNDA0MDQwO3N0cm9rZS1taXRlcmxpbWl0OjEwO3N0cm9rZS13aWR0aDowLjI1cHhcXFwiLz48cGF0aCBkPVxcXCJNNS41OTQsMTAuMjA2SDUuMjZhMS42NzMsMS42NzMsMCwwLDAtMS4wMjMuNDQyLDEuNzEsMS43MSwwLDAsMC0uNjczLDEuMDA5LDMuNTMxLDMuNTMxLDAsMCwwLS4wMzguN3YxLjc1N0ExLjg2NywxLjg2NywwLDAsMSwyLjk4MSwxNS41LDIuODQ3LDIuODQ3LDAsMCwxLDIsMTUuOTc3di43OTNhMi41NTIsMi41NTIsMCwwLDEsLjk0Ny40MjYsMS42MzgsMS42MzgsMCwwLDEsLjU3NywxLjI2NXYyLjA1MUExLjc4MSwxLjc4MSwwLDAsMCw0LjE2LDIyLjA3YTIuOCwyLjgsMCwwLDAsMS42NTQuNTVsLjQyMSwwVjIxLjU5NGExLjQ3LDEuNDcsMCwwLDEtLjY0My0uMzM0LDEuMzU1LDEuMzU1LDAsMCwxLS4zNzEtMS4wNDdWMTguNTU3YTIuNTE2LDIuNTE2LDAsMCwwLS4zMDUtMS4zMjMsMi41LDIuNSwwLDAsMC0xLjItLjgzOCwyLjUyOSwyLjUyOSwwLDAsMCwxLjMyNC0xLjE3OCwyLjg1NywyLjg1NywwLDAsMCwuMTgzLTEuMTY1VjEyLjUzNEExLjQ2MiwxLjQ2MiwwLDAsMSw1LjU0LDExLjQ4YTEuMzEzLDEuMzEzLDAsMCwxLC41NzUtLjI3MWwuNDI4LDBWMTAuMjA2SDUuNTk0WlxcXCIgc3R5bGU9XFxcImZpbGw6I2Y2ZjZmNjtzdHJva2U6IzQwNDA0MDtzdHJva2UtbWl0ZXJsaW1pdDoxMDtzdHJva2Utd2lkdGg6MC4yNXB4XFxcIi8+PHBhdGggZD1cXFwiTTkuNTM3LDE4LjUyOWgtLjMyYy0uMzQ4LDAtLjQ3OS0uMTgzLS40NzktLjU1MVYxMS4yMTlhMS4yNTYsMS4yNTYsMCwwLDAtLjI2OC0uODU2Yy0uMTUtLjE2NC0uNDExLS4xNjItLjc4My0uMTYySDYuOTY0bC0uMDg1LDB2OC4xMDZhMS44NzUsMS44NzUsMCwwLDAsLjM1MiwxLjI0LDEuNDQxLDEuNDQxLDAsMCwwLDEuMTQ1LjM5Myw3Ljg1OSw3Ljg1OSwwLDAsMCwxLjI2OS0uMTE4LDIuMjMsMi4yMywwLDAsMCwuMDM2LS41MDksMi4yNzgsMi4yNzgsMCwwLDAtLjE0Mi0uNzgyWlxcXCIgc3R5bGU9XFxcImZpbGw6I2Y2ZjZmNlxcXCIvPlwiLFxuXHRcIkxpcXVpZFwiOiBcIjxwYXRoIGQ9XFxcIk0yOS45ODgsMjIuMzcybC0uNzQ4LjA0OGE1LjIwOSw1LjIwOSwwLDAsMS0yLjk5LS42NzEsNy44LDcuOCwwLDAsMC03LjgsMCw1LjI3NSw1LjI3NSwwLDAsMS01LjMuMDFBNy4yNjIsNy4yNjIsMCwwLDAsOS4yNjMsMjAuN2E3LjIyOSw3LjIyOSwwLDAsMC0zLjk0LDEuMDYsNC43NTEsNC43NTEsMCwwLDEtMi40Ny43bC0uODM4LDBjMCwuODg5LS4wMDksMS43MzktLjAxNSwyLjUxNWwuODYxLDBhNy4yMzcsNy4yMzcsMCwwLDAsMy43NS0xLjA1Miw0Ljc2Myw0Ljc2MywwLDAsMSwyLjY1OS0uNyw0LjgzNSw0LjgzNSwwLDAsMSwyLjYzNC43MTgsNy43OTQsNy43OTQsMCwwLDAsNy44LDAsNS4yODcsNS4yODcsMCwwLDEsNS4zMTksMCw3LjcwOSw3LjcwOSwwLDAsMCw0LjQuOTg5TDMwLDI0Ljg4OEMyOS45OTUsMjQuMSwyOS45OTEsMjMuMjQ5LDI5Ljk4OCwyMi4zNzJaXFxcIiBzdHlsZT1cXFwiZmlsbDojMDA0OTk5XFxcIi8+PHBhdGggZD1cXFwiTTI5Ljk4MywxNS41ODFsLS43NDMuMDQ3YTUuMjI2LDUuMjI2LDAsMCwxLTIuOTktLjY3MSw3LjgsNy44LDAsMCwwLTcuOCwwLDUuMjc4LDUuMjc4LDAsMCwxLTUuMy4wMUE3LjMxMiw3LjMxMiwwLDAsMCw5LjI2MywxMy45MWE3LjMsNy4zLDAsMCwwLTMuOTQxLDEuMDYsNC43NDIsNC43NDIsMCwwLDEtMi40NjkuN2wtLjgyOCwwYzAsLjg0OSwwLDEuNjkzLDAsMi41MTVsLjg0LDBhNy4yMzcsNy4yMzcsMCwwLDAsMy43NS0xLjA1Miw0LjcsNC43LDAsMCwxLDIuNjU5LS43LDQuOCw0LjgsMCwwLDEsMi42MzQuNzE4LDcuNzk0LDcuNzk0LDAsMCwwLDcuOCwwLDUuMjg3LDUuMjg3LDAsMCwxLDUuMzE5LDAsNy43MDksNy43MDksMCwwLDAsNC40Ljk4OWwuNTY4LS4wMzdDMjkuOTgzLDE3LjI2OSwyOS45ODMsMTYuNDI0LDI5Ljk4MywxNS41ODFaXFxcIiBzdHlsZT1cXFwiZmlsbDojMDA0OTk5XFxcIi8+PHBhdGggZD1cXFwiTTI5LjI0LDkuMTM3YTUuMjU0LDUuMjU0LDAsMCwxLTIuOTktLjY3MSw3LjgsNy44LDAsMCwwLTcuOCwwLDUuMjc1LDUuMjc1LDAsMCwxLTUuMy4wMDlBNy4xNiw3LjE2LDAsMCwwLDkuMjYzLDcuNDJhNy4xNTksNy4xNTksMCwwLDAtMy45NCwxLjA1OSw0LjczOCw0LjczOCwwLDAsMS0yLjQ2OS43bC0uODM0LDBjMCwuODIsMCwxLjY2NCwwLDIuNTE3bC44MzYsMGE3LjIzNyw3LjIzNywwLDAsMCwzLjc1LTEuMDUyLDQuNzM4LDQuNzM4LDAsMCwxLDIuNjU5LS43MDYsNC44MTQsNC44MTQsMCwwLDEsMi42MzQuNzE5LDcuNzkxLDcuNzkxLDAsMCwwLDcuOCwwLDUuMjkzLDUuMjkzLDAsMCwxLDUuMzE5LDAsNy43MzIsNy43MzIsMCwwLDAsNC40Ljk4OGwuNTY4LS4wMzdjMC0uODU5LDAtMS43LjAwNy0yLjUxNlpcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMDQ5OTlcXFwiLz5cIixcblx0XCJMaXNwXCI6IFwiPGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJhXFxcIiB4MT1cXFwiMTkyNS43ODVcXFwiIHkxPVxcXCItMTM4My4wNzVcXFwiIHgyPVxcXCIyMzAyLjM1MVxcXCIgeTI9XFxcIi0xODY4LjU1N1xcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcIm1hdHJpeCgwLjA0OCwgMCwgMCwgLTAuMDQ1LCAtODIuNTM5LCAtNTQuNjUpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjODM4MWM1XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjU2NlxcXCIgc3RvcC1jb2xvcj1cXFwiIzdlNTViM1xcXCIgc3RvcC1vcGFjaXR5PVxcXCIwLjk5NlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiI2E1MmVjYlxcXCIgc3RvcC1vcGFjaXR5PVxcXCIwLjk5MlxcXCIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJiXFxcIiB4MT1cXFwiMjIxNC4xODdcXFwiIHkxPVxcXCItMTc1MC4yMjVcXFwiIHgyPVxcXCIxOTMwLjk3NFxcXCIgeTI9XFxcIi0xNDA4LjM0MlxcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcIm1hdHJpeCgwLjA1NCwgMCwgMCwgLTAuMDU0LCAtOTUuMTg4LCAtNjguNDg3KVxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiIzQxMWY1ZFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiIzViMmE4NVxcXCIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjx0aXRsZT5maWxlX3R5cGVfZW1hY3M8L3RpdGxlPjxwYXRoIGQ9XFxcIk0yOS4zNjMsMTZBMTMuMzY0LDEzLjM2NCwwLDEsMSwxNiwyLjUsMTMuNDMyLDEzLjQzMiwwLDAsMSwyOS4zNjMsMTZaXFxcIiBzdHlsZT1cXFwic3Ryb2tlLXdpZHRoOjAuNzVweDtmaWxsOnVybCgjYSk7c3Ryb2tlOnVybCgjYilcXFwiLz48cGF0aCBkPVxcXCJNMTEuNDA2LDI1LjQ4M2ExOC4xNTcsMTguMTU3LDAsMCwwLDIuNTg3LS4wNDgsNDEuNzI4LDQxLjcyOCwwLDAsMCw0LjUtLjYzOSwzMC42NzEsMzAuNjcxLDAsMCwwLDMuMTMyLS44MzljMS4xNDItLjQyMSwxLjc2NC0uNzc4LDIuMDQzLTEuMjg0YS42Mi42MiwwLDAsMC0uNDQxLS42OTJjLTEuMzQ3LS41NjUtMi45MDgtLjQ2My02LS41MjgtMy40MjctLjExOC00LjU2Ny0uNjkxLTUuMTc0LTEuMTUzLS41ODItLjQ2OS0uMjktMS43NjUsMi4yMDYtMi45MDdhNTQuMjY2LDU0LjI2NiwwLDAsMSw2LjE4NC0xLjczYy0xLjY1OS0uODItNC43NTMtMi4yNjItNS4zODktMi41NzMtLjU1OC0uMjczLTEuNDUxLS42ODQtMS42NDQtMS4xODItLjIxOS0uNDc4LjUxOC0uODg5LjkzLTEuMDA3YTIwLjMsMjAuMywwLDAsMSw0LjktLjY0Nyw0LjMwOCw0LjMwOCwwLDAsMCwxLS4wNjlBMS43NjcsMS43NjcsMCwwLDAsMjEuODc5LDcuOWEyLjc3NSwyLjc3NSwwLDAsMC0zLjI4Ni0xLjgxQzE3LjIyLDYuMzM4LDEzLjkwOCw3LjMsMTMuOTA4LDcuM2M0LjA5My0uMDM1LDQuNzc5LjAzMyw1LjA4NS40NjEuMTgxLjI1My0uMDgyLjYtMS4xNzQuNzc3LTEuMTg5LjE5NC0zLjY1OS40MjgtMy42NTkuNDI4LTIuMzcuMTQxLTQuMDQuMTUtNC41NCwxLjIxLS4zMjcuNjkzLjM0OSwxLjMuNjQ1LDEuNjg4YTEyLjcyOCwxMi43MjgsMCwwLDAsNC4yMjUsMi43Yy40MzguMjA4LDEuNzIzLjYsMS43MjMuNmExMS41MiwxMS41MiwwLDAsMC04LjEsMi4yODdjLTEuODA3LDEuNjcyLTEuMDA4LDMuNjY1LDIuNjk1LDQuODkxYTEyLjc1NSwxMi43NTUsMCwwLDAsNi41MzQuNzcyYzEuOTIyLS4xLDIuMjI0LS4wNDIsMi4yNDQuMTE2LjAyNy4yMjItMi4xMzQuNzczLTIuNzI0Ljk0NC0xLjUuNDMzLTUuNDM2LDEuMzA3LTUuNDU2LDEuMzEyWlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPlwiLFxuXHRcIkxpdmVTY3JpcHRcIjogXCI8cG9seWdvbiBwb2ludHM9XFxcIjUuNTA0IDIuMDA3IDguOTg2IDIgOC45ODYgMjEuNzQ2IDEwLjc1OSAxOS45ODcgMTAuNzU5IDMuNzU1IDEyLjQ5NyAzLjc1NSAxMi40OTcgMTguMjQgMTQuMjUzIDE2LjQ4NyAxNC4yNTMgMy43NTUgMTUuOTk3IDMuNzU1IDE1Ljk5NyAxNC43MjkgMTcuNzM1IDEyLjk2MiAxNy43MzUgMy43NTUgMTkuNDYxIDMuNzU1IDE5LjQ2MSAxMS4yMjUgMjEuMjQ1IDkuNDYxIDIxLjI0NSAzLjc1NSAyMi45NzIgMy43NTUgMjIuOTcyIDcuNzIzIDI0LjczOCA1Ljk3NSAyNC43MzkgMy43NTUgMjYuNDgzIDMuNzU1IDI2LjQ4MyA1LjQ4MiAyOC4yMDkgNS40ODIgMjguMjA5IDcuMjY3IDI1LjkxMSA3LjI2OCAyNC4xODQgOC45OTMgMjguMjA5IDguOTkzIDI4LjIwOSAxMC43MTkgMjIuNDM4IDEwLjcxOSAyMC42OTggMTIuNTA0IDI4LjIwOSAxMi41MDQgMjguMjA5IDE0LjIzIDE4Ljk2MSAxNC4yMyAxNy4yMDUgMTYuMDE0IDI4LjIwOSAxNi4wMTQgMjguMjA5IDE3Ljc0MSAxNS40NTUgMTcuNzQxIDEzLjcxNSAxOS40OTYgMjguMjA5IDE5LjQ5NiAyOC4yMDkgMjEuMjUyIDExLjk4IDIxLjI1MiAxMC4yNDIgMjIuOTc4IDI5Ljk4MiAyMi45NzggMjkuOTg5IDI2LjQ4OSA4Ljk4NiAyNi40ODkgOC45ODYgMzAgNS41MDQgMzAgNS41MDQgMjYuNDg5IDIuMDExIDI2LjQ4OSAyLjAxMSAyMi45NzggNS41MDQgMjIuOTc4IDUuNTAzIDIgNS41MDQgMi4wMDdcXFwiIHN0eWxlPVxcXCJmaWxsOiMzMTdlYWNcXFwiLz5cIixcblx0XCJMb2cgZmlsZVwiOiBcIjxwYXRoIGQ9XFxcIk0yOS40LDI3LjZIMi41VjQuNUgyOS40Wm0tMjUuOS0xSDI4LjRWNS41SDMuNVpcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMGJkMDJcXFwiLz48cmVjdCB4PVxcXCIyLjVcXFwiIHk9XFxcIjUuNVxcXCIgd2lkdGg9XFxcIjI2LjlcXFwiIGhlaWdodD1cXFwiMS45XFxcIiBzdHlsZT1cXFwiZmlsbDojMDBiZDAyXFxcIi8+PHJlY3QgeD1cXFwiMTEuMzMzXFxcIiB5PVxcXCI5LjVcXFwiIHdpZHRoPVxcXCI4LjE2N1xcXCIgaGVpZ2h0PVxcXCIxXFxcIiBzdHlsZT1cXFwiZmlsbDojMDBiZDAyXFxcIi8+PHJlY3QgeD1cXFwiMTEuMzMzXFxcIiB5PVxcXCIxMi4wODNcXFwiIHdpZHRoPVxcXCIxMi41XFxcIiBoZWlnaHQ9XFxcIjFcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMGJkMDJcXFwiLz48cmVjdCB4PVxcXCIxMS4zMzNcXFwiIHk9XFxcIjE0Ljc1XFxcIiB3aWR0aD1cXFwiMTAuNjE3XFxcIiBoZWlnaHQ9XFxcIjFcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMGJkMDJcXFwiLz48cmVjdCB4PVxcXCIxMS4zMzNcXFwiIHk9XFxcIjE3LjU4M1xcXCIgd2lkdGg9XFxcIjE0LjE2N1xcXCIgaGVpZ2h0PVxcXCIxXFxcIiBzdHlsZT1cXFwiZmlsbDojMDBiZDAyXFxcIi8+PHJlY3QgeD1cXFwiMTEuMzMzXFxcIiB5PVxcXCIyMC41XFxcIiB3aWR0aD1cXFwiOS44MzRcXFwiIGhlaWdodD1cXFwiMVxcXCIgc3R5bGU9XFxcImZpbGw6IzAwYmQwMlxcXCIvPjxyZWN0IHg9XFxcIjExLjVcXFwiIHk9XFxcIjIzLjA4M1xcXCIgd2lkdGg9XFxcIjEyLjE2N1xcXCIgaGVpZ2h0PVxcXCIxXFxcIiBzdHlsZT1cXFwiZmlsbDojMDBiZDAyXFxcIi8+PHJlY3QgeD1cXFwiNS41XFxcIiB5PVxcXCI5LjVcXFwiIHdpZHRoPVxcXCI0LjMzM1xcXCIgaGVpZ2h0PVxcXCIxXFxcIiBzdHlsZT1cXFwiZmlsbDojMDBiZDAyXFxcIi8+PHJlY3QgeD1cXFwiNS41XFxcIiB5PVxcXCIxMi4wODNcXFwiIHdpZHRoPVxcXCI0LjMzM1xcXCIgaGVpZ2h0PVxcXCIxXFxcIiBzdHlsZT1cXFwiZmlsbDojMDBiZDAyXFxcIi8+PHJlY3QgeD1cXFwiNS41XFxcIiB5PVxcXCIxMi4wODNcXFwiIHdpZHRoPVxcXCI0LjMzM1xcXCIgaGVpZ2h0PVxcXCIxXFxcIiBzdHlsZT1cXFwiZmlsbDojMDBiZDAyXFxcIi8+PHJlY3QgeD1cXFwiNS41XFxcIiB5PVxcXCIxNC42NjdcXFwiIHdpZHRoPVxcXCI0LjMzM1xcXCIgaGVpZ2h0PVxcXCIxXFxcIiBzdHlsZT1cXFwiZmlsbDojMDBiZDAyXFxcIi8+PHJlY3QgeD1cXFwiNS41XFxcIiB5PVxcXCIxNy4yNVxcXCIgd2lkdGg9XFxcIjQuMzMzXFxcIiBoZWlnaHQ9XFxcIjFcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMGJkMDJcXFwiLz48cmVjdCB4PVxcXCI1LjVcXFwiIHk9XFxcIjIwLjVcXFwiIHdpZHRoPVxcXCI0LjMzM1xcXCIgaGVpZ2h0PVxcXCIxXFxcIiBzdHlsZT1cXFwiZmlsbDojMDBiZDAyXFxcIi8+PHJlY3QgeD1cXFwiNS41XFxcIiB5PVxcXCIyMy4wODNcXFwiIHdpZHRoPVxcXCI0LjMzM1xcXCIgaGVpZ2h0PVxcXCIxXFxcIiBzdHlsZT1cXFwiZmlsbDojMDBiZDAyXFxcIi8+XCIsXG5cdFwiTE9MQ09ERVwiOiBcIjxwYXRoIGQ9XFxcIk0yMS4zLDMuNzNhMy45NCwzLjk0LDAsMCwxLDEuMDQxLS42Miw4LjQzNSw4LjQzNSwwLDAsMSwuNTU2LDMuMzg1LDI0Ljg2NSwyNC44NjUsMCwwLDEtLjY0Myw1LjAxOWMtLjM2OC0uMTgtLjczNi0uMzY0LTEuMS0uNTU0YTExLjc1NCwxMS43NTQsMCwwLDAsLjI3My0zLjc0NywzLjA4LDMuMDgsMCwwLDAtLjI1NS0uODY1LDUuMTQyLDUuMTQyLDAsMCwwLTIuMDE2LDIuMDdjLS4zMTktLjI0LS42NTItLjQ1OS0uOTg1LS42NzZBMTUuNzE2LDE1LjcxNiwwLDAsMSwyMS4zLDMuNzNaXFxcIiBzdHlsZT1cXFwiZmlsbDojZWRlZGVkXFxcIi8+PHBhdGggZD1cXFwiTTE5LjQ1MSw4LjZhNC41NzQsNC41NzQsMCwwLDEsMS41MDktMS41NjMsNi42ODUsNi42ODUsMCwwLDEsLjA5LDIuNjcxQzIwLjUxNyw5LjM0MywxOS45NzUsOC45ODcsMTkuNDUxLDguNlpcXFwiIHN0eWxlPVxcXCJmaWxsOiNlZGVkZWRcXFwiLz48cGF0aCBkPVxcXCJNMTYuNDYxLDEwLjA3NmMtLjAzOC0xLjEzNC0uMDMxLTIuMjY5LS4wMjYtMy40LS45LjQ5My0xLjc1OCwxLjA3MS0yLjY0OCwxLjU4OS0uNDUzLjI3LS45MDguNTM2LTEuMzYuODA4LjIyNC0uMTYzLjQ1Ny0uMzEyLjY5LS40NjItLjg2MS0xLjIyNC0xLjk3MS0yLjUtMy41My0yLjc0OGExMC45NjQsMTAuOTY0LDAsMCwwLS4zNjUsNS4xNDdjLjMxOC0uMTk1LjYzMy0uNC45NjItLjU3Mi0uNDc0LjMxOS0uOTY0LjYxNS0xLjQ0Ni45Mi0uOTU3LjYtMS45MjIsMS4xOTItMi44OTIsMS43NzdhMS4yMzIsMS4yMzIsMCwwLDAtLjM5MS4zMmMtLjEsMS4zOTUtLjM0LDQuMzkyLS4zNCw0LjM5Mi0uMjU0LDMuNjY4LS41MjIsNy4zMzYtLjgyNiwxMSw0LjA2Mi4zNDMsOC4xMTguNzQyLDEyLjE3OSwxLjA3NkMxNi40NTgsMjMuMywxNi40NzIsMTYuNjksMTYuNDYxLDEwLjA3NlpcXFwiIHN0eWxlPVxcXCJmaWxsOiNlZGVkZWRcXFwiLz48cGF0aCBkPVxcXCJNMjEuMSwyLjk3N0E1Ljg4NCw1Ljg4NCwwLDAsMSwyMi43MDYsMmExMC4wNjQsMTAuMDY0LDAsMCwxLC43NzIsNC42MDYsMjQuNTkxLDI0LjU5MSwwLDAsMS0uNTA4LDQuNDU5YzEuMi44NDYsMi40MzMsMS42NDUsMy42MTgsMi41MDlxLjQ0LDYuMzguOTA3LDEyLjc1OGMuMDY2LjgzOS4wOTQsMS42OC4yMTYsMi41MTMtMy4wMjkuMjc5LTYuMDU3LjU5MS05LjA4NS44ODZhMTkuMTM3LDE5LjEzNywwLDAsMC0yLjE1OC4yN3YtLjA4M2MtLjAxLTYuNjE0LDAtMTMuMjI3LS4wMDctMTkuODQxLS4wMzgtMS4xMzQtLjAzMS0yLjI2OS0uMDI2LTMuNHYtLjFjLjQwNi4yOTIuODI2LjU2MiwxLjI0My44MzlBMTYuMjc0LDE2LjI3NCwwLDAsMSwyMS4xLDIuOTc3Wm0uMi43NTJhMTUuNzE2LDE1LjcxNiwwLDAsMC0zLjEyOCw0LjAxMWMuMzM0LjIxNy42NjYuNDM3Ljk4NS42NzZhNS4xNDIsNS4xNDIsMCwwLDEsMi4wMTYtMi4wNywzLjA4LDMuMDgsMCwwLDEsLjI1NS44NjUsMTEuNzU0LDExLjc1NCwwLDAsMS0uMjczLDMuNzQ3Yy4zNjQuMTkuNzMxLjM3NCwxLjEuNTU0YTI0Ljg2NSwyNC44NjUsMCwwLDAsLjY0My01LjAxOSw4LjQzNSw4LjQzNSwwLDAsMC0uNTU2LTMuMzg1QTMuOTQsMy45NCwwLDAsMCwyMS4zLDMuNzNaTTE5LjQ1MSw4LjZjLjUyNC4zODMsMS4wNjYuNzM5LDEuNiwxLjEwOGE2LjY4NSw2LjY4NSwwLDAsMC0uMDktMi42NzFBNC41NzQsNC41NzQsMCwwLDAsMTkuNDUxLDguNlpcXFwiIHN0eWxlPVxcXCJmaWxsOiM4ZDI3MDFcXFwiLz48cGF0aCBkPVxcXCJNOS4yMTksNS4wNjJhMy41ODEsMy41ODEsMCwwLDEsMi4yMDUuNzQ4QTEyLjksMTIuOSwwLDAsMSwxMy43ODgsOC4yNmMtLjQ1My4yNy0uOTA4LjUzNi0xLjM2LjgwOC4yMjQtLjE2My40NTctLjMxMi42OS0uNDYyLS44NjEtMS4yMjQtMS45NzEtMi41LTMuNTMtMi43NDhhMTAuOTY0LDEwLjk2NCwwLDAsMC0uMzY1LDUuMTQ3Yy4zMTgtLjE5NS42MzMtLjQuOTYyLS41NzItLjQ3NC4zMTktLjk2NC42MTUtMS40NDYuOTJBMTQuMSwxNC4xLDAsMCwxLDkuMjE5LDUuMDYyWlxcXCIgc3R5bGU9XFxcImZpbGw6IzhkMjcwMVxcXCIvPjxwYXRoIGQ9XFxcIk0xMC41MDcsOC40NzZhMi40NTUsMi40NTUsMCwwLDEsMS41MTcuODhsLS4zNi4yQTIuNjksMi42OSwwLDAsMCwxMC43MzksOWEzLjMxOCwzLjMxOCwwLDAsMC0uMTY1LDEuMjgxbC0uMzQ0LjExQTcuMDIxLDcuMDIxLDAsMCwxLDEwLjUwNyw4LjQ3NlpcXFwiIHN0eWxlPVxcXCJmaWxsOiM4ZDI3MDFcXFwiLz48cGF0aCBkPVxcXCJNMTIuMTM5LDEwLjY5M2EuNDg3LjQ4NywwLDAsMSwuNTQyLjAxLDEuNTUyLDEuNTUyLDAsMCwxLC4wNjIuNmMtLjAzOS43ODQuMDI0LDEuNTczLS4wNzYsMi4zNTRhMS4wMTMsMS4wMTMsMCwwLDEtMS4wMTIuODg2Yy0uMjMzLS4wNS0uMjc4LS4zNDEtLjI3OC0uNTQxLDAtLjY3NS4xLTEuMzQ3LjA2Ni0yLjAyNEExLjMsMS4zLDAsMCwxLDEyLjEzOSwxMC42OTNabS4xNSwxLjA4NGEuODkxLjg5MSwwLDAsMCwuMjUxLS44NjZDMTIuMjE4LDExLjA2MSwxMS45LDExLjUwNywxMi4yODksMTEuNzc3WlxcXCIgc3R5bGU9XFxcImZpbGw6IzhkMjcwMVxcXCIvPjxwYXRoIGQ9XFxcIk0xNC41LDEzLjcyOGExNy42NzEsMTcuNjcxLDAsMCwxLDEuOTI4LS44MjJjLS4wMjQuMDY0LS4wNjkuMTkxLS4wOTIuMjU1LS42NDkuMzU4LTEuMzYuNi0yLjAyMS45MzhhMTIuMTE4LDEyLjExOCwwLDAsMC0zLjIzOCwyLjI0OEE3LjIsNy4yLDAsMCwxLDEwLDE3LjM4MWE0LjE2Niw0LjE2NiwwLDAsMSwuOTgtMS4yNDZBMTIuNzI3LDEyLjcyNywwLDAsMSwxNC41LDEzLjcyOFpcXFwiIHN0eWxlPVxcXCJmaWxsOiM4ZDI3MDFcXFwiLz48cGF0aCBkPVxcXCJNNy42MjgsMTMuMjMxYS45ODkuOTg5LDAsMCwxLC41OTQtLjE1MiwxOC4xMTQsMTguMTE0LDAsMCwxLS4xLDIuNjU0LjcxMy43MTMsMCwwLDEtLjg5Mi42NTgsMjEuMSwyMS4xLDAsMCwxLC4wODItMi4yMjZBMS4zODMsMS4zODMsMCwwLDEsNy42MjgsMTMuMjMxWm0uMTc5LjgzMWMuMjY4LS4xMTIuMzE5LS40MTMuNDEyLS42NTRDNy44MiwxMy4zMTIsNy43NzUsMTMuNzgzLDcuODA3LDE0LjA2MlpcXFwiIHN0eWxlPVxcXCJmaWxsOiM4ZDI3MDFcXFwiLz48cGF0aCBkPVxcXCJNMTAuODIzLDE3LjA5NGExMy45MzQsMTMuOTM0LDAsMCwxLDQuNjEyLTEuOTY4Yy0uMDEuMDY4LS4wMjkuMjA2LS4wMzkuMjc0YTE0LjI3MywxNC4yNzMsMCwwLDAtNC40NzUsMS45MTQsMi42MjYsMi42MjYsMCwwLDEtLjY4MS4zNDNDMTAuMywxNy4zNTYsMTAuNiwxNy4yNDksMTAuODIzLDE3LjA5NFpcXFwiIHN0eWxlPVxcXCJmaWxsOiM4ZDI3MDFcXFwiLz48cGF0aCBkPVxcXCJNNS4yNjQsMTcuNTlBNS4xNDQsNS4xNDQsMCwwLDEsOCwxNy4xYTEuNSwxLjUsMCwwLDEsMS4xNDIuNjY1QTYuODU0LDYuODU0LDAsMCwwLDcuNiwxNy4yNzhhNi45NjcsNi45NjcsMCwwLDAtMi40ODQuNTY0WlxcXCIgc3R5bGU9XFxcImZpbGw6IzhkMjcwMVxcXCIvPjxwYXRoIGQ9XFxcIk0xMC41NzgsMTcuNzI1YTkuNTksOS41OSwwLDAsMSwzLjYxLS41NjZjLjI0LjAyMS4zMjEuMi4zMTMuNDI0YTMuMjM4LDMuMjM4LDAsMCwwLTEuOTU2LS4wOSwyMS42ODgsMjEuNjg4LDAsMCwwLTIuNTU3LjY1OEM5Ljk5NSwxNy44MjksMTAuMzQ1LDE3LjgwOSwxMC41NzgsMTcuNzI1WlxcXCIgc3R5bGU9XFxcImZpbGw6IzhkMjcwMVxcXCIvPjxwYXRoIGQ9XFxcIk05LjI2OCwxNy42NzZjLjE0OS0uMTc2LjUzMy0uMzMyLjY2NC0uMDYyYTEuMywxLjMsMCwwLDEtLjUxNi45OTNDOS4yNjgsMTguMzM3LDguOTczLDE3Ljk1Miw5LjI2OCwxNy42NzZaXFxcIiBzdHlsZT1cXFwiZmlsbDojOGQyNzAxXFxcIi8+PHBhdGggZD1cXFwiTTUuNzQ0LDE4LjYyOWE1LjksNS45LDAsMCwxLDMuMTgyLS42MThjLS4xODIuMjM1LS40OTMuMTc4LS43NTEuMjA4YTUuNjYzLDUuNjYzLDAsMCwwLTEuNzIuMzNjLS4zNDQuMTI4LS42NjUuMzEtMS4wMi40MDlBLjYuNiwwLDAsMSw1Ljc0NCwxOC42MjlaXFxcIiBzdHlsZT1cXFwiZmlsbDojOGQyNzAxXFxcIi8+PHBhdGggZD1cXFwiTTYuOSwxOS4xMTRhOS42NzYsOS42NzYsMCwwLDEsMi4yLS44NTRjLS4xLjMtLjQ0MS4zMzgtLjcuNDQ0YTcuODM5LDcuODM5LDAsMCwwLTIuNTY0LDEuNDE1QzUuOTM4LDE5LjU4NCw2LjQ4OCwxOS4zNjksNi45LDE5LjExNFpcXFwiIHN0eWxlPVxcXCJmaWxsOiM4ZDI3MDFcXFwiLz48cGF0aCBkPVxcXCJNMTEuNjM1LDE5LjdhMy4xMSwzLjExLDAsMCwwLDEuOTEtMS4zODNjLjM0Ny0uMS4yNzMuMjc1LjI2LjQ5NGEyLjA1NiwyLjA1NiwwLDAsMS0uOTUsMS4wMzYsMTIuMzY1LDEyLjM2NSwwLDAsMS0xLjgyNyw2LjQxOUEyLjM0MiwyLjM0MiwwLDAsMSw4Ljg3OSwyNy41YTIuMjUxLDIuMjUxLDAsMCwxLTEuNTM1LTEuNDksMTAuODk0LDEwLjg5NCwwLDAsMS0uNjktNC42NjVjLS4xNTctLjExMi0uMzY5LS4xNzktLjQ2LS4zNjItLjEzLS4yLjAxMS0uNDI1LjA0Ny0uNjMxLjE5LjE1MS4zNDUuMzkyLjYwNi40MmEzLjYxNywzLjYxNywwLDAsMCwxLjg2My0uNCwxLjU4OCwxLjU4OCwwLDAsMCwuNzA5LS42NjIsMy44ODEsMy44ODEsMCwwLDAsLjQzMS4yNjZBNC4yOCw0LjI4LDAsMCwwLDExLjYzNSwxOS43Wm0tMi4yLjgzNWE0LjEzMiw0LjEzMiwwLDAsMS0yLjQ2Mi44MDksMTEuMDQ5LDExLjA0OSwwLDAsMCwuMzU4LDMuNTI2LDMuMjI2LDMuMjI2LDAsMCwxLC45LTEuMjgyLDIuMDU1LDIuMDU1LDAsMCwxLDIuMy0uMiwyLjMsMi4zLDAsMCwxLC44ODQsMS4xNzIsMTQuNjU5LDE0LjY1OSwwLDAsMCwxLjAwNS00LjQ4OUE1LjE2Nyw1LjE2NywwLDAsMSw5LjQzNSwyMC41MzJabS0uMzI5LDMuMjZhMi4yNzMsMi4yNzMsMCwwLDAtMS41LDEuNDM0Yy0uMTIzLjI2OS4xLjUxNy4yMjUuNzM4LjMzMS40NjIuNzk1LDEsMS40MzEuODkzYTIuODY4LDIuODY4LDAsMCwwLDEuNzY5LTEuNkExLjYsMS42LDAsMCwwLDkuMTA2LDIzLjc5MlpcXFwiIHN0eWxlPVxcXCJmaWxsOiM4ZDI3MDFcXFwiLz5cIixcblx0XCJMdWFcIjogXCI8cGF0aCBkPVxcXCJNMTYuNSwzMGwtLjAxMS0uMzIxYy40LS4wMTQuOC0uMDQ1LDEuMTktLjA5NGwuMDM5LjMxOUMxNy4zMTIsMjkuOTUyLDE2LjksMjkuOTg0LDE2LjUsMzBabS0xLjIyMi0uMDExYy0uNC0uMDIxLS44MTQtLjA2MS0xLjIxNi0uMTE4bC4wNDUtLjMxOGMuMzkzLjA1NS43OTMuMDk0LDEuMTg4LjExNVpNMTguOTIsMjkuN2wtLjA2Ny0uMzE0Yy4zODctLjA4My43NzYtLjE4NCwxLjE1NS0uM2wuMDk0LjMwN0MxOS43MTQsMjkuNTExLDE5LjMxNiwyOS42MTUsMTguOTIsMjkuN1ptLTYuMDYzLS4wNTNjLS40LS4wOTEtLjc5MS0uMi0xLjE3Ny0uMzI2bC4xLS4zMDZjLjM3Ny4xMjIuNzY0LjIzLDEuMTUuMzE5Wm04LjQtLjY2NS0uMTIxLS4zYy4zNjQtLjE0OC43MjgtLjMxNCwxLjA4LS40OTNsLjAwNiwwLC4xNDUuMjg2LDAsMEMyMiwyOC42NjEsMjEuNjI2LDI4LjgzMSwyMS4yNTMsMjguOTgyWm0tMTAuNzE4LS4wODhjLS4zNzQtLjE1OC0uNzQ1LS4zMzUtMS4xLS41MjRsLjE1LS4yODRjLjM1LjE4Ni43MTMuMzU4LDEuMDc4LjUxMlptMTIuODkzLTEuMDIxLS4xNy0uMjczYy4zMzctLjIxLjY2OC0uNDM3Ljk4NC0uNjc1bC4xOTMuMjU3QzI0LjExMSwyNy40MjUsMjMuNzcyLDI3LjY1OCwyMy40MjgsMjcuODczWk04LjM3OSwyNy43NTFjLS4zNDEtLjIyLS42NzYtLjQ1OS0xLS43MDhsLjItLjI1M2MuMzEyLjI0My42NC40NzYuOTcyLjY5MVptMTctMS4zNDYtLjIxNS0uMjM5Yy4yOTQtLjI2NS41OC0uNTQ2Ljg1MS0uODM2bC4yMzUuMjE5QzI1Ljk3MiwyNS44NDYsMjUuNjc5LDI2LjEzNCwyNS4zNzgsMjYuNFpNNi40NTQsMjYuMjUyYy0uMy0uMjc2LS41ODUtLjU2OS0uODU2LS44N2wuMjM5LS4yMTVjLjI2NS4yOTQuNTQ3LjU4LjgzNi44NVpNMjcuMDQxLDI0LjYybC0uMjUzLS4yYy4yNDQtLjMxMi40NzYtLjYzOS42OTItLjk3MmwuMjcuMTc1QzI3LjUyOSwyMy45NjYsMjcuMjksMjQuMywyNy4wNDEsMjQuNjJaTTQuODIsMjQuNDM5Yy0uMjQ0LS4zMjQtLjQ3Ni0uNjYyLS42OTItMS4wMDdsLjI3Mi0uMTdjLjIxLjMzNy40MzguNjY4LjY3Ni45ODRabTIzLjU0Ny0xLjg2Ny0uMjg0LS4xNTFjLjE4Ni0uMzUuMzU4LS43MTMuNTEzLTEuMDc4bC4zLjEyNUMyOC43MzUsMjEuODQzLDI4LjU1OCwyMi4yMTQsMjguMzY4LDIyLjU3MlptLTI0Ljg0MS0uMi0uMDA2LS4wMTJjLS4xODMtLjM1OS0uMzUyLS43MjgtLjUtMS4xbC4zLS4xMjFjLjE0Ny4zNjIuMzEyLjcyNC40OTEsMS4wNzRsLjAwNi4wMTJaTTI5LjMyLDIwLjMyNWwtLjMwNi0uMWMuMTIyLS4zNzcuMjMtLjc2NC4zMTktMS4xNWwuMzEzLjA3MkMyOS41NTUsMTkuNTQzLDI5LjQ0NiwxOS45MzksMjkuMzIsMjAuMzI1Wk0yLjYwOCwyMC4xMDdjLS4xMi0uMzg4LS4yMjMtLjc4Ni0uMzA4LTEuMTgybC4zMTQtLjA2N2MuMDgzLjM4Ny4xODQuNzc2LjMsMS4xNTVaTTI5Ljg3LDE3Ljk0NmwtLjMxOC0uMDQ1Yy4wNTYtLjM5My4wOTQtLjc5My4xMTUtMS4xODhsLjMyMS4wMTdDMjkuOTY3LDE3LjEzNSwyOS45MjcsMTcuNTQ0LDI5Ljg3LDE3Ljk0NlpNMi4xLDE3LjcyYy0uMDUtLjQtLjA4Mi0uODEyLS4xLTEuMjE4bC4zMjEtLjAxMWMuMDE0LjQuMDQ2LjguMDk0LDEuMTlabTI3LjU4Mi0yLjJjLS4wMTQtLjQtLjA0NS0uOC0uMDkzLTEuMTlsLjMxOS0uMDM5Yy4wNDkuNC4wODIuODEzLjEsMS4yMThaTTIuMzMxLDE1LjMsMi4wMSwxNS4yOGMuMDIxLS40MDUuMDYxLS44MTQuMTE3LTEuMjE2bC4zMTguMDQ1QzIuMzksMTQuNSwyLjM1MiwxNC45LDIuMzMxLDE1LjNabTI3LjA1Ny0yLjE0NGMtLjA4My0uMzg3LS4xODQtLjc3Ni0uMy0xLjE1NUwyOS40LDExLjljLjExOS4zODguMjIzLjc4Ni4zMDcsMS4xODNaTTIuNjYzLDEyLjkzNGwtLjMxMy0uMDcyYy4wOTEtLjQuMi0uNzkxLjMyNi0xLjE3N2wuMzA2LjFDMi44NTksMTIuMTYxLDIuNzUyLDEyLjU0OCwyLjY2MywxMi45MzRabTI2LjAyNi0yLjA2MmMtLjE0OS0uMzY2LS4zMTUtLjczMi0uNS0xLjA4NmwuMjg2LS4xNDZjLjE4NS4zNjMuMzU1LjczNi41MDcsMS4xMTFaTTMuNCwxMC42NjVsLS4zLS4xMjVjLjE1OC0uMzc0LjMzNC0uNzQ1LjUyNC0xLjFsLjI4NC4xNUMzLjcyNCw5LjkzNywzLjU1MiwxMC4zLDMuNCwxMC42NjVaTTQuNTEzLDguNTU3bC0uMjctLjE3NGMuMjItLjM0MS40NTgtLjY3Ni43MDctMWwuMjU0LjJDNC45NjEsNy45LDQuNzI4LDguMjI0LDQuNTEzLDguNTU3Wk01Ljk3Nyw2LjY3NmwtLjIzNS0uMjE5Yy4yNzYtLjMuNTY5LS41ODUuODctLjg1N2wuMjE1LjIzOUM2LjUzMyw2LjEsNi4yNDcsNi4zODYsNS45NzcsNi42NzZabTEuNzctMS42LS4xOTMtLjI1N2MuMzIzLS4yNDQuNjYyLS40NzcsMS4wMDctLjY5MmwuMTcuMjcyQzguMzk0LDQuNjE0LDguMDYzLDQuODQxLDcuNzQ3LDUuMDc5Wm0xNS43MDUtLjU1OC0uMDE4LS4wMTIuMTc1LS4yNy4wMTguMDExWm0tMS4wNDctLjYxNmMtLjM1LS4xODYtLjcxMy0uMzU4LTEuMDc4LS41MTJsLjEyNS0uM2MuMzc0LjE1OC43NDUuMzM0LDEuMS41MjRaTTkuNzY5LDMuODE1bC0uMTQ2LS4yODYuMDE4LS4wMDljLjM1Ni0uMTgxLjcyNC0uMzQ5LDEuMDkzLS41bC4xMjEuM2MtLjM2MS4xNDctLjcyLjMxMS0xLjA2OC40ODhabTEwLjQ0LS44MzhjLS4zNzctLjEyMi0uNzY0LS4yMjktMS4xNTEtLjMxN2wuMDcyLS4zMTNjLjQuMDkxLjc5Mi4yLDEuMTc4LjMyNVptLTguMjI5LS4wNi0uMDk0LS4zMDdjLjM4OC0uMTE5Ljc4Ni0uMjIzLDEuMTgyLS4zMDhsLjA2Ny4zMTRDMTIuNzQ3LDIuNywxMi4zNTksMi44LDExLjk4LDIuOTE3Wm01LjktLjQ3M2MtLjM5My0uMDU1LS43OTMtLjA5Mi0xLjE4OC0uMTEzbC4wMTYtLjMyMWMuNDA1LjAyMS44MTQuMDU5LDEuMjE2LjExNVptLTMuNTcyLS4wMjYtLjA0LS4zMTljLjQtLjA1LjgxMi0uMDgzLDEuMjE4LS4xbC4wMTIuMzIxQzE1LjEwNiwyLjMzNywxNC43MDUsMi4zNjksMTQuMzEyLDIuNDE4WlxcXCIgc3R5bGU9XFxcImZpbGw6Z3JheVxcXCIvPjxjaXJjbGUgY3g9XFxcIjE2XFxcIiBjeT1cXFwiMTUuOTk4XFxcIiByPVxcXCIxMC43MDhcXFwiIHN0eWxlPVxcXCJmaWxsOm5hdnlcXFwiLz48Y2lyY2xlIGN4PVxcXCIyMC40MzVcXFwiIGN5PVxcXCIxMS41NjJcXFwiIHI9XFxcIjMuMTM2XFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+PGNpcmNsZSBjeD1cXFwiMjYuNzA4XFxcIiBjeT1cXFwiNS4yOVxcXCIgcj1cXFwiMy4xMzdcXFwiIHN0eWxlPVxcXCJmaWxsOm5hdnlcXFwiLz48cGF0aCBkPVxcXCJNMTMuMSwyMS4zNTJ2LS43OUg5LjYyOVYxNC4zMjZoLS45djcuMDI2SDEzLjFcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48cGF0aCBkPVxcXCJNMTcuOTE2LDIxLjM1MlYxNi4zaC0uOHYyLjc4NWMwLDEuMDMxLS41NCwxLjcwNi0xLjM3OCwxLjcwNkEuOTUuOTUsMCwwLDEsMTQuNywxOS44VjE2LjNoLS44djMuODE3YzAsLjgzOC42MjYsMS4zNzgsMS42MDksMS4zNzhhMS44NjMsMS44NjMsMCwwLDAsMS42ODctLjkyNXYuNzgxaC43MjNcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48cGF0aCBkPVxcXCJNMjMuNzkxLDIxLjMzM3YtLjYwN2EuNjY0LjY2NCwwLDAsMS0uMTczLjAxOWMtLjI3OSwwLS40MzQtLjE0NS0uNDM0LS40VjE3LjUzNmMwLS45LS42NTUtMS4zNzgtMS45LTEuMzc4LTEuMjI0LDAtMS45NzYuNDcyLTIuMDI0LDEuNjM4aC44MWMuMDY3LS42MTcuNDM0LS45LDEuMTg1LS45LjcyMywwLDEuMTI4LjI3LDEuMTI4Ljc1MnYuMjEyYzAsLjMzNy0uMi40ODItLjgzOC41NTlhNS43NjMsNS43NjMsMCwwLDAtMS42MTkuMzA4LDEuMzI3LDEuMzI3LDAsMCwwLS44ODcsMS4zMTFjMCwuOTE2LjYzNiwxLjQ1NSwxLjY1OCwxLjQ1NWEyLjM2MywyLjM2MywwLDAsMCwxLjcxNS0uNzQyLjg1NS44NTUsMCwwLDAsLjgyOS42NjUsMS45NjcsMS45NjcsMCwwLDAsLjU0OS0uMDg3bS0xLjQwNy0xLjcyNWExLjM2NiwxLjM2NiwwLDAsMS0xLjUxMywxLjE4NWMtLjYyNiwwLS45OTMtLjIyMi0uOTkzLS43NzEsMC0uNTMuMzU3LS43NjEsMS4yMTQtLjg4N2E0LDQsMCwwLDAsMS4yOTEtLjI3OXYuNzUyXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+XCIsXG5cdFwiTWFya2Rvd25cIjogXCI8cmVjdCB4PVxcXCIyLjVcXFwiIHk9XFxcIjcuOTU1XFxcIiB3aWR0aD1cXFwiMjdcXFwiIGhlaWdodD1cXFwiMTYuMDkxXFxcIiBzdHlsZT1cXFwiZmlsbDpub25lO3N0cm9rZTojNzU1ODM4XFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCI1LjkwOSAyMC42MzYgNS45MDkgMTEuMzY0IDguNjM2IDExLjM2NCAxMS4zNjQgMTQuNzczIDE0LjA5MSAxMS4zNjQgMTYuODE4IDExLjM2NCAxNi44MTggMjAuNjM2IDE0LjA5MSAyMC42MzYgMTQuMDkxIDE1LjMxOCAxMS4zNjQgMTguNzI3IDguNjM2IDE1LjMxOCA4LjYzNiAyMC42MzYgNS45MDkgMjAuNjM2XFxcIiBzdHlsZT1cXFwiZmlsbDojNzU1ODM4XFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIyMi45NTUgMjAuNjM2IDE4Ljg2NCAxNi4xMzYgMjEuNTkxIDE2LjEzNiAyMS41OTEgMTEuMzY0IDI0LjMxOCAxMS4zNjQgMjQuMzE4IDE2LjEzNiAyNy4wNDUgMTYuMTM2IDIyLjk1NSAyMC42MzZcXFwiIHN0eWxlPVxcXCJmaWxsOiM3NTU4MzhcXFwiLz5cIixcblx0XCJNQVRMQUJcIjogXCI8ZGVmcz48bGluZWFyR3JhZGllbnQgaWQ9XFxcImFcXFwiIHgxPVxcXCIxNi44MDNcXFwiIHkxPVxcXCIxNi42MzFcXFwiIHgyPVxcXCIxNS4wMTNcXFwiIHkyPVxcXCIyMi40MTFcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJtYXRyaXgoMSwgMCwgMCwgLTEsIDAsIDMyKVxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiIzUxMlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC4yM1xcXCIgc3RvcC1jb2xvcj1cXFwiIzUyM1xcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC4zNlxcXCIgc3RvcC1jb2xvcj1cXFwiIzUzNFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC41MVxcXCIgc3RvcC1jb2xvcj1cXFwiIzY0NVxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC42NlxcXCIgc3RvcC1jb2xvcj1cXFwiIzU2OFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC44NFxcXCIgc3RvcC1jb2xvcj1cXFwiIzI5ZFxcXCIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJiXFxcIiB4MT1cXFwiMjkuNzFcXFwiIHkxPVxcXCIxOC45ODNcXFwiIHgyPVxcXCIxMS43MVxcXCIgeTI9XFxcIjE0LjU2M1xcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMC4wODFcXFwiIHN0b3AtY29sb3I9XFxcIiNjMzNcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuMTg5XFxcIiBzdG9wLWNvbG9yPVxcXCIjZGU1MjM5XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjMxM1xcXCIgc3RvcC1jb2xvcj1cXFwiI2YwNmUzZVxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC40MjFcXFwiIHN0b3AtY29sb3I9XFxcIiNmYTgwNDJcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNVxcXCIgc3RvcC1jb2xvcj1cXFwiI2ZlODY0M1xcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC41OFxcXCIgc3RvcC1jb2xvcj1cXFwiI2ZhN2Y0MlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC42OTZcXFwiIHN0b3AtY29sb3I9XFxcIiNlZjZjM2VcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuODMzXFxcIiBzdG9wLWNvbG9yPVxcXCIjZGM0YzM3XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjkxNlxcXCIgc3RvcC1jb2xvcj1cXFwiI2NmMzYzM1xcXCIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjx0aXRsZT5maWxlX3R5cGVfbWF0bGFiPC90aXRsZT48cGF0aCBkPVxcXCJNMiwxNy41NWw3Ljk3LTMuMjJhMjAuNywyMC43LDAsMCwxLDIuNzItMi45NWMuNjYtLjM1LDEuOS0uMTYsNC4xNy0yLjk4LDIuMi0yLjc1LDIuOS01LjEsMy45My01LjEsMS42MywwLDIuODMsMy41Miw0LjY1LDguODVBMTE1LjYyOSwxMTUuNjI5LDAsMCwwLDMwLDI0LjEyYy0xLjktMS43Ny0zLjUyLTMuNjgtNS4zNy0zLjYzLTEuNzIuMDQtMy42MywyLjA4LTUuNzIsNC43LTEuNjYsMi4xLTMuODYsMy41NC00LjcyLDMuNTEsMCwwLTIuMjItNi4yOC00LjA4LTcuM2EyLjY0MSwyLjY0MSwwLDAsMC0yLjM5LjJMMiwxNy41NFpcXFwiIHN0eWxlPVxcXCJmaWxsOiM0OWRcXFwiLz48cGF0aCBkPVxcXCJNMTkuOCw0LjAyYy0uNjcuOS0xLjQ4LDIuNTUtMi45NCw0LjM4LTIuMjcsMi44Mi0zLjUsMi42My00LjE3LDIuOThhMTkuNjc0LDE5LjY3NCwwLDAsMC0yLjcyLDIuOTVsMy4zLDIuNDFjMi44LTMuODIsNC4zLTcuOTYsNS40Ny0xMC42NEExMy41NzksMTMuNTc5LDAsMCwxLDE5LjgsNC4wMlpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjYSlcXFwiLz48cGF0aCBkPVxcXCJNMjAuOCwzLjNjLTIuMTgsMC0zLjY3LDExLjQ4LTExLjcyLDE3Ljg5LDIuMjYtLjM3LDQuMjIsNS4yNCw1LjEyLDcuNTEsNC0uNjgsNy4yLTguMzMsMTAuNDMtOC4yMSwxLjg1LjA3LDMuNDcsMS44Niw1LjM3LDMuNjNDMjUuNjYsMTUsMjMuNjMsMy4zLDIwLjgsMy4zWlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNiKVxcXCIvPlwiLFxuXHRcIk1BWFNjcmlwdFwiOiBcIjxwYXRoIGQ9XFxcIk0xNC40LDcuNTY4LDIwLjIxMiwySDcuMjczTDQuODQ4LDcuNTM2bDkuNTU3LjAzMlpNNC44NDgsNy41MzZsNi44NDQsMi42TDE0LjQsNy41NjhtLS4wMTMsMy42MjItMi43LTEuMDUzTDUuMjYzLDE2LjFsNi4yODYsNS44MjMsMi44MDgtMS4xTDE0LjQsNy41NjhtMCwwLDEyLjgsOC4zNzZMMjAuMjEyLDJNMjcuMiwxNS45NDQsMTQuMzkxLDExLjE5bS0uMDM1LDkuNjM2LS4wMzIsMy42ODVNMjAuMjI4LDMwbC04LjY3OS04LjA3M0w0LjgsMjQuNDY0LDcuMjU3LDMwWm0wLDBMMjcuMiwxNS45NDQsMTQuMzI1LDI0LjUxMk0yNy4yLDE1Ljk0NCwxNC4zNTcsMjAuODI2XFxcIiBzdHlsZT1cXFwiZmlsbDpub25lO3N0cm9rZTojMWQxZDFiO3N0cm9rZS1taXRlcmxpbWl0OjIyLjkyNTU4NDc5MzA5MDgyO3N0cm9rZS13aWR0aDowLjAyODM0OTk5OTMzODM4ODQ0M3B4XFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIxNC4zOTEgMTEuMTkgMjcuMiAxNS45NDQgMTQuNDA1IDcuNTY4IDE0LjM5MSAxMS4xOSAxNC4zOTEgMTEuMTlcXFwiIHN0eWxlPVxcXCJmaWxsOiMxODFiMTc7ZmlsbC1ydWxlOmV2ZW5vZGRcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjI3LjIgMTUuOTQ0IDE0LjM1NyAyMC44MjYgMTQuMzI1IDI0LjUwOSAxNC4zMjYgMjQuNTExIDI3LjIgMTUuOTQ0IDI3LjIgMTUuOTQ0XFxcIiBzdHlsZT1cXFwiZmlsbDojMWExZDFhO2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIxNC40MDUgNy41NjggMjcuMiAxNS45NDQgMjAuMjEyIDIgMTQuNDA1IDcuNTY4IDE0LjQwNSA3LjU2OFxcXCIgc3R5bGU9XFxcImZpbGw6IzAwNWY1ZTtmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMjcuMiAxNS45NDQgMTQuMzI2IDI0LjUxMSAyMC4yMjggMzAgMjcuMiAxNS45NDQgMjcuMiAxNS45NDRcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMDQyNDI7ZmlsbC1ydWxlOmV2ZW5vZGRcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjE0LjM1NyAyMC44MjYgMjcuMiAxNS45NDQgMTQuMzkxIDExLjE5IDE0LjM1NyAyMC44MjYgMTQuMzU3IDIwLjgyNlxcXCIgc3R5bGU9XFxcImZpbGw6IzAwNTE1MjtmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMTQuMzU3IDIwLjgyNiAxNC4zOTEgMTEuMTkgMTEuNjkyIDEwLjEzNyA1LjI2MyAxNi4xMDQgMTEuNTQ5IDIxLjkyNyAxNC4zNTcgMjAuODI2IDE0LjM1NyAyMC44MjZcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMDY5NmI7ZmlsbC1ydWxlOmV2ZW5vZGRcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjExLjY5MiAxMC4xMzcgMTQuMzkxIDExLjE5IDE0LjQwNSA3LjU2OCAxMS42OTIgMTAuMTM3IDExLjY5MiAxMC4xMzdcXFwiIHN0eWxlPVxcXCJmaWxsOiMxYjI3MjU7ZmlsbC1ydWxlOmV2ZW5vZGRcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjE0LjM1NyAyMC44MjYgMTEuNTQ5IDIxLjkyNyAxNC4zMjUgMjQuNTA5IDE0LjM1NyAyMC44MjYgMTQuMzU3IDIwLjgyNlxcXCIgc3R5bGU9XFxcImZpbGw6IzFjMjYyNDtmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMTQuMzI1IDI0LjUxMiA0LjggMjQuNDY0IDcuMjU3IDMwIDIwLjIyOCAzMCAxNC4zMjYgMjQuNTExIDE0LjMyNSAyNC41MTIgMTQuMzI1IDI0LjUxMlxcXCIgc3R5bGU9XFxcImZpbGw6IzAwNjQ2NjtmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiNC44NDggNy41MzYgMTQuNDA1IDcuNTY4IDIwLjIxMiAyIDcuMjczIDIgNC44NDggNy41MzYgNC44NDggNy41MzZcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMDc2N2E7ZmlsbC1ydWxlOmV2ZW5vZGRcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjE0LjQwNSA3LjU2OCA0Ljg0OCA3LjUzNiAxMS42OTIgMTAuMTM3IDE0LjQwNSA3LjU2OCAxNC40MDUgNy41NjhcXFwiIHN0eWxlPVxcXCJmaWxsOiMxZTM5Mzg7ZmlsbC1ydWxlOmV2ZW5vZGRcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjExLjU0OSAyMS45MjcgNC44IDI0LjQ2NCAxNC4zMjUgMjQuNTEyIDE0LjMyNSAyNC41MDkgMTEuNTQ5IDIxLjkyNyAxMS41NDkgMjEuOTI3XFxcIiBzdHlsZT1cXFwiZmlsbDojMjAzMDJlO2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+XCIsXG5cdFwiTUVMXCI6IFwiPGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJhXFxcIiB4MT1cXFwiLTYxMS4zNDhcXFwiIHkxPVxcXCItNjcuNDg4XFxcIiB4Mj1cXFwiLTYwMC4yNzJcXFwiIHkyPVxcXCItNjUuMzM1XFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwibWF0cml4KDEuNDM3LCAwLCAwLCAtMS40MzcsIDg5NC40MTcsIC04Mi4yOTIpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjMGY2MDY3XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjVcXFwiIHN0b3AtY29sb3I9XFxcIiMwNWFiYWNcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiM1OGJlYzRcXFwiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiYlxcXCIgeDE9XFxcIi02MDMuNTk0XFxcIiB5MT1cXFwiLTc3LjY5OVxcXCIgeDI9XFxcIi02MDIuMDExXFxcIiB5Mj1cXFwiLTU5LjYwNFxcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcIm1hdHJpeCgxLjQzNywgMCwgMCwgLTEuNDM3LCA4OTQuNDE3LCAtODIuMjkyKVxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiIzExN2M4M1xcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC41XFxcIiBzdG9wLWNvbG9yPVxcXCIjMjFiNWI1XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjN2VkNGQ0XFxcIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9XFxcImNcXFwiIHgxPVxcXCItNjEyLjc1N1xcXCIgeTE9XFxcIi01OS45MDZcXFwiIHgyPVxcXCItNjE2LjkzNFxcXCIgeTI9XFxcIi03Mi43NlxcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcIm1hdHJpeCgxLjQzNywgMCwgMCwgLTEuNDM3LCA4OTQuNDE3LCAtODIuMjkyKVxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiIzlhY2NkM1xcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC41XFxcIiBzdG9wLWNvbG9yPVxcXCIjNzJhZWIzXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjMzE3ZDdmXFxcIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9XFxcImRcXFwiIHgxPVxcXCItNjIxLjg1MVxcXCIgeTE9XFxcIi03NC41NzlcXFwiIHgyPVxcXCItNjE0Ljg0XFxcIiB5Mj1cXFwiLTcyLjMwMVxcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcIm1hdHJpeCgxLjQzNywgMCwgMCwgLTEuNDM3LCA4OTQuNDE3LCAtODIuMjkyKVxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiIzIxNjI2ZVxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC41XFxcIiBzdG9wLWNvbG9yPVxcXCIjMTU3Yzg0XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjMDNhM2E1XFxcIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9XFxcImVcXFwiIHgxPVxcXCItNjE2LjM2OVxcXCIgeTE9XFxcIi02NC40NjlcXFwiIHgyPVxcXCItNjI1LjM0XFxcIiB5Mj1cXFwiLTcyLjgzNVxcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcIm1hdHJpeCgxLjQzNywgMCwgMCwgLTEuNDM3LCA4OTQuNDE3LCAtODIuMjkyKVxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiIzBiN2M4MVxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC41XFxcIiBzdG9wLWNvbG9yPVxcXCIjMDY4ZDkwXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjMTZiMWIxXFxcIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9XFxcImZcXFwiIHgxPVxcXCItNjA4LjA3MlxcXCIgeTE9XFxcIi03NC42NzhcXFwiIHgyPVxcXCItNjAzLjQ4OFxcXCIgeTI9XFxcIi03MC45NjZcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJtYXRyaXgoMS40MzcsIDAsIDAsIC0xLjQzNywgODk0LjQxNywgLTgyLjI5MilcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiMwYThhOGZcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNVxcXCIgc3RvcC1jb2xvcj1cXFwiIzBmN2M4MlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiIzFhNTk2NFxcXCIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJnXFxcIiB4MT1cXFwiLTYwMS4xMzRcXFwiIHkxPVxcXCItNzAuMTEzXFxcIiB4Mj1cXFwiLTYwNi4wMDhcXFwiIHkyPVxcXCItNjcuMDY3XFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwibWF0cml4KDEuNDM3LCAwLCAwLCAtMS40MzcsIDg5NC40MTcsIC04Mi4yOTIpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjMjU2YTc3XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjVcXFwiIHN0b3AtY29sb3I9XFxcIiMwZDk0OTlcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiMwNmEwYTJcXFwiLz48L2xpbmVhckdyYWRpZW50PjwvZGVmcz48dGl0bGU+ZmlsZV90eXBlX21heWE8L3RpdGxlPjxwYXRoIGQ9XFxcIk0yMS42LDMuNDYySDMwTDE4Ljc2NywyNC4yMTFzLTEuODkzLTUuNS0yLjcwNi03LjQ1OVxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNhKVxcXCIvPjxwYXRoIGQ9XFxcIk0yMy42NjksMjkuMTE4SDMwVjMuNDYyQzI5Ljk5NSwxNi44NjksMjQuMzYsMjkuMTE4LDIzLjY2OSwyOS4xMThaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2IpXFxcIi8+PHBhdGggZD1cXFwiTTE4Ljc2NywyNC4yMTFIMTMuNTQxTDIsMy40NjJjMi4wNDctLjI2LDYuMTM1LS42MTEsOC4xNi0uNzc2WlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNjKVxcXCIvPjxwYXRoIGQ9XFxcIk04LjY5MywxNi4wMTlDNi45NiwyMi44NjYsMS45OTUsMjkuMzIsMiwyOS4zMTRjNS43NTIsMCw2Ljk5MS0uODM1LDYuOTkxLTEuMjc2VjE2LjU0QzguODksMTYuMzcsOC43OTQsMTYuMTk0LDguNjkzLDE2LjAxOVpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjZClcXFwiLz48cGF0aCBkPVxcXCJNMiwzLjQ2MlYyOS4zMTRjMy4xNDctNS4yLDQuOTgxLTguNiw2LjYtMTMuNDVDNC42LDguNzk0LDIsMy40NjIsMiwzLjQ2MlpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjZSlcXFwiLz48cG9seWxpbmUgcG9pbnRzPVxcXCIyMy4yMzMgMjguMTAyIDIzLjY2OSAyOS4xMTggMjMuNjY5IDE1LjY0NyAyMy4yMzMgMTYuMzc1XFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2YpXFxcIi8+PHBhdGggZD1cXFwiTTIzLjY0NywxNS42NzN2MTMuNGwuMDE2LjA0M2MuNDUyLDAsNi4zMzItMTQuNSw2LjMzMi0yNS42NTZDMjkuOTk1LDMuNDYyLDI2LjQwNiwxMC45NDcsMjMuNjQ3LDE1LjY3M1pcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjZylcXFwiLz5cIixcblx0XCJNb25nb0RCXCI6IFwiPGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJhXFxcIiB4MT1cXFwiLTY0NS43MzJcXFwiIHkxPVxcXCI4MzkuMTg4XFxcIiB4Mj1cXFwiLTY1NC41OVxcXCIgeTI9XFxcIjgzOS4yNVxcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcIm1hdHJpeCgtMC45NzcsIC0wLjMyMywgLTAuMjksIDAuODc3LCAtMzc1Ljk0NCwgLTkyOC4yODcpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwLjIzMVxcXCIgc3RvcC1jb2xvcj1cXFwiIzk5OTg3NVxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC41NjNcXFwiIHN0b3AtY29sb3I9XFxcIiM5Yjk5NzdcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNjgzXFxcIiBzdG9wLWNvbG9yPVxcXCIjYTA5ZjdlXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjc2OFxcXCIgc3RvcC1jb2xvcj1cXFwiI2E5YTg4OVxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC44MzdcXFwiIHN0b3AtY29sb3I9XFxcIiNiN2I2OWFcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuODk2XFxcIiBzdG9wLWNvbG9yPVxcXCIjYzljN2IwXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjk0OFxcXCIgc3RvcC1jb2xvcj1cXFwiI2RlZGRjYlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC45OTRcXFwiIHN0b3AtY29sb3I9XFxcIiNmOGY2ZWJcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiNmYmY5ZWZcXFwiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiYlxcXCIgeDE9XFxcIi02NDQuMjg3XFxcIiB5MT1cXFwiODIzLjQwNVxcXCIgeDI9XFxcIi02NTcuMDI4XFxcIiB5Mj1cXFwiODQ1LjQ3NlxcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcIm1hdHJpeCgtMC45NzcsIC0wLjMyMywgLTAuMjksIDAuODc3LCAtMzc1Ljk0NCwgLTkyOC4yODcpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjNDhhNTQ3XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjM2Y5MTQzXFxcIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9XFxcImNcXFwiIHgxPVxcXCItNjQzLjM4NlxcXCIgeTE9XFxcIjgzOS40ODVcXFwiIHgyPVxcXCItNjUyLjQxOFxcXCIgeTI9XFxcIjgzMy40MTdcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJtYXRyaXgoLTAuOTc3LCAtMC4zMjMsIC0wLjI5LCAwLjg3NywgLTM3NS45NDQsIC05MjguMjg3KVxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiIzQxYTI0N1xcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC4zNTJcXFwiIHN0b3AtY29sb3I9XFxcIiM0YmE3NGJcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuOTU2XFxcIiBzdG9wLWNvbG9yPVxcXCIjNjdiNTU0XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjNjliNjU1XFxcIi8+PC9saW5lYXJHcmFkaWVudD48L2RlZnM+PHRpdGxlPmZpbGVfdHlwZV9tb25nbzwvdGl0bGU+PHBhdGggZD1cXFwiTTE2LjYyLDMwbC0uNzUxLS4yNDlzLjEtMy44LTEuMjc1LTQuMDY3Yy0uOS0xLjA0OC4xMzMtNDQuNzQxLDMuNDIzLS4xNDlhMi43MTIsMi43MTIsMCwwLDAtMS4zMzMsMS41MjNBMTQuMSwxNC4xLDAsMCwwLDE2LjYyLDMwWlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNhKVxcXCIvPjxwYXRoIGQ9XFxcIk0xNy4wMjYsMjYuMzI5YTEzLjIyMywxMy4yMjMsMCwwLDAsNS0xMy4yMjVDMjAuNTU2LDYuNjE5LDE3LjA3NSw0LjQ4NywxNi43LDMuNjczYTkuNzkyLDkuNzkyLDAsMCwxLS44MjUtMS42bC4yNzcsMTguMDY5UzE1LjU3OCwyNS42NjQsMTcuMDI2LDI2LjMyOVpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjYilcXFwiLz48cGF0aCBkPVxcXCJNMTUuNDg3LDI2LjU2OVM5LjM2NiwyMi40LDkuNzIsMTUuMDI1QTE1LjU0LDE1LjU0LDAsMCwxLDE1LjIzOSwzLjM3NywxLjcyNSwxLjcyNSwwLDAsMCwxNS44NDYsMmMuMzgxLjgyLjMxOSwxMi4yNDMuMzU5LDEzLjU3OUMxNi4zNiwyMC43NzYsMTUuOTE2LDI1LjU4OCwxNS40ODcsMjYuNTY5WlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNjKVxcXCIvPlwiLFxuXHRcIm5naW54XCI6IFwiPHBhdGggZD1cXFwiTTE1Ljk0OCwyaC4wNjVhMTAuNDE4LDEwLjQxOCwwLDAsMSwuOTcyLjUyOFEyMi40MTQsNS42NSwyNy44NDMsOC43NzRhLjc5Mi43OTIsMCwwLDEsLjQxNC43ODhjLS4wMDgsNC4zODksMCw4Ljc3Ny0uMDA1LDEzLjE2NGEuODEzLjgxMywwLDAsMS0uMzU2LjUwN3EtNS43NzMsMy4zMjQtMTEuNTQ3LDYuNjQ0YS41ODcuNTg3LDAsMCwxLS42NTcuMDM3UTkuOTEyLDI2LjYsNC4xNDMsMjMuMjc0YS43LjcsMCwwLDEtLjQtLjY2NnEwLTYuNTgyLDAtMTMuMTYzYS42OTMuNjkzLDAsMCwxLC4zODctLjY3UTkuNTUyLDUuNjU3LDE0Ljk3NCwyLjUzNWMuMzIyLS4xODQuNjM4LS4zNzkuOTc0LS41MzVcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMTk2MzlcXFwiLz48cGF0aCBkPVxcXCJNOC43NjcsMTAuNTM4cTAsNS40MjksMCwxMC44NTlhMS41MDksMS41MDksMCwwLDAsLjQyNywxLjA4NywxLjY0NywxLjY0NywwLDAsMCwyLjA2LjIwNiwxLjU2NCwxLjU2NCwwLDAsMCwuNjg1LTEuMjkzYzAtMi42Mi0uMDA1LTUuMjQsMC03Ljg2cTMuNTgzLDQuMjksNy4xODEsOC41NjhhMi44MzMsMi44MzMsMCwwLDAsMi42Ljc4MiwxLjU2MSwxLjU2MSwwLDAsMCwxLjI1MS0xLjM3MXEuMDA4LTUuNTQxLDAtMTEuMDgxYTEuNTgyLDEuNTgyLDAsMCwwLTMuMTUyLDBjMCwyLjY2Mi0uMDE2LDUuMzIxLDAsNy45ODItMi4zNDYtMi43NjYtNC42NjMtNS41NTYtNy04LjMzMkEyLjgxNywyLjgxNywwLDAsMCwxMC4xNyw5LjAzMywxLjU3OSwxLjU3OSwwLDAsMCw4Ljc2NywxMC41MzhaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+XCIsXG5cdFwiTmltXCI6IFwiPHBhdGggZD1cXFwiTTE2LjExMSw2LjQwNXMtMS4wNzMuODQ3LTIuMTY3LDEuNjlhMTUuMzYxLDE1LjM2MSwwLDAsMC00LjUyNy42NTFjLTEuMS0uNy0yLjA3LTEuNDY5LTIuMDctMS40NjlTNi41Miw4LjcsNiw5LjUzNWExMS4zODIsMTEuMzgyLDAsMCwwLTIuMjM2LDEuNDgyQzIuOTYxLDEwLjcsMi4wMywxMC4zMSwyLDEwLjNjMS4wNjMsMi4xNDUsMS43NzgsNC4yOTIsMy43MjIsNS41ODMsMy4xLTQuODg5LDE3LjQ4LTQuNDM5LDIwLjYzOS0uMDI4QzI4LjQsMTQuNzg3LDI5LjIsMTIuNSwzMCwxMC4zOGMtLjA4OC4wMjktMS4xODEuMzk1LTEuODg5LjY2NWExMS40ODksMTEuNDg5LDAsMCwwLTEuOTg2LTEuNTFjLS41MzctLjk4NC0xLjMxOS0yLjMxMy0xLjMxOS0yLjMxM3MtLjkyNy42ODktMiwxLjQ0YTIxLjI2NSwyMS4yNjUsMCwwLDAtNC42ODEtLjUxMmMtMS0uODI2LTIuMDE0LTEuNzQ2LTIuMDE0LTEuNzQ2WlxcXCIgc3R5bGU9XFxcImZpbGw6I2YzZDQwMFxcXCIvPjxwYXRoIGQ9XFxcIk0zLjEsMTQuODU0bDIuNTU0LDYuMTg1YzQuNDM1LDUuODUsMTUuNzU5LDYuMjU3LDIwLjcuMTEzLDEuMTY4LTIuNjMzLDIuNzQ1LTYuMzMzLDIuNzQ1LTYuMzMzYTEzLjM3OSwxMy4zNzksMCwwLDEtNC42LDMuODY5LDEyLjIxNywxMi4yMTcsMCwwLDEtMi45ODMuNzkzbC01LjQ2NS0yLjgzMi01LjUsMi43NzVhMTUuNjc5LDE1LjY3OSwwLDAsMS0yLjk4My0uNzY0QTE0LjA3NiwxNC4wNzYsMCwwLDEsMy4xLDE0Ljg1NFpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmU5NTNcXFwiLz5cIixcblx0XCJOaXhcIjogXCI8cGF0aCBkPVxcXCJNMTMsMTEuMTE1LDYuMTgzLDIzLjc2LDQuNTksMjAuODdsMS44MzktMy4zODctMy42NTEtLjAxTDIsMTYuMDI5bC44LTEuNDc3LDUuMi4wMTgsMS44NjgtMy40NDdaXFxcIiBzdHlsZT1cXFwiZmlsbDojN2ViYWU0O2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PHBhdGggZD1cXFwiTTEzLjUyNywyMS4yMjNoMTMuNjRsLTEuNTQxLDIuOTIyLTMuNjU4LS4wMTEsMS44MTcsMy4zODktLjc3OSwxLjQ0OS0xLjU5MywwLTIuNTg0LTQuODI1LTMuNzIyLS4wMDhaXFxcIiBzdHlsZT1cXFwiZmlsbDojN2ViYWU0O2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PHBhdGggZD1cXFwiTTIxLjQ2NywxNS42ODIsMTQuNjQ3LDMuMDM3bDMuMTM0LS4wMzJMMTkuNiw2LjRsMS44MzQtMy4zNzloMS41NTdMMjMuNzg2LDQuNSwyMS4xNzQsOS4zMDdsMS44NTQsMy40NTVaXFxcIiBzdHlsZT1cXFwiZmlsbDojN2ViYWU0O2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PHBhdGggZD1cXFwiTTEwLjU0MiwxNi4zMjRsNi44MjEsMTIuNjQ1TDE0LjIyOSwyOWwtMS44MjEtMy40LTEuODM0LDMuMzhIOS4wMTZsLS44LTEuNDc2TDEwLjgzMSwyMi43LDguOTc2LDE5LjI0M1pcXFwiIHN0eWxlPVxcXCJmaWxsOiM1Mjc3YzM7ZmlsbC1ydWxlOmV2ZW5vZGRcXFwiLz48cGF0aCBkPVxcXCJNMTguNDY0LDEwLjc1MUg0LjgyM0w2LjM2NSw3LjgyOWwzLjY1OC4wMTFMOC4yMDcsNC40NTEsOC45ODYsM2wxLjU5MiwwLDIuNTg0LDQuODI1LDMuNzIyLjAwOFpcXFwiIHN0eWxlPVxcXCJmaWxsOiM1Mjc3YzM7ZmlsbC1ydWxlOmV2ZW5vZGRcXFwiLz48cGF0aCBkPVxcXCJNMTksMjAuODg4LDI1LjgxNyw4LjI0NGwxLjU5MywyLjg5TDI1LjU3MSwxNC41MmwzLjY1MS4wMUwzMCwxNS45NzlsLS44LDEuNDc3LTUuMi0uMDE4LTEuODY4LDMuNDQ3WlxcXCIgc3R5bGU9XFxcImZpbGw6IzUyNzdjMztmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPlwiLFxuXHRcIk5TSVNcIjogXCI8cGF0aCBkPVxcXCJNMjcuNDM1LDE2LjAzNywyMi4wMTIsMjEuNDZsNS40MjMsNS40MjNcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMDU3N2JcXFwiLz48cGF0aCBkPVxcXCJNMjYuODg0LDE1LjVIMTYuMDQ4bDUuNDIzLDUuNDIzXFxcIiBzdHlsZT1cXFwiZmlsbDojMDA3OWFhXFxcIi8+PHBhdGggZD1cXFwiTTI2Ljg4NCwxNC43MTIsMjEuNDYxLDkuMjg5bC01LjQyMyw1LjQyM1xcXCIgc3R5bGU9XFxcImZpbGw6IzAwOTZkM1xcXCIvPjxwYXRoIGQ9XFxcIk0yMC41MjgsOS4xMzFIOS42ODNsNS40MjMsNS40MjNNMjcuNDM1LDMuMzI1LDIyLjAxMiw4Ljc0OGw1LjQyMyw1LjQyM1xcXCIgc3R5bGU9XFxcImZpbGw6IzAxYjBmMFxcXCIvPjxwYXRoIGQ9XFxcIk0yMC41MjgsOC4zNTYsMTUuMTA1LDIuOTMzLDkuNjgzLDguMzU2XFxcIiBzdHlsZT1cXFwiZmlsbDojMjdiY2YzXFxcIi8+PHBhdGggZD1cXFwiTTE0LjE3MiwyLjc3NUgzLjMyN0w4Ljc0OSw4LjJcXFwiIHN0eWxlPVxcXCJmaWxsOiM0ZmM5ZjVcXFwiLz48cGF0aCBkPVxcXCJNNC41NjgsMTUuOTYzLDkuOTkxLDEwLjU0LDQuNTY4LDUuMTE3XFxcIiBzdHlsZT1cXFwiZmlsbDojNzkyMDFiXFxcIi8+PHBhdGggZD1cXFwiTTEwLjU0MSwxMS4wOTEsNS4xMTksMTYuNTEzSDE1Ljk2NFxcXCIgc3R5bGU9XFxcImZpbGw6I2E0MmQyNlxcXCIvPjxwYXRoIGQ9XFxcIk01LjExOSwxNy4yODhsNS40MjMsNS40MjMsNS40MjMtNS40MjNcXFwiIHN0eWxlPVxcXCJmaWxsOiNjYzM4MmZcXFwiLz48cGF0aCBkPVxcXCJNNC41NjgsMTcuODI5VjI4LjY3NWw1LjQyMy01LjQyM0w4LjQsMjEuNjY1bTEzLjkxNiwxLjJMMTYuOSwxNy40NDdsLTUuNDIzLDUuNDIzXFxcIiBzdHlsZT1cXFwiZmlsbDojZjA0NTNmXFxcIi8+PHBhdGggZD1cXFwiTTExLjQ3NSwyMy42NDQsMTYuOSwyOS4wNjdsNS40MjMtNS40MjNcXFwiIHN0eWxlPVxcXCJmaWxsOiNmMjYyNWRcXFwiLz48cGF0aCBkPVxcXCJNMTcuODQsMjkuMjI1SDI4LjY4NUwyMy4yNjMsMjMuOFxcXCIgc3R5bGU9XFxcImZpbGw6I2Y0N2Y3ZFxcXCIvPjxwYXRoIGQ9XFxcIk0yOS44ODksMjkuMzM3bC0xLjY4LTEuNjhWMi4zOTJhLjM3NC4zNzQsMCwwLDAtLjI0My0uMzU1QS4yNjMuMjYzLDAsMCwwLDI3LjgyNywyYS4zNTkuMzU5LDAsMCwwLS4yNzEuMTEyTDIxLjQ3MSw4LjIsMTUuMzg1LDIuMTEyLDE1LjMsMi4wMzdoLS4wMzdBLjMwNy4zMDcsMCwwLDAsMTUuMTA1LDJIMi40YS40MzQuNDM0LDAsMCwwLS4yODkuMTEyQS4zOC4zOCwwLDAsMCwyLDIuMzkyYS4zNTkuMzU5LDAsMCwwLC4xMTIuMjcxbDEuNjgsMS42OFYyOS42MTdhLjM3NC4zNzQsMCwwLDAsLjI0My4zNTVBLjM4Ny4zODcsMCwwLDAsNC4xODUsMzBhLjM1OS4zNTksMCwwLDAsLjI3MS0uMTEyTDEwLjU0MSwyMy44bDYuMDg1LDYuMDg1LjA4NC4wNzVoLjAzN0EuMjU0LjI1NCwwLDAsMCwxNi45LDMwSDI5LjYwOWEuMzk1LjM5NSwwLDAsMCwuMjgtLjY2M1pNMjcuNDM1LDMuMzI1VjE0LjE3MUwyMi4wMTIsOC43NDhsNS40MjMtNS40MjNaTTkuOTkxLDEwLjU0LDQuNTY4LDE1Ljk2M1Y1LjExN0w5Ljk5MSwxMC41NFpNOS42ODMsOS4xMzFIMjAuNTI4bC01LjQyMyw1LjQyM0w5LjY4Myw5LjEzMVptLjg1OSwxLjk2LDUuNDIzLDUuNDIzSDUuMTE5bDUuNDIzLTUuNDIzWk0xNi45LDE3LjQ0N2w1LjQyMyw1LjQyM0gxMS40NzVMMTYuOSwxNy40NDdaTTE2LjA0OCwxNS41SDI2Ljg5M2wtNS40MjMsNS40MjNMMTYuMDQ4LDE1LjVabTUuOTY0LDUuOTY0LDUuNDIzLTUuNDIzVjI2Ljg4M0wyMi4wMTIsMjEuNDZabTQuODcyLTYuNzQ4SDE2LjA0OGw1LjQyMy01LjQyMyw1LjQxMyw1LjQyM1pNMjAuNTI4LDguMzU2SDkuNjgzbDUuNDIzLTUuNDIzLDUuNDIzLDUuNDIzWk0zLjMyNywyLjc3NUgxNC4xNzJMOC43NDksOC4yWm0xLjI0MSwyNS45VjE3LjgyOUw4LjQsMjEuNjY1bDEuNTg3LDEuNTg3TDQuNTY4LDI4LjY3NVptLjU1MS0xMS4zODdIMTUuOTY0bC01LjQyMyw1LjQyM0w1LjExOSwxNy4yODhaTTE2LjksMjkuMDY3bC01LjQyMy01LjQyM0gyMi4zMkwxNi45LDI5LjA2N1ptLjk0My4xNTlMMjMuMjYzLDIzLjhsNS40MjMsNS40MjNaXFxcIiBzdHlsZT1cXFwiZmlsbDojNDY0MDQ5XFxcIi8+XCIsXG5cdFwiT2JqZWN0IFBhc2NhbFwiOiBcIjxkZWZzPjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiYVxcXCIgeDE9XFxcIjE2XFxcIiB5MT1cXFwiLTAuNDQzXFxcIiB4Mj1cXFwiMTZcXFwiIHkyPVxcXCIyMi4wNDJcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjAuMDIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjZmYwYzE1XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjOWEwYzBmXFxcIi8+PC9saW5lYXJHcmFkaWVudD48L2RlZnM+PHRpdGxlPmZpbGVfdHlwZV9kZWxwaGk8L3RpdGxlPjxjaXJjbGUgY3g9XFxcIjE2XFxcIiBjeT1cXFwiMTZcXFwiIHI9XFxcIjE0XFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2EpXFxcIi8+PHBhdGggZD1cXFwiTTI3LjU0NSwxNi4yNDNINC45MjRhLjkxNC45MTQsMCwwLDAtMS4wOTIuODJxLjAzMy40MjkuMS44NDlhMTIuNCwxMi40LDAsMCwwLDI0LjUzMiwwcS4wNzUtLjUuMTA4LTEuMDIxQzI4LjQ3OCwxNi41MjMsMjguMjExLDE2LjIwNywyNy41NDUsMTYuMjQzWlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmNjQ0M1xcXCIvPjxwb2x5bGluZSBwb2ludHM9XFxcIjE4LjQ4IDExLjY0IDIzLjcwNyA3LjI2NiAxOS43ODcgNS44OCAxNiAxMS4wNTNcXFwiIHN0eWxlPVxcXCJmaWxsOiNmYWU3ZTM7ZmlsbC1ydWxlOmV2ZW5vZGRcXFwiLz48cG9seWxpbmUgcG9pbnRzPVxcXCIxNS42OCAxMS4wMjYgMTguNjQgNS44OCAxNC44NTMgNS44OCAxMy4zMDcgMTEuMjkzXFxcIiBzdHlsZT1cXFwiZmlsbDojZmFlN2UzO2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PHBvbHlsaW5lIHBvaW50cz1cXFwiMTMuMDQgMTEuMzczIDEzLjYgNi43MDYgMTAuNTg3IDcuOTYgMTEuMDEzIDEyLjc2XFxcIiBzdHlsZT1cXFwiZmlsbDojZmFlN2UzO2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PHBvbHlsaW5lIHBvaW50cz1cXFwiMTAuNzQ3IDEzIDkuNzg3IDguNzYgNy43MDcgMTAuODQgOS42NTMgMTQuNjhcXFwiIHN0eWxlPVxcXCJmaWxsOiNmYWU3ZTM7ZmlsbC1ydWxlOmV2ZW5vZGRcXFwiLz48cG9seWxpbmUgcG9pbnRzPVxcXCI5LjM4NyAxNS4wNTMgNy40OTMgMTIuMzc2IDYuNjQgMTQuNDY2IDkuMDQgMTYuNTE3XFxcIiBzdHlsZT1cXFwiZmlsbDojZmFlN2UzO2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PHBvbHlsaW5lIHBvaW50cz1cXFwiOS4wNCAxNi43NTcgNi42NCAxNS4yMTMgNi40OCAxNy40IDkuMiAxOC4zMzNcXFwiIHN0eWxlPVxcXCJmaWxsOiNmYWU3ZTM7ZmlsbC1ydWxlOmV2ZW5vZGRcXFwiLz48cG9seWxpbmUgcG9pbnRzPVxcXCI5LjIyNyAxOC44NDYgNi42NCAxOC4wNCA3LjIyNyAxOS44IDkuNTQ3IDE5LjhcXFwiIHN0eWxlPVxcXCJmaWxsOiNmYWU3ZTM7ZmlsbC1ydWxlOmV2ZW5vZGRcXFwiLz48cG9seWxpbmUgcG9pbnRzPVxcXCI5LjcwNyAyMC4wOTMgNy43MDcgMjAuMzg2IDguNjI3IDIxLjc0NiAxMC4yNjcgMjFcXFwiIHN0eWxlPVxcXCJmaWxsOiNmYWU3ZTM7ZmlsbC1ydWxlOmV2ZW5vZGRcXFwiLz48cGF0aCBkPVxcXCJNMjAuMDIzLDEzLjA4OWE2LjYxLDYuNjEsMCwwLDAtNC41My0yQTYuMjkzLDYuMjkzLDAsMCwwLDExLjMsMjIuMDdsNC45NDEuMTI5LTIuMDgtNC4xNlpcXFwiIHN0eWxlPVxcXCJmaWxsOiNlZWU7ZmlsbC1ydWxlOmV2ZW5vZGRcXFwiLz48cGF0aCBkPVxcXCJNMTYuNSwyMi4zNjZsLTUuMjY3LS4xMzgtLjA0NC0uMDM5YTYuNDUzLDYuNDUzLDAsMCwxLDQuMy0xMS4yNjQsNi43ODcsNi43ODcsMCwwLDEsNC42NDMsMi4wNWwuMTIzLjEyMy01LjksNC45ODJabS01LjE0LS40NTUsNC42MTYuMTIxTDEzLjk2MSwxOGw1LjgyNS00LjkxOWE2LjQzLDYuNDMsMCwwLDAtNC4yOTItMS44MzUsNi4xMzMsNi4xMzMsMCwwLDAtNC4xMzEsMTAuNjY3WlxcXCIgc3R5bGU9XFxcImZpbGw6I2VlNGIyZVxcXCIvPjxwYXRoIGQ9XFxcIk0xMi4wMTMsMjAuNDkzYy00LjE3My01LjgxMywyLjEwOS04LjE3MiwyLjQ3OC04LjQ1My40NTEtLjM0NC03LjU5LDEuNzg1LTMuMjI2LDguODhaXFxcIiBzdHlsZT1cXFwiZmlsbDojZjA0ZTMxO2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIyMC43MiAxMi42IDEzLjUyIDE3LjU2NyAxMy43MzMgMTguNTczIDIxLjQ2NyAxNy4wMjYgMjAuNzIgMTIuNlxcXCIgc3R5bGU9XFxcImZpbGw6I2VlZTtmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwYXRoIGQ9XFxcIk0xMy42MSwxOC43NjEsMTMuMzQxLDE3LjVsNy40OTUtNS4xNy44MTQsNC44MjhabS4wODktMS4xMjMuMTU4Ljc0N0wyMS4yODMsMTYuOSwyMC42LDEyLjg3NFpcXFwiIHN0eWxlPVxcXCJmaWxsOiNlZTRiMmVcXFwiLz48cGF0aCBkPVxcXCJNMTUuNzIzLDIxLjMxOWMtMy45My0uNjY4LTQuMjgzLjQyOC00LjI4My40MjhMMTAuMjY3LDI0LjQ0czEuMTItLjkwNyw1LjQ5MywwbC43Ni0xLjM4OFpcXFwiIHN0eWxlPVxcXCJmaWxsOiNkZDBjMTM7ZmlsbC1ydWxlOmV2ZW5vZGRcXFwiLz48cGF0aCBkPVxcXCJNMTQuMTIyLDIxLjZjLS4wMi0uMi0xLjEtLjMxOS0xLjY3Ny0uMTIzLS43MzIuMjQ5LTEuMjE5LDEuMTQyLTEuMDQ1LDEuMjEzYTEuOTc1LDEuOTc1LDAsMCwxLDEuMTI1LS45ODZDMTMuNDQ3LDIxLjQ5MywxNC4xNDIsMjEuOCwxNC4xMjIsMjEuNlpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZjZlNGY7ZmlsbC1ydWxlOmV2ZW5vZGRcXFwiLz48cGF0aCBkPVxcXCJNMTUuNTIsMTguNjA2YTExLjEsMTEuMSwwLDAsMCwxLjU0NywxLjQ4Nyw2LjksNi45LDAsMCwxLDIuNzIsNC4xMDdjLS4xMDcsMS4wNjctMS45NzMsMS43Ni0xLjk3MywxLjc2bC0zLjMwNy03LjE5NFpcXFwiIHN0eWxlPVxcXCJmaWxsOiNlZWU7ZmlsbC1ydWxlOmV2ZW5vZGRcXFwiLz48cGF0aCBkPVxcXCJNMTcuNzMsMjYuMTYxbC0zLjQ1Ny03LjUyMSwxLjMyLS4yMDguMDU3LjA4MWExMC44NjksMTAuODY5LDAsMCwwLDEuNTEyLDEuNDUxLDcsNywwLDAsMSwyLjc4Miw0LjIwN2wwLC4wMjIsMCwuMDIyYy0uMTE1LDEuMTUzLTIsMS44NjQtMi4wNzcsMS44OTRabS0yLjk5LTcuMjcsMy4xNTUsNi44NjNjLjQxNC0uMTc4LDEuNjMtLjc2MywxLjczLTEuNTQ4YTYuNzkzLDYuNzkzLDAsMCwwLTIuNjQ4LTMuOTgxbC0uMDEtLjAwN2ExMS45NCwxMS45NCwwLDAsMS0xLjUxNy0xLjQzOVpcXFwiIHN0eWxlPVxcXCJmaWxsOiNlZTRiMmVcXFwiLz48cGF0aCBkPVxcXCJNMjgsMTIuNzQyYy4wMjUuMzk0LjAzNC43OTIuMDI1LDEuMTk0YTEzLjk0NiwxMy45NDYsMCwwLDEtMTkuOSwxMi4zQTEyLjg2LDEyLjg2LDAsMCwwLDI4LDEyLjc0MlpcXFwiIHN0eWxlPVxcXCJmaWxsOiNlYWUwZGY7ZmlsbC1ydWxlOmV2ZW5vZGQ7b3BhY2l0eTowLjJcXFwiLz48cGF0aCBkPVxcXCJNMi4zODMsMTMuODkzQTEzLjk0MSwxMy45NDEsMCwwLDEsMjUuNyw1Ljgzcy01LjAwOSw1Ljk3OS0xMC41ODQsNy45MDdTMi4zODMsMTMuODkzLDIuMzgzLDEzLjg5M1pcXFwiIHN0eWxlPVxcXCJmaWxsOiNlYWUwZGY7b3BhY2l0eTowLjJcXFwiLz48cGF0aCBkPVxcXCJNMy42MTgsMTguNjk0Yy0uMDQ0LS4zOTItLjA3Mi0uNzktLjA4My0xLjE5MUMzLjMyOSw5LjgwNywxMC4wMTIsNC4yLDE3LjcwOCwzLjk5MWExNC4yLDE0LjIsMCwwLDEsNS43MTksMS40NTgsMTMuMTI4LDEzLjEyOCwwLDAsMC03LjE4OC0yLjM2OWMtNy4xLjE5LTEzLjMwNiw1LjMtMTMuMTE2LDEyLjRBMTIuODczLDEyLjg3MywwLDAsMCwzLjYxOCwxOC42OTRaXFxcIiBzdHlsZT1cXFwiZmlsbDojZWFlMGRmO2ZpbGwtcnVsZTpldmVub2RkO29wYWNpdHk6MC4yXFxcIi8+XCIsXG5cdFwiT2JqZWN0aXZlLUNcIjogXCI8cGF0aCBkPVxcXCJNMTEuMjksMTUuOTc2YTguODkyLDguODkyLDAsMCwwLDEuMDM5LDQuNTU3LDQuODE4LDQuODE4LDAsMCwwLDUuNTc5LDIuMTMsMy43ODksMy43ODksMCwwLDAsMi43MzQtMy4xODFjLjA5NS0uNTM1LjEtLjU0LjEtLjU0LDEuNTM3LjIyMiw0LjAxNC41ODIsNS41NS44bC0uMS4zODlBOS45NTgsOS45NTgsMCwwLDEsMjMuOCwyNC45YTguMzUsOC4zNSwwLDAsMS00Ljc0NywyLjM3OCwxMi45MjUsMTIuOTI1LDAsMCwxLTcuMzIyLS43MjUsOC45OCw4Ljk4LDAsMCwxLTUuMTA2LTUuNTI0QTE0LjM1MywxNC4zNTMsMCwwLDEsNi42NDIsMTAuOWE5LjMyMyw5LjMyMywwLDAsMSw3LjkyOS02LjI0LDExLjgxMiwxMS44MTIsMCwwLDEsNS45LjQ5MSw4LjQ2Nyw4LjQ2NywwLDAsMSw1LjQ1Niw2LjFjLjA4My4zMTEuMS4zNjkuMS4zNjktMS43MDkuMzExLTMuODIxLjcwNS01LjUxOCwxLjA3NUMyMC4xODYsMTEsMTkuMzg3LDkuNjY2LDE3LjY3OCw5LjI1YTQuNjU2LDQuNjU2LDAsMCwwLTUuODUzLDMuMTU4LDkuMjgsOS4yOCwwLDAsMC0uMzQxLDEuMjczQTEwLjg5LDEwLjg5LDAsMCwwLDExLjI5LDE1Ljk3NlpcXFwiIHN0eWxlPVxcXCJmaWxsOiNjMmMyYzJcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjIuMDMzIDMwIDIuMDMzIDIgNy45NjcgMiA3Ljk2NyA0LjIyNyA0LjcyMyA0LjIyNyA0LjcyMyAyNy43NzMgNy45NjcgMjcuNzczIDcuOTY3IDMwIDIuMDMzIDMwXFxcIiBzdHlsZT1cXFwiZmlsbDojYzJjMmMyXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIyOS45NjcgMjkuOTk5IDI0LjAzMyAyOS45OTkgMjQuMDMzIDI3Ljc3MSAyNy4yNzcgMjcuNzcxIDI3LjI3NyA0LjIyNiAyNC4wMzMgNC4yMjYgMjQuMDMzIDEuOTk5IDI5Ljk2NyAxLjk5OSAyOS45NjcgMjkuOTk5XFxcIiBzdHlsZT1cXFwiZmlsbDojYzJjMmMyXFxcIi8+XCIsXG5cdFwiT0NhbWxcIjogXCI8ZGVmcz48bGluZWFyR3JhZGllbnQgaWQ9XFxcImFcXFwiIHgxPVxcXCItNzQ1LjYyM1xcXCIgeTE9XFxcIi05Mi43NlxcXCIgeDI9XFxcIi03NDUuNjIzXFxcIiB5Mj1cXFwiLTg1LjEwOFxcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcInRyYW5zbGF0ZSg3NTggMTEzLjI4KVxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiI2YyOTEwNFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiI2VjNjgxM1xcXCIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJiXFxcIiB4MT1cXFwiLTc0MS45OVxcXCIgeTE9XFxcIi0xMDkuNDc3XFxcIiB4Mj1cXFwiLTc0MS45OVxcXCIgeTI9XFxcIi04NS4wOTlcXFwiIHhsaW5rOmhyZWY9XFxcIiNhXFxcIi8+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJjXFxcIiB4MT1cXFwiLTc1Mi4xMTFcXFwiIHkxPVxcXCItOTMuOTE4XFxcIiB4Mj1cXFwiLTc1Mi4xMTFcXFwiIHkyPVxcXCItODUuMjg0XFxcIiB4bGluazpocmVmPVxcXCIjYVxcXCIvPjwvZGVmcz48dGl0bGU+ZmlsZV90eXBlX29jYW1sPC90aXRsZT48cGF0aCBkPVxcXCJNMTYuNTcxLDI1LjI0NmE0LjI4LDQuMjgsMCwwLDAtLjAzOS0uNzA5Yy0uMDU5LS4yLS4yLS4yMTctLjMtLjM3NGEzLjUwNywzLjUwNywwLDAsMS0uNTMyLTEuNDc3Yy0uMDItLjQ1My0uMi0uODg2LS4yMTctMS4zMzktLjAyLS4yMTcuMDItLjQ1MywwLS42NjlhMS45NjMsMS45NjMsMCwwLDAtLjAzOS0uMzE1LDEuMTMzLDEuMTMzLDAsMCwwLS4wMzktLjJsLjA1OS0uMTM4YTIuNzIsMi43MiwwLDAsMSwuNjUtLjAzOWMuMjU2LDAsLjUxMi4wMi43NjguMDJhNy45NjEsNy45NjEsMCwwLDAsMS41MzYtLjA1OSwzLjcyMiwzLjcyMiwwLDAsMCwxLjk0OS0uODQ3LDQuOTQ2LDQuOTQ2LDAsMCwwLDEuNTM2LTIuMDA4Yy4xNzctLjM5NC4xNzctMS4wODMuNTUxLTEuNC40MzMtLjM3NCwxLjE4MS0uMzM1LDEuNjkzLS41NzFhMS4xODcsMS4xODcsMCwwLDEsLjgwNy0uMTM4Yy4yMTcuMDM5LjYzLjMxNS43MjktLjA1OS0uMDc5LS4wMzktLjEtLjEzOC0uMTM4LS4xNzcuNDE0LS4wMzksMC0xLS4xNTgtMS4yQTIuMjI1LDIuMjI1LDAsMCwwLDI0LjI1LDEzYTMuNTA5LDMuNTA5LDAsMCwwLTEuNTM2LS4yMTdjLS44ODYuMTc3LS44MjctLjMzNS0xLjMzOS0uMzM1LS42MywwLTEuNzMzLjAzOS0xLjkzLjYzYTEuNTQsMS41NCwwLDAsMS0uMzM1LjUxMmMtLjEzOC4xNzcuMDIuMzU0LS4wMzkuNTcxLS4wNzkuMjE3LS4xNzcuOTg1LS4yNzYsMS4yNi0uMTc3LjQ1My0uMzk0LDEuMDI0LS43ODgsMS4wMjRhMy4xNTIsMy4xNTIsMCwwLDEtMS40MzctLjA3OWMtLjI3Ni0uMS0uNzI5LS4yNTYtLjk0NS0uMzM1LTEuMDI0LS40MzMtMS4yLS45MDYtMS4yLS45MDZhMy4wMjYsMy4wMjYsMCwwLDEtLjUxMi0uODY2Yy0uMTE4LS40MTQtLjMxNS0uNzY4LS4zOTQtMXMtLjMtLjU5MS0uNDUzLS45ODVhMi42NjcsMi42NjcsMCwwLDAtLjcwOS0xLjA2M2MtLjMxNS0uMjc2LS42MS0uNzI5LTEuMjYtLjU5MWExLjY0MSwxLjY0MSwwLDAsMC0uODY2LjMxNWMtLjIxNy4xNzctLjMuNTcxLS40OTIuODg2LS4xMTguMTc3LS4zMTUuNzA5LS41MTIsMS4xNjJhMS45MjksMS45MjksMCwwLDEtLjMzNS42NWMtLjExOC4wNzktLjI1Ni4yLS40MTQuMTM4YS45MjQuOTI0LDAsMCwxLS4zMTUtLjIsNS4zMzQsNS4zMzQsMCwwLDEtLjcwOS0xLjEyMiwxMS4xLDExLjEsMCwwLDAtLjc4OC0xLjI0MSwxLjAxNiwxLjAxNiwwLDAsMC0uOTg1LS41NTFjLTEuMDI0LDAtMS4xLjU3MS0xLjU1NiwxLjQxOGE1LjU3NCw1LjU3NCwwLDAsMS0uNjY5LDEuNGMtLjIzNi4yNTYtLjk0NSwxLjMzOS0xLjQ1NywxLjUxNkgydjcuNjJjLjAzOS0uMS4wNTktLjIuMS0uMjc2LjItLjQxNC42NS0uODA3LjkwNi0xLjIyMWEzLjUsMy41LDAsMCwwLC4zNzQtLjcwOSwzLjc0MywzLjc0MywwLDAsMSwuMjM2LS43MDkuNzk0Ljc5NCwwLDAsMSwuNTcxLS4zMzVjLjM1NC0uMDU5LjY1LjQ5MiwxLjA4My43MDkuMi4wNzksMS4wNjMuMzk0LDEuMzE5LjQ1My40MzMuMS45MDYuMiwxLjMzOS4yNzYuMjM2LjAzOS40NTMuMDc5LjcwOS4xYTcuMyw3LjMsMCwwLDEsMS4wODMuMSwyLjI3NywyLjI3NywwLDAsMC0uODA3LDEuMjIxYy0uMTU4LjQzMy0uMjc2LjkyNS0uNDczLDEuMzM5LS4yMTcuNDczLS42NjkuNjY5LS42MSwxLjIyMWEyLjY2OCwyLjY2OCwwLDAsMSwuMDIuNjg5LDQuMDA5LDQuMDA5LDAsMCwxLS4yMTcuNjg5Yy0uMS4zMTUtLjIxNywxLjM1OS0uMzU0LDEuNjc0bC45MDYtLjExOGgwQTEwLjY5MiwxMC42OTIsMCwwLDAsOC40LDI2LjM4OGEzLjczNywzLjczNywwLDAsMSwuNzI5LTEuMjhjLjMzNS0uMzc0LjMxNS0uODQ3LjUxMi0xLjNhMTIuNDg4LDEyLjQ4OCwwLDAsMSwuNzY4LTEuM2MuNDkyLS44MDcuODA3LTEuODEyLDEuODUxLTIuMDI4YTMuMywzLjMsMCwwLDEsMS4wMjQuNzA5LDQuNDUyLDQuNDUyLDAsMCwxLC44ODYsMS4xLDEyLjg1MSwxMi44NTEsMCwwLDEsLjg4NiwyLjY3OCwxLjIyNywxLjIyNywwLDAsMCwuMzk0LjcwOSw1LjQ2Miw1LjQ2MiwwLDAsMSwuNDMzLjcyOWMuMDc5LjE3Ny4yLjU3MS4zLjc4OGE2LjI2Nyw2LjI2NywwLDAsMSwuMzE1LjgyN2wuODQ3LS4wMmguMDJ2LS4wMkE5Ljc1NCw5Ljc1NCwwLDAsMSwxNi41NzEsMjUuMjQ2WlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPjxwYXRoIGQ9XFxcIk0xNi4yMTcsMjcuMjM1Yy0uMS0uMi0uMjE3LS42MS0uMy0uNzg4YTUuNDYyLDUuNDYyLDAsMCwwLS40MzMtLjcyOSwxLjExOSwxLjExOSwwLDAsMS0uMzk0LS43MDksMTIuNDg3LDEyLjQ4NywwLDAsMC0uODg2LTIuNjc4LDQuNDUyLDQuNDUyLDAsMCwwLS44ODYtMS4xLDMuMywzLjMsMCwwLDAtMS4wMjQtLjcwOWMtMS4wNDQuMi0xLjM1OSwxLjIyMS0xLjg1MSwyLjAyOGExMi40ODgsMTIuNDg4LDAsMCwwLS43NjgsMS4zYy0uMi40MzMtLjE3Ny45MjUtLjUxMiwxLjNhMy40NDMsMy40NDMsMCwwLDAtLjcyOSwxLjI4Yy0uMDM5LjEtLjExOCwxLjA4My0uMjE3LDEuMzE5aDBsMS41MzYtLjFjMS40MzcuMSwxLjAyNC42NSwzLjI0OS41MzJsMy41MjUtLjExOGgwQTYuMjY3LDYuMjY3LDAsMCwwLDE2LjIxNywyNy4yMzVaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2EpXFxcIi8+PHBhdGggZD1cXFwiTTI2LjQ1NiwzLjhINS41NDRBMy41MjEsMy41MjEsMCwwLDAsMi4wMiw3LjMyOHY3LjY3OWgwYy41MTItLjE3NywxLjIyMS0xLjI2LDEuNDU3LTEuNTE2YTUuOTEzLDUuOTEzLDAsMCwwLC42NjktMS40Yy40NTMtLjgyNy41MzItMS40MTgsMS41NTYtMS40MThhMS4wMTYsMS4wMTYsMCwwLDEsLjk4NS41NTEsOS41NDcsOS41NDcsMCwwLDEsLjc4OCwxLjI0MSw0Ljg0OSw0Ljg0OSwwLDAsMCwuNzA5LDEuMTIyLDIsMiwwLDAsMCwuMzE1LjJjLjE1OC4wNTkuMy0uMDU5LjQxNC0uMTM4QTEuOTI5LDEuOTI5LDAsMCwwLDkuMjQ2LDEzYy4yLS40NTMuMzk0LS45NjUuNTEyLTEuMTYyLjItLjMxNS4yNzYtLjcwOS40OTItLjg4NmExLjU5LDEuNTksMCwwLDEsLjg2Ni0uMzE1Yy42NS0uMTM4Ljk0NS4zMTUsMS4yNi41OTFhMy4yODUsMy4yODUsMCwwLDEsLjcwOSwxLjA2M2MuMTU4LjM5NC4zNTQuNzY4LjQ1My45ODVhOC45NDYsOC45NDYsMCwwLDEsLjM5NCwxLDMuNzEzLDMuNzEzLDAsMCwwLC41MTIuODY2cy4xNzcuNDczLDEuMi45MDZhOC43NDksOC43NDksMCwwLDAsLjk0NS4zMzUsMy4xNTIsMy4xNTIsMCwwLDAsMS40MzcuMDc5Yy4zOTQsMCwuNjEtLjU3MS43ODgtMS4wMjQuMS0uMjc2LjIxNy0xLjA0NC4yNzYtMS4yNnMtLjEtLjM3NC4wMzktLjU3MWMuMTU4LS4yMTcuMjU2LS4yMzYuMzM1LS41MTIuMi0uNjEsMS4zLS42MywxLjkzLS42My41MzIsMCwuNDUzLjUxMiwxLjMzOS4zMzVhMy4yNDMsMy4yNDMsMCwwLDEsMS41MzYuMjE3LDIuMjI1LDIuMjI1LDAsMCwxLDEuMTQyLjU1MWMuMTU4LjIuNTcxLDEuMTYyLjE1OCwxLjIuMDM5LjAzOS4wNzkuMTM4LjEzOC4xNzctLjEuMzc0LS40OTIuMS0uNzI5LjA1OWExLjE4NywxLjE4NywwLDAsMC0uODA3LjEzOGMtLjUxMi4yMTctMS4yNDEuMi0xLjY5My41NzEtLjM3NC4zMTUtLjM3NCwxLS41NTEsMS40YTUuMTY3LDUuMTY3LDAsMCwxLTEuNTM2LDIuMDA4LDMuOSwzLjksMCwwLDEtMS45NDkuODQ3LDcuOTYxLDcuOTYxLDAsMCwxLTEuNTM2LjA1OWMtLjI1Ni0uMDItLjUxMi0uMDItLjc2OC0uMDItLjE1OCwwLS42NjktLjAyLS42NS4wMzlsLS4wNTkuMTM4YS43LjcsMCwwLDAsLjAzOS4yYy4wMi4xMTguMDIuMjE3LjAzOS4zMTUsMCwuMjE3LS4wMi40NTMsMCwuNjY5LjAyLjQ1My4yLjg2Ni4yMTcsMS4zMzlhMy4yNiwzLjI2LDAsMCwwLC41MzIsMS40NzdjLjEuMTU4LjIzNi4xNzcuMy4zNzRhNC4xNjMsNC4xNjMsMCwwLDEsLjAzOS43MDksOS42ODUsOS42ODUsMCwwLDAsLjgyNywyLjc1N3YuMDJoMGMuNTEyLS4wNzksMS4wNDQtLjI3NiwxLjcxMy0uMzc0LDEuMjQxLS4xNzcsMi45NTQtLjEsNC4wNTYtLjIsMi44LS4yNTYsNC4zMTIsMS4xNDIsNi44MTMuNTcxVjcuMzI4QTMuNTUxLDMuNTUxLDAsMCwwLDI2LjQ1NiwzLjhaTTE2LjAyLDIwLjM0M1pcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjYilcXFwiLz48cGF0aCBkPVxcXCJNOC40NzgsMjMuNTczYy4yLS40MzMuMzE1LS45MDYuNDczLTEuMzM5YTIuMjc3LDIuMjc3LDAsMCwxLC44MDctMS4yMjEsNy4zLDcuMywwLDAsMC0xLjA4My0uMWMtLjIzNi0uMDItLjQ3My0uMDU5LS43MDktLjEtLjQzMy0uMDc5LS45MjUtLjE3Ny0xLjMzOS0uMjc2LS4yNTYtLjA1OS0xLjE0Mi0uMzc0LTEuMzE5LS40NTMtLjQ1My0uMi0uNzQ4LS43NjgtMS4wODMtLjcwOWEuNzk0Ljc5NCwwLDAsMC0uNTcxLjMzNSwzLjc0MywzLjc0MywwLDAsMC0uMjM2LjcwOWMtLjEuMjM2LS4yNTYuNDczLS4zNzQuNzA5YTEyLjI4OSwxMi4yODksMCwwLDAtLjkyNSwxLjJjLS4wMzkuMS0uMDU5LjItLjEuM3Y0Ljc0NWE1LjQsNS40LDAsMCwxLC43MjkuMTU4LDguNzcsOC43NywwLDAsMCw0LjM3MS4zNTRsLjE3Ny0uMDJoMGMuMTM4LS4zMTUuMjU2LTEuMzU5LjM1NC0xLjY3NGE1LjQ5NCw1LjQ5NCwwLDAsMCwuMjE3LS42ODksMi42NjgsMi42NjgsMCwwLDAtLjAyLS42ODlDNy44MDksMjQuMjQyLDguMjYyLDI0LjA0NSw4LjQ3OCwyMy41NzNaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2MpXFxcIi8+XCIsXG5cdFwiT2N0YXZlXCI6IFwiPGRlZnMgaWQ9XFxcImRlZnMyODc0XFxcIj4gPHJhZGlhbEdyYWRpZW50IGN4PVxcXCIxODIuOTgzN1xcXCIgY3k9XFxcIjM5NS4wNDg3MVxcXCIgcj1cXFwiMTQ4Ljk1MzA5XFxcIiBmeD1cXFwiMTgyLjk4MzdcXFwiIGZ5PVxcXCIzOTUuMDQ4NzFcXFwiIGlkPVxcXCJyYWRpYWxHcmFkaWVudDMwMzNcXFwiIHhsaW5rOmhyZWY9XFxcIiNsaW5lYXJHcmFkaWVudDM3NTVcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwibWF0cml4KDAuMjI5MTQzMzQsLTAuMjQ5MDE0NzksMC43NjQzNTcyLDAuODMwNjQyNjgsLTI3Mi44NTMzNywtMTU5LjY5NDgyKVxcXCIgLz4gPGxpbmVhckdyYWRpZW50IGlkPVxcXCJsaW5lYXJHcmFkaWVudDM3NTVcXFwiPiA8c3RvcCBpZD1cXFwic3RvcDM3NTdcXFwiIHN0eWxlPVxcXCJzdG9wLWNvbG9yOiMwMDhjYmU7c3RvcC1vcGFjaXR5OjFcXFwiIG9mZnNldD1cXFwiMFxcXCIgLz4gPHN0b3AgaWQ9XFxcInN0b3AzNzU5XFxcIiBzdHlsZT1cXFwic3RvcC1jb2xvcjojYjJmZmZmO3N0b3Atb3BhY2l0eToxXFxcIiBvZmZzZXQ9XFxcIjFcXFwiIC8+IDwvbGluZWFyR3JhZGllbnQ+IDwvZGVmcz4gPGcgaWQ9XFxcImxheWVyMVxcXCIgdHJhbnNmb3JtPVxcXCJzY2FsZSgwLjExMjk2KSB0cmFuc2xhdGUoLTIzMy4zNTU0NCwtMzkwLjcxODAyKVxcXCI+IDxnIHRyYW5zZm9ybT1cXFwibWF0cml4KDguNDUxOTcyMywwLDAsOC40NTE5NzIzLC0yNzguNDUwMTIsLTQwMy44Mjk3NSlcXFwiIGlkPVxcXCJnMzAyNVxcXCI+IDxwYXRoIGQ9XFxcIm0gNjYuNDMyMTAzLDk3LjQ4ODY3OSBjIC01LjE5NTg0LDUuNjQ2NDMxIC0zLjkzNjYxLDE2LjE2OTAzMSAyLjgxMTA3LDIzLjUwMTg3MSA2Ljc0NzY4LDcuMzMyODUgMTYuNDI4OTgsOC42OTk1NSAyMS42MjQ4MywzLjA1MzEyIDUuMTk1ODUsLTUuNjQ2NDMgMy45NDAyLC0xNi4xNjk0NiAtMi44MDc0OSwtMjMuNTAyMyAtNi43NDc2OCwtNy4zMzI4NjEgLTE2LjQzMjU2LC04LjY5OTEzMSAtMjEuNjI4NDEsLTMuMDUyNjkxIHogbSA0LjcxMTQ5LDIuMzQ1NTMgYyA0LjA4MjU2LC00LjQzNjU5IDExLjU4OSwtMy40NzE1MiAxNi43Njc0MSwyLjE1NTk2MSA1LjE3ODQyLDUuNjI3NSA2LjA2NjQ3LDEzLjc4NDkxIDEuOTgzOTEsMTguMjIxNSAtNC4wODI1Niw0LjQzNjU4IC0xMS41OTA5NywzLjQ3MzY5IC0xNi43NjkzOSwtMi4xNTM4MSAtNS4xNzg0MiwtNS42Mjc1IC02LjA2NDQ5LC0xMy43ODcwNCAtMS45ODE5MywtMTguMjIzNjUxIHpcXFwiIGlkPVxcXCJwYXRoNTg3NFxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNyYWRpYWxHcmFkaWVudDMwMzMpO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTpub25lXFxcIiAvPiA8cmVjdCB3aWR0aD1cXFwiNC4zNDk4NTRcXFwiIGhlaWdodD1cXFwiNC4zNDk4NTRcXFwiIHJ4PVxcXCIwLjc2OTU4OTY2XFxcIiByeT1cXFwiMC43Njk1ODk2NlxcXCIgeD1cXFwiODUuMzgxNTYxXFxcIiB5PVxcXCI5OS40OTM4ODFcXFwiIGlkPVxcXCJyZWN0NTg3NlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmN2YyYTtmaWxsLW9wYWNpdHk6MTtmaWxsLXJ1bGU6bm9uemVybztzdHJva2U6I2Q0NTUwMDtzdHJva2Utd2lkdGg6MC43NDQwMzc5OTtzdHJva2UtbWl0ZXJsaW1pdDo0O3N0cm9rZS1kYXNoYXJyYXk6bm9uZVxcXCIgLz4gPHJlY3Qgd2lkdGg9XFxcIjEwLjI0NTQzNlxcXCIgaGVpZ2h0PVxcXCIxMC4yNDU0MzZcXFwiIHJ4PVxcXCIxLjgxMjY1NDVcXFwiIHJ5PVxcXCIxLjgxMjY1NDVcXFwiIHg9XFxcIjYwLjkyNjU5XFxcIiB5PVxcXCIxMDUuMjI0NVxcXCIgaWQ9XFxcInJlY3Q1ODc4XFxcIiBzdHlsZT1cXFwiZmlsbDojZmY3ZjJhO2ZpbGwtb3BhY2l0eToxO2ZpbGwtcnVsZTpub256ZXJvO3N0cm9rZTojZDQ1NTAwO3N0cm9rZS13aWR0aDowLjc0NDAzNzk5O3N0cm9rZS1taXRlcmxpbWl0OjQ7c3Ryb2tlLWRhc2hhcnJheTpub25lXFxcIiAvPiA8cmVjdCB3aWR0aD1cXFwiNi4xODk3NTMxXFxcIiBoZWlnaHQ9XFxcIjYuMTg5NzUzMVxcXCIgcng9XFxcIjEuMDk1MTEwMlxcXCIgcnk9XFxcIjEuMDk1MTEwMlxcXCIgeD1cXFwiODcuNDA0NzM5XFxcIiB5PVxcXCIxMTguNjM3MDVcXFwiIGlkPVxcXCJyZWN0NTg4MFxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmN2YyYTtmaWxsLW9wYWNpdHk6MTtmaWxsLXJ1bGU6bm9uemVybztzdHJva2U6I2Q0NTUwMDtzdHJva2Utd2lkdGg6MC43NDQwMzc5OTtzdHJva2UtbWl0ZXJsaW1pdDo0O3N0cm9rZS1kYXNoYXJyYXk6bm9uZVxcXCIgLz4gPC9nPiA8L2c+XCIsXG5cdFwiT3BlbkNMXCI6IFwiPGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJhXFxcIiB4MT1cXFwiMjkuNjYyXFxcIiB5MT1cXFwiMTguMDI2XFxcIiB4Mj1cXFwiMjEuNDE5XFxcIiB5Mj1cXFwiMjAuMjM0XFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCJyZWRcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiNmZjZhNmFcXFwiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiYlxcXCIgeDE9XFxcIjI0LjU4OFxcXCIgeTE9XFxcIjkuNzQ4XFxcIiB4Mj1cXFwiMTguNzc2XFxcIiB5Mj1cXFwiMTUuNTZcXFwiIHhsaW5rOmhyZWY9XFxcIiNhXFxcIi8+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJjXFxcIiB4MT1cXFwiMTguNDY2XFxcIiB5MT1cXFwiNi42MTlcXFwiIHgyPVxcXCIxNS45MjRcXFwiIHkyPVxcXCIxMy42MDNcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiNjZmE0MGNcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiNlZGQ0ODBcXFwiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiZFxcXCIgeDE9XFxcIjEzLjE3XFxcIiB5MT1cXFwiNi41MVxcXCIgeDI9XFxcIjEzLjE3XFxcIiB5Mj1cXFwiMTIuOTk3XFxcIiB4bGluazpocmVmPVxcXCIjY1xcXCIvPjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiZVxcXCIgeDE9XFxcIjguODA4XFxcIiB5MT1cXFwiOC40ODZcXFwiIHgyPVxcXCIxMC45ODhcXFwiIHkyPVxcXCIxMy4xNjFcXFwiIHhsaW5rOmhyZWY9XFxcIiNjXFxcIi8+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJmXFxcIiB4MT1cXFwiNS41MDVcXFwiIHkxPVxcXCIxMS40NzdcXFwiIHgyPVxcXCI4LjU0NlxcXCIgeTI9XFxcIjE0LjUxOVxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiIzExYTExOVxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiIzM3YWUzZFxcXCIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJnXFxcIiB4MT1cXFwiMy42MzlcXFwiIHkxPVxcXCIxNC4yODVcXFwiIHgyPVxcXCI2Ljg4M1xcXCIgeTI9XFxcIjE2LjE1OFxcXCIgeGxpbms6aHJlZj1cXFwiI2ZcXFwiLz48bGluZWFyR3JhZGllbnQgaWQ9XFxcImhcXFwiIHgxPVxcXCIyLjI2NVxcXCIgeTE9XFxcIjE3Ljc5OVxcXCIgeDI9XFxcIjUuMzc5XFxcIiB5Mj1cXFwiMTguOTMzXFxcIiB4bGluazpocmVmPVxcXCIjZlxcXCIvPjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiaVxcXCIgeDE9XFxcIjJcXFwiIHkxPVxcXCIyMS42MTRcXFwiIHgyPVxcXCI0LjgzM1xcXCIgeTI9XFxcIjIxLjYxNFxcXCIgeGxpbms6aHJlZj1cXFwiI2ZcXFwiLz48bGluZWFyR3JhZGllbnQgaWQ9XFxcImpcXFwiIHgxPVxcXCIyMC42NjJcXFwiIHkxPVxcXCIxOC45NDlcXFwiIHgyPVxcXCIxOC4wMjZcXFwiIHkyPVxcXCIxNy40MjhcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjAuNVxcXCIgc3RvcC1jb2xvcj1cXFwiIzY0NjQ2NFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiI2NiY2JjYlxcXCIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJrXFxcIiB4MT1cXFwiMTYuMDIxXFxcIiB5MT1cXFwiMjUuMjY0XFxcIiB4Mj1cXFwiMTYuMDIxXFxcIiB5Mj1cXFwiMjIuNjkxXFxcIiB4bGluazpocmVmPVxcXCIjalxcXCIvPjwvZGVmcz48dGl0bGU+ZmlsZV90eXBlX29wZW5jbDwvdGl0bGU+PHBhdGggZD1cXFwiTTI3LjgyOCwxMy41NzRhMTQuNjc2LDE0LjY3NiwwLDAsMSwuODM1LDEuNTQyQTE0Ljk2NCwxNC45NjQsMCwwLDEsMjkuOTIsMjIuOUgyMi4xMzNhMTAuMzc3LDEwLjM3NywwLDAsMC0uOTY3LTQuNDI0WlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNhKVxcXCIvPjxwYXRoIGQ9XFxcIk0xNy43NTMsMTQuNDNhMTAuMDc0LDEwLjA3NCwwLDAsMSwyLjc3MiwyLjg3OGw2LjI3My01LjJhMTUuNTQsMTUuNTQsMCwwLDAtNC45ODgtNC4xNVpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjYilcXFwiLz48cGF0aCBkPVxcXCJNMTQuNzgxLDEzLjA4NmE4LjgyNyw4LjgyNywwLDAsMSwyLjM3Ni45NjZMMjAuNjY2LDcuNDNhMTIuNywxMi43LDAsMCwwLTQuNjQ1LS45NTJaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2MpXFxcIi8+PHBhdGggZD1cXFwiTTE0LjM2NCwxM2wuNjEyLTYuNDg4YTEyLjQ2LDEyLjQ2LDAsMCwwLTMuNjExLjgxM2wuNTA3LDUuNjM4QTcuMjE5LDcuMjE5LDAsMCwxLDE0LjM2NCwxM1xcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNkKVxcXCIvPjxwYXRoIGQ9XFxcIk0xMC45NDgsMTMuMTc5bC0uNjgzLTUuMzczQTE0LjU4OCwxNC41ODgsMCwwLDAsNy43NzMsOS4zNzlsMS43NCw0LjQyYTcuNTE4LDcuNTE4LDAsMCwxLDEuNDM1LS42MTlcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjZSlcXFwiLz48cGF0aCBkPVxcXCJNOC44NiwxNC4yMDYsNi40NzQsMTAuNTExYy0uNDUzLjQ0LS43OS44Mi0xLjAwNiwxLjA3NHEtLjIyNy4yNjctLjQzNi41MzhMNy40OCwxNS4zODdhOC44Nyw4Ljg3LDAsMCwxLDEuMzgtMS4xODJcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjZilcXFwiLz48cGF0aCBkPVxcXCJNNy4wNDYsMTUuODc1LDQuMzM1LDEzLjExMmExNC4yNTksMTQuMjU5LDAsMCwwLTEuMjUsMi40MjlsMy4wMDcsMS43MWE5LjgyNiw5LjgyNiwwLDAsMSwuOTU0LTEuMzc2XFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2cpXFxcIi8+PHBhdGggZD1cXFwiTTUuNTI3LDE4LjM5M2wtMi43Ny0xLjk0NWExNS40NTIsMTUuNDUyLDAsMCwwLS42MywyLjgzbDIuOTA2LjYwN2ExMC4zNDMsMTAuMzQzLDAsMCwxLC40OTQtMS40OTJcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjaClcXFwiLz48cGF0aCBkPVxcXCJNNC44MzMsMjAuOWExMC42ODQsMTAuNjg0LDAsMCwwLS4xLDJIMi4wOTNhMTQuMzMzLDE0LjMzMywwLDAsMS0uMDY0LTIuNTczWlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNpKVxcXCIvPjxwYXRoIGQ9XFxcIk0yMi41NTEsMTIuNDc4LDE0Ljc1MSwyMy4xQTEuNTQ0LDEuNTQ0LDAsMCwxLDE3LjUsMjQuNDI4WlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNqKVxcXCIvPjxwYXRoIGQ9XFxcIk0xNi4wMjEsMjUuNTIyYTEuNTQ0LDEuNTQ0LDAsMSwxLDEuMDkyLS40NTJBMS41MzMsMS41MzMsMCwwLDEsMTYuMDIxLDI1LjUyMlpcXFwiIHN0eWxlPVxcXCJmaWxsOiM2NDY0NjRcXFwiLz48cGF0aCBkPVxcXCJNMTcuMzA4LDIzLjk3OGExLjI4NywxLjI4NywwLDEsMS0uMzc3LS45MUExLjI4MywxLjI4MywwLDAsMSwxNy4zMDgsMjMuOTc4WlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNrKVxcXCIvPlwiLFxuXHRcIlBhc2NhbFwiOiBcIjxkZWZzPjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiYVxcXCIgeDE9XFxcIjE2XFxcIiB5MT1cXFwiLTAuNDQzXFxcIiB4Mj1cXFwiMTZcXFwiIHkyPVxcXCIyMi4wNDJcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjAuMDIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjZmYwYzE1XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjOWEwYzBmXFxcIi8+PC9saW5lYXJHcmFkaWVudD48L2RlZnM+PHRpdGxlPmZpbGVfdHlwZV9kZWxwaGk8L3RpdGxlPjxjaXJjbGUgY3g9XFxcIjE2XFxcIiBjeT1cXFwiMTZcXFwiIHI9XFxcIjE0XFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2EpXFxcIi8+PHBhdGggZD1cXFwiTTI3LjU0NSwxNi4yNDNINC45MjRhLjkxNC45MTQsMCwwLDAtMS4wOTIuODJxLjAzMy40MjkuMS44NDlhMTIuNCwxMi40LDAsMCwwLDI0LjUzMiwwcS4wNzUtLjUuMTA4LTEuMDIxQzI4LjQ3OCwxNi41MjMsMjguMjExLDE2LjIwNywyNy41NDUsMTYuMjQzWlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmNjQ0M1xcXCIvPjxwb2x5bGluZSBwb2ludHM9XFxcIjE4LjQ4IDExLjY0IDIzLjcwNyA3LjI2NiAxOS43ODcgNS44OCAxNiAxMS4wNTNcXFwiIHN0eWxlPVxcXCJmaWxsOiNmYWU3ZTM7ZmlsbC1ydWxlOmV2ZW5vZGRcXFwiLz48cG9seWxpbmUgcG9pbnRzPVxcXCIxNS42OCAxMS4wMjYgMTguNjQgNS44OCAxNC44NTMgNS44OCAxMy4zMDcgMTEuMjkzXFxcIiBzdHlsZT1cXFwiZmlsbDojZmFlN2UzO2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PHBvbHlsaW5lIHBvaW50cz1cXFwiMTMuMDQgMTEuMzczIDEzLjYgNi43MDYgMTAuNTg3IDcuOTYgMTEuMDEzIDEyLjc2XFxcIiBzdHlsZT1cXFwiZmlsbDojZmFlN2UzO2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PHBvbHlsaW5lIHBvaW50cz1cXFwiMTAuNzQ3IDEzIDkuNzg3IDguNzYgNy43MDcgMTAuODQgOS42NTMgMTQuNjhcXFwiIHN0eWxlPVxcXCJmaWxsOiNmYWU3ZTM7ZmlsbC1ydWxlOmV2ZW5vZGRcXFwiLz48cG9seWxpbmUgcG9pbnRzPVxcXCI5LjM4NyAxNS4wNTMgNy40OTMgMTIuMzc2IDYuNjQgMTQuNDY2IDkuMDQgMTYuNTE3XFxcIiBzdHlsZT1cXFwiZmlsbDojZmFlN2UzO2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PHBvbHlsaW5lIHBvaW50cz1cXFwiOS4wNCAxNi43NTcgNi42NCAxNS4yMTMgNi40OCAxNy40IDkuMiAxOC4zMzNcXFwiIHN0eWxlPVxcXCJmaWxsOiNmYWU3ZTM7ZmlsbC1ydWxlOmV2ZW5vZGRcXFwiLz48cG9seWxpbmUgcG9pbnRzPVxcXCI5LjIyNyAxOC44NDYgNi42NCAxOC4wNCA3LjIyNyAxOS44IDkuNTQ3IDE5LjhcXFwiIHN0eWxlPVxcXCJmaWxsOiNmYWU3ZTM7ZmlsbC1ydWxlOmV2ZW5vZGRcXFwiLz48cG9seWxpbmUgcG9pbnRzPVxcXCI5LjcwNyAyMC4wOTMgNy43MDcgMjAuMzg2IDguNjI3IDIxLjc0NiAxMC4yNjcgMjFcXFwiIHN0eWxlPVxcXCJmaWxsOiNmYWU3ZTM7ZmlsbC1ydWxlOmV2ZW5vZGRcXFwiLz48cGF0aCBkPVxcXCJNMjAuMDIzLDEzLjA4OWE2LjYxLDYuNjEsMCwwLDAtNC41My0yQTYuMjkzLDYuMjkzLDAsMCwwLDExLjMsMjIuMDdsNC45NDEuMTI5LTIuMDgtNC4xNlpcXFwiIHN0eWxlPVxcXCJmaWxsOiNlZWU7ZmlsbC1ydWxlOmV2ZW5vZGRcXFwiLz48cGF0aCBkPVxcXCJNMTYuNSwyMi4zNjZsLTUuMjY3LS4xMzgtLjA0NC0uMDM5YTYuNDUzLDYuNDUzLDAsMCwxLDQuMy0xMS4yNjQsNi43ODcsNi43ODcsMCwwLDEsNC42NDMsMi4wNWwuMTIzLjEyMy01LjksNC45ODJabS01LjE0LS40NTUsNC42MTYuMTIxTDEzLjk2MSwxOGw1LjgyNS00LjkxOWE2LjQzLDYuNDMsMCwwLDAtNC4yOTItMS44MzUsNi4xMzMsNi4xMzMsMCwwLDAtNC4xMzEsMTAuNjY3WlxcXCIgc3R5bGU9XFxcImZpbGw6I2VlNGIyZVxcXCIvPjxwYXRoIGQ9XFxcIk0xMi4wMTMsMjAuNDkzYy00LjE3My01LjgxMywyLjEwOS04LjE3MiwyLjQ3OC04LjQ1My40NTEtLjM0NC03LjU5LDEuNzg1LTMuMjI2LDguODhaXFxcIiBzdHlsZT1cXFwiZmlsbDojZjA0ZTMxO2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIyMC43MiAxMi42IDEzLjUyIDE3LjU2NyAxMy43MzMgMTguNTczIDIxLjQ2NyAxNy4wMjYgMjAuNzIgMTIuNlxcXCIgc3R5bGU9XFxcImZpbGw6I2VlZTtmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwYXRoIGQ9XFxcIk0xMy42MSwxOC43NjEsMTMuMzQxLDE3LjVsNy40OTUtNS4xNy44MTQsNC44MjhabS4wODktMS4xMjMuMTU4Ljc0N0wyMS4yODMsMTYuOSwyMC42LDEyLjg3NFpcXFwiIHN0eWxlPVxcXCJmaWxsOiNlZTRiMmVcXFwiLz48cGF0aCBkPVxcXCJNMTUuNzIzLDIxLjMxOWMtMy45My0uNjY4LTQuMjgzLjQyOC00LjI4My40MjhMMTAuMjY3LDI0LjQ0czEuMTItLjkwNyw1LjQ5MywwbC43Ni0xLjM4OFpcXFwiIHN0eWxlPVxcXCJmaWxsOiNkZDBjMTM7ZmlsbC1ydWxlOmV2ZW5vZGRcXFwiLz48cGF0aCBkPVxcXCJNMTQuMTIyLDIxLjZjLS4wMi0uMi0xLjEtLjMxOS0xLjY3Ny0uMTIzLS43MzIuMjQ5LTEuMjE5LDEuMTQyLTEuMDQ1LDEuMjEzYTEuOTc1LDEuOTc1LDAsMCwxLDEuMTI1LS45ODZDMTMuNDQ3LDIxLjQ5MywxNC4xNDIsMjEuOCwxNC4xMjIsMjEuNlpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZjZlNGY7ZmlsbC1ydWxlOmV2ZW5vZGRcXFwiLz48cGF0aCBkPVxcXCJNMTUuNTIsMTguNjA2YTExLjEsMTEuMSwwLDAsMCwxLjU0NywxLjQ4Nyw2LjksNi45LDAsMCwxLDIuNzIsNC4xMDdjLS4xMDcsMS4wNjctMS45NzMsMS43Ni0xLjk3MywxLjc2bC0zLjMwNy03LjE5NFpcXFwiIHN0eWxlPVxcXCJmaWxsOiNlZWU7ZmlsbC1ydWxlOmV2ZW5vZGRcXFwiLz48cGF0aCBkPVxcXCJNMTcuNzMsMjYuMTYxbC0zLjQ1Ny03LjUyMSwxLjMyLS4yMDguMDU3LjA4MWExMC44NjksMTAuODY5LDAsMCwwLDEuNTEyLDEuNDUxLDcsNywwLDAsMSwyLjc4Miw0LjIwN2wwLC4wMjIsMCwuMDIyYy0uMTE1LDEuMTUzLTIsMS44NjQtMi4wNzcsMS44OTRabS0yLjk5LTcuMjcsMy4xNTUsNi44NjNjLjQxNC0uMTc4LDEuNjMtLjc2MywxLjczLTEuNTQ4YTYuNzkzLDYuNzkzLDAsMCwwLTIuNjQ4LTMuOTgxbC0uMDEtLjAwN2ExMS45NCwxMS45NCwwLDAsMS0xLjUxNy0xLjQzOVpcXFwiIHN0eWxlPVxcXCJmaWxsOiNlZTRiMmVcXFwiLz48cGF0aCBkPVxcXCJNMjgsMTIuNzQyYy4wMjUuMzk0LjAzNC43OTIuMDI1LDEuMTk0YTEzLjk0NiwxMy45NDYsMCwwLDEtMTkuOSwxMi4zQTEyLjg2LDEyLjg2LDAsMCwwLDI4LDEyLjc0MlpcXFwiIHN0eWxlPVxcXCJmaWxsOiNlYWUwZGY7ZmlsbC1ydWxlOmV2ZW5vZGQ7b3BhY2l0eTowLjJcXFwiLz48cGF0aCBkPVxcXCJNMi4zODMsMTMuODkzQTEzLjk0MSwxMy45NDEsMCwwLDEsMjUuNyw1Ljgzcy01LjAwOSw1Ljk3OS0xMC41ODQsNy45MDdTMi4zODMsMTMuODkzLDIuMzgzLDEzLjg5M1pcXFwiIHN0eWxlPVxcXCJmaWxsOiNlYWUwZGY7b3BhY2l0eTowLjJcXFwiLz48cGF0aCBkPVxcXCJNMy42MTgsMTguNjk0Yy0uMDQ0LS4zOTItLjA3Mi0uNzktLjA4My0xLjE5MUMzLjMyOSw5LjgwNywxMC4wMTIsNC4yLDE3LjcwOCwzLjk5MWExNC4yLDE0LjIsMCwwLDEsNS43MTksMS40NTgsMTMuMTI4LDEzLjEyOCwwLDAsMC03LjE4OC0yLjM2OWMtNy4xLjE5LTEzLjMwNiw1LjMtMTMuMTE2LDEyLjRBMTIuODczLDEyLjg3MywwLDAsMCwzLjYxOCwxOC42OTRaXFxcIiBzdHlsZT1cXFwiZmlsbDojZWFlMGRmO2ZpbGwtcnVsZTpldmVub2RkO29wYWNpdHk6MC4yXFxcIi8+XCIsXG5cdFwiUGVybFwiOiBcIjxwYXRoIGQ9XFxcIk0yOS4yNSwxMy44YTYuODg4LDYuODg4LDAsMCwwLS43NDItMi4yNjgsMS4wMTEsMS4wMTEsMCwwLDAtLjE3Mi0uMjMzLDkuNDcxLDkuNDcxLDAsMCwxLTEuNzI1LTIuNCw4LjYzMiw4LjYzMiwwLDAsMC0xLjM5NS0yLjM4MkE2LjkwNiw2LjkwNiwwLDAsMSwyNC4xLDQuNjQ0LDQuNTcyLDQuNTcyLDAsMCwwLDIxLjk5LDEuNzI3YTEuMDA5LDEuMDA5LDAsMCwwLS4xLS4wNTQsOC44ODYsOC44ODYsMCwwLDAtMS4zLS40NjgsMS4wMjIsMS4wMjIsMCwwLDAtLjI2My0uMDM1LDEuMDA5LDEuMDA5LDAsMCwwLS4yLjAyMSw1LjYwNyw1LjYwNywwLDAsMS0uODA3LjEwN2MtLjA1LDAtLjEtLjAwNi0uMTQ5LS4wMDZhMi44NDIsMi44NDIsMCwwLDAtMS40MTYuNDUzYy0uMDk0LjA1Mi0uMTg4LjEwNi0uMjg0LjE0OXEtLjA0MS4wMTgtLjA3OC4wMzlBMS42MzcsMS42MzcsMCwwLDEsMTcuMDY2LDJhMy4xMDksMy4xMDksMCwwLDAtLjc3Mi4xOTQsMSwxLDAsMCwwLS41MDguNDgzLDIuMTg0LDIuMTg0LDAsMCwxLS40NjkuNUE0LjM4Miw0LjM4MiwwLDAsMCwxNC41NTUsNGEuOTY0Ljk2NCwwLDAsMC0uMTE2LjIzNCw0LjY4Nyw0LjY4NywwLDAsMS0xLjU3NCwyLjIsNi40NzEsNi40NzEsMCwwLDAtLjguNjEzLDIuNzM0LDIuNzM0LDAsMCwwLS42MjctMS42MzRjLS4wMTctLjAxOS0uMDM1LS4wMzgtLjA1My0uMDU2bDAtLjAxNGEyLjM3OCwyLjM3OCwwLDAsMC0uMTM1LS41ODYsMSwxLDAsMCwwLS4xMzItLjIzNkE1LjE2Nyw1LjE2NywwLDAsMCw5LjUxMSwzLjExM2EuOTg4Ljk4OCwwLDAsMC0uMzQ2LS4xMTksMS41LDEuNSwwLDAsMS0uMTQ4LS4wNzcsMi4wNiwyLjA2LDAsMCwwLTEtLjMxMSwxLjQ3NiwxLjQ3NiwwLDAsMC0uNjgxLjE2Ni45ODcuOTg3LDAsMCwwLS4yNzQuMjA2LDEuMzI4LDEuMzI4LDAsMCwxLS4xMjUuMDYzLDEuOSwxLjksMCwwLDAtLjkwOC43NzgsMi41MzksMi41MzksMCwwLDAtLjU0MS4xMDYsMS42NTYsMS42NTYsMCwwLDEtLjM4My4wNTcsMi4zLDIuMywwLDAsMC0xLjUuNTQ1bC0uMTA2LjFhMi41MzMsMi41MzMsMCwwLDAtMSwyLjUyNSwxLjA4LDEuMDgsMCwwLDAsLjA2OC4xNjVBMi4yOTQsMi4yOTQsMCwwLDAsNC40NDYsOC40NzhjLS4xLjIzOC0uMi40NzMtLjMxNC43YTEuMDA5LDEuMDA5LDAsMCwwLS4wODcuMjkzQTExLjA1MiwxMS4wNTIsMCwwLDAsNCwxMi4wMzljMCwuMDIsMCwuMDQuMDA3LjA2YTUuMjc4LDUuMjc4LDAsMCwxLC4wNDEuNTQ3LDIuOTI2LDIuOTI2LDAsMCwwLC45MzEsMi40Yy4wMTcuMDE0LjAzNC4wMjYuMDUyLjAzOWwuMDA4LjAzMWEyLjgsMi44LDAsMCwwLC4xNTEuNDQ3LDEuMTg1LDEuMTg1LDAsMCwwLC42MzIuNjE3LDEuMjg5LDEuMjg5LDAsMCwwLC4yNDguNTcxLDEsMSwwLDAsMCwuMzMyLjI3OSwyLjQ1MywyLjQ1MywwLDAsMCwuNDY1LjE3NmwuMDY0LjAxOGEuOTc2Ljk3NiwwLDAsMCwuMTkyLjE3MUE1Ljg3OSw1Ljg3OSwwLDAsMSw3Ljg3MywxOGExLjEzLDEuMTMsMCwwLDAsMS4zNTEuNDI3LDEuNSwxLjUsMCwwLDAsLjc2NS4yMTUsMS40MjEsMS40MjEsMCwwLDAsLjYyNC0uMTQ1bC4xMTQtLjAyNmMuMDI0LjQwOC4wMzMuODE3LjAyOCwxLjIyM2ExLjA0MywxLjA0MywwLDAsMCwuMDI2LjI0MiwxMC43NDQsMTAuNzQ0LDAsMCwxLC4yNjYsMS44MjguOTMxLjkzMSwwLDAsMCwuMDMxLjIsOC40OTIsOC40OTIsMCwwLDEsLjI2OCwxLjgxNWMwLC4wMzEsMCwuMDYzLjAwOC4wOTRhNi4wODMsNi4wODMsMCwwLDEtLjYxLDMuNTc1Ljk5NC45OTQsMCwwLDAtLjA4OS4yNjEsMS4wOTMsMS4wOTMsMCwwLDAtLjIzNC4wNzlsLS4wNS4wMjJhMi4wMTMsMi4wMTMsMCwwLDAtMS4yLDEuMDY1LDEuMzIyLDEuMzIyLDAsMCwwLC4wNzQsMS4wNTQsMSwxLDAsMCwwLC4zMjQuMzcxLDMuNTQ3LDMuNTQ3LDAsMCwwLDMuNTA5LjMsMS41NDYsMS41NDYsMCwwLDAsLjgyOS0xLjY1M2wtLjAwNS0uMDY3YS45ODkuOTg5LDAsMCwwLC4wNTYtLjE1OCwxMS4xODYsMTEuMTg2LDAsMCwwLC4yODgtMi4wNjgsOC45MzksOC45MzksMCwwLDEsLjI1OS0xLjgyMiw0LjcyNyw0LjcyNywwLDAsMCwuMzg5LTEuNTg4bC4wNDIuMDQ4YTEyLjY2MSwxMi42NjEsMCwwLDAsMS4yNTUsMS4xMjksMTAuMywxMC4zLDAsMCwxLDEuMS45ODlsLS4wMTEuMDM4YS41MzIuNTMyLDAsMCwxLS4zNDIuMzU5bC0uMDQ5LjAxN2ExLjkyMSwxLjkyMSwwLDAsMC0xLjE4NCwxLjMzNCwxLjMxMywxLjMxMywwLDAsMCwuNDUyLDEuMjM0LDEsMSwwLDAsMCwuNDQxLjIyMiw0LjkwOCw0LjkwOCwwLDAsMCwyLjczNS0uMTgxLDEuNTU2LDEuNTU2LDAsMCwwLC4yNjYtLjEyNCwxLjQxMSwxLjQxMSwwLDAsMCwuOTcuMzcyLDIuMzI2LDIuMzI2LDAsMCwwLDEtLjI3NGMuMDQ5LS4wMjMuMS0uMDQ1LjE0LS4wNjJhMSwxLDAsMCwwLC42MzctLjg2NCw0LjU1Myw0LjU1MywwLDAsMC0uNDY4LTIuMzQzLDEuNTYsMS41NiwwLDAsMC0uNTEtLjYsMTAuOCwxMC44LDAsMCwxLDEuMy0yLjE1LDIuMTkzLDIuMTkzLDAsMCwwLC40NTEtMi4wMjYsMi41MTksMi41MTksMCwwLDEtLjA0My0uMzk0LDEuMDQ2LDEuMDQ2LDAsMCwwLDAtLjE0OCw1Ljc1Niw1Ljc1NiwwLDAsMSwuMDEyLTEuMjc5LDcuMTYxLDcuMTYxLDAsMCwwLC45NTEsMS43OTMsNy44OTIsNy44OTIsMCwwLDEsLjEzMywxLjEsMTAuNzMzLDEwLjczMywwLDAsMCwuMTMzLDEuMTg2LDkuMzYsOS4zNiwwLDAsMS0uMjI0LDMuOSwxLDEsMCwwLDAtLjAzMi4zNGgwYS45OC45OCwwLDAsMC0uMS4xNzksMi4yMzgsMi4yMzgsMCwwLDAtLjMxMiwxLjIzNSwxLjAwNywxLjAwNywwLDAsMCwuMDM5LjIsMS4zMTUsMS4zMTUsMCwwLDAsMS4zMjguOTYzYy4wODYsMCwuMTc3LS4wMDYuMjY4LS4wMTRsLjAxOSwwLC4wMzguMDEzYTIuMTA5LDIuMTA5LDAsMCwwLDIuNTE3LTEuMDg4LDEsMSwwLDAsMCwuMDU4LS43MzUsNS4yODUsNS4yODUsMCwwLDEtLjIwOC0xLjAyNywxLjAxMSwxLjAxMSwwLDAsMC0uMDQ2LS4yMTcsNi40Nyw2LjQ3LDAsMCwxLS4yMjEtMy4yMiwxLjExMiwxLjExMiwwLDAsMCwuMDE1LS4xMTQsMy45MDcsMy45MDcsMCwwLDEsLjA3NC0uNDQzLDIuNzM4LDIuNzM4LDAsMCwwLS4xOTMtMi4xLDQuMzM5LDQuMzM5LDAsMCwxLC4wMjEtLjQ3NmMuMDExLS4xNDcuMDIzLS4zLjAyNy0uNDYzYTEuNTksMS41OSwwLDAsMCwuODYyLS44NTEsMTIuODMsMTIuODMsMCwwLDAsLjk0Ny0yLjIzLDEuNzE5LDEuNzE5LDAsMCwwLC4xNzItMS4xODUsMS4yMzQsMS4yMzQsMCwwLDAsLjExMS0uMjUxQTEuNDY3LDEuNDY3LDAsMCwwLDI5LjI1LDEzLjhaTTE4Ljg2MywyMi43NjhjLS4wMjYsMC0uMDUzLS4wMDgtLjA4LS4wMWwtLjAyNCwwYTIuNzQ4LDIuNzQ4LDAsMCwxLS4yMzYtLjMyM2MtLjA1OS0uMDg4LS4xMTgtLjE3NS0uMTc4LS4yNThhMi4yNTMsMi4yNTMsMCwwLDAsLjIwOC0uMjM0LDEuMjU1LDEuMjU1LDAsMCwwLC42MjktLjMyMUEzLjE4NiwzLjE4NiwwLDAsMSwxOC44NjMsMjIuNzY4WlxcXCIgc3R5bGU9XFxcImZpbGw6I2VkZWRlZFxcXCIvPjxwYXRoIGQ9XFxcIk0xOS4yODksMi4zYy0uNTQ4LS4wNjUtLjk2MS4zLTEuNDE5LjUwNi0uMzY4LjIwNi0uODE1LjE1Mi0xLjE4NS4zMDktLjI4Mi41NzktLjk0MS45MDgtMS4zLDEuNDQzYTUuNyw1LjcsMCwwLDEtMS45NDIsMi42OTQsNS40NjQsNS40NjQsMCwwLDAtMi4zNjgsMy4zOTRjLS4xNDUuMy0uMTIyLjc0Ni0uMjc3LDEtLjUxMS4xNDMtLjIzOS0uNTE2LS4zLS44MjUtLjA3NC0uNDcuMzQxLS43Ny4zNzMtMS4yMjZhMS44MzQsMS44MzQsMCwwLDAsLjIwOS0xLjA1M2MtLjA1Ni0uODE0LjE4OS0xLjgwNy0uMzkzLTIuNDc3LS4zNDktLjItLjIzOS0uNjIzLS4zNjYtLjk0N2E0LjIxNCw0LjIxNCwwLDAsMC0xLjMtMS4xMzljLS40MTktLjA0MS0uODA2LS41NDItMS4yMzItLjMyMy0uMjY2LjMwOS0uNzYzLjMwNS0uOTIyLjcxMy0uMS41MTYtLjY4OC4zNzQtMS4wNjguNS0uNDg4LjE4NS0xLjExOC4wMDYtMS41MTguMzgyLS40MTEuNDEtMS4wMzQuOTYxLS44MzUsMS42MDYuNDU3Ljg4MiwxLjY0NS40MzgsMi4zMTcuOTc0QTE3Ljk5LDE3Ljk5LDAsMCwxLDUuMDM2LDkuNjFhMTAuMDUxLDEwLjA1MSwwLDAsMC0uMDQ0LDIuMzMyYy4xMjMuNzczLS4wODMsMS43NzIuNjA2LDIuMzE5LjM4LjEzNy4zNTcuNTcyLjUuODg3LjEzNC4yOS40MjctLjExMy41NDMuMTkzLjMzOC4xODQuMDM3LjU2MS4yMi44LjI2My4xMzcuNjM5LjEyOC44MjIuNDI2YTYuODQ0LDYuODQ0LDAsMCwxLC45NzUuODA2Yy4yMy40NjcuNTMxLS40NTQuNzgzLS4xMDkuMTcuMjg1LjUwNi41MjIuODE5LjI4NWEyLjk5MywyLjk5MywwLDAsMCwxLjMyNC0uNTU2LDE4LjAzMywxOC4wMzMsMCwwLDEsLjE3MSwyLjcxOCwxMS43MzMsMTEuNzMzLDAsMCwxLC4yOSwyLDkuNDA5LDkuNDA5LDAsMCwxLC4zLDIuMDMsNy4xMTEsNy4xMTEsMCwwLDEtLjcwOSw0LjE2LDEuMDEyLDEuMDEyLDAsMCwxLS44MDcuOGMtLjI5MS4xMy0uOS4zNjYtLjY5Mi43NzZhMi41NDksMi41NDksMCwwLDAsMi41Mi4yMTRjLjUxLS4yNDMuMDczLS44NTguMzM0LTEuMjI2LjM0My0xLjMuMTc0LTIuNjkxLjU3NS0zLjk4NWEzLjc2MiwzLjc2MiwwLDAsMCwuMy0yLjFjLjA3OS0uNDQtLjEwNS0uOTY5LjE4Ny0xLjMyOWExLjgxMywxLjgxMywwLDAsMSwuNDgzLTEuMiwxNC43NjIsMTQuNzYyLDAsMCwwLC4xNDQtMi4wMjYsMy4yMTQsMy4yMTQsMCwwLDEsMS4yNjctLjEyN2MuMDE4LjM3NS0uMjcyLjgxMi0uMTksMS4yMzRBMS45NDgsMS45NDgsMCwwLDEsMTUuNSwyMC4zYTIuODQ5LDIuODQ5LDAsMCwwLC4xNjgsMi4zMDhjLjc4Mi44MzksMS44LDEuNDMyLDIuNTM2LDIuMzI3LjMxNC4yMDUuMi41MTcuMDM4Ljc4NGExLjUyOCwxLjUyOCwwLDAsMS0uOTg3LDEuMDM0Yy0uMzA4LjEyMS0uODA2LjU2Ni0uNDQyLjg4MmEzLjkwNiwzLjkwNiwwLDAsMCwyLjE3OC0uMTQ0Yy40NzYtLjE3MS4zLS43MzguNDg4LTEuMDg4LjMuMjMzLjQyMy43NjUuNzExLDEuMDY5LjMuNDMzLjgwNy4wNzMsMS4xNTYtLjA2MmEzLjU0OSwzLjU0OSwwLDAsMC0uMzcyLTEuODQyYy0uMTY3LS4zNzgtLjgtLjM4NS0uNzctLjg1MmExMS43NjEsMTEuNzYxLDAsMCwxLDEuNzEyLTNjLjUxLS40NzkuMTMtMS4xOTEuMTU4LTEuOEE2Ljc2NSw2Ljc2NSwwLDAsMSwyMy4xNTgsMTUuNWExNS44ODksMTUuODg5LDAsMCwwLC42OTIsMi4xNCw2LjIzLDYuMjMsMCwwLDAsMS4xLDIuMjQ2Yy4yMzcuODExLjE3NiwxLjcxLjMzMSwyLjU1MWExMC40NCwxMC40NCwwLDAsMS0uMjQyLDQuMzQ3Yy4wNC41MTgtLjQ1Ny45LS40MTUsMS40MDguMTQuNDY5LjcuMDkzLjk5LjI5YTEuMTEsMS4xMSwwLDAsMCwxLjMyNC0uNTcyLDYuMjEyLDYuMjEyLDAsMCwxLS4yNDctMS4yMjMsNy40NTQsNy40NTQsMCwwLDEtLjI1NS0zLjcxOWMuMDQ2LS42NjkuNDU3LTEuNS0uMDczLTIuMDcyLS4xNDgtLjYxOS4xLTEuMjg1LS4wNDktMS45MTVhMTIuODc3LDEyLjg3NywwLDAsMS0uMTIyLTQuOTMzYy4wOTMtLjIyNy4wMTMtLjY0OS4yNDctLjc3NWExLjg1MSwxLjg1MSwwLDAsMSwuMzE1LDEuMjMyLDMuNywzLjcsMCwwLDEsLjA3OSwyLjA4MWMtLjQyNC41MzEtLjE2MywxLjI0OC0uMTA5LDEuODUuMDY4LjQyMi41MTYuMTE4LjU4OS0uMTQ0YTExLjg1MSwxMS44NTEsMCwwLDAsLjk0NC0yLjI0MWMuMjY5LS4zNTYuMDE0LS43NywwLTEuMTQyLjQxMy0uMDQ5LjI1Ni0uNTA2LjAzNS0uN2E1LjkzLDUuOTMsMCwwLDAtLjY2Ny0yLjIsMTAuNDY0LDEwLjQ2NCwwLDAsMS0xLjk0MS0yLjcyM2MtLjUyOC0xLjYzOS0yLjA0Mi0yLjcyNi0yLjU1Ni00LjM3OWEzLjU1NiwzLjU1NiwwLDAsMC0xLjY1Mi0yLjMxN0E3Ljg4MSw3Ljg4MSwwLDAsMCwyMC4zMiwyLjE3LDYuNSw2LjUsMCwwLDEsMTkuMjg5LDIuM1ptLjQsMTQuNjZhMzguOTA3LDM4LjkwNywwLDAsMSwuNSw0LjI5MSw0LjE3NSw0LjE3NSwwLDAsMS0uNzYsMi41MTdjLS4xMi40MjUtLjQ4Ni4wMTItLjc1MS0uMDE2LS42NDMtLjAxOC0uODgyLS42ODMtMS4yMzItMS4xMDctLjM2LS4zNDQtLjEtLjguMTMzLTEuMTMxLjI1Mi0uMTc5LjM1LS41NzkuNzA4LS41NDguNC0uMDA3LjMxNi0uNDg3LjI2LS43NDMuMjM4LS4zNjIuMDkyLS44OTIuMzI4LTEuMjgzLjQxOS0uMTgyLjI5NC0uODIuNDQyLTEuMTguMTE1LS4yNTYuMDE3LS43NDkuMzM0LS44NTQuMDM3LS4wMDYuMDQ5LjAxMi4wNDIuMDUyWlxcXCIgc3R5bGU9XFxcImZpbGw6IzNhM2M1YlxcXCIvPlwiLFxuXHRcIlBIUFwiOiBcIjxkZWZzPjxyYWRpYWxHcmFkaWVudCBpZD1cXFwiYVxcXCIgY3g9XFxcIi0xNi4xMTRcXFwiIGN5PVxcXCIyMC41MzJcXFwiIHI9XFxcIjE4LjM4NFxcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcInRyYW5zbGF0ZSgyNi41MiAtOS4zMDcpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjZmZmXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjVcXFwiIHN0b3AtY29sb3I9XFxcIiM0YzZiOTZcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiMyMzFmMjBcXFwiLz48L3JhZGlhbEdyYWRpZW50PjwvZGVmcz48dGl0bGU+ZmlsZV90eXBlX3BocDwvdGl0bGU+PGVsbGlwc2UgY3g9XFxcIjE2XFxcIiBjeT1cXFwiMTZcXFwiIHJ4PVxcXCIxNFxcXCIgcnk9XFxcIjcuMzY1XFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2EpXFxcIi8+PGVsbGlwc2UgY3g9XFxcIjE2XFxcIiBjeT1cXFwiMTZcXFwiIHJ4PVxcXCIxMy40NTNcXFwiIHJ5PVxcXCI2LjgxOFxcXCIgc3R5bGU9XFxcImZpbGw6IzYyODBiNlxcXCIvPjxwYXRoIGQ9XFxcIk0xOC43MjUsMTguMmwuNjY3LTMuNDM0YTEuNzUyLDEuNzUyLDAsMCwwLS4zNzItMS43MTksMi45MjksMi45MjksMCwwLDAtMi0uNTI1SDE1Ljg2N2wuMzMxLTEuN2EuMjE5LjIxOSwwLDAsMC0uMjE1LS4yNmgtMS42YS4yMTkuMjE5LDAsMCwwLS4yMTUuMTc3bC0uNzA5LDMuNjQ2YTIuMDUxLDIuMDUxLDAsMCwwLS40NzctMS4wNTQsMi43ODMsMi43ODMsMCwwLDAtMi4yLS44MDdINy43YS4yMTkuMjE5LDAsMCwwLS4yMTUuMTc3bC0xLjQzNCw3LjM4YS4yMTkuMjE5LDAsMCwwLC4yMTUuMjZINy44NjlhLjIxOS4yMTksMCwwLDAsLjIxNS0uMTc3bC4zNDctMS43ODVoMS4yYTUuMTY3LDUuMTY3LDAsMCwwLDEuNTY4LS4yLDMuMDY4LDMuMDY4LDAsMCwwLDEuMTUtLjY4OSwzLjUzOCwzLjUzOCwwLDAsMCwuNjgtLjg0NGwtLjI4NywxLjQ3NWEuMjE5LjIxOSwwLDAsMCwuMjE1LjI2aDEuNmEuMjE5LjIxOSwwLDAsMCwuMjE1LS4xNzdsLjc4Ny00LjA1MWgxLjA5NGMuNDY2LDAsLjYuMDkzLjY0LjEzM3MuMS4xNjUuMDI1LjU2OWwtLjYzNSwzLjI2NWEuMjE5LjIxOSwwLDAsMCwuMjE1LjI2aDEuNjJBLjIxOS4yMTksMCwwLDAsMTguNzI1LDE4LjJaTTExLjMzLDE1LjM2NmExLjc0OSwxLjc0OSwwLDAsMS0uNTYxLDEuMDkyLDIuMTcxLDIuMTcxLDAsMCwxLTEuMzE1LjMyMUg4Ljc0MmwuNTE1LTIuNjUxaC45MjFjLjY3NywwLC45NDkuMTQ1LDEuMDU5LjI2NkExLjE4MSwxLjE4MSwwLDAsMSwxMS4zMywxNS4zNjZaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+PHBhdGggZD1cXFwiTTI1LjU0NiwxMy4zMzJhMi43ODMsMi43ODMsMCwwLDAtMi4yLS44MDdIMjAuMjU1YS4yMTkuMjE5LDAsMCwwLS4yMTUuMTc3bC0xLjQzNCw3LjM4YS4yMTkuMjE5LDAsMCwwLC4yMTUuMjZoMS42MDhhLjIxOS4yMTksMCwwLDAsLjIxNS0uMTc3bC4zNDctMS43ODVoMS4yYTUuMTY3LDUuMTY3LDAsMCwwLDEuNTY4LS4yLDMuMDY4LDMuMDY4LDAsMCwwLDEuMTUtLjY4OSwzLjQyNSwzLjQyNSwwLDAsMCwxLjA3Ni0xLjkyN0EyLjUxMiwyLjUxMiwwLDAsMCwyNS41NDYsMTMuMzMyWm0tMS42NjcsMi4wMzRhMS43NDksMS43NDksMCwwLDEtLjU2MSwxLjA5MkEyLjE3MSwyLjE3MSwwLDAsMSwyMiwxNi43NzhIMjEuMjlsLjUxNS0yLjY1MWguOTIxYy42NzcsMCwuOTQ5LjE0NSwxLjA1OS4yNjZBMS4xODEsMS4xODEsMCwwLDEsMjMuODc5LDE1LjM2NlpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48cGF0aCBkPVxcXCJNMTAuMTc4LDEzLjkwOGExLjY0NSwxLjY0NSwwLDAsMSwxLjIyMS4zMzgsMS4zNCwxLjM0LDAsMCwxLC4xNDUsMS4xNjEsMS45NDUsMS45NDUsMCwwLDEtLjY0MiwxLjIyM0EyLjM2MSwyLjM2MSwwLDAsMSw5LjQ1NCwxN0g4LjQ3NmwuNi0zLjA4OVpNNi4yNjEsMjAuMTI0SDcuODY5bC4zODEtMS45NjJIOS42MjdhNC45MzEsNC45MzEsMCwwLDAsMS41LS4xOTEsMi44NCwyLjg0LDAsMCwwLDEuMDctLjY0MiwzLjIwNywzLjIwNywwLDAsMCwxLjAxLTEuODA4LDIuMywyLjMsMCwwLDAtLjM4NS0yLjA0NCwyLjU2OCwyLjU2OCwwLDAsMC0yLjAzNS0uNzMySDcuN1pcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMDAwMDRcXFwiLz48cGF0aCBkPVxcXCJNMTQuMzg3LDEwLjc4MmgxLjZMMTUuNiwxMi43NDRoMS40MjFhMi43NjcsMi43NjcsMCwwLDEsMS44NS40NjgsMS41NDgsMS41NDgsMCwwLDEsLjMwNSwxLjUxNmwtLjY2NywzLjQzNEgxNi44OWwuNjM1LTMuMjY1YS44ODYuODg2LDAsMCwwLS4wOC0uNzYsMS4xMjEsMS4xMjEsMCwwLDAtLjgtLjJIMTUuMzdsLS44MjIsNC4yMjhoLTEuNlpcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMDAwMDRcXFwiLz48cGF0aCBkPVxcXCJNMjIuNzI3LDEzLjkwOGExLjY0NSwxLjY0NSwwLDAsMSwxLjIyMS4zMzgsMS4zNCwxLjM0LDAsMCwxLC4xNDUsMS4xNjEsMS45NDUsMS45NDUsMCwwLDEtLjY0MiwxLjIyM0EyLjM2MSwyLjM2MSwwLDAsMSwyMiwxN2gtLjk3OGwuNi0zLjA4OVpNMTguODEsMjAuMTI0aDEuNjA4bC4zODEtMS45NjJoMS4zNzdhNC45MzEsNC45MzEsMCwwLDAsMS41LS4xOTEsMi44NCwyLjg0LDAsMCwwLDEuMDctLjY0MiwzLjIwNywzLjIwNywwLDAsMCwxLjAxLTEuODA4LDIuMywyLjMsMCwwLDAtLjM4NS0yLjA0NCwyLjU2OCwyLjU2OCwwLDAsMC0yLjAzNS0uNzMySDIwLjI0NFpcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMDAwMDRcXFwiLz5cIixcblx0XCJQTC9TUUxcIjogXCI8cGF0aCBkPVxcXCJNOC41NjIsMTUuMjU2QTIxLjE1OSwyMS4xNTksMCwwLDAsMTYsMTYuNDQ5YTIxLjE1OSwyMS4xNTksMCwwLDAsNy40MzgtMS4xOTRjMS44NjQtLjcyNywyLjUyNS0xLjUzNSwyLjUyNS0yVjkuN2ExMC4zNTcsMTAuMzU3LDAsMCwxLTIuMDg0LDEuMDc2QTIyLjI5MywyMi4yOTMsMCwwLDEsMTYsMTIuMDc4YTIyLjM2LDIyLjM2LDAsMCwxLTcuODc5LTEuM0ExMC4yOCwxMC4yOCwwLDAsMSw2LjAzNyw5Ljd2My41NUM2LjAzNywxMy43MjQsNi43LDE0LjUyOCw4LjU2MiwxNS4yNTZaXFxcIiBzdHlsZT1cXFwiZmlsbDpyZWRcXFwiLz48cGF0aCBkPVxcXCJNOC41NjIsMjEuOTYxYTE1LjYxMSwxNS42MTEsMCwwLDAsMi42Ljc0MUEyNC45LDI0LjksMCwwLDAsMTYsMjMuMTU1YTI0LjksMjQuOSwwLDAsMCw0LjgzOC0uNDUyLDE1LjYxNCwxNS42MTQsMCwwLDAsMi42LS43NDFjMS44NjQtLjcyNywyLjUyNS0xLjUzNSwyLjUyNS0ydi0zLjM5YTEwLjcwNiwxMC43MDYsMCwwLDEtMS42OTIuODI1QTIzLjQ5LDIzLjQ5LDAsMCwxLDE2LDE4Ljc0YTIzLjQ5LDIzLjQ5LDAsMCwxLTguMjcxLTEuMzQ4LDEwLjgyOSwxMC44MjksMCwwLDEtMS42OTItLjgyNVYxOS45NkM2LjAzNywyMC40MjYsNi43LDIxLjIzMSw4LjU2MiwyMS45NjFaXFxcIiBzdHlsZT1cXFwiZmlsbDpyZWRcXFwiLz48cGF0aCBkPVxcXCJNMTYsMzBjNS41LDAsOS45NjMtMS43NDQsOS45NjMtMy44OTRWMjMuMjY5YTEwLjUsMTAuNSwwLDAsMS0xLjUzNS43NjJsLS4xNTcuMDYzQTIzLjQ4NywyMy40ODcsMCwwLDEsMTYsMjUuNDQ1YTIzLjQyMiwyMy40MjIsMCwwLDEtOC4yNzEtMS4zNTFjLS4wNTQtLjAyLS4xMDYtLjA0My0uMTU3LS4wNjNhMTAuNSwxMC41LDAsMCwxLTEuNTM1LS43NjJ2Mi44MzdDNi4wMzcsMjguMjU2LDEwLjUsMzAsMTYsMzBaXFxcIiBzdHlsZT1cXFwiZmlsbDpyZWRcXFwiLz48ZWxsaXBzZSBjeD1cXFwiMTZcXFwiIGN5PVxcXCI1Ljg5NFxcXCIgcng9XFxcIjkuOTYzXFxcIiByeT1cXFwiMy44OTRcXFwiIHN0eWxlPVxcXCJmaWxsOnJlZFxcXCIvPlwiLFxuXHRcIlBsYWluIHRleHRcIjogXCI8cGF0aCBkPVxcXCJNMjIuMDM4LDJINi4zNzVhMS43NTUsMS43NTUsMCwwLDAtMS43NSwxLjc1djI0LjVBMS43NTUsMS43NTUsMCwwLDAsNi4zNzUsMzBoMTkuMjVhMS43NTUsMS43NTUsMCwwLDAsMS43NS0xLjc1VjYuODU2Wm0uNTI1LDIuODQ0LDEuNjYzLDEuNTMxSDIyLjU2M1pNNi4zNzUsMjguMjVWMy43NUgyMC44MTNWOC4xMjVoNC44MTNWMjguMjVaXFxcIiBzdHlsZT1cXFwiZmlsbDojYzJjMmMyXFxcIi8+PHJlY3QgeD1cXFwiOC4xMjVcXFwiIHk9XFxcIjE1LjA5N1xcXCIgd2lkdGg9XFxcIjEzLjA3NlxcXCIgaGVpZ2h0PVxcXCIxLjc1XFxcIiBzdHlsZT1cXFwiZmlsbDojODI5ZWMyXFxcIi8+PHJlY3QgeD1cXFwiOC4xMjVcXFwiIHk9XFxcIjI0LjQzOVxcXCIgd2lkdGg9XFxcIjkuNzYyXFxcIiBoZWlnaHQ9XFxcIjEuNzVcXFwiIHN0eWxlPVxcXCJmaWxsOiM4MjllYzJcXFwiLz48cmVjdCB4PVxcXCI4LjEyNVxcXCIgeT1cXFwiMTkuNzYzXFxcIiB3aWR0aD1cXFwiMTUuNzVcXFwiIGhlaWdodD1cXFwiMS43NVxcXCIgc3R5bGU9XFxcImZpbGw6IzgyOWVjMlxcXCIvPjxyZWN0IHg9XFxcIjguMTI1XFxcIiB5PVxcXCIxMC4yM1xcXCIgd2lkdGg9XFxcIjE1Ljc1XFxcIiBoZWlnaHQ9XFxcIjEuNzVcXFwiIHN0eWxlPVxcXCJmaWxsOiM4MjllYzJcXFwiLz5cIixcblx0XCJQbGFudFVNTFwiOiBcIjxkZWZzPjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiYVxcXCIgeDE9XFxcIi0zMy40MjNcXFwiIHkxPVxcXCItMjUwLjkxMVxcXCIgeDI9XFxcIi0zMy4zNTNcXFwiIHkyPVxcXCItMjUwLjg1OFxcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcIm1hdHJpeCgzNy4xMzQsIDI2LjAwMSwgMTMuNTc1LCAtMTkuMzg3LCA0NjczLjQ3MywgLTM5ODIuMDE5KVxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiIzc2NzY3NlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJiXFxcIiB4MT1cXFwiLTMyLjEwN1xcXCIgeTE9XFxcIi0yNDIuNTYzXFxcIiB4Mj1cXFwiLTMyLjAyOFxcXCIgeTI9XFxcIi0yNDIuNTg2XFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwibWF0cml4KDgxLjA4MSwgNTYuNzc0LCAxNy4zMDYsIC0yNC43MTUsIDY4MDQuMDIxLCAtNDE0OS42NDQpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjMDA3OWI5XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9XFxcImNcXFwiIHgxPVxcXCItMzMuMjgyXFxcIiB5MT1cXFwiLTI0My40MjNcXFwiIHgyPVxcXCItMzMuMjI0XFxcIiB5Mj1cXFwiLTI0My40NTVcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJtYXRyaXgoNjAuMDAzLCA0Mi4wMTUsIDM0LjE4NCwgLTQ4LjgyLCAxMDM0My4wMDUsIC0xMDQ2OS4wODQpXFxcIiB4bGluazpocmVmPVxcXCIjYlxcXCIvPjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiZFxcXCIgeDE9XFxcIjEyLjM1NlxcXCIgeTE9XFxcIjI2LjI2OFxcXCIgeDI9XFxcIjE0LjAxMVxcXCIgeTI9XFxcIjI2LjI2OFxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiIzU5NTk1OVxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC4wODdcXFwiIHN0b3AtY29sb3I9XFxcIiM2ZTZlNmVcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuMjQyXFxcIiBzdG9wLWNvbG9yPVxcXCIjOGM4YzhjXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjQwNVxcXCIgc3RvcC1jb2xvcj1cXFwiI2E0YTRhNFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC41NzdcXFwiIHN0b3AtY29sb3I9XFxcIiNiNWI1YjVcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNzY1XFxcIiBzdG9wLWNvbG9yPVxcXCIjYmZiZmJmXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjYzJjMmMyXFxcIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9XFxcImVcXFwiIHgxPVxcXCIxOC4yOTFcXFwiIHkxPVxcXCIyNi4xNzFcXFwiIHgyPVxcXCIxOS45NDZcXFwiIHkyPVxcXCIyNi4xNzFcXFwiIHhsaW5rOmhyZWY9XFxcIiNkXFxcIi8+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJmXFxcIiB4MT1cXFwiMjQuNDRcXFwiIHkxPVxcXCIyNi4xNzFcXFwiIHgyPVxcXCIyNi4wOTZcXFwiIHkyPVxcXCIyNi4xNzFcXFwiIHhsaW5rOmhyZWY9XFxcIiNkXFxcIi8+PC9kZWZzPjx0aXRsZT5maWxlX3R5cGVfcGxhbnR1bWw8L3RpdGxlPjxwb2x5Z29uIHBvaW50cz1cXFwiMjAuMzA1IDE3Ljg3MiAyNy4xNiAyMi40MTggMjEuNzIgMjUuNDkzIDE0Ljg2MSAyMC45OTkgMjAuMzA1IDE3Ljg3MlxcXCIgc3R5bGU9XFxcImZpbGw6IzFjMGE0MlxcXCIvPjxwYXRoIGQ9XFxcIk0yMS43MTYsMjUuNjE5bC0uMDU1LS4wMzYtNy4wMDUtNC41OSw1LjY1My0zLjI0Nyw3LjA1Niw0LjY4Wm0tNi42NS00LjYxMyw2LjY1OCw0LjM2Miw1LjIzMS0yLjk1N0wyMC4zLDE4WlxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMjYuNDAxIDExLjkwOSAyOS40MTggMTMuNTkyIDI3LjA3IDE1LjA4OCAyNC4yMTMgMTMuMjQ3IDI2LjQwMSAxMS45MDlcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjYSlcXFwiLz48cGF0aCBkPVxcXCJNMjcuMDY5LDE1LjIxNWwtMy4wNTgtMS45NywyLjM4Ny0xLjQ2LDMuMjI4LDEuOFptLTIuNjU0LTEuOTY2TDI3LjA3LDE0Ljk2LDI5LjIwOCwxMy42bC0yLjgtMS41NjVaXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIxNC40OTggMTcuODA3IDIxLjM1NCAyMi4zNTQgMTUuOTE0IDI1LjQyOSA5LjA1NSAyMC45MzUgMTQuNDk4IDE3LjgwN1xcXCIgc3R5bGU9XFxcImZpbGw6I2ZmYmQzZlxcXCIvPjxwYXRoIGQ9XFxcIk0xNS45MSwyNS41NTRsLS4wNTUtLjAzNkw4Ljg1LDIwLjkyOSwxNC41LDE3LjY4MWw3LjA1Niw0LjY4Wk05LjI2LDIwLjk0MSwxNS45MTgsMjUuM2w1LjIzMS0yLjk1Ny02LjY1NC00LjQxM1pcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjcuOTkgMTcuOTY2IDE0Ljk1NCAyMi4zNjYgOS41NzcgMjUuNTA0IDIuMjE4IDIwLjg0OSA3Ljk5IDE3Ljk2NlxcXCIgc3R5bGU9XFxcImZpbGw6I2ExMWY0MFxcXCIvPjxwYXRoIGQ9XFxcIk05LjU3NSwyNS42MjksMiwyMC44MzhsNi0zLDcuMTY0LDQuNTI3Wk0yLjQzNiwyMC44Niw5LjU4LDI1LjM3OGw1LjE2OC0zLjAxNkw3Ljk4NCwxOC4wODlaXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIyLjExMSAyMS4wMjEgOS40NDMgMjUuNTE1IDkuNDQzIDI5LjA2MyAyLjExMSAyNC4zMzIgMi4xMTEgMjEuMDIxXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2IpXFxcIi8+PHBhdGggZD1cXFwiTTkuNTUsMjkuMjYsMiwyNC4zOTFWMjAuODI5TDkuNTUsMjUuNDU1Wk0yLjIxOCwyNC4yNzRsNy4xMTgsNC41OTJWMjUuNTc1TDIuMjE4LDIxLjIxM1pcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjI0LjA3MSAxMy4zNDMgMjcuMDA5IDE1LjIyMiAyNy4wMDkgMjIuMTMxIDI0LjA3MSAyMC4yNDcgMjQuMDcxIDEzLjM0M1xcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNjKVxcXCIvPjxwYXRoIGQ9XFxcIk0yNy4wNjMsMjIuMjI5bC0zLjA0NS0xLjk1M1YxMy4yNDVsMy4wNDUsMS45NDdabS0yLjkzOC0yLjAxMiwyLjgzMSwxLjgxNVYxNS4yNTFsLTIuODMxLTEuODFaXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIyNy4xNDkgMjIuNTI2IDI3LjE0OSAxNS4xOTQgMjkuNTE0IDEzLjc3NSAyOS41MTQgMjkuMTQ5IDI4LjMzMSAyOS4xNDkgOS42NDYgMjkuMTQ5IDkuNjQ2IDI1LjYwMSAxNS4wODYgMjIuNTI2IDE1Ljc4NSAyNS42MDEgMTUuNzk2IDI1LjYwMSAyMS40NzIgMjIuNTI2IDIxLjg5MSAyNS42MDEgMjEuOTQ1IDI1LjYwMSAyNy4xNDkgMjIuNTI2XFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+PHBhdGggZD1cXFwiTTI5LjYyMSwyOS4yNTZIOS41MzlWMjUuNTM4bDUuNjItMy4xNzcuNywzLjA4Myw1LjctMy4wODcuNDIyLDMuMSw1LjA2MS0yLjk5MVYxNS4xMzNsMi41OC0xLjU0OFpNOS43NTMsMjkuMDQxSDI5LjQwN1YxMy45NjRsLTIuMTUxLDEuMjl2Ny4zMzJsLS4wNTMuMDMxLTUuMjI5LDMuMDlIMjEuOGwtLjQxMS0zLjAxNC01LjU2NCwzLjAxNEgxNS43bC0uNjg2LTMuMDE4LTUuMjYsMi45NzNaXFxcIi8+PHJlY3QgeD1cXFwiMTIuMzU2XFxcIiB5PVxcXCIyNS40NFxcXCIgd2lkdGg9XFxcIjEuNjU2XFxcIiBoZWlnaHQ9XFxcIjEuNjU2XFxcIiByeD1cXFwiMC4yMTVcXFwiIHJ5PVxcXCIwLjIxNVxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNkKVxcXCIvPjxwYXRoIGQ9XFxcIk0xMy44LDI3LjJIMTIuNTdhLjMyMi4zMjIsMCwwLDEtLjMyMi0uMzIyVjI1LjY1NWEuMzIyLjMyMiwwLDAsMSwuMzIyLS4zMjJIMTMuOGEuMzIyLjMyMiwwLDAsMSwuMzIyLjMyMnYxLjIyNkEuMzIyLjMyMiwwLDAsMSwxMy44LDI3LjJaTTEyLjU3LDI1LjU0N2EuMTA4LjEwOCwwLDAsMC0uMTA3LjEwN3YxLjIyNmEuMTA4LjEwOCwwLDAsMCwuMTA3LjEwN0gxMy44YS4xMDguMTA4LDAsMCwwLC4xMDctLjEwN1YyNS42NTVhLjEwOC4xMDgsMCwwLDAtLjEwNy0uMTA3WlxcXCIvPjxyZWN0IHg9XFxcIjE4LjI5MVxcXCIgeT1cXFwiMjUuMzQzXFxcIiB3aWR0aD1cXFwiMS42NTZcXFwiIGhlaWdodD1cXFwiMS42NTZcXFwiIHJ4PVxcXCIwLjIxNVxcXCIgcnk9XFxcIjAuMjE1XFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2UpXFxcIi8+PHBhdGggZD1cXFwiTTE5LjczMiwyNy4xMDZIMTguNTA1YS4zMjIuMzIyLDAsMCwxLS4zMjItLjMyMlYyNS41NThhLjMyMi4zMjIsMCwwLDEsLjMyMi0uMzIyaDEuMjI2YS4zMjIuMzIyLDAsMCwxLC4zMjIuMzIydjEuMjI2QS4zMjIuMzIyLDAsMCwxLDE5LjczMiwyNy4xMDZabS0xLjIyNi0xLjY1NmEuMTA4LjEwOCwwLDAsMC0uMTA3LjEwN3YxLjIyNmEuMTA4LjEwOCwwLDAsMCwuMTA3LjEwN2gxLjIyNmEuMTA4LjEwOCwwLDAsMCwuMTA3LS4xMDdWMjUuNTU4YS4xMDguMTA4LDAsMCwwLS4xMDctLjEwN1pcXFwiLz48cmVjdCB4PVxcXCIyNC40NFxcXCIgeT1cXFwiMjUuMzQzXFxcIiB3aWR0aD1cXFwiMS42NTZcXFwiIGhlaWdodD1cXFwiMS42NTZcXFwiIHJ4PVxcXCIwLjIxNVxcXCIgcnk9XFxcIjAuMjE1XFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2YpXFxcIi8+PHBhdGggZD1cXFwiTTI1Ljg4MSwyNy4xMDZIMjQuNjU1YS4zMjIuMzIyLDAsMCwxLS4zMjItLjMyMlYyNS41NThhLjMyMi4zMjIsMCwwLDEsLjMyMi0uMzIyaDEuMjI2YS4zMjIuMzIyLDAsMCwxLC4zMjIuMzIydjEuMjI2QS4zMjIuMzIyLDAsMCwxLDI1Ljg4MSwyNy4xMDZabS0xLjIyNi0xLjY1NmEuMTA4LjEwOCwwLDAsMC0uMTA3LjEwN3YxLjIyNmEuMTA4LjEwOCwwLDAsMCwuMTA3LjEwN2gxLjIyNmEuMTA4LjEwOCwwLDAsMCwuMTA3LS4xMDdWMjUuNTU4YS4xMDguMTA4LDAsMCwwLS4xMDctLjEwN1pcXFwiLz48cGF0aCBkPVxcXCJNMjcuMjE1LDExLjIzYy0uMDUyLjA2OS0uNDE3LS4yNjItLjY1My0uNTI2YTQuNDA4LDQuNDA4LDAsMCwxLS41MTYtLjczQTIuNiwyLjYsMCwwLDEsMjUuNyw5LjJhMi4zNTgsMi4zNTgsMCwwLDEtLjA1Mi0uNjgyLDIuOTU5LDIuOTU5LDAsMCwxLC4xMjktLjc0OSwzLjE0MiwzLjE0MiwwLDAsMSwuNzg3LTEuMjA3LDE1LjUzMiwxNS41MzIsMCwwLDAsMS4yODMtMS40LDMuMDYyLDMuMDYyLDAsMCwwLC40NzktLjkyNywzLjk3OSwzLjk3OSwwLDAsMCwuMTUxLS44NTVjLjAxOS0uMzY0LS4wMjUtLjU5My4wMjMtLjYxM3MuMjE1LjI3NC4yODcuNTY0YTMuMTY3LDMuMTY3LDAsMCwxLS40NTgsMi4xLDYuOSw2LjksMCwwLDEtMS4wOTQsMS40NDgsMi44LDIuOCwwLDAsMC0uODQ5LDEuMjM0QTIuNDY2LDIuNDY2LDAsMCwwLDI2LjMsOC44YTMuNDY1LDMuNDY1LDAsMCwwLC40NzYsMS41NDJDMjcuMDY0LDEwLjkxNCwyNy4yNTYsMTEuMTc1LDI3LjIxNSwxMS4yM1pcXFwiIHN0eWxlPVxcXCJmaWxsOiNlYTJkMmVcXFwiLz48cGF0aCBkPVxcXCJNMjcuMTkzLDExLjI2NmMtLjEyNCwwLS40OTItLjM2NS0uNjUxLS41NDRhNC40NzgsNC40NzgsMCwwLDEtLjUyLS43MzQsMi42MjgsMi42MjgsMCwwLDEtLjM0Ni0uNzgxLDIuMzc1LDIuMzc1LDAsMCwxLS4wNTMtLjY5LDIuOTc4LDIuOTc4LDAsMCwxLC4xMy0uNzU2LDMuMjA4LDMuMjA4LDAsMCwxLC43OTMtMS4yMTZjLjI5NC0uMzMxLjUtLjUyOC42NTktLjY4NmE0LjM5Myw0LjM5MywwLDAsMCwuNjIyLS43MTEsMy4wNTIsMy4wNTIsMCwwLDAsLjQ3Ni0uOTE5LDMuOTUxLDMuOTUxLDAsMCwwLC4xNS0uODQ5Yy4wMDgtLjE1OSwwLS4yOTQsMC0uMzkzLDAtLjE1OS0uMDA2LS4yMjUuMDM4LS4yNDNhLjA1LjA1LDAsMCwxLC4wNDMsMCwxLjIyNiwxLjIyNiwwLDAsMSwuMjguNTc5LDMuMTY3LDMuMTY3LDAsMCwxLS40NiwyLjEyMSw2LjkyOCw2LjkyOCwwLDAsMS0xLjEsMS40NTNjLS4wNTUuMDYtLjEwOS4xMTYtLjE2Mi4xNzFhMi4zLDIuMywwLDAsMC0uNjgxLDEuMDUyLDIuNDcsMi40NywwLDAsMC0uMDgyLjY3MywzLjQ1OCwzLjQ1OCwwLDAsMCwuNDczLDEuNTNjLjExNC4yMzEuMjE1LjQxNS4yODkuNTQ5LjEyOS4yMzUuMTc4LjMyMy4xNDIuMzY5aDBhLjA1MS4wNTEsMCwwLDEtLjA0LjAyWk0yOC41MTIsMi44YS44NjMuODYzLDAsMCwwLDAsLjE5YzAsLjEuMDA3LjIzNiwwLC40YTQuMDIxLDQuMDIxLDAsMCwxLS4xNTIuODYxLDMuMTA2LDMuMTA2LDAsMCwxLS40ODMuOTM0LDQuNDM3LDQuNDM3LDAsMCwxLS42MjkuNzE5Yy0uMTYyLjE1OC0uMzY0LjM1NC0uNjU3LjY4M2EzLjE2OCwzLjE2OCwwLDAsMC0uNzgyLDEuMiwyLjkzMywyLjkzMywwLDAsMC0uMTI4Ljc0MywyLjMyNSwyLjMyNSwwLDAsMCwuMDUyLjY3NSwyLjU5LDIuNTksMCwwLDAsLjM0MS43NjcsNC40MjIsNC40MjIsMCwwLDAsLjUxMy43MjUsMi4wMzUsMi4wMzUsMCwwLDAsLjYxMS41MjYsMS4xODMsMS4xODMsMCwwLDAtLjE0Ny0uMzFjLS4wNzQtLjEzNC0uMTc1LS4zMTgtLjI5LS41NTFBMy41LDMuNSwwLDAsMSwyNi4yNzgsOC44YTIuNTMsMi41MywwLDAsMSwuMDg0LS42ODgsMi4zNzUsMi4zNzUsMCwwLDEsLjY5NC0xLjA3NWMuMDUyLS4wNTUuMTA2LS4xMTEuMTYxLS4xNzFhNi44NzksNi44NzksMCwwLDAsMS4wOS0xLjQ0MiwzLjExOSwzLjExOSwwLDAsMCwuNDU2LTIuMDgzQTEuMjgxLDEuMjgxLDAsMCwwLDI4LjUxMiwyLjhaXFxcIi8+PHBhdGggZD1cXFwiTTI5Ljk3Miw2LjA4N2MtLjAxOS0uMDg4LS40MzItLjA0LS43NjYuMDczYTIuNiwyLjYsMCwwLDAtMS4wNTkuNzIyLDIuOCwyLjgsMCwwLDAtLjkxNiwxLjg1NSwyLjk3MiwyLjk3MiwwLDAsMCwuMjU4LDEuMDZjLjIyMS41NzIuNDU1Ljc3My40NDQsMS4yMjUtLjAwNy4zLS4xMTQuNDg0LS4wNDguNTQ5cy4zMTQtLjEuNDYyLS4zMTNhMS44LDEuOCwwLDAsMCwuMjU5LTEuMDIyYy0uMDQ2LS44MTUtLjYtMS4wMTUtLjYwOC0xLjhhMS44NTgsMS44NTgsMCwwLDEsLjEyOS0uNjc2QzI4LjU3LDYuNTA5LDMwLjAwOCw2LjI1MiwyOS45NzIsNi4wODdaXFxcIiBzdHlsZT1cXFwiZmlsbDojZWEyZDJlXFxcIi8+PHBhdGggZD1cXFwiTTI3LjkzNCwxMS42MTdhLjA5NC4wOTQsMCwwLDEtLjA2OS0uMDI2Yy0uMDQ2LS4wNDYtLjAzLS4xMjItLjAwNS0uMjM3YTEuNzE4LDEuNzE4LDAsMCwwLC4wNDUtLjMzMSwxLjM3NCwxLjM3NCwwLDAsMC0uMjE0LS43Miw1LDUsMCwwLDEtLjIyOC0uNDk1LDIuOTgsMi45OCwwLDAsMS0uMjU5LTEuMDcsMi44MSwyLjgxLDAsMCwxLC45MjMtMS44NzQsMi42NCwyLjY0LDAsMCwxLDEuMDctLjcyOSwxLjQ4MiwxLjQ4MiwwLDAsMSwuNzY2LS4xQS4wNjUuMDY1LDAsMCwxLDMwLDYuMDgxaDBjLjAxNS4wNy0uMDkyLjEyMS0uMzA2LjIyNGEyLjczLDIuNzMsMCwwLDAtMS41NDIsMS40NjMsMS44MjcsMS44MjcsMCwwLDAtLjEyNy42NjcsMS42NDUsMS42NDUsMCwwLDAsLjI5MS44ODUsMS44ODksMS44ODksMCwwLDEsLjMxNy45MTQsMS44MTQsMS44MTQsMCwwLDEtLjI2NCwxLjAzOS44MDkuODA5LDAsMCwxLS40MjEuMzQyWm0xLjg4OS01LjU0OWEyLjExNywyLjExNywwLDAsMC0uNjA4LjExNywyLjU4OCwyLjU4OCwwLDAsMC0xLjA0OC43MTUsMi43NjQsMi43NjQsMCwwLDAtLjkwOSwxLjgzNywyLjkzNSwyLjkzNSwwLDAsMCwuMjU2LDEuMDUsNC45NTUsNC45NTUsMCwwLDAsLjIyNS40OSwxLjQzMywxLjQzMywwLDAsMSwuMjIuNzQ1LDEuNzY1LDEuNzY1LDAsMCwxLS4wNDcuMzQxYy0uMDE5LjA5MS0uMDM1LjE2My0uMDA5LjE4OGEuMDQ2LjA0NiwwLDAsMCwuMDM4LjAxLjc2OS43NjksMCwwLDAsLjM4Mi0uMzIsMS43OTMsMS43OTMsMCwwLDAsLjI1NC0xLjAwNSwxLjg0NCwxLjg0NCwwLDAsMC0uMzEtLjg5LDEuNzExLDEuNzExLDAsMCwxLS4zLS45MTEsMS44NzcsMS44NzcsMCwwLDEsLjEzLS42ODZBMi43NzYsMi43NzYsMCwwLDEsMjkuNjcsNi4yNTdjLjEyNi0uMDYxLjI4My0uMTM2LjI3Ny0uMTY0bC0uMDA4LS4wMDdBLjI2NC4yNjQsMCwwLDAsMjkuODIzLDYuMDY4WlxcXCIvPlwiLFxuXHRcIlBvd2VyUXVlcnlcIjogXCI8cGF0aCBkPVxcXCJNMzAsMjUuNTgzSDI1Ljc1N1YxNS4zNzhhOC4yNzEsOC4yNzEsMCwwLDAtLjgzMi00LjI2MUEzLjA2MSwzLjA2MSwwLDAsMCwyMi4xMTgsOS44YTMuMzgzLDMuMzgzLDAsMCwwLTIuODI2LDEuNjY0LDYuNzkxLDYuNzkxLDAsMCwwLTEuMTYxLDMuOTg3VjI1LjU4M0gxMy44NjlWMTUuMDMxcTAtNS4yMzEtMy42OTQtNS4yMzFhMy4zMzIsMy4zMzIsMCwwLDAtMi44MjYsMS41NzMsNi45MzUsNi45MzUsMCwwLDAtMS4xMDYsNC4wNzhWMjUuNTgzSDJWNi44NTZINi4yNDNWOS44MThoLjA3M2E2LjQ4OCw2LjQ4OCwwLDAsMSw1LjkwNy0zLjQsNS41NjksNS41NjksMCwwLDEsMy4zOTMsMS4wN0E1LjMyOCw1LjMyOCwwLDAsMSwxNy42LDEwLjI5NGE2LjY4Myw2LjY4MywwLDAsMSw2LjIxOC0zLjg3N1EzMCw2LjQxNywzMCwxNC4wNDNaXFxcIiBzdHlsZT1cXFwiZmlsbDojY2ZjZmNmXFxcIi8+XCIsXG5cdFwiUG93ZXJTaGVsbFwiOiBcIjxkZWZzPjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiYVxcXCIgeDE9XFxcIjIzLjMyNVxcXCIgeTE9XFxcIi0xMTguNTQzXFxcIiB4Mj1cXFwiNy4yNlxcXCIgeTI9XFxcIi0xMDQuMTkzXFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwibWF0cml4KDEsIDAsIDAsIC0xLCAwLCAtOTYpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjNTM5MWZlXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjM2U2ZGJmXFxcIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9XFxcImJcXFwiIHgxPVxcXCI3LjFcXFwiIHkxPVxcXCItMTA0LjAwMlxcXCIgeDI9XFxcIjIzLjAwMVxcXCIgeTI9XFxcIi0xMTguMjkyXFxcIiB4bGluazpocmVmPVxcXCIjYVxcXCIvPjwvZGVmcz48dGl0bGU+ZmlsZV90eXBlX3Bvd2Vyc2hlbGw8L3RpdGxlPjxwYXRoIGQ9XFxcIk0zLjE3NCwyNi41ODlhMS4xNTQsMS4xNTQsMCwwLDEtLjkyOC0uNDIzLDEuMjM0LDEuMjM0LDAsMCwxLS4yMS0xLjA1Mkw2LjIzMyw2Ljc4QTEuOCwxLjgsMCwwLDEsNy45MTQsNS40MUgyOC44MjZhMS4xNTcsMS4xNTcsMCwwLDEsLjkyOC40MjMsMS4yMzUsMS4yMzUsMCwwLDEsLjIxLDEuMDUybC00LjIsMTguMzM1YTEuOCwxLjgsMCwwLDEtMS42ODEsMS4zN0gzLjE3NFpcXFwiIHN0eWxlPVxcXCJmaWxsLXJ1bGU6ZXZlbm9kZDtmaWxsOnVybCgjYSlcXFwiLz48cGF0aCBkPVxcXCJNNy45MTQsNS42NDZIMjguODI2YS45MTMuOTEzLDAsMCwxLC45MDgsMS4xODdsLTQuMiwxOC4zMzRhMS41NzUsMS41NzUsMCwwLDEtMS40NTEsMS4xODdIMy4xNzRhLjkxMy45MTMsMCwwLDEtLjkwOC0xLjE4N2w0LjItMTguMzM0QTEuNTc0LDEuNTc0LDAsMCwxLDcuOTE0LDUuNjQ2WlxcXCIgc3R5bGU9XFxcImZpbGwtcnVsZTpldmVub2RkO2ZpbGw6dXJsKCNiKVxcXCIvPjxwYXRoIGQ9XFxcIk0xNi4wNCwyMS41NDRoNS4wODZhMS4xMTgsMS4xMTgsMCwwLDEsMCwyLjIzNEgxNi4wNGExLjExOCwxLjExOCwwLDAsMSwwLTIuMjM0WlxcXCIgc3R5bGU9XFxcImZpbGw6IzJjNTU5MTtmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwYXRoIGQ9XFxcIk0xOS4zMzksMTYuNTc4YTEuNzYyLDEuNzYyLDAsMCwxLS41OTEuNkw5LjMwOSwyMy45NTNhMS4yMjQsMS4yMjQsMCwwLDEtMS40MzgtMS45NzdsOC41MTItNi4xNjR2LS4xMjZMMTEuMDM1LDEwYTEuMjI0LDEuMjI0LDAsMCwxLDEuNzgyLTEuNjcybDYuNDE4LDYuODI3QTEuMTY2LDEuMTY2LDAsMCwxLDE5LjMzOSwxNi41NzhaXFxcIiBzdHlsZT1cXFwiZmlsbDojMmM1NTkxO2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PHBhdGggZD1cXFwiTTE5LjEsMTYuMzQyYTEuNzQ5LDEuNzQ5LDAsMCwxLS41OS42TDkuMDc0LDIzLjcxOGExLjIyNSwxLjIyNSwwLDAsMS0xLjQzOS0xLjk3N2w4LjUxMy02LjE2NFYxNS40NUwxMC44LDkuNzYxYTEuMjI0LDEuMjI0LDAsMCwxLDEuNzgzLTEuNjcyTDE5LDE0LjkxNkExLjE2MiwxLjE2MiwwLDAsMSwxOS4xLDE2LjM0MlpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmY7ZmlsbC1ydWxlOmV2ZW5vZGRcXFwiLz48cGF0aCBkPVxcXCJNMTUuOSwyMS40MTJoNS4wODZhMS4wNTksMS4wNTksMCwxLDEsMCwyLjExOEgxNS45YTEuMDU5LDEuMDU5LDAsMSwxLDAtMi4xMThaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmO2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+XCIsICBcblx0XCJQcm9jZXNzaW5nXCI6IFwiPGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJhXFxcIiB4MT1cXFwiMTZcXFwiIHkxPVxcXCIzXFxcIiB4Mj1cXFwiMTZcXFwiIHkyPVxcXCIyOVxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiIzFjNGM3MFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiIzBjMmI0MlxcXCIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjx0aXRsZT5maWxlX3R5cGVfcHJvY2Vzc2luZ2xhbmc8L3RpdGxlPjxwYXRoIGQ9XFxcIk0xNS45MjIsMTkuOTYyYTEzLDEzLDAsMCwxLTEuNjQ3LS4wNzd2NS41NTJhMjcuNzYsMjcuNzYsMCwwLDEsMy4zMzIuNDYxVjI5SDUuOTY4VjI1LjlBMjcuOTg4LDI3Ljk4OCwwLDAsMSw5LjMsMjUuNDM4VjYuNzE1YTI4LjIxNSwyOC4yMTUsMCwwLDEtMy4zMzEtLjQ2di0zLjFIOC45NTVDMTAuMTgsMy4xNTMsMTMuNTQ5LDMsMTYuMjMsM2M2LjMxOCwwLDkuOCwyLjk0OCw5LjgsOEMyNi4wMzEsMTYuMDE4LDIyLjIsMTkuOTYyLDE1LjkyMiwxOS45NjJaTTE2LDcuMDU4Yy0uNjEzLDAtMS4xNDksMC0xLjcyMy4wMzh2OC42MTVhOS42OTQsOS42OTQsMCwwLDAsMS40NTUuMTE1YzMuMDI1LS4wMzgsNS4xMy0xLjcyMyw1LjEzLTQuNTE5QzIwLjg2Miw4LjcsMTkuNDA3LDcuMDU4LDE2LDcuMDU4WlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNhKVxcXCIvPlwiLFxuXHRcIlByb2xvZ1wiOiBcIjxkZWZzPjxyYWRpYWxHcmFkaWVudCBpZD1cXFwiYVxcXCIgY3g9XFxcIjEzNDEuMjVcXFwiIGN5PVxcXCItMzM5Ni44NjZcXFwiIHI9XFxcIjE4LjI5OVxcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcInRyYW5zbGF0ZSgtMTMyNy4wNzcgMzQwNS45MzUpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjZmZmXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjE4MVxcXCIgc3RvcC1jb2xvcj1cXFwiI2ZiZmJmYlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC4zNjVcXFwiIHN0b3AtY29sb3I9XFxcIiNlZmVmZjBcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNTUyXFxcIiBzdG9wLWNvbG9yPVxcXCIjZGFkYmRjXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjczOFxcXCIgc3RvcC1jb2xvcj1cXFwiI2JlYmZjMlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC44MjRcXFwiIHN0b3AtY29sb3I9XFxcIiNhZWIwYjNcXFwiLz48L3JhZGlhbEdyYWRpZW50PjxyYWRpYWxHcmFkaWVudCBpZD1cXFwiYlxcXCIgY3g9XFxcIjYuNjc4XFxcIiBjeT1cXFwiODQuNzRcXFwiIHI9XFxcIjE1LjU1NFxcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcInRyYW5zbGF0ZSgtMS44ODQgLTg2LjE1NCkgc2NhbGUoMS4wNzIgMS4xNjYpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjZmFmZGZmXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjA3OVxcXCIgc3RvcC1jb2xvcj1cXFwiI2VlZjVmYVxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC4yMlxcXCIgc3RvcC1jb2xvcj1cXFwiI2NmZGZlY1xcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC40MDdcXFwiIHN0b3AtY29sb3I9XFxcIiM5ZGJiZDVcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNjMxXFxcIiBzdG9wLWNvbG9yPVxcXCIjNTg4YWI1XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjc0NVxcXCIgc3RvcC1jb2xvcj1cXFwiIzMyNmZhNFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC43OTlcXFwiIHN0b3AtY29sb3I9XFxcIiMyYjY2OThcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuODk3XFxcIiBzdG9wLWNvbG9yPVxcXCIjMTc0ZTc4XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjk5NFxcXCIgc3RvcC1jb2xvcj1cXFwiIzAwMzE1MlxcXCIvPjwvcmFkaWFsR3JhZGllbnQ+PHJhZGlhbEdyYWRpZW50IGlkPVxcXCJjXFxcIiBjeD1cXFwiMTEuMjQxXFxcIiBjeT1cXFwiLTkuODk3XFxcIiByPVxcXCIxNi41OTRcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJ0cmFuc2xhdGUoMCAyMi42MzEpIHNjYWxlKDEgMS4wNjIpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjZmZkNTQwXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjY2N1xcXCIgc3RvcC1jb2xvcj1cXFwiI2VjMWMyNFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC45OTRcXFwiIHN0b3AtY29sb3I9XFxcIiM3NjAwMDBcXFwiLz48L3JhZGlhbEdyYWRpZW50PjxyYWRpYWxHcmFkaWVudCBpZD1cXFwiZFxcXCIgY3g9XFxcIjEyLjI4NlxcXCIgY3k9XFxcIjI2LjEyN1xcXCIgcj1cXFwiMi4wODNcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiNkZGRmZTBcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuMTc0XFxcIiBzdG9wLWNvbG9yPVxcXCIjZDlkYmRjXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjM1MVxcXCIgc3RvcC1jb2xvcj1cXFwiI2NkY2ZkMFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC41MzFcXFwiIHN0b3AtY29sb3I9XFxcIiNiOGJhYmJcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNzExXFxcIiBzdG9wLWNvbG9yPVxcXCIjOWM5ZTlmXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjg5MVxcXCIgc3RvcC1jb2xvcj1cXFwiIzc4Nzk3YlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiIzVlNWY2MVxcXCIvPjwvcmFkaWFsR3JhZGllbnQ+PHJhZGlhbEdyYWRpZW50IGlkPVxcXCJlXFxcIiBjeD1cXFwiMTkuMDY0XFxcIiBjeT1cXFwiMjYuMTI3XFxcIiByPVxcXCIyLjA4M1xcXCIgeGxpbms6aHJlZj1cXFwiI2RcXFwiLz48cmFkaWFsR3JhZGllbnQgaWQ9XFxcImZcXFwiIGN4PVxcXCIxNS40MzRcXFwiIGN5PVxcXCIxNi4xOTFcXFwiIHI9XFxcIjIuNjg3XFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwidHJhbnNsYXRlKDAgMC40NjEpXFxcIiB4bGluazpocmVmPVxcXCIjZFxcXCIvPjwvZGVmcz48dGl0bGU+ZmlsZV90eXBlX3Byb2xvZzwvdGl0bGU+PGcgc3R5bGU9XFxcImlzb2xhdGlvbjppc29sYXRlXFxcIj48Y2lyY2xlIGN4PVxcXCIxNlxcXCIgY3k9XFxcIjE2XFxcIiByPVxcXCIxNFxcXCIgdHJhbnNmb3JtPVxcXCJ0cmFuc2xhdGUoLTYuNjAyIDE0LjkyKSByb3RhdGUoLTQyLjI2NSlcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjYSlcXFwiLz48cGF0aCBkPVxcXCJNMTkuOTM4LDYuMzA5YTkuNzg1LDkuNzg1LDAsMCwwLTYuNS0yLjMzOUM4LjU2NCwzLjk3LDMuNzc0LDcuNywzLjQwNSwxNC45NjFjLS40LDcuOCw0Ljc1LDEyLjg2MiwxMiwxMi44NjIsMTAuNzMzLDAsMTYuNjcyLTkuNzgsMTAuMDI3LTIwLjM4OCw0LjY3MSwxMC42LS41MjcsMTcuMjc5LTcuMjM2LDE3LjI3OS01LjQ0MSwwLTkuNjEtMy42NTEtOS42MS0xMC4zNDVDOC41ODIsNC43MDksMTUuODIzLDQuMDM5LDE5LjkzOCw2LjMwOVpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjYilcXFwiLz48cGF0aCBkPVxcXCJNMjIuNywxMC40MTVjLS4yOTMtLjk0LS42NDUtMi43ODguNjM0LTMuODZhMy43MjksMy43MjksMCwwLDAtMy44NDQsMS41MzRBOS4xNjUsOS4xNjUsMCwwLDAsMTIsOC4xLDMuNzI5LDMuNzI5LDAsMCwwLDguMTUyLDYuNTU1YzEuMzA5LDEuMS45MSwzLjAwNS42MTQsMy45MjNBMTAuNTE3LDEwLjUxNywwLDAsMCw2LjEsMTcuNTI0YzAsMi4xNzQsMS40LDQuNjQ1LDEuNjc1LDcuOTU1bDEuNzY4LTEuNTMyYTExLjc0MywxMS43NDMsMCwwLDAsNi4yMTIsMS40MzMsMTEuNzQxLDExLjc0MSwwLDAsMCw2LjIxMi0xLjQzM2wxLjc2OSwxLjUzMmMuMjgtMy4zMSwxLjY3NS01Ljc4MSwxLjY3NS03Ljk1NUExMC41MTIsMTAuNTEyLDAsMCwwLDIyLjcsMTAuNDE1WlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNjKVxcXCIvPjxwYXRoIGQ9XFxcIk0xMC43MjIsMjcuODY3YTEuNjIxLDEuNjIxLDAsMSwxLDMuMjQsMGMwLC4wMTgsMCwuMDM1LDAsLjA1M2EyLjIzNCwyLjIzNCwwLDEsMC0zLjIyOC4xMjZDMTAuNzI1LDI3Ljk4NywxMC43MjIsMjcuOTI3LDEwLjcyMiwyNy44NjdaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2QpXFxcIi8+PHBhdGggZD1cXFwiTTIwLjYyOSwyNy44NjdhMS42MjEsMS42MjEsMCwxLDAtMy4yNCwwYzAsLjAxOCwwLC4wMzUsMCwuMDUzYTIuMjM0LDIuMjM0LDAsMSwxLDMuMjI4LjEyNkExLjY3OCwxLjY3OCwwLDAsMCwyMC42MjksMjcuODY3WlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNlKVxcXCIvPjxnIHN0eWxlPVxcXCJvcGFjaXR5OjAuNTM7bWl4LWJsZW5kLW1vZGU6bXVsdGlwbHlcXFwiPjxwYXRoIGQ9XFxcIk04LjM0NiwxOC40Yy0uMTMyLjY2Ny0uOTcxLjg3Ny0uOTcxLjg3N0ExLjM1OSwxLjM1OSwwLDAsMSw2LjgwOSwxOC4xYTIuOTI5LDIuOTI5LDAsMCwwLC40NDMsMS43OTNBMi45MjcsMi45MjcsMCwwLDAsOC4zNDYsMTguNFpcXFwiIHN0eWxlPVxcXCJmaWxsOiMyMzFmMjBcXFwiLz48cGF0aCBkPVxcXCJNMTAuMDA4LDE4LjczN2MtLjEzMi42NjctLjk3Mi44NzctLjk3Mi44NzdhMS4zNiwxLjM2LDAsMCwxLS41NjYtMS4xODIsMi45MjksMi45MjksMCwwLDAsLjQ0NCwxLjc5M0EyLjkyNiwyLjkyNiwwLDAsMCwxMC4wMDgsMTguNzM3WlxcXCIgc3R5bGU9XFxcImZpbGw6IzIzMWYyMFxcXCIvPjxwYXRoIGQ9XFxcIk04LjgzMywyMC4yNDljLS4xMzIuNjY3LS45NzEuODc3LS45NzEuODc3QTEuMzU5LDEuMzU5LDAsMCwxLDcuMywxOS45NDRhMi45MjksMi45MjksMCwwLDAsLjQ0MywxLjc5M0EyLjkyNSwyLjkyNSwwLDAsMCw4LjgzMywyMC4yNDlaXFxcIiBzdHlsZT1cXFwiZmlsbDojMjMxZjIwXFxcIi8+PHBhdGggZD1cXFwiTTEwLjUsMjAuNTgzYy0uMTMyLjY2Ny0uOTcxLjg3Ny0uOTcxLjg3N2ExLjM2LDEuMzYsMCwwLDEtLjU2Ni0xLjE4MkEyLjkyOSwyLjkyOSwwLDAsMCw5LjQsMjIuMDcyLDIuOTI3LDIuOTI3LDAsMCwwLDEwLjUsMjAuNTgzWlxcXCIgc3R5bGU9XFxcImZpbGw6IzIzMWYyMFxcXCIvPjxwYXRoIGQ9XFxcIk05LjMyOCwyMi4xMjFjLS4xMzIuNjY3LS45NzIuODc3LS45NzIuODc3YTEuMzYsMS4zNiwwLDAsMS0uNTY1LTEuMTgyLDIuOTI5LDIuOTI5LDAsMCwwLC40NDMsMS43OTNBMi45MjYsMi45MjYsMCwwLDAsOS4zMjgsMjIuMTIxWlxcXCIgc3R5bGU9XFxcImZpbGw6IzIzMWYyMFxcXCIvPjxwYXRoIGQ9XFxcIk0xMS42NjQsMTkuMDdjLS4xMzIuNjY3LS45NzIuODc3LS45NzIuODc3YTEuMzU5LDEuMzU5LDAsMCwxLS41NjUtMS4xODIsMi45MywyLjkzLDAsMCwwLC40NDMsMS43OTNBMi45MjcsMi45MjcsMCwwLDAsMTEuNjY0LDE5LjA3WlxcXCIgc3R5bGU9XFxcImZpbGw6IzIzMWYyMFxcXCIvPjwvZz48ZyBzdHlsZT1cXFwib3BhY2l0eTowLjUzO21peC1ibGVuZC1tb2RlOm11bHRpcGx5XFxcIj48cGF0aCBkPVxcXCJNMjMuMTU3LDE4LjRjLjEzMi42NjcuOTcxLjg3Ny45NzEuODc3YTEuMzU5LDEuMzU5LDAsMCwwLC41NjYtMS4xODIsMi45MywyLjkzLDAsMCwxLS40NDMsMS43OTNBMi45MjcsMi45MjcsMCwwLDEsMjMuMTU3LDE4LjRaXFxcIiBzdHlsZT1cXFwiZmlsbDojMjMxZjIwXFxcIi8+PHBhdGggZD1cXFwiTTIxLjQ5NSwxOC43MzdjLjEzMi42NjcuOTcyLjg3Ny45NzIuODc3YTEuMzYsMS4zNiwwLDAsMCwuNTY1LTEuMTgyLDIuOTMxLDIuOTMxLDAsMCwxLS40NDQsMS43OTNBMi45MjYsMi45MjYsMCwwLDEsMjEuNDk1LDE4LjczN1pcXFwiIHN0eWxlPVxcXCJmaWxsOiMyMzFmMjBcXFwiLz48cGF0aCBkPVxcXCJNMjIuNjY5LDIwLjI0OWMuMTMyLjY2Ny45NzEuODc3Ljk3MS44NzdhMS4zNiwxLjM2LDAsMCwwLC41NjYtMS4xODIsMi45MjksMi45MjksMCwwLDEtLjQ0MywxLjc5M0EyLjkyNiwyLjkyNiwwLDAsMSwyMi42NjksMjAuMjQ5WlxcXCIgc3R5bGU9XFxcImZpbGw6IzIzMWYyMFxcXCIvPjxwYXRoIGQ9XFxcIk0yMS4wMDgsMjAuNTgzYy4xMzIuNjY3Ljk3MS44NzcuOTcxLjg3N2ExLjM1OSwxLjM1OSwwLDAsMCwuNTY1LTEuMTgyLDIuOTI4LDIuOTI4LDAsMCwxLS40NDMsMS43OTNBMi45MjcsMi45MjcsMCwwLDEsMjEuMDA4LDIwLjU4M1pcXFwiIHN0eWxlPVxcXCJmaWxsOiMyMzFmMjBcXFwiLz48cGF0aCBkPVxcXCJNMjIuMTc1LDIyLjEyMWMuMTMyLjY2Ny45NzIuODc3Ljk3Mi44NzdhMS4zNiwxLjM2LDAsMCwwLC41NjUtMS4xODIsMi45MjgsMi45MjgsMCwwLDEtLjQ0NCwxLjc5M0EyLjkyNywyLjkyNywwLDAsMSwyMi4xNzUsMjIuMTIxWlxcXCIgc3R5bGU9XFxcImZpbGw6IzIzMWYyMFxcXCIvPjxwYXRoIGQ9XFxcIk0xOS44MzgsMTkuMDdjLjEzMi42NjcuOTcyLjg3Ny45NzIuODc3YTEuMzU5LDEuMzU5LDAsMCwwLC41NjUtMS4xODIsMi45MjgsMi45MjgsMCwwLDEtLjQ0MywxLjc5M0EyLjkyOCwyLjkyOCwwLDAsMSwxOS44MzgsMTkuMDdaXFxcIiBzdHlsZT1cXFwiZmlsbDojMjMxZjIwXFxcIi8+PC9nPjxjaXJjbGUgY3g9XFxcIjExLjMzOVxcXCIgY3k9XFxcIjE0LjA3NFxcXCIgcj1cXFwiMy44MTZcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48Y2lyY2xlIGN4PVxcXCIxMi4xM1xcXCIgY3k9XFxcIjE0LjQ0NlxcXCIgcj1cXFwiMS44NjFcXFwiIHN0eWxlPVxcXCJmaWxsOiNiZGJmYzFcXFwiLz48Y2lyY2xlIGN4PVxcXCIxMi4xM1xcXCIgY3k9XFxcIjE0LjQ0NlxcXCIgcj1cXFwiMS4xOTFcXFwiIHN0eWxlPVxcXCJmaWxsOiMyMzFmMjBcXFwiLz48Y2lyY2xlIGN4PVxcXCIxMS42MDNcXFwiIGN5PVxcXCIxNC4wMjdcXFwiIHI9XFxcIjAuMzU3XFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+PGNpcmNsZSBjeD1cXFwiMjAuMTEyXFxcIiBjeT1cXFwiMTQuMDc0XFxcIiByPVxcXCIzLjgxNlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPjxjaXJjbGUgY3g9XFxcIjIwLjkwM1xcXCIgY3k9XFxcIjE0LjQ0NlxcXCIgcj1cXFwiMS44NjFcXFwiIHN0eWxlPVxcXCJmaWxsOiNiZGJmYzFcXFwiLz48Y2lyY2xlIGN4PVxcXCIyMC45MDNcXFwiIGN5PVxcXCIxNC40NDZcXFwiIHI9XFxcIjEuMTkxXFxcIiBzdHlsZT1cXFwiZmlsbDojMjMxZjIwXFxcIi8+PGNpcmNsZSBjeD1cXFwiMjAuMzc1XFxcIiBjeT1cXFwiMTQuMDI3XFxcIiByPVxcXCIwLjM1N1xcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPjxwYXRoIGQ9XFxcIk0xNS43MDYsMjEuNTJjMC0xLjQxMiwyLjE1Ny0zLjQxMywyLjE1Ny00Ljg4N2EyLjE1NywyLjE1NywwLDAsMC00LjMxMywwQzEzLjU1LDE4LjEwNywxNS43MDYsMjAuMTA4LDE1LjcwNiwyMS41MlpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjZilcXFwiLz48L2c+XCIsXG5cdFwiUHJvdG9jb2wgQnVmZmVyc1wiOiBcIjxwb2x5Z29uIHBvaW50cz1cXFwiMTUuOTk2IDMuMjIgMjYuOTY2IDkuNyAyNi45NTQgMjIuMyAxNiAyOC43OCA1LjAzOCAyMi40MDggNS4wMzQgOS42MjggMTUuOTk2IDMuMjJcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48cGF0aCBkPVxcXCJNMTYsMiwzLjk4Nyw5LjAybDAsMTRMMTYsMzBsMTItNy4xLjAxMy0xMy44Wk0yNi45NTQsMjIuMywxNiwyOC43OCw1LjAzOCwyMi40MDhsMC0xMi43OEwxNiwzLjIyLDI2Ljk2Niw5LjdaXFxcIiBzdHlsZT1cXFwiZmlsbDojMTcxYzFlXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIyNS41NjkgMTMuNjU0IDE5Ljk0NiAxNi45NjQgMTkuOTQzIDI0Ljg5IDI1LjU5IDIxLjU2NSAyNS41NjkgMTMuNjU0XFxcIiBzdHlsZT1cXFwiZmlsbDojMWVhOGZmXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIyMy4yODIgMTIuMzAzIDI1LjU2OSAxMy42NTQgMTkuOTQ2IDE2Ljk2NCAxOS45NDMgMjQuODkgMTcuMzI3IDIzLjM3IDE3LjM0OCAxNS44NzUgMjMuMjgyIDEyLjMwM1xcXCIgc3R5bGU9XFxcImZpbGw6IzUwYmZmZlxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMjIuNTEyIDEwLjM1IDIyLjUxNCAxMS44MTYgMTYuNDExIDE1LjQ5OCAxNi40MTggMjMuNTk3IDE0Ljk5OCAyNC40MzEgMTQuOTk0IDE0Ljg1NiAyMi41MTIgMTAuMzVcXFwiIHN0eWxlPVxcXCJmaWxsOiM5N2ZmMjdcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjIwLjAwOCA4Ljg3MSAyMi41MTIgMTAuMzUgMTQuOTk0IDE0Ljg1NiAxNC45OTggMjQuNDMxIDEyLjE5NCAyMi44MDEgMTIuMTg5IDEzLjQxMyAyMC4wMDggOC44NzFcXFwiIHN0eWxlPVxcXCJmaWxsOiNjMmZmNzJcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjE5LjIyNiA2LjYwNiAxOS4yMjYgOC4zNzQgMTEuMjEgMTMuMDc0IDExLjIxIDIzLjE3MiA5LjgwOCAyMy45ODggOS44MzUgMTIuMjc3IDE5LjIyNiA2LjYwNlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmMjc0YlxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMTYuMTYgNC43ODQgNi41MyAxMC4zOTQgNi41MjkgMjIuMDcxIDkuODI3IDIzLjk4OCA5LjgzNSAxMi4yNzcgMTkuMjM1IDYuNjA2IDE2LjE2IDQuNzg0XFxcIiBzdHlsZT1cXFwiZmlsbDojZmY1Yzc3XFxcIi8+XCIsXG5cdFwiUHVnXCI6IFwiPHBhdGggZD1cXFwiTTI1LjUxNCwxMi44NDZjLS4wNTItLjkzOC4yMDktMS44MjUtLjIwOS0yLjU1NC0xLjA0My0xLjgyNS0zLjY0OS0yLjg2Ny04Ljg2My0yLjg2N1Y3LjM3Mmgwdi4wNTJjLTUuNzM1LDAtOC4xODUsMS4wNDMtOS4yMjcsMi44NjdhNS42LDUuNiwwLDAsMC0uNDY5LDIuNTU0LDkuNTQ2LDkuNTQ2LDAsMCwwLS4yNjEsMi40NWMuMTU2LDEuMTQ3LjI2MSwyLjI5NC40MTcsMy4zMzYuMTU2Ljg4NiwxLjQwOCwxLjU2NCwxLjU2NCwyLjQuMzEzLDIuMjQyLDIuMjk0LDMuMjg0LDguMDI4LDMuMjg0di4yNjFoLS4xdi0uMjYxYzUuMjEzLDAsNy40LTEuMDQzLDcuNzE2LTMuMjg0LjEtLjgzNCwxLjE0Ny0xLjUxMiwxLjMtMi40LjE1Ni0xLjA0My4yMDktMi4xOS4zNjUtMy4zMzZBMTEuNzc0LDExLjc3NCwwLDAsMCwyNS41MTQsMTIuODQ2WlxcXCIgc3R5bGU9XFxcImZpbGw6I2VmY2NhM1xcXCIvPjxwYXRoIGQ9XFxcIk0xNi4xODIsMTMuNjhhMy4yNDEsMy4yNDEsMCwwLDEsMi4xOSwxLjE0N2MuNzMuNjI2LDEuOTI5LDEuMDQzLDIuNDUsMS42MTZhNC43MTUsNC43MTUsMCwwLDEsMS40MDgsMS45ODEsOC45LDguOSwwLDAsMSwuMzEzLDIuMjQyYzAsLjI2MS4xNTYuMjA5LjU3MywwYTkuMDIsOS4wMiwwLDAsMCwyLjE5LTEuODc3Yy0uMTU2Ljg4Ni0xLjI1MSwxLjY2OC0xLjM1NSwyLjUtLjMxMywyLjI0Mi0yLjUsMy4zMzYtNy44NzIsMy4zMzZoLjMxM1xcXCIgc3R5bGU9XFxcImZpbGw6I2NjYWM4ZFxcXCIvPjxwYXRoIGQ9XFxcIk0xOS41MTksMTEuOTA4Yy4yMDkuNjc4Ljg4NiwzLjAyNC0uNDY5LDIuMjQyYTIuNTU3LDIuNTU3LDAsMCwxLC45MzgsMS41NjQsMS44MzEsMS44MzEsMCwwLDAsMS4zLDEuNDA4LDMuNDc5LDMuNDc5LDAsMCwwLDIuNTU0LS42MjYsMi45NTYsMi45NTYsMCwwLDAsLjY3OC0zLjI4NCwyLjQzLDIuNDMsMCwwLDAtMi4xMzctMS42MTZDMjEuNCwxMS4zMzQsMTkuMzEsMTEuMTI2LDE5LjUxOSwxMS45MDhaXFxcIiBzdHlsZT1cXFwiZmlsbDojY2NhYzhkXFxcIi8+PGNpcmNsZSBjeD1cXFwiMjIuMTc4XFxcIiBjeT1cXFwiMTQuNDFcXFwiIHI9XFxcIjEuOTI5XFxcIi8+PGNpcmNsZSBjeD1cXFwiMjEuNjU2XFxcIiBjeT1cXFwiMTMuNTI0XFxcIiByPVxcXCIwLjUyMVxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPjxwYXRoIGQ9XFxcIk0xOS4yMDYsMTQuMzA2YTE3LjY4LDE3LjY4LDAsMCwxLDIuNzExLDIuMzQ2Yy45MzgsMS4yLjkzOCwxLjQwOC45MzgsMS40MDhsLS42NzguMzEzYTcuMSw3LjEsMCwwLDAtMi4xMzctMi41Yy0xLjItLjY3OC0xLjM1NS0xLjI1MS0xLjM1NS0xLjI1MVpcXFwiIHN0eWxlPVxcXCJmaWxsOiNlZmNjYTNcXFwiLz48cGF0aCBkPVxcXCJNMTYuMjM1LDEzLjY4YTMuNjA1LDMuNjA1LDAsMCwwLTIuMzQ2LDEuMTQ3Yy0uNzMuNjI2LTIuMDMzLDEuMDQzLTIuNSwxLjYxNmE0LjgwNiw0LjgwNiwwLDAsMC0xLjQ2LDEuOTgxLDguOSw4LjksMCwwLDAtLjMxMywyLjI0MmMwLC4yNjEuMDUyLjMxMy0uNjI2LDBBNy45NzIsNy45NzIsMCwwLDEsNi44LDE4Ljc4OWMuMTU2Ljg4NiwxLjI1MSwxLjY2OCwxLjM1NSwyLjUuMzEzLDIuMTksMi41LDMuMjg0LDcuODcyLDMuMjg0aC4zNjVcXFwiIHN0eWxlPVxcXCJmaWxsOiNjY2FjOGRcXFwiLz48cGF0aCBkPVxcXCJNMjEuMjM5LDE3LjI3N2E2LjU1Miw2LjU1MiwwLDAsMC01LjEwOS0yLjYwN2gwYTYuNjM4LDYuNjM4LDAsMCwwLTUuMTA5LDIuNjA3LDMuODYxLDMuODYxLDAsMCwwLTEuMDQzLDMuMThjMCw0LjY0LDEuNjE2LDMuMjMyLDIuNzExLDMuODA2YTcuNDY2LDcuNDY2LDAsMCwwLDMuMzg5LjMxM2gwYTcuNCw3LjQsMCwwLDAsMy4zODktLjMxM2MxLjA5NS0uNTczLDIuNzExLjgzNCwyLjcxMS0zLjgwNkEzLjM4NiwzLjM4NiwwLDAsMCwyMS4yMzksMTcuMjc3WlxcXCIgc3R5bGU9XFxcImZpbGw6IzU2MzMyYlxcXCIvPjxwYXRoIGQ9XFxcIk0xNi4wMjYsMTUuOTc0YTkuNTQ5LDkuNTQ5LDAsMCwxLS40NjksMi41NTRsLjU3My0uMTU2WlxcXCIgc3R5bGU9XFxcImZpbGw6IzQ0MjgyM1xcXCIvPjxwYXRoIGQ9XFxcIk0xNi4xODIsMTUuOTc0YTkuNTQ5LDkuNTQ5LDAsMCwwLC40NjksMi41NTRsLS41NzMtLjE1NlpcXFwiIHN0eWxlPVxcXCJmaWxsOiM0NDI4MjNcXFwiLz48cGF0aCBkPVxcXCJNMTQuMzU4LDE1LjQ1M2MtLjIwOS0uNTIxLjU3My0xLjM1NSwxLjgyNS0xLjM1NXMyLjAzMy44MzQsMS44MjUsMS4zNTUtMS4wNDMuNjc4LTEuODI1LjY3OEMxNS4zNDgsMTYuMTMsMTQuNTY2LDE1Ljk3NCwxNC4zNTgsMTUuNDUzWlxcXCIgc3R5bGU9XFxcImZpbGw6IzU2MzMyYlxcXCIvPjxwYXRoIGQ9XFxcIk0xNi4xODIsMTUuOTc0YzAtLjEuNzMtLjEsMS4xNDctLjM2NSwwLDAtLjgzNC4yNjEtLjk5MS4xNTZhLjY1Ni42NTYsMCwwLDEtLjIwOS0uMzY1LjY1Ni42NTYsMCwwLDEtLjIwOS4zNjVjLS4xNTYuMS0xLjA5NS0uMTU2LTEuMDk1LS4xNTZhOC4wNTgsOC4wNTgsMCwwLDEsMS4yLjM2NXYuNDE3YTEwLjQ5MiwxMC40OTIsMCwwLDAsLjEsMi4wMzNjLjE1Ni4yMDkuMS0xLjQ2LjEtMi4wMzNBMS4zLDEuMywwLDAsMSwxNi4xODIsMTUuOTc0WlxcXCIvPjxwYXRoIGQ9XFxcIk0xNi4xODIsMTguOTQ1YTMuMzUsMy4zNSwwLDAsMSwxLjYxNi42NzgsMy4xMjEsMy4xMjEsMCwwLDAtMS42MTYtMS4wOTUsMy4wMzYsMy4wMzYsMCwwLDAtMS44MjUsMS4yQTMuMzEyLDMuMzEyLDAsMCwxLDE2LjE4MiwxOC45NDVaXFxcIiBzdHlsZT1cXFwiZmlsbDojN2Y0YTQxXFxcIi8+PHBhdGggZD1cXFwiTTE2LjA3OCwyMi44YTguOSw4LjksMCwwLDEtMi40LS40NjljLS4xNTYtLjA1Mi0uMzEzLjA1Mi0uNDY5LDBhNi4xNzIsNi4xNzIsMCwwLDEtMy4xOC0yLjEzN3YuMjA5YzAsNC42NCwxLjYxNiwzLjIzMiwyLjcxMSwzLjgwNmE3LjQ2Niw3LjQ2NiwwLDAsMCwzLjM4OS4zMTNoMGE3LjQsNy40LDAsMCwwLDMuMzg5LS4zMTNjMS4wOTUtLjU3MywyLjcxMS44MzQsMi43MTEtMy44MDZ2LS40NjlBNS45MTQsNS45MTQsMCwwLDEsMTksMjIuMjgyYy0uMTU2LjA1Mi0uNDE3LS4wNTItLjU3My0uMDUyQTcuMDQ1LDcuMDQ1LDAsMCwxLDE2LjA3OCwyMi44WlxcXCIgc3R5bGU9XFxcImZpbGw6IzQ0MjgyM1xcXCIvPjxwYXRoIGQ9XFxcIk0xMy45NDEsMjAuM3MtLjU3MywxLjY2OC0uMTU2LDIuNGwtLjUyMS0uMjA5QTE1LjQzMywxNS40MzMsMCwwLDEsMTMuOTQxLDIwLjNaXFxcIiBzdHlsZT1cXFwiZmlsbDojNDQyODIzXFxcIi8+PHBhdGggZD1cXFwiTTE4LjMyLDIwLjNzLjU3MywxLjY2OC4xNTYsMi40TDE5LDIyLjQ5MUExMC42MjksMTAuNjI5LDAsMCwwLDE4LjMyLDIwLjNaXFxcIiBzdHlsZT1cXFwiZmlsbDojNDQyODIzXFxcIi8+PHBhdGggZD1cXFwiTTEyLjU4NSwxMS45MDhjLS4yMDkuNjc4LS44ODYsMy4wMjQuNDY5LDIuMjQyYTIuNTU3LDIuNTU3LDAsMCwwLS45MzgsMS41NjQsMS44MzEsMS44MzEsMCwwLDEtMS4zLDEuNDA4QTMuNDc5LDMuNDc5LDAsMCwxLDguMjU4LDE2LjVhMi45NTYsMi45NTYsMCwwLDEtLjY3OC0zLjI4NCwyLjQzLDIuNDMsMCwwLDEsMi4xMzctMS42MTZDMTAuNzA5LDExLjMzNCwxMi43OTQsMTEuMTI2LDEyLjU4NSwxMS45MDhaXFxcIiBzdHlsZT1cXFwiZmlsbDojY2NhYzhkXFxcIi8+PHBhdGggZD1cXFwiTTE2LjEzLDE4LjUyOGEzLjM5MywzLjM5MywwLDAsMSwyLjQ1LDIuODY3di0uMWEzLjA1MSwzLjA1MSwwLDAsMC0yLjQ1LTIuOTE5LDMsMywwLDAsMC0yLjQ1LDIuOTE5di4xQTMuNDYzLDMuNDYzLDAsMCwxLDE2LjEzLDE4LjUyOFpcXFwiLz48ZWxsaXBzZSBjeD1cXFwiMTYuNTQ2XFxcIiBjeT1cXFwiMTUuMTM4XFxcIiByeD1cXFwiMC4xNTZcXFwiIHJ5PVxcXCIwLjMxM1xcXCIgdHJhbnNmb3JtPVxcXCJ0cmFuc2xhdGUoLTMuMjU2IDQuNjExKSByb3RhdGUoLTE0LjQ2KVxcXCIgc3R5bGU9XFxcImZpbGw6IzMzMTcxMlxcXCIvPjxlbGxpcHNlIGN4PVxcXCIxNS42MDlcXFwiIGN5PVxcXCIxNS4xNDZcXFwiIHJ4PVxcXCIwLjMxM1xcXCIgcnk9XFxcIjAuMTU2XFxcIiB0cmFuc2Zvcm09XFxcInRyYW5zbGF0ZSgtMy40ODIgMjUuNTY3KSByb3RhdGUoLTcyLjc2NSlcXFwiIHN0eWxlPVxcXCJmaWxsOiMzMzE3MTJcXFwiLz48Y2lyY2xlIGN4PVxcXCIxMC4wMzFcXFwiIGN5PVxcXCIxNC40MVxcXCIgcj1cXFwiMS45MjlcXFwiLz48Y2lyY2xlIGN4PVxcXCIxMC41NTJcXFwiIGN5PVxcXCIxMy41MjRcXFwiIHI9XFxcIjAuNTIxXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+PHBhdGggZD1cXFwiTTE2LjcsMTQuNDFzLS41MjEuMjA5LS42MjYuMjYxYTIuNDkyLDIuNDkyLDAsMCwxLS42MjYtLjI2MUgxNi43WlxcXCIgc3R5bGU9XFxcImZpbGw6IzdmNGE0MVxcXCIvPjxwYXRoIGQ9XFxcIk0xMi45LDE0LjMwNmExNy42OCwxNy42OCwwLDAsMC0yLjcxMSwyLjM0NmMtLjkzOCwxLjItLjkzOCwxLjQwOC0uOTM4LDEuNDA4bC42NzguMzEzYTcuMSw3LjEsMCwwLDEsMi4xMzctMi41YzEuMi0uNjc4LDEuMzU1LTEuMjUxLDEuMzU1LTEuMjUxWlxcXCIgc3R5bGU9XFxcImZpbGw6I2VmY2NhM1xcXCIvPjxwYXRoIGQ9XFxcIk05LjA5MiwxMC44MTNhNC41MTksNC41MTksMCwwLDEtMS45MjksMi4yOTRBMi4xOSwyLjE5LDAsMCwwLDkuMDkyLDEwLjgxM1pcXFwiIHN0eWxlPVxcXCJmaWxsOiNjY2FjOGRcXFwiLz48cGF0aCBkPVxcXCJNMjIuOTA4LDEwLjgxM2E0LjUxOSw0LjUxOSwwLDAsMCwxLjkyOSwyLjI5NEEyLjE5LDIuMTksMCwwLDEsMjIuOTA4LDEwLjgxM1pcXFwiIHN0eWxlPVxcXCJmaWxsOiNjY2FjOGRcXFwiLz48cGF0aCBkPVxcXCJNMTkuMzEsMTMuODM2YTUuMTYsNS4xNiwwLDAsMC0zLjA3Ni0xLjQwOGguMTU2YTMuODUyLDMuODUyLDAsMCwwLTMuMDI0LDEuNDA4LDQuODMyLDQuODMyLDAsMCwxLDMuMDI0LTEuMDQzaDBBNS43ODUsNS43ODUsMCwwLDEsMTkuMzEsMTMuODM2WlxcXCIgc3R5bGU9XFxcImZpbGw6I2NjYWM4ZFxcXCIvPjxwYXRoIGQ9XFxcIk0xNy43NDYsMTAuOTY5YTIuNDU1LDIuNDU1LDAsMCwwLTEuNTY0LS45MzhoLjE1NmExLjc4NiwxLjc4NiwwLDAsMC0xLjUxMi45MzgsMi4xODcsMi4xODcsMCwwLDEsMS41MTItLjY3OGgwQTEuODk0LDEuODk0LDAsMCwxLDE3Ljc0NiwxMC45NjlaXFxcIiBzdHlsZT1cXFwiZmlsbDojY2NhYzhkXFxcIi8+PHBhdGggZD1cXFwiTTEwLjAzMSwxNy43NDZhMi41NDUsMi41NDUsMCwwLDEtMS43NzMuMjA5SDguMDVhMy42OCwzLjY4LDAsMCwxLS44ODYtMS41MTJBMi4yNywyLjI3LDAsMCwwLDEwLjAzMSwxNy43NDZaXFxcIiBzdHlsZT1cXFwiZmlsbDojY2NhYzhkXFxcIi8+PHBhdGggZD1cXFwiTTIyLjEyNiwxNy43NDZhMi41NDUsMi41NDUsMCwwLDAsMS43NzMuMjA5SDIzLjY5YTEuNzQ5LDEuNzQ5LDAsMCwwLDEuMDk1LTEuNTEyQTIuMDIsMi4wMiwwLDAsMSwyMi4xMjYsMTcuNzQ2WlxcXCIgc3R5bGU9XFxcImZpbGw6I2NjYWM4ZFxcXCIvPjxwYXRoIGQ9XFxcIk0xMS4yMywxMC43MDlhNC43NSw0Ljc1LDAsMCwxLDIuMjQyLjFjLjkzOC4zMTMuMjA5LDEuNTY0LjM2NSwxLjYxNmEyLjg2NSwyLjg2NSwwLDAsMSwyLjI0Mi0uNzNjMS43NzMuMSwxLjk4MS44ODYsMi4yNDIuNzMuMjYxLS4xLS4yNjEtMi4xOSwyLjQ1LTEuNzIsMCwwLTIuNzYzLS43My0yLjY1OSwxLjI1MWEzLjY3NSwzLjY3NSwwLDAsMC0zLjg1OC0uMVMxNC44MjcsOS45MjcsMTEuMjMsMTAuNzA5WlxcXCIgc3R5bGU9XFxcImZpbGw6I2NjYWM4ZFxcXCIvPjxwYXRoIGQ9XFxcIk0xMC41LDhzLTIuNCwyLjk3Mi0yLjcxMSw0LjExOGMtLjM2NSwxLjE0Ny0uNjI2LDUuOTQzLS45MzgsNi42MjFMNS43NTYsMTQuMDQ1bDIuMDMzLTQuOVpcXFwiIHN0eWxlPVxcXCJmaWxsOiNjY2FjOGRcXFwiLz48cGF0aCBkPVxcXCJNMjEuNjU2LDhzMi40LDIuOTcyLDIuNzExLDQuMTE4Yy4zNjUsMS4xNDcuNjI2LDUuOTQzLjkzOCw2LjYyMUwyNi40LDE0LjA0NWwtMi4wMzMtNC45WlxcXCIgc3R5bGU9XFxcImZpbGw6I2NjYWM4ZFxcXCIvPjxwYXRoIGQ9XFxcIk0yMS41LDhhMTEuNjE3LDExLjYxNywwLDAsMSwzLjI4NCw0LjU4OGMuNzMsMi40NS40MTcsNS40NzQuOTkxLDUuODM5LjgzNC41MjEsMS43Mi0yLjYwNywyLjAzMy0yLjkxOS40NjktLjUyMSwyLjA4NS0xLjg3NywyLjE5LTIuMTM3cy0zLjIzMi0zLjkxLTQuNzQ0LTQuNjRDMjMuNTg1LDcuODkzLDIxLjQsNy43ODksMjEuNSw4WlxcXCIgc3R5bGU9XFxcImZpbGw6IzU2MzMyYlxcXCIvPjxwYXRoIGQ9XFxcIk0yMy42OSw5LjNhMTUuMzc5LDE1LjM3OSwwLDAsMSwyLjk3Miw4LjY1NGwxLjItMi40NUExNi41NjQsMTYuNTY0LDAsMCwwLDIzLjY5LDkuM1pcXFwiIHN0eWxlPVxcXCJmaWxsOiM0NDI4MjNcXFwiLz48cGF0aCBkPVxcXCJNMTAuNSw4YTExLjYxNywxMS42MTcsMCwwLDAtMy4yODQsNC41ODhjLS43MywyLjQ1LS40MTcsNS40NzQtLjk5MSw1LjgzOS0uODM0LjUyMS0xLjcyLTIuNjA3LTIuMDMzLTIuOTE5LS40NjktLjUyMS0yLjA4NS0xLjg3Ny0yLjE5LTIuMTM3czMuMjMyLTMuOTEsNC43NDQtNC42NEM4LjQxNSw3Ljg5MywxMC42LDcuNzg5LDEwLjUsOFpcXFwiIHN0eWxlPVxcXCJmaWxsOiM1NjMzMmJcXFwiLz48cGF0aCBkPVxcXCJNOC4zMSw5LjNhMTUuMzc5LDE1LjM3OSwwLDAsMC0yLjk3Miw4LjY1NEw0LjE0LDE1LjVBMTYuNTY0LDE2LjU2NCwwLDAsMSw4LjMxLDkuM1pcXFwiIHN0eWxlPVxcXCJmaWxsOiM0NDI4MjNcXFwiLz48cGF0aCBkPVxcXCJNNi42NDIsMTguMDA3YTQuMTE4LDQuMTE4LDAsMCwwLC41NzMsMS41NjRjLjM2NS4zNjUuMS0uMzEzLjEtLjMxM3MtLjM2NS0uMjA5LS4zMTMtMS43MlM2LjY0MiwxOC4wMDcsNi42NDIsMTguMDA3WlxcXCIgc3R5bGU9XFxcImZpbGw6I2NjYWM4ZFxcXCIvPjxwYXRoIGQ9XFxcIk0yNS40MSwxOC4wMDdhNC4xMTgsNC4xMTgsMCwwLDEtLjU3MywxLjU2NGMtLjM2NS4zNjUtLjEtLjMxMy0uMS0uMzEzcy4zNjUtLjIwOS4zMTMtMS43MkMyNC45OTMsMTYuMDc4LDI1LjQxLDE4LjAwNywyNS40MSwxOC4wMDdaXFxcIiBzdHlsZT1cXFwiZmlsbDojY2NhYzhkXFxcIi8+PGNpcmNsZSBjeD1cXFwiMTMuODg5XFxcIiBjeT1cXFwiMTcuMTIxXFxcIiByPVxcXCIwLjE1NlxcXCIgc3R5bGU9XFxcImZpbGw6IzQ0MjgyM1xcXCIvPjxjaXJjbGUgY3g9XFxcIjEyLjg0NlxcXCIgY3k9XFxcIjE4LjIxNlxcXCIgcj1cXFwiMC4xNTZcXFwiIHN0eWxlPVxcXCJmaWxsOiM0NDI4MjNcXFwiLz48Y2lyY2xlIGN4PVxcXCIxMi41MzNcXFwiIGN5PVxcXCIxNy4xMjFcXFwiIHI9XFxcIjAuMTU2XFxcIiBzdHlsZT1cXFwiZmlsbDojNDQyODIzXFxcIi8+PGNpcmNsZSBjeD1cXFwiMTguMTY0XFxcIiBjeT1cXFwiMTcuMTIxXFxcIiByPVxcXCIwLjE1NlxcXCIgc3R5bGU9XFxcImZpbGw6IzQ0MjgyM1xcXCIvPjxjaXJjbGUgY3g9XFxcIjE5LjE1NFxcXCIgY3k9XFxcIjE4LjIxNlxcXCIgcj1cXFwiMC4xNTZcXFwiIHN0eWxlPVxcXCJmaWxsOiM0NDI4MjNcXFwiLz48Y2lyY2xlIGN4PVxcXCIxOS40NjdcXFwiIGN5PVxcXCIxNy4xMjFcXFwiIHI9XFxcIjAuMTU2XFxcIiBzdHlsZT1cXFwiZmlsbDojNDQyODIzXFxcIi8+XCIsXG5cdFwiUHVwcGV0XCI6IFwiPHBhdGggZD1cXFwiTTI1LjA4OSwxMS44MjJIMTguN0wxNS4yNjcsOC4zODhWMkg2LjkxMXY4LjM1N0gxMy4zbDMuNDIyLDMuNDIyaDB2NC40MzFoMGwtMy40MzQsMy40MzRINi45MTFWMzBoOC4zNTdWMjMuNjEyaDBMMTguNywyMC4xNzhoNi4zODhaTTkuNyw0Ljc4NmgyLjc4NlY3LjU3MUg5LjdaTTEyLjQ4MiwyNy4ySDkuN1YyNC40MTdoMi43ODZaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZhZTFhXFxcIi8+XCIsXG5cdFwiUHVyZVNjcmlwdFwiOiBcIjxyZWN0IHdpZHRoPVxcXCIzMlxcXCIgaGVpZ2h0PVxcXCIzMlxcXCIgc3R5bGU9XFxcImZpbGw6IzE2MTcxYlxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMjEuODkyIDIyLjEzNiAxOS43MDYgMjAuMDk1IDEwLjEwNyAyMC4wOTUgMTIuMjkzIDIyLjEzNiAyMS44OTIgMjIuMTM2XFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIxMi4yOTMgMTQuOTggMTAuMTA3IDE3LjAyMSAxOS43MDYgMTcuMDIxIDIxLjg5MiAxNC45OCAxMi4yOTMgMTQuOThcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjIxLjg5MSAxMS45MDYgMTkuNzA2IDkuODY0IDEwLjEwNyA5Ljg2NCAxMi4yOTMgMTEuOTA2IDIxLjg5MSAxMS45MDZcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48cGF0aCBkPVxcXCJNOS4xLDEzLjkyNiw3LjY1MiwxMi40ODIsMi4zLDE3LjgzNmExLjAyMywxLjAyMywwLDAsMCwwLDEuNDQzbDUuMzU0LDUuMzU0TDkuMSwyMy4xOSw0LjQ2NCwxOC41NThaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+PHBhdGggZD1cXFwiTTI5LjcsMTIuNzIxLDI0LjM0OCw3LjM2NiwyMi45LDguODFsNC42Myw0LjYzMkwyMi45LDE4LjA3NWwxLjQ0MywxLjQ0M0wyOS43LDE0LjE2NWExLjAyMSwxLjAyMSwwLDAsMCwwLTEuNDQ0WlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPlwiLFxuXHRcIlB5dGhvblwiOiBcIjxkZWZzPjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiYVxcXCIgeDE9XFxcIi0xMzMuMjY4XFxcIiB5MT1cXFwiLTIwMi45MVxcXCIgeDI9XFxcIi0xMzMuMTk4XFxcIiB5Mj1cXFwiLTIwMi44NFxcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcInRyYW5zbGF0ZSgyNTI0My4wNjEgMzg1MTkuMTcpIHNjYWxlKDE4OS4zOCAxODkuODEpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjMzg3ZWI4XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjMzY2OTk0XFxcIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9XFxcImJcXFwiIHgxPVxcXCItMTMzLjU3NVxcXCIgeTE9XFxcIi0yMDMuMjAzXFxcIiB4Mj1cXFwiLTEzMy40OTVcXFwiIHkyPVxcXCItMjAzLjEzM1xcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcInRyYW5zbGF0ZSgyNTMwOS4wNjEgMzg1ODMuNDIpIHNjYWxlKDE4OS4zOCAxODkuODEpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjZmZlMDUyXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjZmZjMzMxXFxcIi8+PC9saW5lYXJHcmFkaWVudD48L2RlZnM+PHRpdGxlPmZpbGVfdHlwZV9weXRob248L3RpdGxlPjxwYXRoIGQ9XFxcIk0xNS44ODUsMi4xYy03LjEsMC02LjY1MSwzLjA3LTYuNjUxLDMuMDdWOC4zNmg2Ljc1MnYxSDYuNTQ1UzIsOC44LDIsMTYuMDA1czQuMDEzLDYuOTEyLDQuMDEzLDYuOTEySDguMzNWMTkuNTU2cy0uMTMtNC4wMTMsMy45LTQuMDEzaDYuNzYyczMuNzcyLjA2LDMuNzcyLTMuNjUyVjUuOHMuNTcyLTMuNzEyLTYuODQyLTMuNzEyaDBaTTEyLjE1Myw0LjIzN2ExLjIxNCwxLjIxNCwwLDEsMS0xLjE4MywxLjI0NHYtLjAyYTEuMjE0LDEuMjE0LDAsMCwxLDEuMjE0LTEuMjE0aDBaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2EpXFxcIi8+PHBhdGggZD1cXFwiTTE2LjA4NSwyOS45MWM3LjEsMCw2LjY1MS0zLjA4LDYuNjUxLTMuMDhWMjMuNjVIMTUuOTg1di0xaDkuNDdTMzAsMjMuMTU4LDMwLDE1Ljk5NXMtNC4wMTMtNi45MTItNC4wMTMtNi45MTJIMjMuNjRWMTIuNHMuMTMsNC4wMTMtMy45LDQuMDEzSDEyLjk3NVM5LjIsMTYuMzU2LDkuMiwyMC4wNjhWMjYuMnMtLjU3MiwzLjcxMiw2Ljg0MiwzLjcxMmguMDRabTMuNzMyLTIuMTQ3QTEuMjE0LDEuMjE0LDAsMSwxLDIxLDI2LjUxOXYuMDNhMS4yMTQsMS4yMTQsMCwwLDEtMS4yMTQsMS4yMTRoLjAzWlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNiKVxcXCIvPlwiLFxuXHRcIlEgKGtkYisgZGF0YWJhc2UpXCI6IFwiPHBhdGggZD1cXFwiTTIwLjA5MiwyOVYxOS42ODJBNi45NTMsNi45NTMsMCwwLDEsMTcuNywyMS42NDVhNi43NDMsNi43NDMsMCwwLDEtMy4wODkuNzI0QTYuNTU3LDYuNTU3LDAsMCwxLDkuNDEzLDIwLDExLjA4MSwxMS4wODEsMCwwLDEsNywxMi40NzUsMTAuMDMzLDEwLjAzMywwLDAsMSw5LjI2NCw1LjUsNy4yNTEsNy4yNTEsMCwwLDEsMTQuODc0LDNhNi4yNjYsNi4yNjYsMCwwLDEsMy4yLjc4NSw3LjMyOSw3LjMyOSwwLDAsMSwyLjQsMi4zNzNWMy40MTlIMjVWMjlabS4xNTctMTYuNTQyYTYuNDkyLDYuNDkyLDAsMCwwLTEuMTYtNC4yMzIsMy42MzQsMy42MzQsMCwwLDAtMi45MDUtMS4zODcsMy43NDIsMy43NDIsMCwwLDAtMi45NzUsMS40MTMsNi44ODEsNi44ODEsMCwwLDAtMS4yLDQuNDg1LDYuNzY3LDYuNzY3LDAsMCwwLDEuMTUyLDQuNDA2QTMuNTkzLDMuNTkzLDAsMCwwLDE2LjAwOSwxOC41YTMuNzg2LDMuNzg2LDAsMCwwLDIuOTY2LTEuNTE4QTYuODg5LDYuODg5LDAsMCwwLDIwLjI0OSwxMi40NThaXFxcIiBzdHlsZT1cXFwiZmlsbDojMWU3OGIzXFxcIi8+XCIsXG5cdFwiUSNcIjogXCI8cGF0aCBkPVxcXCJNMTkuNDUxLDYuMjE4aDIuNjM4VjguODU2aDIuNjM3VjYuMjE4aDIuNjM3VjguODU2SDMwVjExLjVIMjcuMzY0djIuNjM2SDMwVjE2Ljc3SDI3LjM2NHYyLjYzN0gyNC43MjdWMTYuNzY5SDIyLjA5MWwwLDIuNjM3SDE5LjQ1M1YxNi43NjhIMTYuODE1VjE0LjEyN2gyLjYzOFYxMS41SDE2LjgxNVY4Ljg1M2gyLjYzOVptMi42MzgsNy45MTRoMi42MzdWMTEuNUgyMi4wODlaXFxcIiBzdHlsZT1cXFwiZmlsbDojMzNjXFxcIi8+PHBhdGggZD1cXFwiTTE0LjAxOCwyMS41MjRhMTEuNDM2LDExLjQzNiwwLDAsMCwxLjU3Mi02LjE5MiwxMC44NzcsMTAuODc3LDAsMCwwLTEuODU4LTYuNkE1Ljg4OSw1Ljg4OSwwLDAsMCw4LjgwOCw2LjE1M2E1LjkyMSw1LjkyMSwwLDAsMC00Ljk0LDIuNTgxQTEwLjg0MiwxMC44NDIsMCwwLDAsMiwxNS4zMzNhMTAuODUzLDEwLjg1MywwLDAsMCwxLjg2OCw2LjU5Miw1LjkxOCw1LjkxOCwwLDAsMCw0Ljk0MSwyLjU4OCw1Ljc0Myw1Ljc0MywwLDAsMCwzLjI2LS45ODdsMi4zMDYsMi4zMjEsMS41NzctMi40Wm0tNS4xNy0xLjIxOCwxLjExNywxLjEyMWEzLjIyOSwzLjIyOSwwLDAsMS0xLjE3NC4yMTcsMy4zMzUsMy4zMzUsMCwwLDEtMi44MzctMS41OTMsOC4xMjUsOC4xMjUsMCwwLDEtMS4xOC00LjcxOSw4LjEsOC4xLDAsMCwxLDEuMTg0LTQuNzI0LDMuMzcyLDMuMzcyLDAsMCwxLDIuODctMS41ODgsMy4zMSwzLjMxLDAsMCwxLDIuODE5LDEuNTg1LDguMTc4LDguMTc4LDAsMCwxLDEuMTcyLDQuNzI2LDkuMTEzLDkuMTEzLDAsMCwxLS44MzMsNC4xNWwtMS41Ni0xLjU3MVpcXFwiIHN0eWxlPVxcXCJmaWxsOiMzM2NcXFwiLz5cIixcblx0XCJRTUxcIjogXCI8cGF0aCBkPVxcXCJNMjcuMyw1SDUuODg2TDIsOC45NThWMjZIMjYuMTE0TDMwLDIyLjA0MlY1Wk0xNi45LDIzLjA3bC0xLjgyOC44NTJMMTMuNSwyMS4zMzFhMy45NjgsMy45NjgsMCwwLDEtMS4wODIuMTA2Yy0xLjg0NSwwLTMuMTIzLS41LTMuODUtMS40OWE4LjAzLDguMDMsMCwwLDEtMS4wODItNC43LDguMzUxLDguMzUxLDAsMCwxLDEuMS00Ljc3Myw0LjM3OSw0LjM3OSwwLDAsMSwzLjgzMy0xLjU2MWMxLjgyOCwwLDMuMDg3LjUxNSwzLjgzMywxLjU0NGE4LjM1MSw4LjM1MSwwLDAsMSwxLjEsNC43NzMsMTAuODA5LDEwLjgwOSwwLDAsMS0uNDUyLDMuNDQsMy45LDMuOSwwLDAsMS0xLjQ3MywyWm01Ljg0OC0xLjY3YTIuNzM1LDIuNzM1LDAsMCwxLTIuMTY4LS42OTJBNC4xOTIsNC4xOTIsMCwwLDEsMjAsMTguMVYxNEgxOVYxMmgxVjloMnYzaDJ2MkgyMnYzLjlhMy45MDcsMy45MDcsMCwwLDAsLjE2OCwxLjQzN2MuMTEyLjIzMS4zOTMuMzU1Ljg2LjM1NWwxLjUzMy0uMDUzLjA5MywxLjU0NEExMi41MTksMTIuNTE5LDAsMCwxLDIyLjc0OCwyMS40Wk0xMi40MTYsMTAuNjE0YTIuNCwyLjQsMCwwLDAtMi4yODksMS4xLDcuNjU3LDcuNjU3LDAsMCwwLS42LDMuNTEzLDcuMTMxLDcuMTMxLDAsMCwwLC42LDMuNDQyQTIuNDQsMi40NCwwLDAsMCwxMi40MzMsMTkuN2EyLjQxNywyLjQxNywwLDAsMCwyLjI4OS0xLjAxMSw3LjM0Myw3LjM0MywwLDAsMCwuNTg2LTMuNDQyLDcuNjkyLDcuNjkyLDAsMCwwLS42LTMuNTMxQTIuNCwyLjQsMCwwLDAsMTIuNDE2LDEwLjYxNFpcXFwiIHN0eWxlPVxcXCJmaWxsOiM0MWNkNTJcXFwiLz5cIixcblx0XCJSXCI6IFwiPGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJhXFxcIiB4MT1cXFwiLTEzNC44MTFcXFwiIHkxPVxcXCItMTAzLjI4NFxcXCIgeDI9XFxcIi0xMzQuNzcyXFxcIiB5Mj1cXFwiLTEwMy4zMjNcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJtYXRyaXgoNzIxLjA5NCwgMCwgMCwgLTQ4Mi45MzcsIDk3MjEzLjU5NSwgLTQ5ODc0LjUxMilcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiNjYmNlZDBcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiM4NDgzOGJcXFwiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiYlxcXCIgeDE9XFxcIi0xMzUuMzc4XFxcIiB5MT1cXFwiLTEwMi45ODVcXFwiIHgyPVxcXCItMTM1LjMzOVxcXCIgeTI9XFxcIi0xMDMuMDI0XFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwibWF0cml4KDM5OCwgMCwgMCwgLTQwNi4xMjQsIDUzODkzLCAtNDE4MTIuODM2KVxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiIzI3NmRjM1xcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiIzE2NWNhYVxcXCIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjx0aXRsZT5maWxlX3R5cGVfcjwvdGl0bGU+PHBhdGggZD1cXFwiTTE2LDIzLjk1NmMtNy43MzIsMC0xNC00LjItMTQtOS4zNzZTOC4yNjgsNS4yLDE2LDUuMiwzMCw5LjQsMzAsMTQuNTgsMjMuNzMyLDIzLjk1NiwxNiwyMy45NTZaTTE4LjE0Myw4Ljg3QzEyLjI2Niw4Ljg3LDcuNSwxMS43NCw3LjUsMTUuMjhzNC43NjQsNi40MSwxMC42NDEsNi40MSwxMC4yMTQtMS45NjIsMTAuMjE0LTYuNDFTMjQuMDIsOC44NywxOC4xNDMsOC44N1pcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjYSlcXFwiLz48cGF0aCBkPVxcXCJNMjMuMzIxLDE5LjcyNmExMC41NDUsMTAuNTQ1LDAsMCwxLDEuMzQuNSwyLjU5MSwyLjU5MSwwLDAsMSwuNjguNDg1LDEuODM1LDEuODM1LDAsMCwxLC4zMTEuNDQ3bDMuMzM5LDUuNjMtNS40LDAtMi41MjQtNC43NGE2LjEsNi4xLDAsMCwwLS44MzUtMS4xNDUuODc5Ljg3OSwwLDAsMC0uNjQxLS4yOTFIMTguMzExdjYuMTczbC00Ljc3NiwwVjExLjAyNmg5LjU5MVMyNy41LDExLjEsMjcuNSwxNS4yNjEsMjMuMzIxLDE5LjcyNiwyMy4zMjEsMTkuNzI2Wm0tMi4wNzctNS4yOC0yLjg5MSwwdjIuNjgxaDIuODkzYTEuMzIzLDEuMzIzLDAsMCwwLDEuMzQtMS4zNjRBMS4yNDcsMS4yNDcsMCwwLDAsMjEuMjQ0LDE0LjQ0N1pcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjYilcXFwiLz5cIixcblx0XCJSYWNrZXRcIjogXCI8Y2lyY2xlIGN4PVxcXCIxNlxcXCIgY3k9XFxcIjE2XFxcIiByPVxcXCIxNFxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPjxwYXRoIGQ9XFxcIk0yNy4wMTYsMjQuNjQxYTE0LDE0LDAsMCwwLTE1LjgtMjEuOEMxNi45LDUuODIyLDI0LjQxMywxNS41NDksMjcuMDE2LDI0LjY0MVpcXFwiIHN0eWxlPVxcXCJmaWxsOiMzZTViYTlcXFwiLz48cGF0aCBkPVxcXCJNMTMuOTk1LDEwLjkzYTI0LjMsMjQuMywwLDAsMC03LjIyLTUuNDZBMTQsMTQsMCwwLDAsNS40NjMsMjUuMjE3LDM5LjU2LDM5LjU2LDAsMCwxLDEzLjk5NSwxMC45M1pcXFwiIHN0eWxlPVxcXCJmaWxsOiM5ZjFkMjBcXFwiLz48cGF0aCBkPVxcXCJNMTYuNTc1LDE0LjFBMzIuNjQ1LDMyLjY0NSwwLDAsMCw5LjQzLDI4LjM2NWExNC4wMTYsMTQuMDE2LDAsMCwwLDEzLjMtLjA4OUEzOC42NDIsMzguNjQyLDAsMCwwLDE2LjU3NSwxNC4xWlxcXCIgc3R5bGU9XFxcImZpbGw6IzlmMWQyMFxcXCIvPlwiLFxuXHRcIlJhem9yIEMjXCI6IFwiPHBhdGggZD1cXFwiTTIzLjg0NCwyNy42OTJhMTYuMzMyLDE2LjMzMiwwLDAsMS02LjY0NSwxLjNxLTYuMzY0LDAtMTAuMDEzLTMuMjQzYTExLjMsMTEuMywwLDAsMS0zLjY0OS04LjlBMTMuNzE2LDEzLjcxNiwwLDAsMSw3LjMyMiw2Ljk1MSwxMi43MTYsMTIuNzE2LDAsMCwxLDE2LjksMy4wMDhhMTEuNjc2LDExLjY3NiwwLDAsMSw4LjQyNSwzLjAwNiw5Ljk5NCw5Ljk5NCwwLDAsMSwzLjE0Miw3LjUzMywxMC4xODcsMTAuMTg3LDAsMCwxLTIuMzE4LDcuMTE0LDcuNTMyLDcuNTMyLDAsMCwxLTUuODE3LDIuNTQ3LDIuNjEzLDIuNjEzLDAsMCwxLTEuODQ1LS42NDIsMi4zMjMsMi4zMjMsMCwwLDEtLjc2NC0xLjYsNC45LDQuOSwwLDAsMS00LjE0OCwyLjI0Myw0LjYsNC42LDAsMCwxLTMuNTA3LTEuNDc5LDUuNzA2LDUuNzA2LDAsMCwxLTEuMzg0LTQuMDYzLDkuOTEzLDkuOTEzLDAsMCwxLDIuMi02LjM1N3EyLjItMi43NjMsNC44LTIuNzYzYTUuMDYzLDUuMDYzLDAsMCwxLDQuMjU2LDEuNzE2bC4zMTEtMS4zMzhoMi40MDVsLTIuMDgxLDkuMDhhMTAuNzE2LDEwLjcxNiwwLDAsMC0uMzUyLDIuMjQzcTAsLjk3Mi43NDQuOTcyYTQuODE5LDQuODE5LDAsMCwwLDMuODc3LTIuMDQ3LDguOTMsOC45MywwLDAsMCwxLjYyMS01LjY4MSw3Ljk4LDcuOTgsMCwwLDAtMi42NzUtNi4xNzUsOS44ODcsOS44ODcsMCwwLDAtNi45MTktMi40MzJBMTAuNiwxMC42LDAsMCwwLDguNzEzLDguMzUyYTEyLjA2NiwxMi4wNjYsMCwwLDAtMy4yLDguNDk1LDkuNTYxLDkuNTYxLDAsMCwwLDMuMDYsNy41NzNxMy4wNiwyLjcsOC41ODYsMi43YTEzLjc1NywxMy43NTcsMCwwLDAsNS42NzUtMS4wNTRaTTE5LjQ2NiwxMi4yNWEzLjk3NywzLjk3NywwLDAsMC0zLjYtMS43MTZxLTEuODI0LDAtMy4yNjMsMi4yM2E4LjcyNiw4LjcyNiwwLDAsMC0xLjQzOSw0LjgyNHEwLDMuNjM1LDIuOTA1LDMuNjM1QTMuNzcxLDMuNzcxLDAsMCwwLDE2LjcyLDIwLjA0YTYuMzA5LDYuMzA5LDAsMCwwLDEuNy0zLjJaXFxcIiBzdHlsZT1cXFwiZmlsbDojMzY4ODMyXFxcIi8+XCIsXG5cdFwiUmVhY3QgSlNYXCI6IFwiPGNpcmNsZSBjeD1cXFwiMTZcXFwiIGN5PVxcXCIxNS45NzRcXFwiIHI9XFxcIjIuNVxcXCIgc3R5bGU9XFxcImZpbGw6IzAwZDhmZlxcXCIvPjxwYXRoIGQ9XFxcIk0xNiwyMS43MDZhMjguMzg1LDI4LjM4NSwwLDAsMS04Ljg4LTEuMiwxMS4zLDExLjMsMCwwLDEtMy42NTctMS45NThBMy41NDMsMy41NDMsMCwwLDEsMiwxNS45NzRjMC0xLjY1MywxLjgxNi0zLjI3Myw0Ljg1OC00LjMzM0EyOC43NTUsMjguNzU1LDAsMCwxLDE2LDEwLjI5M2EyOC42NzQsMjguNjc0LDAsMCwxLDkuMDIyLDEuMzI0LDExLjM3NiwxMS4zNzYsMCwwLDEsMy41MzgsMS44NjZBMy4zOTEsMy4zOTEsMCwwLDEsMzAsMTUuOTc0YzAsMS43MTgtMi4wMywzLjQ1OS01LjMsNC41NDFBMjguOCwyOC44LDAsMCwxLDE2LDIxLjcwNlptMC0xMC4yMTdhMjcuOTQ4LDI3Ljk0OCwwLDAsMC04Ljc0OSwxLjI4MmMtMi44Ljk3Ny00LjA1NSwyLjMxMy00LjA1NSwzLjIsMCwuOTI4LDEuMzQ5LDIuMzg3LDQuMzExLDMuNEEyNy4yMSwyNy4yMSwwLDAsMCwxNiwyMC41MWEyNy42LDI3LjYsMCwwLDAsOC4zMjUtMS4xM0MyNy40LDE4LjM2MSwyOC44LDE2LjksMjguOCwxNS45NzRhMi4zMjcsMi4zMjcsMCwwLDAtMS4wMS0xLjU3MywxMC4xOTQsMTAuMTk0LDAsMCwwLTMuMTYxLTEuNjU0QTI3LjQ2MiwyNy40NjIsMCwwLDAsMTYsMTEuNDg5WlxcXCIgc3R5bGU9XFxcImZpbGw6IzAwZDhmZlxcXCIvPjxwYXRoIGQ9XFxcIk0xMC4zMiwyOC40NDNhMi42MzksMi42MzksMCwwLDEtMS4zMzYtLjMyOGMtMS40MzItLjgyNi0xLjkyOC0zLjIwOC0xLjMyNy02LjM3M2EyOC43NTUsMjguNzU1LDAsMCwxLDMuNC04LjU5M2gwQTI4LjY3NiwyOC42NzYsMCwwLDEsMTYuNzEsNS45OTVhMTEuMzc2LDExLjM3NiwwLDAsMSwzLjM4NC0yLjEzMywzLjM5MSwzLjM5MSwwLDAsMSwyLjg3OCwwYzEuNDg5Ljg1OCwxLjk4MiwzLjQ4NiwxLjI4Nyw2Ljg1OWEyOC44MDYsMjguODA2LDAsMCwxLTMuMzE2LDguMTMzLDI4LjM4NSwyOC4zODUsMCwwLDEtNS40NzYsNy4wOTMsMTEuMywxMS4zLDAsMCwxLTMuNTIzLDIuMTg5QTQuOTI2LDQuOTI2LDAsMCwxLDEwLjMyLDI4LjQ0M1ptMS43NzMtMTQuN2EyNy45NDgsMjcuOTQ4LDAsMCwwLTMuMjYsOC4yMTljLS41NTMsMi45MTUtLjAyMiw0LjY2OC43NSw1LjExNC44LjQ2MywyLjc0Mi4wMjQsNS4xLTIuMDM2YTI3LjIwOSwyNy4yMDksMCwwLDAsNS4yMjctNi43OSwyNy42LDI3LjYsMCwwLDAsMy4xODEtNy43NzZjLjY1NC0zLjE3NS4wODktNS4xMTktLjcxMy01LjU4MWEyLjMyNywyLjMyNywwLDAsMC0xLjg2OC4wODlBMTAuMTk0LDEwLjE5NCwwLDAsMCwxNy41LDYuOWEyNy40NjQsMjcuNDY0LDAsMCwwLTUuNCw2Ljg0OVpcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMGQ4ZmZcXFwiLz48cGF0aCBkPVxcXCJNMjEuNjc3LDI4LjQ1NmMtMS4zNTUsMC0zLjA3Ni0uODItNC44NjgtMi4zNjFhMjguNzU2LDI4Ljc1NiwwLDAsMS01Ljc0Ny03LjIzN2gwYTI4LjY3NiwyOC42NzYsMCwwLDEtMy4zNzQtOC40NzEsMTEuMzc2LDExLjM3NiwwLDAsMS0uMTU4LTRBMy4zOTEsMy4zOTEsMCwwLDEsOC45NjQsMy45YzEuNDg3LS44NjEsNC4wMS4wMjQsNi41ODUsMi4zMWEyOC44LDI4LjgsMCwwLDEsNS4zOSw2LjkzNCwyOC4zODQsMjguMzg0LDAsMCwxLDMuNDEsOC4yODcsMTEuMywxMS4zLDAsMCwxLC4xMzcsNC4xNDYsMy41NDMsMy41NDMsMCwwLDEtMS40OTQsMi41NTVBMi41OSwyLjU5LDAsMCwxLDIxLjY3NywyOC40NTZabS05LjU4LTEwLjJhMjcuOTQ5LDI3Ljk0OSwwLDAsMCw1LjQ5Miw2LjkyOWMyLjI0OSwxLjkzNSw0LjAzMywyLjM1MSw0LjgsMS45LjgtLjQ2NSwxLjM5LTIuMzYzLjc4Mi01LjQzNEEyNy4yMTIsMjcuMjEyLDAsMCwwLDE5LjksMTMuNzQsMjcuNiwyNy42LDAsMCwwLDE0Ljc1NSw3LjFjLTIuNDI0LTIuMTUyLTQuMzktMi42MzMtNS4xOTEtMi4xNjlhMi4zMjcsMi4zMjcsMCwwLDAtLjg1NSwxLjY2MiwxMC4xOTQsMTAuMTk0LDAsMCwwLC4xNTMsMy41NjUsMjcuNDY1LDI3LjQ2NSwwLDAsMCwzLjIzNiw4LjFaXFxcIiBzdHlsZT1cXFwiZmlsbDojMDBkOGZmXFxcIi8+XCIsXG5cdFwiUmVhY3QgVFNYXCI6IFwiPGNpcmNsZSBjeD1cXFwiMTZcXFwiIGN5PVxcXCIxNS45NzRcXFwiIHI9XFxcIjIuNVxcXCIgc3R5bGU9XFxcImZpbGw6IzAwN2FjY1xcXCIvPjxwYXRoIGQ9XFxcIk0xNiwyMS43MDZhMjguMzg1LDI4LjM4NSwwLDAsMS04Ljg4LTEuMiwxMS4zLDExLjMsMCwwLDEtMy42NTctMS45NThBMy41NDMsMy41NDMsMCwwLDEsMiwxNS45NzRjMC0xLjY1MywxLjgxNi0zLjI3Myw0Ljg1OC00LjMzM0EyOC43NTUsMjguNzU1LDAsMCwxLDE2LDEwLjI5M2EyOC42NzQsMjguNjc0LDAsMCwxLDkuMDIyLDEuMzI0LDExLjM3NiwxMS4zNzYsMCwwLDEsMy41MzgsMS44NjZBMy4zOTEsMy4zOTEsMCwwLDEsMzAsMTUuOTc0YzAsMS43MTgtMi4wMywzLjQ1OS01LjMsNC41NDFBMjguOCwyOC44LDAsMCwxLDE2LDIxLjcwNlptMC0xMC4yMTdhMjcuOTQ4LDI3Ljk0OCwwLDAsMC04Ljc0OSwxLjI4MmMtMi44Ljk3Ny00LjA1NSwyLjMxMy00LjA1NSwzLjIsMCwuOTI4LDEuMzQ5LDIuMzg3LDQuMzExLDMuNEEyNy4yMSwyNy4yMSwwLDAsMCwxNiwyMC41MWEyNy42LDI3LjYsMCwwLDAsOC4zMjUtMS4xM0MyNy40LDE4LjM2MSwyOC44LDE2LjksMjguOCwxNS45NzRhMi4zMjcsMi4zMjcsMCwwLDAtMS4wMS0xLjU3MywxMC4xOTQsMTAuMTk0LDAsMCwwLTMuMTYxLTEuNjU0QTI3LjQ2MiwyNy40NjIsMCwwLDAsMTYsMTEuNDg5WlxcXCIgc3R5bGU9XFxcImZpbGw6IzAwN2FjY1xcXCIvPjxwYXRoIGQ9XFxcIk0xMC4zMiwyOC40NDNhMi42MzksMi42MzksMCwwLDEtMS4zMzYtLjMyOGMtMS40MzItLjgyNi0xLjkyOC0zLjIwOC0xLjMyNy02LjM3M2EyOC43NTUsMjguNzU1LDAsMCwxLDMuNC04LjU5M2gwQTI4LjY3NiwyOC42NzYsMCwwLDEsMTYuNzEsNS45OTVhMTEuMzc2LDExLjM3NiwwLDAsMSwzLjM4NC0yLjEzMywzLjM5MSwzLjM5MSwwLDAsMSwyLjg3OCwwYzEuNDg5Ljg1OCwxLjk4MiwzLjQ4NiwxLjI4Nyw2Ljg1OWEyOC44MDYsMjguODA2LDAsMCwxLTMuMzE2LDguMTMzLDI4LjM4NSwyOC4zODUsMCwwLDEtNS40NzYsNy4wOTMsMTEuMywxMS4zLDAsMCwxLTMuNTIzLDIuMTg5QTQuOTI2LDQuOTI2LDAsMCwxLDEwLjMyLDI4LjQ0M1ptMS43NzMtMTQuN2EyNy45NDgsMjcuOTQ4LDAsMCwwLTMuMjYsOC4yMTljLS41NTMsMi45MTUtLjAyMiw0LjY2OC43NSw1LjExNC44LjQ2MywyLjc0Mi4wMjQsNS4xLTIuMDM2YTI3LjIwOSwyNy4yMDksMCwwLDAsNS4yMjctNi43OSwyNy42LDI3LjYsMCwwLDAsMy4xODEtNy43NzZjLjY1NC0zLjE3NS4wODktNS4xMTktLjcxMy01LjU4MWEyLjMyNywyLjMyNywwLDAsMC0xLjg2OC4wODlBMTAuMTk0LDEwLjE5NCwwLDAsMCwxNy41LDYuOWEyNy40NjQsMjcuNDY0LDAsMCwwLTUuNCw2Ljg0OVpcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMDdhY2NcXFwiLz48cGF0aCBkPVxcXCJNMjEuNjc3LDI4LjQ1NmMtMS4zNTUsMC0zLjA3Ni0uODItNC44NjgtMi4zNjFhMjguNzU2LDI4Ljc1NiwwLDAsMS01Ljc0Ny03LjIzN2gwYTI4LjY3NiwyOC42NzYsMCwwLDEtMy4zNzQtOC40NzEsMTEuMzc2LDExLjM3NiwwLDAsMS0uMTU4LTRBMy4zOTEsMy4zOTEsMCwwLDEsOC45NjQsMy45YzEuNDg3LS44NjEsNC4wMS4wMjQsNi41ODUsMi4zMWEyOC44LDI4LjgsMCwwLDEsNS4zOSw2LjkzNCwyOC4zODQsMjguMzg0LDAsMCwxLDMuNDEsOC4yODcsMTEuMywxMS4zLDAsMCwxLC4xMzcsNC4xNDYsMy41NDMsMy41NDMsMCwwLDEtMS40OTQsMi41NTVBMi41OSwyLjU5LDAsMCwxLDIxLjY3NywyOC40NTZabS05LjU4LTEwLjJhMjcuOTQ5LDI3Ljk0OSwwLDAsMCw1LjQ5Miw2LjkyOWMyLjI0OSwxLjkzNSw0LjAzMywyLjM1MSw0LjgsMS45LjgtLjQ2NSwxLjM5LTIuMzYzLjc4Mi01LjQzNEEyNy4yMTIsMjcuMjEyLDAsMCwwLDE5LjksMTMuNzQsMjcuNiwyNy42LDAsMCwwLDE0Ljc1NSw3LjFjLTIuNDI0LTIuMTUyLTQuMzktMi42MzMtNS4xOTEtMi4xNjlhMi4zMjcsMi4zMjcsMCwwLDAtLjg1NSwxLjY2MiwxMC4xOTQsMTAuMTk0LDAsMCwwLC4xNTMsMy41NjUsMjcuNDY1LDI3LjQ2NSwwLDAsMCwzLjIzNiw4LjFaXFxcIiBzdHlsZT1cXFwiZmlsbDojMDA3YWNjXFxcIi8+XCIsXG5cdFwiUmVhc29uXCI6IFwiPHBvbHlsaW5lIHBvaW50cz1cXFwiMiAyIDMwIDIgMzAgMzAgMiAzMCAyIDJcXFwiIHN0eWxlPVxcXCJmaWxsOiNkZDRiMzlcXFwiLz48cGF0aCBkPVxcXCJNOS4wNTEsMTcuNTI3cTIuNTM3LDAsNS4wNzIsMEE0Ljk0Nyw0Ljk0NywwLDAsMSwxNy4xLDE4LjVhMy4yOSwzLjI5LDAsMCwxLDEuMTI4LDIuMjY3LDQuMTE3LDQuMTE3LDAsMCwxLS43NzgsMy4wMjIsMy42LDMuNiwwLDAsMS0xLjEzNy45MDVsMi4yNDcsMy41NDktMy4wNjEsMC0xLjYtMy4wNDMtMi4xNTQsMCwwLDMuMDMySDkuMDUxVjE3LjUyN20yLjY5LDIuMTI4LDAsMy40MzgsMS45ODksMGEyLjE4NCwyLjE4NCwwLDAsMCwxLjQ2OC0uNDUyLDEuODE0LDEuODE0LDAsMCwwLC40ODItMS41NDQsMS40NjksMS40NjksMCwwLDAtLjcwNS0xLjE4LDIuNzY4LDIuNzY4LDAsMCwwLTEuNDM3LS4yNjlDMTIuOTQsMTkuNjU0LDExLjc0MSwxOS42NTUsMTEuNzQxLDE5LjY1NVptOC4zODQtMi4xM2g4LjM1djIuMTNoLTUuNjZWMjEuOGw1LjExLDB2Mi4xMTlIMjIuODJWMjYuMWg1LjgyNHYyLjE0MkgyMC4xMjVWMTcuNTI1WlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPlwiLFxuXHRcIlJlZ29cIjogXCI8ZGVmcz48Y2xpcFBhdGggaWQ9XFxcImFcXFwiPjxwYXRoIGQ9XFxcIk03LjA1NSwxNi4yNDFjMy40MTUtMTAuMjIsMTQuNzU5LTkuNDczLDE3LjkyNCwwbC4xLDUuODkzYTE1LjU2MiwxNS41NjIsMCwwLDAtOS4wMzYsNy4yNDZBMTcuNjQxLDE3LjY0MSwwLDAsMCw3LjAzLDIyLjM0NlpcXFwiIHN0eWxlPVxcXCJmaWxsOm5vbmVcXFwiLz48L2NsaXBQYXRoPjwvZGVmcz48dGl0bGU+ZmlsZV90eXBlX3JlZ288L3RpdGxlPjxwYXRoIGQ9XFxcIk03LjAzLDE2LjI0MWwyLjYtNC41NTljLTIuNDE4LS4zMTItMi42MDYtMy40MzEtLjgtOS4wNjJDMy44MDksOC44NTMsMi40MiwxMC4yMjgsNy4wMywxNi4yNDFaXFxcIiBzdHlsZT1cXFwiZmlsbDojYmZiZmJmO2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PHBhdGggZD1cXFwiTTI0Ljk3LDE2LjI0MWwtMi41OTUtNC41NTljMi40MTgtLjMxMiwyLjYwNi0zLjQzMS44LTkuMDYyQzI4LjE5MSw4Ljg1MywyOS41OCwxMC4yMjgsMjQuOTcsMTYuMjQxWlxcXCIgc3R5bGU9XFxcImZpbGw6I2JmYmZiZjtmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwYXRoIGQ9XFxcIk03LjA1NSwxNi4yNDFjMy40MTUtMTAuMjIsMTQuNzU5LTkuNDczLDE3LjkyNCwwbC4xLDUuODkzYTE1LjU2MiwxNS41NjIsMCwwLDAtOS4wMzYsNy4yNDZBMTcuNjQxLDE3LjY0MSwwLDAsMCw3LjAzLDIyLjM0NlpcXFwiIHN0eWxlPVxcXCJmaWxsOm5vbmVcXFwiLz48ZyBzdHlsZT1cXFwiY2xpcC1wYXRoOnVybCgjYSlcXFwiPjxyZWN0IHg9XFxcIjE2LjA1M1xcXCIgeT1cXFwiNy45NjJcXFwiIHdpZHRoPVxcXCI5LjU0OVxcXCIgaGVpZ2h0PVxcXCIyMS44OTlcXFwiIHN0eWxlPVxcXCJmaWxsOiM1MzYzNjdcXFwiLz48cmVjdCB4PVxcXCI1LjMyMlxcXCIgeT1cXFwiNy45NjJcXFwiIHdpZHRoPVxcXCIxMC43MzJcXFwiIGhlaWdodD1cXFwiMjEuODk5XFxcIiBzdHlsZT1cXFwiZmlsbDojNzg5MjlhXFxcIi8+PC9nPjxjaXJjbGUgY3g9XFxcIjE2LjA0XFxcIiBjeT1cXFwiMTYuMjQxXFxcIiByPVxcXCIxLjE2NlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPlwiLFxuXHRcIlJlU2NyaXB0XCI6IFwiPGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJhXFxcIiB4MT1cXFwiMTEuNDIxXFxcIiB5MT1cXFwiLTIyMS43MDVcXFwiIHgyPVxcXCIyMS41MDlcXFwiIHkyPVxcXCItMjQ4Ljc5MlxcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcIm1hdHJpeCgxLCAwLCAwLCAtMSwgMCwgLTIxOClcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiNlODRmNGZcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNDA5XFxcIiBzdG9wLWNvbG9yPVxcXCIjZGI0NjQ2XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjk5OVxcXCIgc3RvcC1jb2xvcj1cXFwiI2NiMzkzOVxcXCIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjx0aXRsZT5maWxlX3R5cGVfcmVzY3JpcHQ8L3RpdGxlPjxwYXRoIGQ9XFxcIk0yLDEwLjk3YzAtMy43MzgsMC01LjYuOTUyLTYuOTE2YTQuOTkyLDQuOTkyLDAsMCwxLDEuMS0xLjFDNS4zNjQsMiw3LjIzMywyLDEwLjk2OSwySDIxLjAzYzMuNzM4LDAsNS42MDUsMCw2LjkxNi45NTFhNC45OTIsNC45OTIsMCwwLDEsMS4xLDEuMUMzMCw1LjM2NCwzMCw3LjIzMiwzMCwxMC45N1YyMS4wM2MwLDMuNzM3LDAsNS42MDUtLjk1Miw2LjkxNmE0Ljk2Niw0Ljk2NiwwLDAsMS0xLjEsMS4xQzI2LjYzNiwzMCwyNC43NjgsMzAsMjEuMDMsMzBIMTAuOTY5Yy0zLjczNiwwLTUuNiwwLTYuOTE1LS45NTJhNC45NjYsNC45NjYsMCwwLDEtMS4xLTEuMUMyLDI2LjYzNiwyLDI0Ljc2NywyLDIxLjAzWlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNhKVxcXCIvPjxwYXRoIGQ9XFxcIk0yMC45NzQsMTUuNTU0YTMuMzI1LDMuMzI1LDAsMSwwLTMuMzI0LTMuMzI1QTMuMzI1LDMuMzI1LDAsMCwwLDIwLjk3NCwxNS41NTRaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+PHBhdGggZD1cXFwiTTkuMzE2LDExLjgwOWE0LjY3Niw0LjY3NiwwLDAsMSwuMjA2LTEuOTg3QTEuODg2LDEuODg2LDAsMCwxLDEwLjM0NSw5YTQuNyw0LjcsMCwwLDEsMS45ODctLjIwNWgyLjY0VjIxLjA0NWE0LjY4Niw0LjY4NiwwLDAsMS0uMTQ0LDEuNjY0LDEuODkyLDEuODkyLDAsMCwxLTEuMDIsMS4wMiw0LjcyLDQuNzIsMCwwLDEtMS42NjQuMTQzLDQuNzE3LDQuNzE3LDAsMCwxLTEuNjY0LS4xNDMsMS44OTIsMS44OTIsMCwwLDEtMS4wMi0xLjAyLDQuNzIsNC43MiwwLDAsMS0uMTQzLTEuNjY0WlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPlwiLFxuXHRcInJlU1QgKHJlU3RydWN0dXJlZFRleHQpXCI6IFwiPHBhdGggZD1cXFwiTTE2LDMwQTEzLjg1OSwxMy44NTksMCwwLDEsMi4yODYsMTYsMTQuMTQ5LDE0LjE0OSwwLDAsMSw2LjMsNi4xLDEzLjUxNywxMy41MTcsMCwwLDEsMjUuNyw2LjEsMTQuMTQ5LDE0LjE0OSwwLDAsMSwyOS43MTQsMTYsMTMuODU5LDEzLjg1OSwwLDAsMSwxNiwzMFpcXFwiIHN0eWxlPVxcXCJmaWxsOiNjZTNmMzFcXFwiLz48cGF0aCBkPVxcXCJNMTEuODY5LDIzLjAxNWgtLjRhNC4yNjMsNC4yNjMsMCwwLDEtMS4wNDgtLjExMywxLjM4NywxLjM4NywwLDAsMS0uNzY3LS41NDgsMi4yLDIuMiwwLDAsMS0uNDA5LTEuMDI2QTEzLjI4LDEzLjI4LDAsMCwxLDkuMTU5LDE5LjZhMTIuNzgsMTIuNzgsMCwwLDAtLjA4LTEuNjg3LDEuNzczLDEuNzczLDAsMCwwLS40MDUtLjkyNCwxLjMyNSwxLjMyNSwwLDAsMC0xLjAyNi0uMzkxVjE1LjRhMS4zMjUsMS4zMjUsMCwwLDAsMS4wMjYtLjM5MSwxLjc3MywxLjc3MywwLDAsMCwuNDA1LS45MjQsMTIuNzgsMTIuNzgsMCwwLDAsLjA4LTEuNjg3LDEzLjI4LDEzLjI4LDAsMCwxLC4wODQtMS43MzEsMi4yLDIuMiwwLDAsMSwuNDA5LTEuMDI2LDEuMzg3LDEuMzg3LDAsMCwxLC43NjctLjU0OCw0LjI2Myw0LjI2MywwLDAsMSwxLjA0OC0uMTEzaC40djEuMTRoLS4yMjZxLS43NiwwLS45MzEuNGE3LjcyLDcuNzIsMCwwLDAtLjE3MiwyLjE3LDQuODc2LDQuODc2LDAsMCwxLS40MTYsMi4zMTZBMi4xMTcsMi4xMTcsMCwwLDEsOC44NTksMTZhMi4wODksMi4wODksMCwwLDEsMS4yNjQuOTg2QTQuODc2LDQuODc2LDAsMCwxLDEwLjU0LDE5LjNhNy43Miw3LjcyLDAsMCwwLC4xNzIsMi4xN3EuMTcyLjQuOTMxLjRoLjIyNlptMS42LTMuMTQxaDEuMDM1VjE2LjQyaDEuNDU5bDEuOTcsMy40NTRoMS4xODRMMTcuMDQsMTYuMzA4YTIuMjQzLDIuMjQzLDAsMCwwLDEuODMzLTIuMzE5YzAtMS43LTEuMi0yLjI5NC0yLjg1NS0yLjI5NEgxMy40NzRabTEuMDM1LTQuM1YxMi41M2gxLjM1OWMxLjI3MiwwLDEuOTcuMzg2LDEuOTcsMS40NTlzLS43LDEuNTgzLTEuOTcsMS41ODNabTUuNTU3LTYuNTkxaC40YTQuMjYzLDQuMjYzLDAsMCwxLDEuMDQ4LjExMywxLjM4NywxLjM4NywwLDAsMSwuNzY3LjU0OCwyLjIsMi4yLDAsMCwxLC40MDksMS4wMjYsMTMuMjgsMTMuMjgsMCwwLDEsLjA4NCwxLjczMSwxMi43OCwxMi43OCwwLDAsMCwuMDgsMS42ODcsMS43NzMsMS43NzMsMCwwLDAsLjQwNS45MjQsMS4zMjUsMS4zMjUsMCwwLDAsMS4wMjYuMzkxdjEuMTkxYTEuMzI1LDEuMzI1LDAsMCwwLTEuMDI2LjM5MSwxLjc3MywxLjc3MywwLDAsMC0uNDA1LjkyNCwxMi43OCwxMi43OCwwLDAsMC0uMDgsMS42ODcsMTMuMjgsMTMuMjgsMCwwLDEtLjA4NCwxLjczMSwyLjIsMi4yLDAsMCwxLS40MDksMS4wMjYsMS4zODcsMS4zODcsMCwwLDEtLjc2Ny41NDgsNC4yNjMsNC4yNjMsMCwwLDEtMS4wNDguMTEzaC0uNHYtMS4xNGguMjI2cS43NiwwLC45MzEtLjRBNy43Miw3LjcyLDAsMCwwLDIxLjQsMTkuM2E0Ljg3Niw0Ljg3NiwwLDAsMSwuNDE2LTIuMzE2QTIuMDg5LDIuMDg5LDAsMCwxLDIzLjA3NSwxNmEyLjExNywyLjExNywwLDAsMS0xLjI2NC0uOTk0LDQuODc2LDQuODc2LDAsMCwxLS40MTYtMi4zMTYsNy43Miw3LjcyLDAsMCwwLS4xNzItMi4xN3EtLjE3Mi0uNC0uOTMxLS40aC0uMjI2WlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPlwiLFxuXHRcIlJvYm90IEZyYW1ld29ya1wiOiBcIjxjaXJjbGUgY3g9XFxcIjE2XFxcIiBjeT1cXFwiMTZcXFwiIHI9XFxcIjE0XFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+PHBhdGggZD1cXFwiTTEwLjM4NywxNC42YTIuNzI3LDIuNzI3LDAsMCwxLDUuNDUzLDAsLjk5Ljk5LDAsMSwxLTEuOTgsMCwuNzQ2Ljc0NiwwLDAsMC0xLjQ5MiwwLC45OS45OSwwLDEsMS0xLjk4LDBtMTEuMyw0LjU4NmEuOTkxLjk5MSwwLDAsMS0uOTkyLjk5MkgxMS41MDhhLjk5Mi45OTIsMCwwLDEsMC0xLjk4NGg5LjE4NGEuOTk0Ljk5NCwwLDAsMSwuOTkyLjk5Mk0xNy4zOTEsMTUuMTZhLjk5Mi45OTIsMCwwLDEsLjI3LTEuMzc1bDIuMjkzLTEuNTUxYS45ODkuOTg5LDAsMSwxLDEuMTA5LDEuNjM3bC0yLjMsMS41NTFhLjk2NS45NjUsMCwwLDEtLjU1MS4xNzIuOTk0Ljk5NCwwLDAsMS0uODI0LS40MzRtNi4yODksNi4wOTRhLjcwNy43MDcsMCwwLDEtLjIwNy41bC0xLjcwNywxLjcwN2EuNzA3LjcwNywwLDAsMS0uNS4yMDdIMTAuOGEuNzA3LjcwNywwLDAsMS0uNS0uMjA3TDguNiwyMS43NTRhLjcwNy43MDcsMCwwLDEtLjIwNy0uNVYxMC44YS43MDcuNzA3LDAsMCwxLC4yMDctLjVMMTAuMyw4LjU5NGEuNzA3LjcwNywwLDAsMSwuNS0uMjA3SDIxLjI2NmEuNzA3LjcwNywwLDAsMSwuNS4yMDdMMjMuNDczLDEwLjNhLjcwNy43MDcsMCwwLDEsLjIwNy41Wk0yNS4xMjksOS4xNiwyMi45LDYuOTNBMS44MDcsMS44MDcsMCwwLDAsMjEuNjI5LDYuNEgxMC40MzhhMS44MDcsMS44MDcsMCwwLDAtMS4yNzMuNTI3TDYuOTM4LDkuMTZhMS44LDEuOCwwLDAsMC0uNTI3LDEuMjdWMjEuNjIxYTEuOCwxLjgsMCwwLDAsLjUyNywxLjI3M2wyLjIyNywyLjIzYTEuODEsMS44MSwwLDAsMCwxLjI3My41MjNIMjEuNjI5YTEuOCwxLjgsMCwwLDAsMS4yNzMtLjUyM2wyLjIyNy0yLjIzYTEuNzg0LDEuNzg0LDAsMCwwLC41MjctMS4yNzNWMTAuNDM0YTEuNzg0LDEuNzg0LDAsMCwwLS41MjctMS4yNzNcXFwiLz5cIixcblx0XCJSdWJ5XCI6IFwiPGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJhXFxcIiB4MT1cXFwiLTIzNS45NTdcXFwiIHkxPVxcXCItMzA4LjU3OVxcXCIgeDI9XFxcIi0yMzUuOTg2XFxcIiB5Mj1cXFwiLTMwOC41MjdcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJtYXRyaXgoMjAyLjkzNSwgMCwgMCwgLTIwMi43OCwgNDc5MTAuNDYxLCAtNjI1NDEuMTYpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjZmI3NjU1XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjQxXFxcIiBzdG9wLWNvbG9yPVxcXCIjZTQyYjFlXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjk5XFxcIiBzdG9wLWNvbG9yPVxcXCIjOTAwXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjOTAwXFxcIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9XFxcImJcXFwiIHgxPVxcXCItMjM1LjU3MVxcXCIgeTE9XFxcIi0zMDkuMDg3XFxcIiB4Mj1cXFwiLTIzNS42OTdcXFwiIHkyPVxcXCItMzA5LjA0MVxcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcIm1hdHJpeCg2MC4zMDgsIDAsIDAsIC0xMTEuNzc4LCAxNDIzNi4zNTEsIC0zNDUyNS4zOTUpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjODcxMTAxXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjk5XFxcIiBzdG9wLWNvbG9yPVxcXCIjOTExMjA5XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjOTExMjA5XFxcIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9XFxcImNcXFwiIHgxPVxcXCItMjM1Ljg5NlxcXCIgeTE9XFxcIi0zMTMuMzYyXFxcIiB4Mj1cXFwiLTIzNS45MzdcXFwiIHkyPVxcXCItMzEzLjEyOVxcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcIm1hdHJpeCgxODguMzIsIDAsIDAsIC0yMS45ODYsIDQ0NDQ3LjMwMiwgLTY4NTYuODgyKVxcXCIgeGxpbms6aHJlZj1cXFwiI2JcXFwiLz48bGluZWFyR3JhZGllbnQgaWQ9XFxcImRcXFwiIHgxPVxcXCItMjMzLjUxNVxcXCIgeTE9XFxcIi0zMDkuMDgyXFxcIiB4Mj1cXFwiLTIzMy40OTdcXFwiIHkyPVxcXCItMzA5LjE2MVxcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcIm1hdHJpeCg2NS4yMjIsIDAsIDAsIC05Ny4xLCAxNTIzNy44MDIsIC0yOTk5MS44MTQpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjZmZmXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjIzXFxcIiBzdG9wLWNvbG9yPVxcXCIjZTU3MjUyXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjQ2XFxcIiBzdG9wLWNvbG9yPVxcXCIjZGUzYjIwXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjk5XFxcIiBzdG9wLWNvbG9yPVxcXCIjYTYwMDAzXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjYTYwMDAzXFxcIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9XFxcImVcXFwiIHgxPVxcXCItMjM1LjMxNFxcXCIgeTE9XFxcIi0zMDkuNTM0XFxcIiB4Mj1cXFwiLTIzNS4zMVxcXCIgeTI9XFxcIi0zMDkuNjA3XFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwibWF0cml4KDEwNS4zMiwgMCwgMCwgLTEwNi44MjUsIDI0Nzk4LjkyNSwgLTMzMDUzLjE1MilcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiNmZmZcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuMjNcXFwiIHN0b3AtY29sb3I9XFxcIiNlNDcxNGVcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNTZcXFwiIHN0b3AtY29sb3I9XFxcIiNiZTFhMGRcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuOTlcXFwiIHN0b3AtY29sb3I9XFxcIiNhODBkMDBcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiNhODBkMDBcXFwiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiZlxcXCIgeDE9XFxcIi0yMzUuODgyXFxcIiB5MT1cXFwiLTMxMS44NTFcXFwiIHgyPVxcXCItMjM1Ljg2OVxcXCIgeTI9XFxcIi0zMTEuOTM1XFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwibWF0cml4KDk0LjMyMSwgMCwgMCwgLTY2LjQxOCwgMjIyNzEuNDk5LCAtMjA3MDcuMDA0KVxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiI2ZmZlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC4xOFxcXCIgc3RvcC1jb2xvcj1cXFwiI2U0NjM0MlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC40XFxcIiBzdG9wLWNvbG9yPVxcXCIjYzgyNDEwXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjk5XFxcIiBzdG9wLWNvbG9yPVxcXCIjYTgwZDAwXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjYTgwZDAwXFxcIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9XFxcImdcXFwiIHgxPVxcXCItMjM1LjQxMlxcXCIgeTE9XFxcIi0zMjEuMDc0XFxcIiB4Mj1cXFwiLTIzNS4zMzNcXFwiIHkyPVxcXCItMzIwLjk1OFxcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcIm1hdHJpeCg3MC43NjcsIDAsIDAsIC0yNC4zMDEsIDE2Njc4LjExNiwgLTc3OTguNjQ3KVxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiI2ZmZlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC41NFxcXCIgc3RvcC1jb2xvcj1cXFwiI2M4MWYxMVxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC45OVxcXCIgc3RvcC1jb2xvcj1cXFwiI2JmMDkwNVxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiI2JmMDkwNVxcXCIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJoXFxcIiB4MT1cXFwiLTIyMy44MjFcXFwiIHkxPVxcXCItMzEwLjExNlxcXCIgeDI9XFxcIi0yMjMuNzk2XFxcIiB5Mj1cXFwiLTMxMC4xOFxcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcIm1hdHJpeCgxOC4xNzcsIDAsIDAsIC03Mi42NDUsIDQwNzEuMDE3LCAtMjI1MTAuMjMzKVxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiI2ZmZlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC4zMVxcXCIgc3RvcC1jb2xvcj1cXFwiI2RlNDAyNFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC45OVxcXCIgc3RvcC1jb2xvcj1cXFwiI2JmMTkwYlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiI2JmMTkwYlxcXCIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJpXFxcIiB4MT1cXFwiLTIzNS41NjFcXFwiIHkxPVxcXCItMzA5LjI1OFxcXCIgeDI9XFxcIi0yMzUuNDI0XFxcIiB5Mj1cXFwiLTMwOS4xMTZcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJtYXRyaXgoMTU4LjE2MiwgMCwgMCwgLTE1Ny45MzcsIDM3MjU2LjMxMywgLTQ4ODE5LjM4MilcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiNiZDAwMTJcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuMDdcXFwiIHN0b3AtY29sb3I9XFxcIiNmZmZcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuMTdcXFwiIHN0b3AtY29sb3I9XFxcIiNmZmZcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuMjdcXFwiIHN0b3AtY29sb3I9XFxcIiNjODJmMWNcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuMzNcXFwiIHN0b3AtY29sb3I9XFxcIiM4MjBjMDFcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNDZcXFwiIHN0b3AtY29sb3I9XFxcIiNhMzE2MDFcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNzJcXFwiIHN0b3AtY29sb3I9XFxcIiNiMzEzMDFcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuOTlcXFwiIHN0b3AtY29sb3I9XFxcIiNlODI2MDlcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiNlODI2MDlcXFwiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD1cXFwialxcXCIgeDE9XFxcIi0yMzUuNDI0XFxcIiB5MT1cXFwiLTMwOS4xNDNcXFwiIHgyPVxcXCItMjM1LjQ3NlxcXCIgeTI9XFxcIi0zMDkuMTI2XFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwibWF0cml4KDEyNy4wNzQsIDAsIDAsIC05Ny40MDksIDI5OTMyLjIyOSwgLTMwMDg2Ljk0NylcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiM4YzBjMDFcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNTRcXFwiIHN0b3AtY29sb3I9XFxcIiM5OTBjMDBcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuOTlcXFwiIHN0b3AtY29sb3I9XFxcIiNhODBkMGVcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiNhODBkMGVcXFwiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD1cXFwia1xcXCIgeDE9XFxcIi0yMzUuODM5XFxcIiB5MT1cXFwiLTMwOS42MDRcXFwiIHgyPVxcXCItMjM1LjkwMVxcXCIgeTI9XFxcIi0zMDkuNTU1XFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwibWF0cml4KDk0LjAxMSwgMCwgMCwgLTEwNS42MDMsIDIyMTk4Ljc0MywgLTMyNjc2Ljg1NilcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiM3ZTExMGJcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuOTlcXFwiIHN0b3AtY29sb3I9XFxcIiM5ZTBjMDBcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiM5ZTBjMDBcXFwiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD1cXFwibFxcXCIgeDE9XFxcIi0yMzUuODU0XFxcIiB5MT1cXFwiLTMxMS4yNFxcXCIgeDI9XFxcIi0yMzUuODkxXFxcIiB5Mj1cXFwiLTMxMS4yMDJcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJtYXRyaXgoNzkuNzAyLCAwLCAwLCAtODEuNzkxLCAxODgyNy4zOTcsIC0yNTQ0Ny45MDUpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjNzkxMzBkXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjk5XFxcIiBzdG9wLWNvbG9yPVxcXCIjOWUxMjBiXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjOWUxMjBiXFxcIi8+PC9saW5lYXJHcmFkaWVudD48cmFkaWFsR3JhZGllbnQgaWQ9XFxcIm1cXFwiIGN4PVxcXCItMjM1Ljg4MlxcXCIgY3k9XFxcIi0zMTIuNTQzXFxcIiByPVxcXCIwLjA3NlxcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcIm1hdHJpeCg5My4xMTMsIDAsIDAsIC00OC42NTUsIDIxOTg2LjA3MywgLTE1MTkzLjYxKVxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiI2E4MGQwMFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC45OVxcXCIgc3RvcC1jb2xvcj1cXFwiIzdlMGUwOFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiIzdlMGUwOFxcXCIvPjwvcmFkaWFsR3JhZGllbnQ+PHJhZGlhbEdyYWRpZW50IGlkPVxcXCJuXFxcIiBjeD1cXFwiLTIzNS4yODJcXFwiIGN5PVxcXCItMzA5LjcwNFxcXCIgcj1cXFwiMC4wOTdcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJtYXRyaXgoOTcuNDM0LCAwLCAwLCAtNzUuODQ4LCAyMjkzNy4wNTcsIC0yMzQ2Ny44NClcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiNhMzBjMDBcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuOTlcXFwiIHN0b3AtY29sb3I9XFxcIiM4MDBlMDhcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiM4MDBlMDhcXFwiLz48L3JhZGlhbEdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD1cXFwib1xcXCIgeDE9XFxcIi0yMzEuMjQxXFxcIiB5MT1cXFwiLTMwOS40MzVcXFwiIHgyPVxcXCItMjMxLjI5OVxcXCIgeTI9XFxcIi0zMDkuMzM3XFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwibWF0cml4KDQwLjEzNywgMCwgMCwgLTgxLjE0MywgOTI4Ni45OTgsIC0yNTA3OC41ODkpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjOGIyMTE0XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjQzXFxcIiBzdG9wLWNvbG9yPVxcXCIjOWUxMDBhXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjk5XFxcIiBzdG9wLWNvbG9yPVxcXCIjYjMxMDBjXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjYjMxMDBjXFxcIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9XFxcInBcXFwiIHgxPVxcXCItMjM1Ljg5OFxcXCIgeTE9XFxcIi0zMTcuNDY2XFxcIiB4Mj1cXFwiLTIzNS44MzFcXFwiIHkyPVxcXCItMzE3LjUzN1xcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcIm1hdHJpeCg3OC4wOTksIDAsIDAsIC0zMi42MjQsIDE4NDQ3LjM2MSwgLTEwMzUzLjU1MylcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiNiMzEwMDBcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNDRcXFwiIHN0b3AtY29sb3I9XFxcIiM5MTBmMDhcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuOTlcXFwiIHN0b3AtY29sb3I9XFxcIiM3OTFjMTJcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiM3OTFjMTJcXFwiLz48L2xpbmVhckdyYWRpZW50PjwvZGVmcz48dGl0bGU+ZmlsZV90eXBlX3J1Ynk8L3RpdGxlPjxwYXRoIGQ9XFxcIk0yMy42OTMsMjAuNDY5LDcuNzA3LDI5Ljk2MWwyMC43LTEuNEwzMCw3LjY4NVpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjYSlcXFwiLz48cGF0aCBkPVxcXCJNMjguNDQsMjguNTQyLDI2LjY2MSwxNi4yNjNsLTQuODQ2LDYuNFpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjYilcXFwiLz48cGF0aCBkPVxcXCJNMjguNDY0LDI4LjU0MiwxNS40MywyNy41MTksNy43NzYsMjkuOTM0WlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNjKVxcXCIvPjxwYXRoIGQ9XFxcIk03Ljc5NCwyOS45MzcsMTEuMDUsMTkuMjcsMy44ODUsMjAuOFpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjZClcXFwiLz48cGF0aCBkPVxcXCJNMjEuODEzLDIyLjdsLTMtMTEuNzM1TDEwLjI0MywxOVpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjZSlcXFwiLz48cGF0aCBkPVxcXCJNMjkuMzIsMTEuMTI3bC04LjEtNi42MTktMi4yNTcsNy4zWlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNmKVxcXCIvPjxwYXRoIGQ9XFxcIk0yNS41MywyLjE0OCwyMC43NjMsNC43ODJsLTMuMDA3LTIuNjdaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2cpXFxcIi8+PHBhdGggZD1cXFwiTTIsMjQuMzhsMi0zLjY0MkwyLjM4MiwxNi40WlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNoKVxcXCIvPjxwYXRoIGQ9XFxcIk0yLjI3NCwxNi4yNjMsMy45LDIwLjg3M2w3LjA2Mi0xLjU4NEwxOS4wMjQsMTEuOCwyMS4zLDQuNTY5bC0zLjU4My0yLjUzLTYuMDkxLDIuMjhDOS43MDYsNi4xLDUuOTgyLDkuNjM1LDUuODQ4LDkuN3MtMi40NTksNC40NjQtMy41NzQsNi41NjJaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+PHBhdGggZD1cXFwiTTcuOTgxLDcuOTgxQzEyLjE0LDMuODU4LDE3LjUsMS40MjEsMTkuNTU5LDMuNXMtLjEyNCw3LjEyMS00LjI4MywxMS4yNDRTNS44MjEsMjEuNDM0LDMuNzY1LDE5LjM1OCwzLjgyMiwxMi4xLDcuOTgxLDcuOTgxWlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNpKVxcXCIvPjxwYXRoIGQ9XFxcIk03Ljc5NCwyOS45MzNsMy4yMzEtMTAuNywxMC43MjksMy40NDdjLTMuODc5LDMuNjM4LTguMTk0LDYuNzEzLTEzLjk2LDcuMjU0WlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNqKVxcXCIvPjxwYXRoIGQ9XFxcIk0xOS4wMzgsMTEuNzc0bDIuNzU0LDEwLjkxYzMuMjQtMy40MDcsNi4xNDktNy4wNyw3LjU3My0xMS42bC0xMC4zMjguNjkxWlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNrKVxcXCIvPjxwYXRoIGQ9XFxcIk0yOS4zMzcsMTEuMTM5YzEuMS0zLjMyNywxLjM1Ny04LjEtMy44NDEtOC45ODVMMjEuMjMxLDQuNTA5bDguMTA2LDYuNjI5WlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNsKVxcXCIvPjxwYXRoIGQ9XFxcIk0yLDI0LjMzMmMuMTUzLDUuNDksNC4xMTQsNS41NzIsNS44LDUuNjJsLTMuOS05LjFMMiwyNC4zMzJaXFxcIiBzdHlsZT1cXFwiZmlsbDojOWUxMjA5XFxcIi8+PHBhdGggZD1cXFwiTTE5LjA1MywxMS43OTFjMi40OSwxLjUzMSw3LjUwOSw0LjYsNy42MSw0LjY2MWExNy41NTIsMTcuNTUyLDAsMCwwLDIuNjE5LTUuMzQzbC0xMC4yMjkuNjgzWlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNtKVxcXCIvPjxwYXRoIGQ9XFxcIk0xMS4wMjEsMTkuMjMybDQuMzE5LDguMzMyYTI3LjkyNCwyNy45MjQsMCwwLDAsNi4zODUtNC44OGwtMTAuNy0zLjQ1MlpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjbilcXFwiLz48cGF0aCBkPVxcXCJNMy44ODcsMjAuODYxbC0uNjEyLDcuMjg3YzEuMTU1LDEuNTc3LDIuNzQzLDEuNzE0LDQuNDA5LDEuNTkxLTEuMjA1LTMtMy42MTQtOS0zLjgtOC44NzhaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI28pXFxcIi8+PHBhdGggZD1cXFwiTTIxLjIwNiw0LjUyOGw4LjU4LDEuMmMtLjQ1OC0xLjk0LTEuODY0LTMuMTkyLTQuMjYxLTMuNTg0bC00LjMxOSwyLjM4WlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNwKVxcXCIvPlwiLFxuXHRcIlJ1c3RcIjogXCI8ZGVmcz48cmFkaWFsR3JhZGllbnQgaWQ9XFxcImFcXFwiIGN4PVxcXCItNDkyLjAzNVxcXCIgY3k9XFxcIi04ODMuMzdcXFwiIHI9XFxcIjEzLjk5OFxcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcIm1hdHJpeCgwLjg2NiwgLTAuNSwgLTAuMywgLTAuNTIsIDE3Ny4xMDYsIC02ODkuMDMzKVxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiIzdkN2Q3ZFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC4yNjdcXFwiIHN0b3AtY29sb3I9XFxcIiM3ZTdjN2FcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNDVcXFwiIHN0b3AtY29sb3I9XFxcIiM4MTc4NzFcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNjA4XFxcIiBzdG9wLWNvbG9yPVxcXCIjODY3MTYyXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjc1M1xcXCIgc3RvcC1jb2xvcj1cXFwiIzhkNjg0Y1xcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC44ODZcXFwiIHN0b3AtY29sb3I9XFxcIiM5NjVjMzBcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiNhMDRmMTJcXFwiLz48L3JhZGlhbEdyYWRpZW50PjwvZGVmcz48dGl0bGU+ZmlsZV90eXBlX3J1c3Q8L3RpdGxlPjxwYXRoIGQ9XFxcIk0xNS4xMjQsNS4zYS44MzIuODMyLDAsMSwxLC44MzIuODMyaDBhLjgzMS44MzEsMCwwLDEtLjgzMi0uODMyTTUuMiwxMi44MzRhLjgzMi44MzIsMCwxLDEsLjgzMi44MzJoMGEuODMyLjgzMiwwLDAsMS0uODMyLS44MzJtMTkuODU2LjAzOWEuODMyLjgzMiwwLDEsMSwuODMyLjgzMi44MzEuODMxLDAsMCwxLS44MzItLjgzMmgwTTcuNjA1LDE0LjAxM2EuNzYuNzYsMCwwLDAsLjM4Ni0xbC0uMzY5LS44MzVIOS4wNzR2Ni41NDVINi4xNDRhMTAuMjQ3LDEwLjI0NywwLDAsMS0uMzMyLTMuOTExWm02LjA3NC4xNjFWMTIuMjQ1aDMuNDU4Yy4xNzksMCwxLjI2MS4yMDYsMS4yNjEsMS4wMTYsMCwuNjcyLS44My45MTMtMS41MTMuOTEzWk04Ljk1OCwyNC41NjFhLjgzMi44MzIsMCwxLDEsLjgzMi44MzIuODMxLjgzMSwwLDAsMS0uODMyLS44MzJoMG0xMi4zMzEuMDM5YS44MzIuODMyLDAsMSwxLC44MzIuODMyLjgzMi44MzIsMCwwLDEtLjgzMi0uODMyaDBtLjI1Ny0xLjg4N2EuNzU4Ljc1OCwwLDAsMC0uOS41ODRsLS40MTgsMS45NDlhMTAuMjQ5LDEwLjI0OSwwLDAsMS04LjU0NS0uMDQxbC0uNDE3LTEuOTQ5YS43NTkuNzU5LDAsMCwwLS45LS41ODNoMGwtMS43MjEuMzdhMTAuMjMzLDEwLjIzMywwLDAsMS0uODktMS4wNDloOC4zNzRjLjA5NSwwLC4xNTgtLjAxNy4xNTgtLjFWMTguOTI4YzAtLjA4Ni0uMDYzLS4xLS4xNTgtLjFoLTIuNDVWMTYuOTQ3aDIuNjQ5YTEuNjY1LDEuNjY1LDAsMCwxLDEuNjI5LDEuNDEyYy4xMDUuNDEzLjMzNiwxLjc1Ny40OTQsMi4xODcuMTU3LjQ4My44LDEuNDQ3LDEuNDgyLDEuNDQ3aDQuMzIzYTEwLjI0MywxMC4yNDMsMCwwLDEtLjk0OSwxLjFabTQuNjUtNy44MjFhMTAuMjYxLDEwLjI2MSwwLDAsMSwuMDIyLDEuNzc5SDI1LjE2N2MtLjEwNSwwLS4xNDguMDY5LS4xNDguMTcydi40ODNjMCwxLjEzNi0uNjQxLDEuMzg0LTEuMiwxLjQ0Ny0uNTM1LjA2LTEuMTI4LS4yMjQtMS4yLS41NTFhMy42MTYsMy42MTYsMCwwLDAtMS42NzEtMi44MDhjMS4wMy0uNjU0LDIuMS0xLjYxOSwyLjEtMi45MTFBMy4yOTIsMy4yOTIsMCwwLDAsMjEuNDQsOS44YTQuNTU5LDQuNTU5LDAsMCwwLTIuMi0uNzI0SDguMzY3QTEwLjI0NiwxMC4yNDYsMCwwLDEsMTQuMSw1Ljg0bDEuMjgyLDEuMzQ0YS43NTguNzU4LDAsMCwwLDEuMDcyLjAyNmgwbDEuNDM0LTEuMzcyYTEwLjI0OCwxMC4yNDgsMCwwLDEsNy4wMTUsNWwtLjk4MiwyLjIxN2EuNzYxLjc2MSwwLDAsMCwuMzg2LDFabTIuNDQ4LjAzNi0uMDMzLS4zNDMsMS4wMTEtLjk0M2EuNDIuNDIsMCwwLDAtLjAxMy0uNTk1LjQyOC40MjgsMCwwLDAtLjEyMS0uMDgxTDI4LjIsMTIuNDgzbC0uMS0uMzM0LjgwNi0xLjEyYS40MjIuNDIyLDAsMCwwLS4xMy0uNTgxLjQzLjQzLDAsMCwwLS4xMzMtLjA1NWwtMS4zNjMtLjIyMi0uMTY0LS4zMDYuNTczLTEuMjU3YS40MTkuNDE5LDAsMCwwLS4yMzYtLjU0NC40MjYuNDI2LDAsMCwwLS4xNDYtLjAyOWwtMS4zODMuMDQ4TDI1LjcsNy44MTlsLjMxOC0xLjM0N2EuNDIxLjQyMSwwLDAsMC0uMzQzLS40ODcuNDM1LjQzNSwwLDAsMC0uMTQ0LDBMMjQuMTgzLDYuM2wtLjI2Ni0uMjE5TDIzLjk2Niw0LjdhLjQyMS40MjEsMCwwLDAtLjQzMS0uNDExLjQyNi40MjYsMCwwLDAtLjE0MS4wMjhsLTEuMjU3LjU3My0uMzA2LS4xNjQtLjIyMi0xLjM2M2EuNDIxLjQyMSwwLDAsMC0uNS0uMzE4LjQzLjQzLDAsMCwwLS4xMzMuMDU1bC0xLjEyMS44MDYtLjMzMy0uMS0uNDgzLTEuMjkzYS40MjEuNDIxLDAsMCwwLS41NTUtLjIxNS40NDIuNDQyLDAsMCwwLS4xMi4wOEwxNy40MTgsMy4zOWwtLjM0My0uMDMzTDE2LjM0NywyLjE4YS40MjEuNDIxLDAsMCwwLS42ODgsMGwtLjcyOCwxLjE3Ny0uMzQzLjAzMy0uOTQzLTEuMDEyYS40MjEuNDIxLDAsMCwwLS41OTUuMDE1LjQ0Mi40NDIsMCwwLDAtLjA4LjEyTDEyLjQ4MywzLjhsLS4zMzMuMS0xLjEyLS44YS40MjIuNDIyLDAsMCwwLS41ODEuMTMuNDMuNDMsMCwwLDAtLjA1NS4xMzNsLS4yMjIsMS4zNjMtLjMwNi4xNjRMOC42MDgsNC4zMTdhLjQyMS40MjEsMCwwLDAtLjU0NC4yMzkuNDQ0LjQ0NCwwLDAsMC0uMDI4LjE0NGwuMDQ4LDEuMzgzTDcuODE4LDYuMyw2LjQ3MSw1Ljk4NGEuNDIxLjQyMSwwLDAsMC0uNDg3LjM0My40MzUuNDM1LDAsMCwwLDAsLjE0NEw2LjMsNy44MTlsLS4yMTguMjY1TDQuNyw4LjAzNmEuNDIyLjQyMiwwLDAsMC0uMzgzLjU3M0w0Ljg5LDkuODY2bC0uMTY0LjMwNi0xLjM2My4yMjJhLjQyLjQyLDAsMCwwLS4zMTguNS40My40MywwLDAsMCwuMDU1LjEzM2wuODA2LDEuMTItLjEuMzM0LTEuMjkzLjQ4M2EuNDIxLjQyMSwwLDAsMC0uMjE1LjU1NS40MTQuNDE0LDAsMCwwLC4wODEuMTIxbDEuMDExLjk0My0uMDMzLjM0My0xLjE3Ny43MjhhLjQyMS40MjEsMCwwLDAsMCwuNjg4bDEuMTc3LjcyOC4wMzMuMzQzLTEuMDExLjk0M2EuNDIxLjQyMSwwLDAsMCwuMDE1LjU5NS40MzYuNDM2LDAsMCwwLC4xMTkuMDhsMS4yOTMuNDgzLjEuMzM0TDMuMSwyMC45NzJhLjQyMS40MjEsMCwwLDAsLjEzMS41ODEuNDMuNDMsMCwwLDAsLjEzMy4wNTVsMS4zNjMuMjIyLjE2NC4zMDctLjU3MywxLjI1N2EuNDIyLjQyMiwwLDAsMCwuMjQuNTQ1LjQzOC40MzgsMCwwLDAsLjE0My4wMjhsMS4zODMtLjA0OC4yMTkuMjY2LS4zMTcsMS4zNDhhLjQyLjQyLDAsMCwwLC4zNDEuNDg2LjQuNCwwLDAsMCwuMTQ2LDBMNy44MTgsMjUuN2wuMjY2LjIxOEw4LjAzNSwyNy4zYS40MTkuNDE5LDAsMCwwLC40MjkuNDEuNDEzLjQxMywwLDAsMCwuMTQzLS4wMjhsMS4yNTctLjU3My4zMDYuMTY0LjIyMiwxLjM2MmEuNDIxLjQyMSwwLDAsMCwuNS4zMTkuNDA3LjQwNywwLDAsMCwuMTMzLS4wNTVsMS4xMi0uODA3LjMzNC4xLjQ4MywxLjI5MmEuNDIyLjQyMiwwLDAsMCwuNTU2LjIxNC40MzYuNDM2LDAsMCwwLC4xMTktLjA4bC45NDMtMS4wMTEuMzQzLjAzNC43MjgsMS4xNzdhLjQyMi40MjIsMCwwLDAsLjU4OC4xLjQxMy40MTMsMCwwLDAsLjEtLjFsLjcyOC0xLjE3Ny4zNDMtLjAzNC45NDMsMS4wMTFhLjQyMS40MjEsMCwwLDAsLjU5NS0uMDE1LjQzNi40MzYsMCwwLDAsLjA4LS4xMTlsLjQ4My0xLjI5Mi4zMzQtLjEsMS4xMi44MDdhLjQyMS40MjEsMCwwLDAsLjU4MS0uMTMxLjQzLjQzLDAsMCwwLC4wNTUtLjEzM2wuMjIyLTEuMzYyLjMwNi0uMTY0LDEuMjU3LjU3M2EuNDIxLjQyMSwwLDAsMCwuNTQ0LS4yMzkuNDM4LjQzOCwwLDAsMCwuMDI4LS4xNDNsLS4wNDgtMS4zODQuMjY1LS4yMTgsMS4zNDcuMzE3YS40MjEuNDIxLDAsMCwwLC40ODctLjM0LjQ0Ny40NDcsMCwwLDAsMC0uMTQ2TDI1LjcsMjQuMTgzbC4yMTgtLjI2NiwxLjM4My4wNDhhLjQyMS40MjEsMCwwLDAsLjQxLS40MzEuNC40LDAsMCwwLS4wMjgtLjE0MmwtLjU3My0xLjI1Ny4xNjQtLjMwNywxLjM2My0uMjIyYS40MjEuNDIxLDAsMCwwLC4zMTktLjUuNDM0LjQzNCwwLDAsMC0uMDU2LS4xMzVsLS44MDYtMS4xMi4xLS4zMzQsMS4yOTMtLjQ4M2EuNDIuNDIsMCwwLDAsLjIxNS0uNTU0LjQxNC40MTQsMCwwLDAtLjA4MS0uMTIxbC0xLjAxMS0uOTQzLjAzMy0uMzQzLDEuMTc3LS43MjhhLjQyMS40MjEsMCwwLDAsMC0uNjg4WlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNhKVxcXCIvPlwiLFxuXHRcIlNBU1wiOiBcIjxwYXRoIGQ9XFxcIk0xNi4wMTgsMzBBMTQsMTQsMCwxLDEsMzAsMTYuMiwxNCwxNCwwLDAsMSwxNi4wMTgsMzBaXFxcIiBzdHlsZT1cXFwiZmlsbDojMDAyYmI1XFxcIi8+PHBhdGggZD1cXFwiTTkuMTcsMjIuNjNjLjAyNi4wNjEuMDQ2LjEyNC4wNzcuMTgzLDIuMjE1LDQuMjA2LDcuNzM4LDQuNjE2LDEwLjc1NiwyLjQ1NGE2LjAxNyw2LjAxNywwLDAsMCwxLjczMS04LjU4MywxNS43LDE1LjcsMCwwLDAtMS4zMTgtMS43MzFjLS44ODEtMS4wNjctMS43NTUtMi4xNC0yLjYzNi0zLjIwNy0uMzY2LS40NDMtLjc2Ny0uODM1LTEuNDE2LS42ODNhMS4zOTMsMS4zOTMsMCwwLDAtLjgxNiwyLjMxMWMuODg4LDEuMTA2LDEuODE5LDIuMTc3LDIuNywzLjI4NmEzLjg3NCwzLjg3NCwwLDAsMSwuNTg5LDQuNCw1LjQyMyw1LjQyMywwLDAsMS01LDMuMTM0QTYuNiw2LjYsMCwwLDEsOS4xNywyMi42M1pcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48cGF0aCBkPVxcXCJNMjIuNDk0LDkuNjA5Yy4wOC0uMjQ4LS4wNjYtLjM3LS4xNDEtLjUwOUE3LjQ3Nyw3LjQ3NywwLDAsMCwxMi42LDYuMjM3Yy0zLjMsMS42My01LjEsNS4zNTItMi42MzcsOS4xNDdhNTYuNTMsNTYuNTMsMCwwLDAsNC4xMzUsNS4xMiwxLjAxMiwxLjAxMiwwLDAsMCwuNzA5LjM0NSwxLjM4NCwxLjM4NCwwLDAsMCwxLjQyOC0uNzY1LDEuMjQ3LDEuMjQ3LDAsMCwwLS4xNzMtMS41MDdjLS44NzYtMS4wNTEtMS43NjktMi4wODgtMi42MTUtMy4xNjJhNC4xMyw0LjEzLDAsMCwxLC4zMjMtNS43NzFBNi4wNTQsNi4wNTQsMCwwLDEsMTkuOTg0LDguMTMsNS4xOSw1LjE5LDAsMCwxLDIyLjQ5NCw5LjYwOVpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz5cIixcblx0XCJTYXNzIChTYXNzKVwiOiBcIjxwYXRoIGQ9XFxcIk0yNi4xMSwxNy41NzJhNS44LDUuOCwwLDAsMC0yLjUzNy41ODgsNS4zNDUsNS4zNDUsMCwwLDEtLjU2OC0xLjMxNCwzLjUzLDMuNTMsMCwwLDEtLjA1MS0xLjEsOS44MTEsOS44MTEsMCwwLDEsLjMzMi0xLjE5MmMtLjAwNS0uMDUxLS4wNjEtLjI5Mi0uNjI0LS4zcy0xLjA0OC4xMDctMS4xLjI1NmE2LjE3MSw2LjE3MSwwLDAsMC0uMjM1LjgzNCwxOS42ODYsMTkuNjg2LDAsMCwxLTEuNzEzLDMuMjk0LDMuMTg2LDMuMTg2LDAsMCwxLS40NC0yLjA2Niw5LjgxMSw5LjgxMSwwLDAsMSwuMzMyLTEuMTkyYy0uMDA1LS4wNTEtLjA2MS0uMjkyLS42MjQtLjNzLTEuMDQ4LjEwNy0xLjEuMjU2LS4xMTguNS0uMjM1LjgzNC0xLjQ4MywzLjM4Ni0xLjg0MSw0LjE3M2MtLjE4NC40LS4zNDMuNzI2LS40NTUuOTQ2aDBhLjIzMy4yMzMsMCwwLDEtLjAyLjA0MWMtLjEuMTg5LS4xNTMuMjkyLS4xNTMuMjkydi4wMDVjLS4wNzcuMTM4LS4xNTkuMjY2LS4yLjI2NmExLjcxMSwxLjcxMSwwLDAsMSwuMDEtLjg2OWMuMi0xLjA1OS42OS0yLjcwNS42ODUtMi43NjIsMC0uMDMxLjA5Mi0uMzE3LS4zMTctLjQ2NWEuNTA4LjUwOCwwLDAsMC0uNTc4LjFjLS4wMzYsMC0uMDYxLjA4Ny0uMDYxLjA4N3MuNDQ1LTEuODUxLS44NDktMS44NTFhMy44NTUsMy44NTUsMCwwLDAtMi40NzUsMS42ODNjLS4zNDguMTg5LTEuMDg5LjU5My0xLjg4MiwxLjAyOC0uMy4xNjktLjYxNC4zMzgtLjkwNS41LS4wMi0uMDItLjA0MS0uMDQ2LS4wNjEtLjA2NkM2Ljg3LDE3LjYsMy45NzUsMTYuNDE2LDQuMSwxNC4xNzFjLjA0Ni0uODE4LjMyNy0yLjk2Niw1LjU1OS01LjU3NSw0LjMwNi0yLjEyMiw3LjczMy0xLjUzNCw4LjMyNi0uMjMuODQ5LDEuODYyLTEuODM2LDUuMzE5LTYuMjg1LDUuODJhMy4zNTEsMy4zNTEsMCwwLDEtMi44MTMtLjcxMWMtLjIzNS0uMjU2LS4yNzEtLjI3MS0uMzU4LS4yMi0uMTQzLjA3Ny0uMDUxLjMwNywwLC40NGEyLjYyNiwyLjYyNiwwLDAsMCwxLjYwNiwxLjI2Myw4LjU1LDguNTUsMCwwLDAsNS4yMTctLjUxN2MyLjctMS4wNDMsNC44LTMuOTQzLDQuMTg0LTYuMzcyLS42MTktMi40NjUtNC43MS0zLjI3OC04LjU4Mi0xLjlBMTkuNSwxOS41LDAsMCwwLDQuMzU5LDkuOTUyYy0yLjEzMywxLjk5NS0yLjQ3LDMuNzI4LTIuMzMyLDQuNDU1LjUsMi41NzgsNC4wNTEsNC4yNTUsNS40NzIsNS41LS4wNzIuMDQxLS4xMzguMDc3LS4xOTQuMTA3LS43MTEuMzUzLTMuNDIxLDEuNzctNC4xLDMuMjY4LS43NjcsMS43LjEyMywyLjkxNS43MTEsMy4wNzlhNC4zNzQsNC4zNzQsMCwwLDAsNC43MS0xLjkwOEE0LjcyNSw0LjcyNSwwLDAsMCw5LjA0OSwyMC4xYS4xMDcuMTA3LDAsMCwwLS4wMi0uMDMxbC41NTctLjMyN2MuMzYzLS4yMTUuNzIxLS40MTQsMS4wMjgtLjU3OGE2Ljc0LDYuNzQsMCwwLDAtLjM2MywxLjg2MiwzLjg4NiwzLjg4NiwwLDAsMCwuODM0LDIuNy45MjEuOTIxLDAsMCwwLC42NzUuMjJjLjYsMCwuODc1LS41LDEuMTc2LTEuMDk0LjM2OC0uNzI2LjctMS41Ny43LTEuNTdzLS40MTQsMi4yODEuNzExLDIuMjgxYy40MDksMCwuODIzLS41MzIsMS4wMDgtLjh2LjAwNXMuMDEtLjAxNS4wMzEtLjA1MWwuMDY2LS4xMDd2LS4wMWMuMTY0LS4yODYuNTMyLS45MzYsMS4wNzktMi4wMTUuNzA2LTEuMzkxLDEuMzg2LTMuMTMsMS4zODYtMy4xM2E4Ljg4OCw4Ljg4OCwwLDAsMCwuMjcxLDEuMTMsMTAuNjQzLDEwLjY0MywwLDAsMCwuNTgzLDEuMzA5Yy0uMTY0LjIzLS4yNjYuMzU4LS4yNjYuMzU4bC4wMDUuMDA1Yy0uMTMzLjE3NC0uMjc2LjM2My0uNDM1LjU0N2ExNi4zLDE2LjMsMCwwLDAtMS4zMTQsMS42NDcuNDQ3LjQ0NywwLDAsMCwuMTIzLjYsMS4xMTYsMS4xMTYsMCwwLDAsLjY4NS4xMTMsMy4xNDcsMy4xNDcsMCwwLDAsMS4wMjgtLjIzNSwzLjQ1LDMuNDUsMCwwLDAsLjg4NS0uNDY1LDEuOTgsMS45OCwwLDAsMCwuODQ5LTEuNzQ0LDMuNTIxLDMuNTIxLDAsMCwwLS4zMjItMS4yMzNjLjA1MS0uMDcyLjEtLjE0My4xNDgtLjIxNWEyMy40MjgsMjMuNDI4LDAsMCwwLDEuNTM0LTIuNjQ5LDguODg4LDguODg4LDAsMCwwLC4yNzEsMS4xMyw3LjU3LDcuNTcsMCwwLDAsLjUsMS4xMjVBNC44NjEsNC44NjEsMCwwLDAsMjAuOTY1LDIwLjhjLS4zMjIuOTMxLS4wNzIsMS4zNS40LDEuNDQ3YTEuNDI1LDEuNDI1LDAsMCwwLC43NDctLjE1MywzLjQsMy40LDAsMCwwLC45NDYtLjQ4NiwyLjEyNiwyLjEyNiwwLDAsMCwxLjA0My0xLjcyOSwzLjI2OCwzLjI2OCwwLDAsMC0uMjM1LTEuMDIzLDUuMzU2LDUuMzU2LDAsMCwxLDIuNzE2LS4zMTJjMi40MzQuMjg2LDIuOTE1LDEuODA1LDIuODIzLDIuNDQ1YTEuNjE4LDEuNjE4LDAsMCwxLS43NzIsMS4wOTRjLS4xNjkuMTA3LS4yMjUuMTQzLS4yMS4yMi4wMi4xMTMuMS4xMDcuMjQ1LjA4N0ExLjksMS45LDAsMCwwLDMwLDIwLjdjLjA3Ny0xLjUtMS4zNTUtMy4xNDUtMy44ODctMy4xM1pNNy4zMywyMy45Yy0uODA4Ljg4LTEuOTMzLDEuMjEyLTIuNDE5LjkzMS0uNTIyLS4zLS4zMTctMS42LjY3NS0yLjUzMmExMi44ODQsMTIuODg0LDAsMCwxLDEuOS0xLjQxN2MuMTE4LS4wNzIuMjkyLS4xNzQuNS0uM2wuMDU2LS4wMzFoMGwuMTIzLS4wNzdBMy40OTMsMy40OTMsMCwwLDEsNy4zMywyMy45Wm01Ljg4MS00Yy0uMjgxLjY4NS0uODY5LDIuNDQtMS4yMjcsMi4zNDItLjMwNy0uMDgyLS41LTEuNDEyLS4wNjEtMi43MjZhNi4xOTMsNi4xOTMsMCwwLDEsLjk1Ni0xLjc1NGMuNDQtLjQ5MS45MjYtLjY1NSwxLjA0My0uNDU1YTkuMDYyLDkuMDYyLDAsMCwxLS43MTEsMi41OTNabTQuODUzLDIuMzIyYy0uMTE4LjA2MS0uMjMuMS0uMjgxLjA3Mi0uMDM2LS4wMi4wNTEtLjEuMDUxLS4xcy42MDktLjY1NS44NDktLjk1MWMuMTM4LS4xNzQuMy0uMzc4LjQ3Ni0uNjA5VjIwLjdjMCwuNzgyLS43NTcsMS4zMDktMS4wOTQsMS41MjRabTMuNzQ0LS44NTRjLS4wODctLjA2MS0uMDcyLS4yNjYuMjItLjkwNWEzLjQwOCwzLjQwOCwwLDAsMSwuODM0LTEuMDc0LDEuNDQ4LDEuNDQ4LDAsMCwxLC4wODIuNDcxLDEuNTQ3LDEuNTQ3LDAsMCwxLTEuMTM1LDEuNTA5WlxcXCIgc3R5bGU9XFxcImZpbGw6I2NkNjc5OVxcXCIvPlwiLFxuXHRcIlNhc3MgKFNDU1MpXCI6IFwiPHBhdGggZD1cXFwiTTE2LjE3MSwxOC43Yy0uNDgxLjIyMS0xLjAwOC41MDktMi4wNjMsMS4wODgtLjQuMjI1LS44MTguNDUtMS4yMDcuNjYyLS4wMjctLjAyNy0uMDU1LS4wNjEtLjA4Mi0uMDg5LTIuMDg3LTIuMjMtNS45NDctMy44MDUtNS43ODMtNi44LjA2MS0xLjA5MS40MzYtMy45NTUsNy40MTMtNy40MzMsNS43NDItMi44MywxMC4zMTEtMi4wNDYsMTEuMS0uMzA3QzI2LjY4Myw4LjMsMjMuMSwxMi45MTMsMTcuMTcsMTMuNTgyYTQuNDY5LDQuNDY5LDAsMCwxLTMuNzUxLS45NDhjLS4zMTQtLjM0MS0uMzYxLS4zNjEtLjQ3Ny0uMjkzLS4xOTEuMS0uMDY4LjQwOSwwLC41ODZhMy41LDMuNSwwLDAsMCwyLjE0MSwxLjY4NCwxMS40LDExLjQsMCwwLDAsNi45NTYtLjY4OWMzLjU5NC0xLjM5MSw2LjQtNS4yNTgsNS41NzgtOC41LS44MjUtMy4yODctNi4yODEtNC4zNzEtMTEuNDQzLTIuNTM3YTI2LDI2LDAsMCwwLTguNzksNS4wNDdjLTIuODQ0LDIuNjYtMy4yOTQsNC45NzItMy4xMSw1Ljk0LjY2MiwzLjQzNyw1LjQsNS42NzQsNy4zLDcuMzMxLS4xLjA1NS0uMTg0LjEtLjI1OS4xNDMtLjk0OC40NzEtNC41NjIsMi4zNi01LjQ2Myw0LjM1OC0xLjAyMywyLjI2NC4xNjQsMy44ODcuOTQ4LDQuMTA1YTUuODMyLDUuODMyLDAsMCwwLDYuMjgxLTIuNTQ0LDYuMyw2LjMsMCwwLDAsLjU1OS01LjgsNS4wMyw1LjAzLDAsMCwxLC43MTYtLjQ3N2MuNDg0LS4yODYuOTQ1LS41NjgsMS4zNTQtLjc4NmwwLDBhMTAuNDc1LDEwLjQ3NSwwLDAsMSw0LjQ3NS0uOTg5YzMuMjQ2LjM4MiwzLjg4NywyLjQwNywzLjc2NCwzLjI2YTIuMTU3LDIuMTU3LDAsMCwxLTEuMDMsMS40NTljLS4yMjUuMTQzLS4zLjE5MS0uMjguMjkzLjAyNy4xNS4xMzYuMTQzLjMyNy4xMTZhMi41MzUsMi41MzUsMCwwLDAsMS43NjYtMi4yNTdjLjEtMi0xLjgwNy00LjE5NC01LjE4My00LjE3NGE3Ljc1Myw3Ljc1MywwLDAsMC0yLjk0Ni41ODdxLS4yMjUuMDkzLS40MzcuMlptLTQuODI1LDcuODM5Yy0xLjA3OCwxLjE3My0yLjU3OCwxLjYxNi0zLjIyNiwxLjI0MS0uNy0uNC0uNDIzLTIuMTM1LjktMy4zNzZhMTcuMTgsMTcuMTgsMCwwLDEsMi41My0xLjg4OWMuMTU3LS4xLjM4OS0uMjMyLjY2OC0uNC4wNDgtLjAyNy4wNzUtLjA0MS4wNzUtLjA0MWwuMTY0LS4xQTQuNjU4LDQuNjU4LDAsMCwxLDExLjM0NiwyNi41MzlaXFxcIiBzdHlsZT1cXFwiZmlsbDojY2Q2Nzk5XFxcIi8+XCIsXG5cdFwiU2NhbGFcIjogXCI8ZGVmcz48bGluZWFyR3JhZGllbnQgaWQ9XFxcImFcXFwiIHgxPVxcXCItMTM0LjkwN1xcXCIgeTE9XFxcIjIwNC41NzJcXFwiIHgyPVxcXCItMTM0Ljg5NlxcXCIgeTI9XFxcIjIwNC41NzJcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJtYXRyaXgoMTUzOCwgMCwgMCwgLTk2MS4yNSwgMjA3NDk1LCAxOTY2NjEpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjZTYyZDJhXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjZcXFwiIHN0b3AtY29sb3I9XFxcIiNkZjNmM2RcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuOFxcXCIgc3RvcC1jb2xvcj1cXFwiI2RmM2YzZFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiI2U2MmQyYVxcXCIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJiXFxcIiB4MT1cXFwiLTEzNC45MDdcXFwiIHkxPVxcXCIyMDMuNzgxXFxcIiB4Mj1cXFwiLTEzNC44OTZcXFwiIHkyPVxcXCIyMDMuNzgxXFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwibWF0cml4KDE1MzgsIDAsIDAsIC05NjEuMjUsIDIwNzQ5NSwgMTk1ODkyKVxcXCIgeGxpbms6aHJlZj1cXFwiI2FcXFwiLz48bGluZWFyR3JhZGllbnQgaWQ9XFxcImNcXFwiIHgxPVxcXCItMTM0LjkwN1xcXCIgeTE9XFxcIjIwNS4zNjNcXFwiIHgyPVxcXCItMTM0Ljg5NlxcXCIgeTI9XFxcIjIwNS4zNjNcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJtYXRyaXgoMTUzOCwgMCwgMCwgLTk2MS4yNSwgMjA3NDk1LCAxOTc0MzApXFxcIiB4bGluazpocmVmPVxcXCIjYVxcXCIvPjwvZGVmcz48dGl0bGU+ZmlsZV90eXBlX3NjYWxhPC90aXRsZT48cGF0aCBkPVxcXCJNNy4zODQsMTkuMjMxdjIuMTU0YzAsLjM2Myw3LjgzMy45NzEsMTIuOTM3LDIuMTU0LDIuNDY1LS41NzEsNC4yOTUtMS4yNzcsNC4yOTUtMi4xNTRWMTkuMjMxYzAtLjg3Ny0xLjgzLTEuNTgyLTQuMjk1LTIuMTU0LTUuMSwxLjE4My0xMi45MzcsMS43OTEtMTIuOTM3LDIuMTU0XFxcIiBzdHlsZT1cXFwiZmlsbDojN2YwYzFkXFxcIi8+PHBhdGggZD1cXFwiTTcuMzg0LDEwLjYxNXYyLjE1NGMwLC4zNjMsNy44MzMuOTcxLDEyLjkzNywyLjE1NCwyLjQ2NS0uNTcxLDQuMjk1LTEuMjc3LDQuMjk1LTIuMTU0VjEwLjYxNWMwLS44NzctMS44My0xLjU4Mi00LjI5NS0yLjE1NC01LjEsMS4xODMtMTIuOTM3LDEuNzkxLTEyLjkzNywyLjE1NFxcXCIgc3R5bGU9XFxcImZpbGw6IzdmMGMxZFxcXCIvPjxwYXRoIGQ9XFxcIk03LjM4NCwxNC45MjN2Ni40NjJjMC0uNTM4LDE3LjIzMi0xLjYxNSwxNy4yMzItNC4zMDhWMTAuNjE1YzAsMi42OTItMTcuMjMyLDMuNzY5LTE3LjIzMiw0LjMwOFxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNhKVxcXCIvPjxwYXRoIGQ9XFxcIk03LjM4NCw2LjMwOFYxMi43N2MwLS41MzgsMTcuMjMyLTEuNjE1LDE3LjIzMi00LjMwOFYyYzAsMi42OTItMTcuMjMyLDMuNzY5LTE3LjIzMiw0LjMwOFxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNiKVxcXCIvPjxwYXRoIGQ9XFxcIk03LjM4NCwyMy41MzhWMzBjMC0uNTM4LDE3LjIzMi0xLjYxNSwxNy4yMzItNC4zMDhWMTkuMjMxYzAsMi42OTItMTcuMjMyLDMuNzY5LTE3LjIzMiw0LjMwOFxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNjKVxcXCIvPlwiLFxuXHRcIlNoZWxsIHNlc3Npb25cIjogXCI8cGF0aCBkPVxcXCJNMjkuNCwyNy42SDIuNVY0LjVIMjkuNFptLTI1LjktMUgyOC40VjUuNUgzLjVaXFxcIiBzdHlsZT1cXFwiZmlsbDojZDliNDAwXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCI2LjA3NyAxOS4zMTYgNS41MjIgMTguNDg0IDEwLjM2NiAxNS4yNTUgNS40NzkgMTEuMTg0IDYuMTIgMTAuNDE2IDEyLjAzNSAxNS4zNDQgNi4wNzcgMTkuMzE2XFxcIiBzdHlsZT1cXFwiZmlsbDojZDliNDAwXFxcIi8+PHJlY3QgeD1cXFwiMTIuN1xcXCIgeT1cXFwiMTguMlxcXCIgd2lkdGg9XFxcIjcuOFxcXCIgaGVpZ2h0PVxcXCIxXFxcIiBzdHlsZT1cXFwiZmlsbDojZDliNDAwXFxcIi8+PHJlY3QgeD1cXFwiMi41XFxcIiB5PVxcXCI1LjVcXFwiIHdpZHRoPVxcXCIyNi45XFxcIiBoZWlnaHQ9XFxcIjEuOVxcXCIgc3R5bGU9XFxcImZpbGw6I2Q5YjQwMFxcXCIvPlwiLFxuXHRcIlNoZWxsXCI6IFwiPHBhdGggZD1cXFwiTTI5LjQsMjcuNkgyLjVWNC41SDI5LjRabS0yNS45LTFIMjguNFY1LjVIMy41WlxcXCIgc3R5bGU9XFxcImZpbGw6I2Q5YjQwMFxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiNi4wNzcgMTkuMzE2IDUuNTIyIDE4LjQ4NCAxMC4zNjYgMTUuMjU1IDUuNDc5IDExLjE4NCA2LjEyIDEwLjQxNiAxMi4wMzUgMTUuMzQ0IDYuMDc3IDE5LjMxNlxcXCIgc3R5bGU9XFxcImZpbGw6I2Q5YjQwMFxcXCIvPjxyZWN0IHg9XFxcIjEyLjdcXFwiIHk9XFxcIjE4LjJcXFwiIHdpZHRoPVxcXCI3LjhcXFwiIGhlaWdodD1cXFwiMVxcXCIgc3R5bGU9XFxcImZpbGw6I2Q5YjQwMFxcXCIvPjxyZWN0IHg9XFxcIjIuNVxcXCIgeT1cXFwiNS41XFxcIiB3aWR0aD1cXFwiMjYuOVxcXCIgaGVpZ2h0PVxcXCIxLjlcXFwiIHN0eWxlPVxcXCJmaWxsOiNkOWI0MDBcXFwiLz5cIixcblx0XCJTbWFydHlcIjogXCI8ZGVmcz48bGluZWFyR3JhZGllbnQgaWQ9XFxcImFcXFwiIHgxPVxcXCIxMy44NTlcXFwiIHkxPVxcXCIyOS4yMTlcXFwiIHgyPVxcXCIxOC4xMDZcXFwiIHkyPVxcXCIyOS4yMTlcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjAuMDM0XFxcIiBzdG9wLWNvbG9yPVxcXCIjNjM2MzYxXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjE3OFxcXCIgc3RvcC1jb2xvcj1cXFwiIzZjNmQ3MFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC4yMTlcXFwiIHN0b3AtY29sb3I9XFxcIiM2ZjcxNzVcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuMzA5XFxcIiBzdG9wLWNvbG9yPVxcXCIjNjE2MzY2XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjQ4MVxcXCIgc3RvcC1jb2xvcj1cXFwiIzNjM2QzZlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC43MTZcXFwiIHN0b3AtY29sb3I9XFxcIiMwMTAxMDFcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNzE5XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjNjM2YTZlXFxcIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9XFxcImJcXFwiIHgxPVxcXCIxNS4xNzhcXFwiIHkxPVxcXCIyOS43MzRcXFwiIHgyPVxcXCIxNi43ODdcXFwiIHkyPVxcXCIyOS43MzRcXFwiIHhsaW5rOmhyZWY9XFxcIiNhXFxcIi8+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJjXFxcIiB4MT1cXFwiMTUuMjc3XFxcIiB5MT1cXFwiMjkuODgxXFxcIiB4Mj1cXFwiMTYuNjg4XFxcIiB5Mj1cXFwiMjkuODgxXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwLjAzNFxcXCIgc3RvcC1jb2xvcj1cXFwiIzliOWI5OFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC4xMzFcXFwiIHN0b3AtY29sb3I9XFxcIiNhNGE1YTdcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuMjE5XFxcIiBzdG9wLWNvbG9yPVxcXCIjYWViMWI4XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjM1MlxcXCIgc3RvcC1jb2xvcj1cXFwiIzlmYTRhYlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC42MDVcXFwiIHN0b3AtY29sb3I9XFxcIiM3ODgxODhcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNzE5XFxcIiBzdG9wLWNvbG9yPVxcXCIjNjU3MDc2XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjOGI5NDlhXFxcIi8+PC9saW5lYXJHcmFkaWVudD48cmFkaWFsR3JhZGllbnQgaWQ9XFxcImRcXFwiIGN4PVxcXCItOC40NTZcXFwiIGN5PVxcXCItMTYuNjE2XFxcIiByPVxcXCIxOS4zODNcXFwiIGdyYWRpZW50VHJhbnNmb3JtPVxcXCJ0cmFuc2xhdGUoMzQuMDQyIDM3LjA2Mykgc2NhbGUoMS4wNTQpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwLjAzNFxcXCIgc3RvcC1jb2xvcj1cXFwiIzcwNzA2ZVxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC4xMTJcXFwiIHN0b3AtY29sb3I9XFxcIiM2MTYyNjFcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuMjE5XFxcIiBzdG9wLWNvbG9yPVxcXCIjNDY0NzRhXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjQwOFxcXCIgc3RvcC1jb2xvcj1cXFwiIzQ4NDk0Y1xcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC40ODdcXFwiIHN0b3AtY29sb3I9XFxcIiM0ZTUwNTNcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNTQ0XFxcIiBzdG9wLWNvbG9yPVxcXCIjNWE1YzVmXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjU5MlxcXCIgc3RvcC1jb2xvcj1cXFwiIzZhNmU3MVxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC42MzNcXFwiIHN0b3AtY29sb3I9XFxcIiM3Zjg1ODhcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNjY3XFxcIiBzdG9wLWNvbG9yPVxcXCIjOTc5ZWExXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjcxOVxcXCIgc3RvcC1jb2xvcj1cXFwiIzNkNDQ0N1xcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiIzY1NmM3MFxcXCIvPjwvcmFkaWFsR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJlXFxcIiB4MT1cXFwiMTYuMTI2XFxcIiB5MT1cXFwiMjguMTA4XFxcIiB4Mj1cXFwiMTYuMDVcXFwiIHkyPVxcXCIyNi44OTNcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjAuMDM0XFxcIiBzdG9wLWNvbG9yPVxcXCIjOWI5Yjk4XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjEwOVxcXCIgc3RvcC1jb2xvcj1cXFwiI2E1YTZhN1xcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC4yMTlcXFwiIHN0b3AtY29sb3I9XFxcIiNiYWJjYzRcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuMzExXFxcIiBzdG9wLWNvbG9yPVxcXCIjYWJhZWI1XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjQ4N1xcXCIgc3RvcC1jb2xvcj1cXFwiIzg0ODk4ZlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC43MTlcXFwiIHN0b3AtY29sb3I9XFxcIiM0ODUwNTRcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjFcXFwiIHN0b3AtY29sb3I9XFxcIiM4Yjk0OWFcXFwiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiZlxcXCIgeDE9XFxcIjE2LjAxM1xcXCIgeTE9XFxcIjI2LjU0MlxcXCIgeDI9XFxcIjE1Ljg5NVxcXCIgeTI9XFxcIjI0LjYzNVxcXCIgeGxpbms6aHJlZj1cXFwiI2VcXFwiLz48bGluZWFyR3JhZGllbnQgaWQ9XFxcImdcXFwiIHgxPVxcXCIxNi4wMjNcXFwiIHkxPVxcXCIyNS41NDZcXFwiIHgyPVxcXCIxNS44ODdcXFwiIHkyPVxcXCIyMy4zNTVcXFwiIHhsaW5rOmhyZWY9XFxcIiNlXFxcIi8+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJoXFxcIiB4MT1cXFwiMTYuMDEzXFxcIiB5MT1cXFwiMjcuNjI3XFxcIiB4Mj1cXFwiMTUuODk1XFxcIiB5Mj1cXFwiMjUuNzJcXFwiIHhsaW5rOmhyZWY9XFxcIiNlXFxcIi8+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJqXFxcIiB4MT1cXFwiMTMuNjhcXFwiIHkxPVxcXCIyOC44MDVcXFwiIHgyPVxcXCIxOC4yODRcXFwiIHkyPVxcXCIyOC44MDVcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjAuMDM0XFxcIiBzdG9wLWNvbG9yPVxcXCIjNTQ1NDUzXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjA3MVxcXCIgc3RvcC1jb2xvcj1cXFwiIzYxNjI2MlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC4xNDNcXFwiIHN0b3AtY29sb3I9XFxcIiM4NDg1ODlcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuMjE5XFxcIiBzdG9wLWNvbG9yPVxcXCIjYWViMWI4XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjM1MlxcXCIgc3RvcC1jb2xvcj1cXFwiIzlmYTRhYlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC42MDVcXFwiIHN0b3AtY29sb3I9XFxcIiM3ODgxODhcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNzE5XFxcIiBzdG9wLWNvbG9yPVxcXCIjNjU3MDc2XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjNTA1NjU5XFxcIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9XFxcImtcXFwiIHgxPVxcXCIxMi4xNTlcXFwiIHkxPVxcXCIyNS44MTNcXFwiIHgyPVxcXCIxOS40NzVcXFwiIHkyPVxcXCIyNS44MTNcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiNlNWUxZGZcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiNkZGRhZDZcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuMDM4XFxcIiBzdG9wLWNvbG9yPVxcXCIjY2VjY2M5XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjExMlxcXCIgc3RvcC1jb2xvcj1cXFwiI2E3YTlhOFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC4yMTJcXFwiIHN0b3AtY29sb3I9XFxcIiM2OTcwNzJcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuMjY0XFxcIiBzdG9wLWNvbG9yPVxcXCIjNDY1MDU0XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjMwM1xcXCIgc3RvcC1jb2xvcj1cXFwiIzYzNmM2ZlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC4zOThcXFwiIHN0b3AtY29sb3I9XFxcIiNhNWFhYWNcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNDc4XFxcIiBzdG9wLWNvbG9yPVxcXCIjZDVkN2Q5XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjUzOVxcXCIgc3RvcC1jb2xvcj1cXFwiI2YzZjRmNVxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC41NzNcXFwiIHN0b3AtY29sb3I9XFxcIiNmZWZlZmZcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNjJcXFwiIHN0b3AtY29sb3I9XFxcIiNmNGY1ZjZcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNjk5XFxcIiBzdG9wLWNvbG9yPVxcXCIjZGFkY2RmXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjhcXFwiIHN0b3AtY29sb3I9XFxcIiNiMGI0YjlcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuODc2XFxcIiBzdG9wLWNvbG9yPVxcXCIjOGI5Mjk4XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjZDFkM2Q0XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjYTdhOWFjXFxcIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9XFxcImxcXFwiIHgxPVxcXCIxMi4xNTlcXFwiIHkxPVxcXCIyNC43MjhcXFwiIHgyPVxcXCIxOS40NzVcXFwiIHkyPVxcXCIyNC43MjhcXFwiIHhsaW5rOmhyZWY9XFxcIiNrXFxcIi8+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJtXFxcIiB4MT1cXFwiMTIuMTU5XFxcIiB5MT1cXFwiMjMuNTQ4XFxcIiB4Mj1cXFwiMTkuNDc1XFxcIiB5Mj1cXFwiMjMuNTQ4XFxcIiB4bGluazpocmVmPVxcXCIja1xcXCIvPjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiblxcXCIgeDE9XFxcIjEyLjE1OVxcXCIgeTE9XFxcIjI2Ljg5OFxcXCIgeDI9XFxcIjE5LjQ3NVxcXCIgeTI9XFxcIjI2Ljg5OFxcXCIgeGxpbms6aHJlZj1cXFwiI2tcXFwiLz48bGluZWFyR3JhZGllbnQgaWQ9XFxcIm9cXFwiIHgxPVxcXCIxMi4xNTlcXFwiIHkxPVxcXCIyNS45NjdcXFwiIHgyPVxcXCIxOS40NzVcXFwiIHkyPVxcXCIyNS45NjdcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiNlNWUxZGZcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiNkZGU4ZDBcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiNkMmYzYmFcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuMDM2XFxcIiBzdG9wLWNvbG9yPVxcXCIjYzVlNGIxXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjEwNVxcXCIgc3RvcC1jb2xvcj1cXFwiI2E0YmQ5OFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC4xOTlcXFwiIHN0b3AtY29sb3I9XFxcIiM2ZTdmNzFcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuMjY0XFxcIiBzdG9wLWNvbG9yPVxcXCIjNDY1MDU0XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjMwM1xcXCIgc3RvcC1jb2xvcj1cXFwiIzYzNmM2ZlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC4zOThcXFwiIHN0b3AtY29sb3I9XFxcIiNhNWFhYWNcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNDc4XFxcIiBzdG9wLWNvbG9yPVxcXCIjZDVkN2Q5XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjUzOVxcXCIgc3RvcC1jb2xvcj1cXFwiI2YzZjRmNVxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC41NzNcXFwiIHN0b3AtY29sb3I9XFxcIiNmZWZlZmZcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNjJcXFwiIHN0b3AtY29sb3I9XFxcIiNmNGY1ZjZcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNjk5XFxcIiBzdG9wLWNvbG9yPVxcXCIjZGFkY2RmXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjhcXFwiIHN0b3AtY29sb3I9XFxcIiNiMGI0YjlcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuODc2XFxcIiBzdG9wLWNvbG9yPVxcXCIjOGI5Mjk4XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjZDFkM2Q0XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjYTdhOWFjXFxcIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9XFxcInBcXFwiIHgxPVxcXCIxMi4xNTlcXFwiIHkxPVxcXCIyNC44ODNcXFwiIHgyPVxcXCIxOS40NzVcXFwiIHkyPVxcXCIyNC44ODNcXFwiIHhsaW5rOmhyZWY9XFxcIiNvXFxcIi8+PGxpbmVhckdyYWRpZW50IGlkPVxcXCJxXFxcIiB4MT1cXFwiMTIuMTU5XFxcIiB5MT1cXFwiMjcuMDVcXFwiIHgyPVxcXCIxOS40NzVcXFwiIHkyPVxcXCIyNy4wNVxcXCIgeGxpbms6aHJlZj1cXFwiI29cXFwiLz48bGluZWFyR3JhZGllbnQgaWQ9XFxcInJcXFwiIHgxPVxcXCIxMS45MDJcXFwiIHkxPVxcXCIyMy4yMDFcXFwiIHgyPVxcXCIxOS44ODRcXFwiIHkyPVxcXCIyMy4yMDFcXFwiIHhsaW5rOmhyZWY9XFxcIiNlXFxcIi8+PHJhZGlhbEdyYWRpZW50IGlkPVxcXCJzXFxcIiBjeD1cXFwiLTE2Ljk4M1xcXCIgY3k9XFxcIi0yMi45NDhcXFwiIHI9XFxcIjEwLjcxOFxcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcInRyYW5zbGF0ZSgzNC4wNDIgMzcuMDYzKSBzY2FsZSgxLjA1NClcXFwiIGdyYWRpZW50VW5pdHM9XFxcInVzZXJTcGFjZU9uVXNlXFxcIj48c3RvcCBvZmZzZXQ9XFxcIjBcXFwiIHN0b3AtY29sb3I9XFxcIiNmZmZmZDFcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNTA1XFxcIiBzdG9wLWNvbG9yPVxcXCIjZmYwXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjU2OFxcXCIgc3RvcC1jb2xvcj1cXFwiI2ZkZjcwMFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMC42NjRcXFwiIHN0b3AtY29sb3I9XFxcIiNmNmUyMDBcXFwiLz48c3RvcCBvZmZzZXQ9XFxcIjAuNzgyXFxcIiBzdG9wLWNvbG9yPVxcXCIjZWJiZjAwXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIwLjkwNlxcXCIgc3RvcC1jb2xvcj1cXFwiI2RlOTIwMFxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiI2RhOTgxOVxcXCIvPjwvcmFkaWFsR3JhZGllbnQ+PC9kZWZzPjx0aXRsZT5maWxlX3R5cGVfc21hcnR5PC90aXRsZT48cGF0aCBkPVxcXCJNMTMuODU5LDI4Ljc3NmEuMjQyLjI0MiwwLDAsMCwuMTI4LjE5MSwxMiwxMiwwLDAsMCwxLjM5Mi42MjIsNC4zLDQuMywwLDAsMCwuNTc4LjA3MmguMDUyYTQuMyw0LjMsMCwwLDAsLjU3OC0uMDcyLDEyLjAxNCwxMi4wMTQsMCwwLDAsMS4zOTItLjYyMi4yNDMuMjQzLDAsMCwwLC4xMjgtLjE5MWwtMi4xMzcuMTkyWlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNhKVxcXCIvPjxwYXRoIGQ9XFxcIk0xNi4wMTQsMzBhMS4xMjMsMS4xMjMsMCwwLDAsLjY4OC0uMjQ3LjE3NS4xNzUsMCwwLDAsLjA4NS0uMTI2di0uMTA1YTMuMjM1LDMuMjM1LDAsMCwwLS43NzMtLjA1M2gtLjA2M2EzLjIzNywzLjIzNywwLDAsMC0uNzczLjA1M3YuMTA1YS4xNzUuMTc1LDAsMCwwLC4wODUuMTI2LDEuMTIyLDEuMTIyLDAsMCwwLC42ODguMjQ3WlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNiKVxcXCIvPjxwYXRoIGQ9XFxcIk0xNS45NTEsMjkuODA3YTQuNzMyLDQuNzMyLDAsMCwxLS42NzQtLjA0NCwxLjEwNSwxLjEwNSwwLDAsMCwuNjc0LjIzN2guMDYzYTEuMTA2LDEuMTA2LDAsMCwwLC42NzUtLjIzNyw0LjczMyw0LjczMywwLDAsMS0uNjc1LjA0NFpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjYylcXFwiLz48cGF0aCBkPVxcXCJNMTkuODA5LDI2LjgzOGExLDEsMCwwLDAtLjIzNC4zODljLS4wMzYuMTgxLS4xLjU4NS0xLjMyNiwxLjQwNmwtLjAyNS4wMTdhLjQzNS40MzUsMCwwLDEtLjA4Ni4wMzcsOS45NjgsOS45NjgsMCwwLDEtMi4xNTUuMjA5LDkuOTY4LDkuOTY4LDAsMCwxLTIuMTU2LS4yMDkuNDM2LjQzNiwwLDAsMS0uMDg1LS4wMzZsLS4wMjUtLjAxN2E0LjU3OSw0LjU3OSwwLDAsMS0xLjEyLS45NTdjLS4xNjQtLjIxOS0uMzczLS4yNTctLjM5LS4zNDVhMjEuMDU1LDIxLjA1NSwwLDAsMCwzLjg1NS4wNTcsMTMuMDQ5LDEzLjA0OSwwLDAsMCwzLjc2MS0uNjU0QS42OTIuNjkyLDAsMCwxLDE5LjgwOSwyNi44MzhaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2QpXFxcIi8+PHBhdGggZD1cXFwiTTE5Ljc3MiwyNi44OGEuOTg1Ljk4NSwwLDAsMS0uMjQ2LjEyOWMtLjA3Ni4wMjgtLjI0NS4wNzgtLjI0NS4wNzhhMjUuMTUsMjUuMTUsMCwwLDEtNi40NTguNDM2Yy0uMTM2LS4wMDktLjMyLS4wMjgtLjMyLS4wMjhhMS4wNjIsMS4wNjIsMCwwLDEtLjE0LS4wMjgsMS4wMTYsMS4wMTYsMCwwLDEsLjE0LjEwN2MuMTYuMDEzLjMxOS4wMTkuMzE5LjAxOWEyNi44NjQsMjYuODY0LDAsMCwwLDYuNzQzLS4zMjNsLjAwOS0uMDQyQS44ODUuODg1LDAsMCwxLDE5Ljc3MiwyNi44OFpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjZSlcXFwiLz48cGF0aCBkPVxcXCJNMTkuNDM5LDI1LjM4MnMuMjQ1LS4wNy4yNDUtLjE2MmEuMTE0LjExNCwwLDAsMC0uMDEzLS4wNjUuMjE0LjIxNCwwLDAsMS0uMDYxLS4xNDQuNDM3LjQzNywwLDAsMSwuMTE5LS4yNywxLjA2OSwxLjA2OSwwLDAsMS0uMi4xYy0uMDc2LjAyOC0uMjQ1LjA3OC0uMjQ1LjA3OGEyNS4xNTEsMjUuMTUxLDAsMCwxLTYuNDU4LjQzNmMtLjEzNi0uMDA5LS4zMi0uMDI4LS4zMi0uMDI4YTEuMDU1LDEuMDU1LDAsMCwxLS4xODEtLjA0MS4zNzcuMzc3LDAsMCwxLC4wNzguMjE3LjcxNi43MTYsMCwwLDEtLjI1NC40MzIuNjczLjY3MywwLDAsMSwuMzY4LS4wNzlBMjYuMiwyNi4yLDAsMCwwLDE5LjQzOSwyNS4zODJaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2YpXFxcIi8+PHBhdGggZD1cXFwiTTE5LjQzOSwyNC4yMjlzLjI0NS0uMDc4LjI0NS0uMTgyYS4xNDMuMTQzLDAsMCwwLS4wMTMtLjA3My4yNTQuMjU0LDAsMCwxLS4wNjEtLjE2Mi41MTQuNTE0LDAsMCwxLC4xMTktLjMsMS4wMjYsMS4wMjYsMCwwLDEtLjIuMTExYy0uMDc2LjAzMi0uMjQ1LjA4OC0uMjQ1LjA4OGEyMi41MDcsMjIuNTA3LDAsMCwxLTYuNDU4LjQ4OWMtLjEzNi0uMDEtLjMyLS4wMzItLjMyLS4wMzJhLjk1My45NTMsMCwwLDEtLjE4MS0uMDQ2LjQ1NS40NTUsMCwwLDEsLjA3OC4yNDMuODI1LjgyNSwwLDAsMS0uMjU0LjQ4NC42MTQuNjE0LDAsMCwxLC4zNjgtLjA4OUMxMy4wMTQsMjQuNzU4LDE2LjkzNSwyNS4wNDEsMTkuNDM5LDI0LjIyOVpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjZylcXFwiLz48cGF0aCBkPVxcXCJNMTkuNDM5LDI2LjQ2N3MuMjQ1LS4wNy4yNDUtLjE2M2EuMTE1LjExNSwwLDAsMC0uMDEzLS4wNjUuMjE0LjIxNCwwLDAsMS0uMDYxLS4xNDQuNDM1LjQzNSwwLDAsMSwuMTE5LS4yNywxLjA3LDEuMDcsMCwwLDEtLjIuMWMtLjA3Ni4wMjgtLjI0NS4wNzgtLjI0NS4wNzhhMjUuMTYyLDI1LjE2MiwwLDAsMS02LjQ1OC40MzZjLS4xMzYtLjAwOS0uMzItLjAyOC0uMzItLjAyOGExLjA0MiwxLjA0MiwwLDAsMS0uMTgxLS4wNDEuMzc3LjM3NywwLDAsMSwuMDc4LjIxNy43MTcuNzE3LDAsMCwxLS4yNTQuNDMyLjY3LjY3LDAsMCwxLC4zNjgtLjA3OUEyNi4yMDcsMjYuMjA3LDAsMCwwLDE5LjQzOSwyNi40NjdaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2gpXFxcIi8+PHBhdGggZD1cXFwiTTE5LjQzOSwyNi40NjdzLjI0NS0uMDcuMjQ1LS4xNjNhLjExNS4xMTUsMCwwLDAtLjAxMy0uMDY1LjIxNC4yMTQsMCwwLDEtLjA2MS0uMTQ0LjQzNS40MzUsMCwwLDEsLjExOS0uMjcsMS4wNywxLjA3LDAsMCwxLS4yLjFjLS4wNzYuMDI4LS4yNDUuMDc4LS4yNDUuMDc4YTI1LjE2OCwyNS4xNjgsMCwwLDEtNi40NTguNDM2Yy0uMTM2LS4wMDktLjMyLS4wMjgtLjMyLS4wMjhhMS4wNDIsMS4wNDIsMCwwLDEtLjE4MS0uMDQxLjM3Ni4zNzYsMCwwLDEsLjA3OC4yMTcuNzE3LjcxNywwLDAsMS0uMjU0LjQzMi42Ny42NywwLDAsMSwuMzY4LS4wNzlBMjYuMjA3LDI2LjIwNywwLDAsMCwxOS40MzksMjYuNDY3WlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNoKVxcXCIvPjxwYXRoIGQ9XFxcIk0xOC4yMjQsMjguNjVhLjQzNS40MzUsMCwwLDEtLjA4Ni4wMzcsOS45NjgsOS45NjgsMCwwLDEtMi4xNTUuMjA5LDkuOTY4LDkuOTY4LDAsMCwxLTIuMTU2LS4yMDkuNDM2LjQzNiwwLDAsMS0uMDg1LS4wMzZsLS4wMjUtLjAxNy0uMDI5LS4wMTlhLjExMi4xMTIsMCwwLDAsMCwuMDczYy4wMjQuMDczLjE0Ny4xLjE0Ny4xYTkuOTQzLDkuOTQzLDAsMCwwLDIuMTUuMjA5LDkuOTQyLDkuOTQyLDAsMCwwLDIuMTUtLjIwOXMuMTI2LS4wMjkuMTQ3LS4xYS4xMTguMTE4LDAsMCwwLDAtLjA3M2wtLjAyOS4wMTlaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2opXFxcIi8+PHBhdGggZD1cXFwiTTE5Ljk0NCwyNS41cy4wNDEuMjUyLS40MTguNDIzYy0uMDc2LjAyOC0uMjQ1LjA3OC0uMjQ1LjA3OGEyNS4xNjIsMjUuMTYyLDAsMCwxLTYuNDU4LjQzNmMtLjEzNi0uMDA5LS4zMi0uMDI4LS4zMi0uMDI4LS4yNzYtLjAzOC0uNDY3LS4xNi0uNDU1LS4zMDgsMCwwLS4wMzMtLjI0OS40NjYtLjI0OWEyNi4yLDI2LjIsMCwwLDAsNi45MjUtLjQ3MnMuMjQ1LS4wNy4yNDUtLjE2MmEuMTExLjExMSwwLDAsMC0uMDEzLS4wNjZTMTkuOTQ0LDI1LjMxMiwxOS45NDQsMjUuNVpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjaylcXFwiLz48cGF0aCBkPVxcXCJNMTkuOTQ0LDI0LjQxNnMuMDQxLjI1Mi0uNDE4LjQyM2MtLjA3Ni4wMjgtLjI0NS4wNzgtLjI0NS4wNzhhMjUuMTUxLDI1LjE1MSwwLDAsMS02LjQ1OC40MzZjLS4xMzYtLjAwOS0uMzItLjAyOC0uMzItLjAyOC0uMjc2LS4wMzgtLjQ2Ny0uMTYtLjQ1NS0uMzA4LDAsMC0uMDMzLS4yNDguNDY2LS4yNDhhMjYuMTkzLDI2LjE5MywwLDAsMCw2LjkyNS0uNDcycy4yNDUtLjA3LjI0NS0uMTYyYS4xMS4xMSwwLDAsMC0uMDEzLS4wNjVTMTkuOTQ0LDI0LjIyNywxOS45NDQsMjQuNDE2WlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNsKVxcXCIvPjxwYXRoIGQ9XFxcIk0xOS44OTMsMjQuNDA2di0uMDIxYy0uMDEyLjA3Ni0uMDc4LjIzNi0uNDE3LjM1NS0uMDc2LjAyNi0uMjQ1LjA3My0uMjQ1LjA3M2EyMi4zNzIsMjIuMzcyLDAsMCwxLTUuMS41aDBhMjIuMTU1LDIyLjE1NSwwLDAsMCw1LjEtLjQ0MXMuMTY5LS4wNDcuMjQ1LS4wNzNDMTkuOTMzLDI0LjY0MywxOS44OTMsMjQuNDA2LDE5Ljg5MywyNC40MDZaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+PHBhdGggZD1cXFwiTTE5Ljg5MywyNS40OTFWMjUuNDdjLS4wMTIuMDc2LS4wNzguMjM2LS40MTcuMzU1LS4wNzYuMDI3LS4yNDUuMDczLS4yNDUuMDczYTIyLjM4LDIyLjM4LDAsMCwxLTUuMS41aDBhMjIuMTcxLDIyLjE3MSwwLDAsMCw1LjEtLjQ0MXMuMTY5LS4wNDcuMjQ1LS4wNzNDMTkuOTMzLDI1LjcyOCwxOS44OTMsMjUuNDkxLDE5Ljg5MywyNS40OTFaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+PHBhdGggZD1cXFwiTTE5Ljk0NCwyMy4wMzRzLjA0MS4zMjktLjQxOC41NTJjLS4wNzYuMDM3LS4yNDUuMS0uMjQ1LjFhMTkuNDA5LDE5LjQwOSwwLDAsMS02LjQ1OC41NjljLS4xMzYtLjAxMi0uMzItLjAzNy0uMzItLjAzNy0uMjc2LS4wNS0uNDY3LS4yMDktLjQ1NS0uNCwwLDAtLjAzMy0uMzI0LjQ2Ni0uMzI0YTE4LjI4MywxOC4yODMsMCwwLDAsNi45MjUtLjQ2MSwxLjAxNCwxLjAxNCwwLDAsMCwuNDQ0LS4yMzhBLjUzLjUzLDAsMCwxLDE5Ljk0NCwyMy4wMzRaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI20pXFxcIi8+PHBhdGggZD1cXFwiTTE5Ljk0NCwyNi41ODZzLjA0MS4yNTItLjQxOC40MjNjLS4wNzYuMDI4LS4yNDUuMDc4LS4yNDUuMDc4YTI1LjE1LDI1LjE1LDAsMCwxLTYuNDU4LjQzNmMtLjEzNi0uMDA5LS4zMi0uMDI4LS4zMi0uMDI4LS4yNzYtLjAzOC0uNDY3LS4xNi0uNDU1LS4zMDgsMCwwLS4wMzMtLjI0OC40NjYtLjI0OGEyNi4yMDcsMjYuMjA3LDAsMCwwLDYuOTI1LS40NzJzLjI0NS0uMDcuMjQ1LS4xNjNhLjExMS4xMTEsMCwwLDAtLjAxMy0uMDY1UzE5Ljk0NCwyNi40LDE5Ljk0NCwyNi41ODZaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI24pXFxcIi8+PHBhdGggZD1cXFwiTTE5Ljg5MywyNi41NzZ2LS4wMjFjLS4wMTIuMDc2LS4wNzguMjM2LS40MTcuMzU1LS4wNzYuMDI2LS4yNDUuMDczLS4yNDUuMDczYTIyLjM3MiwyMi4zNzIsMCwwLDEtNS4xLjVoMGEyMi4xNjMsMjIuMTYzLDAsMCwwLDUuMS0uNDQxcy4xNjktLjA0Ny4yNDUtLjA3M0MxOS45MzMsMjYuODEzLDE5Ljg5MywyNi41NzYsMTkuODkzLDI2LjU3NlpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48cGF0aCBkPVxcXCJNMTkuODkzLDIzLjMyMVYyMy4zYy0uMDEyLjA3Ni0uMDc4LjIzNi0uNDE3LjM1NS0uMDc2LjAyNy0uMjQ1LjA3My0uMjQ1LjA3M2EyMi4zNzIsMjIuMzcyLDAsMCwxLTUuMS41aDBhMjIuMTU2LDIyLjE1NiwwLDAsMCw1LjEtLjQ0MXMuMTY5LS4wNDcuMjQ1LS4wNzNDMTkuOTMzLDIzLjU1OCwxOS44OTMsMjMuMzIxLDE5Ljg5MywyMy4zMjFaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+PHBhdGggZD1cXFwiTTEyLjQxNywyNS44ODFzLS4yMzYsMC0uMjQxLjA4LjI0Ni4wODUuMjQ2LjA4NS4xNzUsMCwuMy4wMDVjLjYxOS0uMDEzLDEuOTkzLS4wMzgsMy40MzctLjE2NkMxNC4zODQsMjUuOTU4LDEyLjcyMywyNS44ODMsMTIuNDE3LDI1Ljg4MVpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjbylcXFwiLz48cGF0aCBkPVxcXCJNMTIuNDE3LDI0LjhzLS4yMzYsMC0uMjQxLjA4LjI0Ni4wODUuMjQ2LjA4NS4xNzUsMCwuMy4wMDVjLjYxOS0uMDEyLDEuOTkzLS4wMzgsMy40MzctLjE2NkMxNC4zODQsMjQuODc0LDEyLjcyMywyNC44LDEyLjQxNywyNC44WlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNwKVxcXCIvPjxwYXRoIGQ9XFxcIk0xMi40MTcsMjYuOTY1cy0uMjM2LDAtLjI0MS4wOC4yNDYuMDg1LjI0Ni4wODUuMTc1LDAsLjMuMDA1Yy42MTktLjAxMiwxLjk5My0uMDM4LDMuNDM3LS4xNjZDMTQuMzg0LDI3LjA0MiwxMi43MjMsMjYuOTY2LDEyLjQxNywyNi45NjVaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI3EpXFxcIi8+PHBhdGggZD1cXFwiTTExLjk2NSwyMi43NzlzLS4yNzQuMzE1LjMxOS43MTFjMCwwLDUuNzc1LjU4Nyw3LjYtLjY5NUMxOS44ODQsMjIuNzk1LDEzLjYyMywyMy4zMiwxMS45NjUsMjIuNzc5WlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNyKVxcXCIvPjxwYXRoIGQ9XFxcIk0yMC4wMzUsMjIuNzc5YTQuNDQ5LDQuNDQ5LDAsMCwwLC44MS0xLjE1NSwzLjM4NiwzLjM4NiwwLDAsMCwuMi0xLjExNSw2LjczMyw2LjczMywwLDAsMSwuNjMyLTIuOTFjLjUzNC0xLjAxNCwyLjgxLTQuNDQ3LDIuODEtNy40NjJBOC4wMTIsOC4wMTIsMCwwLDAsMTYsMmE4LjAxMiw4LjAxMiwwLDAsMC04LjQ4Myw4LjEzNmMwLDMuMDE1LDIuMjc2LDYuNDQ4LDIuODEsNy40NjJhNi43MzEsNi43MzEsMCwwLDEsLjYzMiwyLjkxLDMuMzg0LDMuMzg0LDAsMCwwLC4yLDEuMTE1LDQuNDUzLDQuNDUzLDAsMCwwLC44MSwxLjE1NSwxMy44NjYsMTMuODY2LDAsMCwwLDMuOTg3LjM3QTE1LjE1MSwxNS4xNTEsMCwwLDAsMjAuMDM1LDIyLjc3OVpcXFwiIHN0eWxlPVxcXCJmaWxsOnVybCgjcylcXFwiLz5cIixcblx0XCJTb2xpZGl0eSAoRXRoZXJldW0pXCI6IFwiPHBhdGggZD1cXFwiTTIwLjQ3NywybC00LjUsOGgtOWw0LjUtOGg5XFxcIiBzdHlsZT1cXFwiZmlsbDojYzFjMWMxO29wYWNpdHk6MC40NTtpc29sYXRpb246aXNvbGF0ZVxcXCIvPjxwYXRoIGQ9XFxcIk0xMS41MiwzMGw0LjUtOGg5bC00LjUsOGgtOVxcXCIgc3R5bGU9XFxcImZpbGw6I2MxYzFjMTtvcGFjaXR5OjAuNDU7aXNvbGF0aW9uOmlzb2xhdGVcXFwiLz48cGF0aCBkPVxcXCJNMTUuOTc1LDEwaDlsLTQuNS04aC05WlxcXCIgc3R5bGU9XFxcImZpbGw6I2MxYzFjMTtvcGFjaXR5OjAuNjtpc29sYXRpb246aXNvbGF0ZVxcXCIvPjxwYXRoIGQ9XFxcIk0xNi4wMjIsMjJoLTlsNC41LDhoOVpcXFwiIHN0eWxlPVxcXCJmaWxsOiNjMWMxYzE7b3BhY2l0eTowLjY7aXNvbGF0aW9uOmlzb2xhdGVcXFwiLz48cGF0aCBkPVxcXCJNMTEuNDc3LDE4bDQuNS04LTQuNS04LTQuNSw4WlxcXCIgc3R5bGU9XFxcImZpbGw6I2MxYzFjMTtvcGFjaXR5OjAuODtpc29sYXRpb246aXNvbGF0ZVxcXCIvPjxwYXRoIGQ9XFxcIk0yMC41MiwxNGwtNC41LDgsNC41LDgsNC41LThaXFxcIiBzdHlsZT1cXFwiZmlsbDojYzFjMWMxO29wYWNpdHk6MC44O2lzb2xhdGlvbjppc29sYXRlXFxcIi8+XCIsXG5cdFwiU29sdXRpb24gZmlsZVwiOiBcIjxkZWZzPjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiYVxcXCIgeDE9XFxcIjE2XFxcIiB5MT1cXFwiLTE4Mi4wNzJcXFwiIHgyPVxcXCIxNlxcXCIgeTI9XFxcIi0yMDkuOTI4XFxcIiBncmFkaWVudFRyYW5zZm9ybT1cXFwibWF0cml4KDEsIDAsIDAsIC0xLCAwLCAtMTgwKVxcXCIgZ3JhZGllbnRVbml0cz1cXFwidXNlclNwYWNlT25Vc2VcXFwiPjxzdG9wIG9mZnNldD1cXFwiMFxcXCIgc3RvcC1jb2xvcj1cXFwiI2ZmZlxcXCIvPjxzdG9wIG9mZnNldD1cXFwiMVxcXCIgc3RvcC1jb2xvcj1cXFwiI2ZmZlxcXCIgc3RvcC1vcGFjaXR5PVxcXCIwXFxcIi8+PC9saW5lYXJHcmFkaWVudD48L2RlZnM+PHRpdGxlPmZpbGVfdHlwZV9zbG48L3RpdGxlPjxwYXRoIGQ9XFxcIk02LjA0NSwyMy45OTFhMS4xNjYsMS4xNjYsMCwwLDEtMS4yMDguMTkxTDIuNzE4LDIzLjNBMS4xNjgsMS4xNjgsMCwwLDEsMiwyMi4yMjJWOS43NzhBMS4xNjUsMS4xNjUsMCwwLDEsMi43MTgsOC43bDIuMTE5LS44ODNhMS4xNjksMS4xNjksMCwwLDEsMS4yMDguMTkxbC40NzYuNDA4QS42NDYuNjQ2LDAsMCwwLDUuNSw4Ljk0MlYyMy4wNThhLjY0Ni42NDYsMCwwLDAsMS4wMjEuNTI1WlxcXCIgc3R5bGU9XFxcImZpbGw6IzUyMjE4YVxcXCIvPjxwYXRoIGQ9XFxcIk0yLjcxOCwyMy4zQTEuMTY5LDEuMTY5LDAsMCwxLDIsMjIuMjIydi0uMWEuNjc0LjY3NCwwLDAsMCwxLjE3NC40NTJMMjEuMjUsMi41ODNhMS43NDMsMS43NDMsMCwwLDEsMS45OS0uMzM4bDUuNzY5LDIuNzc4QTEuNzQ5LDEuNzQ5LDAsMCwxLDMwLDYuNnYuMDY3YTEuMSwxLjEsMCwwLDAtMS44LS44NTRMNi41MjEsMjMuNTgzbC0uNDc2LjQwOGExLjE2NiwxLjE2NiwwLDAsMS0xLjIwOC4xOTFaXFxcIiBzdHlsZT1cXFwiZmlsbDojNmMzM2FmXFxcIi8+PHBhdGggZD1cXFwiTTIuNzE4LDguN0ExLjE2OCwxLjE2OCwwLDAsMCwyLDkuNzc4di4xYS42NzQuNjc0LDAsMCwxLDEuMTc0LS40NTJMMjEuMjUsMjkuNDE2YTEuNzQzLDEuNzQzLDAsMCwwLDEuOTkuMzM4bDUuNzY5LTIuNzc4QTEuNzQ3LDEuNzQ3LDAsMCwwLDMwLDI1LjR2LS4wNjhhMS4xLDEuMSwwLDAsMS0xLjguODU1TDYuNTIxLDguNDE3bC0uNDc2LS40MDhhMS4xNjYsMS4xNjYsMCwwLDAtMS4yMDgtLjE5MVpcXFwiIHN0eWxlPVxcXCJmaWxsOiM4NTRjYzdcXFwiLz48cGF0aCBkPVxcXCJNMjMuMjQsMjkuNzU1YTEuNzQzLDEuNzQzLDAsMCwxLTEuOTktLjMzOEExLjAyNSwxLjAyNSwwLDAsMCwyMywyOC42OTJWMy4zMDhhMS4wMjUsMS4wMjUsMCwwLDAtMS43NS0uNzI1LDEuNzQzLDEuNzQzLDAsMCwxLDEuOTktLjMzOGw1Ljc2OCwyLjc3NEExLjc0OSwxLjc0OSwwLDAsMSwzMCw2LjZWMjUuNDA1YTEuNzUxLDEuNzUxLDAsMCwxLS45OTEsMS41NzdaXFxcIiBzdHlsZT1cXFwiZmlsbDojYjE3OWYxXFxcIi8+PGcgc3R5bGU9XFxcIm9wYWNpdHk6MC4yNVxcXCI+PHBhdGggZD1cXFwiTTIyLjA5MywyOS44ODNhMS43NCwxLjc0LDAsMCwwLDEuMTQ3LS4xMjhsNS43NjgtMi43NzRBMS43NDksMS43NDksMCwwLDAsMzAsMjUuNFY2LjZhMS43NSwxLjc1LDAsMCwwLS45OTItMS41NzdMMjMuMjQsMi4yNDVhMS43NDIsMS43NDIsMCwwLDAtMS45OS4zMzlsLTkuMywxMC4yODRMNi41MjEsOC40MTZsLS40NzYtLjQwOGExLjE2OCwxLjE2OCwwLDAsMC0xLjIwNy0uMTkxTDIuNzE5LDguN0ExLjE2NywxLjE2NywwLDAsMCwyLDkuNjg5YzAsLjAyOSwwLC4wNTksMCwuMDg4VjIyLjIyMWMwLC4wMywwLC4wNTksMCwuMDg4YTEuMTY3LDEuMTY3LDAsMCwwLC43MTUuOTg5bDIuMTE5Ljg4M2ExLjIyNiwxLjIyNiwwLDAsMCwuMTU1LjA1MiwxLjE2NSwxLjE2NSwwLDAsMCwxLjA1Mi0uMjQzbC40NzYtLjQwOCw1LjQzLTQuNDUyLDkuMywxMC4yODVBMS43MzMsMS43MzMsMCwwLDAsMjIuMDkzLDI5Ljg4M1pNMjMsMTAuMDcyLDE1Ljc3LDE2LDIzLDIxLjkyN1pNNS41LDEybDMuNjE5LDRMNS41LDIwWlxcXCIgc3R5bGU9XFxcImZpbGwtcnVsZTpldmVub2RkO2ZpbGw6dXJsKCNhKVxcXCIvPjwvZz5cIixcblx0XCJTUEFSUUxcIjogXCI8cGF0aCBkPVxcXCJNMjYuMjg0LDIwLjM2MWMtLjE2NS0uMDg0LS4zNTktLjE2NC0uNTIzLS4yNDhIMjUuOXMtMS4xNTgtLjUtMS4yNC00LjE3NmMtLjExMS0zLjY1NSwxLjEtNC4yODksMS4xLTQuMjg5YTQuOTYsNC45NiwwLDAsMCwyLjE3Ni0yLjE0Myw1LjEyMiw1LjEyMiwwLDAsMC0yLjEyMi02LjkyNyw1LjM0Miw1LjM0MiwwLDAsMC03LjEzOCwyLjE0Niw1LjA2Nyw1LjA2NywwLDAsMC0uNTIzLDMuMjE0TDE4LjEsNy44NTVzLjMsMS4zMTktMi44MzksMy4yNzJjLTMuMTE1LDEuOTUtNC41NDkuOTYyLTQuNTQ5Ljk2MmwuMDgyLjEzOGEyLjEzMSwyLjEzMSwwLDAsMC0uMjczLS4xNjcsNS4xMTcsNS4xMTcsMCwxLDAsLjgyNSw4LjUybC0uMDI1LjA1NXMxLjEyOS0uOTMzLDQuNDA3LjgyN2MyLjU5MiwxLjM3NCwyLjk3OSwyLjc0OCwzLjAzMywzLjI0YTUuMSw1LjEsMCwwLDAsMi43LDQuNyw1LjEyNCw1LjEyNCwwLDEsMCw0LjgyNS05LjA0MVptLTUuNzkuNjg1Yy0uNDEyLjEzOC0xLjYuMy00LjA3Ny0xLjAxNy0yLjctMS40NTQtMy4xMTUtMi42NjQtMy4xNjktMy4wMjFhNS40MDYsNS40MDYsMCwwLDAtLjA1Ny0xLjMxOWwuMDI5LjAyNlMxMywxNC41MzQsMTYuMDg0LDEyLjYzOWMyLjc1Ny0xLjcwNSw0LjAyNi0xLjM3NCw0LjI0NS0xLjI5M2EyLjgzLDIuODMsMCwwLDAsLjQ3LjI3Nyw0LjA4Miw0LjA4MiwwLDAsMCwuOTY0LjM4M2MuMzg3LjM1NywxLjA3NiwxLjM3NCwxLjE1OCw0LjFzLS43MTcsMy43NjQtMS4xNTgsNC4xMjFBNS4wNCw1LjA0LDAsMCwwLDIwLjQ5NCwyMS4wNDdaXFxcIiBzdHlsZT1cXFwiZmlsbDojMGM0NzljXFxcIi8+PHBhdGggZD1cXFwiTTIwLjEzNSw0LjIyOWEzLjg2MSwzLjg2MSwwLDAsMC0uMDgyLDUuMzg2Yy0uNzE3LS42ODUtLjY4OC0yLjExNy4wMjktMy40NjJhLjY3My42NzMsMCwwLDEsLjc0Ni0uMjc3Yy4wMjUsMCwuMDU0LjAyOS4wODIuMDI5YS45OTMuOTkzLDAsMCwwLC4yNzYuMDI2QTEuMDU2LDEuMDU2LDAsMCwwLDIyLjIsNC44MDVhLjkzNC45MzQsMCwwLDAtLjMtLjY4NWMxLjM4LS45MDcsMi45NS0xLjAxNywzLjYxLS40MTJoLjAyOUEzLjgyNiwzLjgyNiwwLDAsMCwyMC4xMzUsNC4yMjlaTTUuMTQ1LDEzLjg0NmEzLjg1OSwzLjg1OSwwLDAsMC0uMDgyLDUuMzg5Yy0uNzE3LS42ODktLjY5Mi0yLjExNy4wMjUtMy40NjVhLjY2OC42NjgsMCwwLDEsLjc0Ni0uMjczYy4wMjUsMCwuMDU0LjAyOS4wODIuMDI5YTEsMSwwLDAsMCwuMjc2LjAyNkExLjA1NiwxLjA1NiwwLDAsMCw3LjIxLDE0LjQyNWEuOTQ1Ljk0NSwwLDAsMC0uMy0uNjg5YzEuMzc3LS45MDcsMi45NDctMS4wMTcsMy42MS0uNDEyaC4wMjVBMy44NTIsMy44NTIsMCwwLDAsNS4xNDUsMTMuODQ2Wm0xNS44NzIsOC4xNjNhMy44NjUsMy44NjUsMCwwLDAtLjA4Miw1LjM4OWMtLjcxNy0uNjg5LS42ODgtMi4xMTcuMDI5LTMuNDY1YS42NjguNjY4LDAsMCwxLC43NDYtLjI3M2MuMDI1LDAsLjA1NC4wMjYuMDgyLjAyNmEuODg3Ljg4NywwLDAsMCwuMjc2LjAyOSwxLjA1NywxLjA1NywwLDAsMCwxLjAxOC0xLjEyNi45MzYuOTM2LDAsMCwwLS4zLS42ODljMS4zOC0uOTA3LDIuOTUtMS4wMTcsMy42MS0uNDEyaC4wMjlBMy44MjksMy44MjksMCwwLDAsMjEuMDE3LDIyLjAwOVpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz5cIixcblx0XCJTUUZcIjogXCI8cGF0aCBkPVxcXCJNMjUsMjMuNUg3YTUuMDE1LDUuMDE1LDAsMCwxLTUtNXYtNmE1LjAxNSw1LjAxNSwwLDAsMSw1LTVIMjVhNS4wMTUsNS4wMTUsMCwwLDEsNSw1djZhNS4wMTUsNS4wMTUsMCwwLDEtNSw1WlxcXCIvPjxwYXRoIGQ9XFxcIk03LDE5LjQ2MWE0LjgxLDQuODEsMCwwLDEtMS40MTQtLjIsNS4wNTIsNS4wNTIsMCwwLDEtMS4xMTEtLjQ3MmwtLjQuNDMyaC0uNUwzLjUsMTYuMDUySDRhOC40NjIsOC40NjIsMCwwLDAsLjQzMS45NTMsNC42MzgsNC42MzgsMCwwLDAsLjYwNi45LDMuMTc3LDMuMTc3LDAsMCwwLC44LjY3NSwxLjk4NSwxLjk4NSwwLDAsMCwxLjAyOS4yNiwxLjY3MiwxLjY3MiwwLDAsMCwxLjIxNi0uNDExQTEuMzgyLDEuMzgyLDAsMCwwLDguNSwxNy4zOTFhMS4xNTYsMS4xNTYsMCwwLDAtLjM1OS0uODYyLDIuOTQ1LDIuOTQ1LDAsMCwwLTEuMTExLS42cS0uNDktLjE2Ny0uOS0uMzF0LS43NzMtLjI5MmEyLjU4LDIuNTgsMCwwLDEtMS4yMzktMS4wMDcsMi43MywyLjczLDAsMCwxLS40MDUtMS40NjUsMi40MDYsMi40MDYsMCwwLDEsLjIxLS45ODYsMi42MDgsMi42MDgsMCwwLDEsLjYxMi0uODUsMi45NjcsMi45NjcsMCwwLDEsLjk4NS0uNTc1LDMuNzIyLDMuNzIyLDAsMCwxLDEuMzA2LS4yMjMsMy45ODQsMy45ODQsMCwwLDEsMS4yODguMiw1LjE1MSw1LjE1MSwwLDAsMSwuOTQ0LjQwOGwuMzU2LS4zN2guNTA3bC4wNDcsMi45ODhoLS41cS0uMTc1LS40ODMtLjQxMS0uOTg3YTQuMzMyLDQuMzMyLDAsMCwwLS41LS44MzksMi4zLDIuMywwLDAsMC0uNjU5LS41NzMsMS43MjksMS43MjksMCwwLDAtLjg3NS0uMjE0QTEuNDM3LDEuNDM3LDAsMCwwLDYsMTEuMjEyYTEuMjMzLDEuMjMzLDAsMCwwLS40LjkzNCwxLjE0MSwxLjE0MSwwLDAsMCwuMzQ3Ljg2LDIuOTUxLDIuOTUxLDAsMCwwLDEuMDgyLjU4OHEuNDMxLjE1NC44OC4zMDl0LjguM2EyLjg4NSwyLjg4NSwwLDAsMSwxLjI4Ni45NTUsMi41MTIsMi41MTIsMCwwLDEsLjQ0LDEuNTEyLDIuNjMyLDIuNjMyLDAsMCwxLS45MjcsMS45ODUsMy4zNjcsMy4zNjcsMCwwLDEtMS4wNzkuNkE0LjM5MSw0LjM5MSwwLDAsMSw3LDE5LjQ2MVpcXFwiIHN0eWxlPVxcXCJmaWxsOiNjMmMyYzJcXFwiLz48cGF0aCBkPVxcXCJNMTguOTIxLDExLjQzNGE0LjMzOCw0LjMzOCwwLDAsMSwuOTcxLDEuNDMyLDQuODM0LDQuODM0LDAsMCwxLC4zNTksMS45MTQsNC45NTgsNC45NTgsMCwwLDEtLjcyLDIuNjgsNC4wMzYsNC4wMzYsMCwwLDEtMi4wMzgsMS42NjEsMi4xNTEsMi4xNTEsMCwwLDAsLjQyLDEuMjcyLDEuMTY4LDEuMTY4LDAsMCwwLC45NS41MzcsMy41NjMsMy41NjMsMCwwLDAsLjU5Mi0uMDQzcS4yNTQtLjA0My40NTgtLjF2LjU0M2E1Ljc1Myw1Ljc1MywwLDAsMS0uOTg1LjMsNi4wNTQsNi4wNTQsMCwwLDEtMS4zNy4xNTEsMi4yMDYsMi4yMDYsMCwwLDEtMS42MTItLjYyMSwyLjU3NCwyLjU3NCwwLDAsMS0uNzA4LTEuNzMyQTQuNTc5LDQuNTc5LDAsMCwxLDEzLjcsMTlhNC4xODYsNC4xODYsMCwwLDEtMS4yNTMtLjkzMiw0LjM4OCw0LjM4OCwwLDAsMS0uODQyLTEuMzc3LDQuNzY5LDQuNzY5LDAsMCwxLS4zMTItMS43NTMsNS4yMzcsNS4yMzcsMCwwLDEsLjM0Ny0xLjk0OCw0LjUsNC41LDAsMCwxLC45NTMtMS41LDQuMTE5LDQuMTE5LDAsMCwxLDEuNDI1LS45NDIsNC44Niw0Ljg2LDAsMCwxLDMuNS0uMDA5QTQuMjQ3LDQuMjQ3LDAsMCwxLDE4LjkyMSwxMS40MzRabS0xLjUsNi4yNjZhNC44NTcsNC44NTcsMCwwLDAsLjM3OS0xLjI3Myw5Ljk4MSw5Ljk4MSwwLDAsMCwuMTE3LTEuNjA2LDEwLjUzNCwxMC41MzQsMCwwLDAtLjEtMS40OCw0LjkzNiw0LjkzNiwwLDAsMC0uMzQ3LTEuMjgyLDIuNDEsMi40MSwwLDAsMC0uNjY1LS45LDEuNTcxLDEuNTcxLDAsMCwwLTEuMDMyLS4zNCwxLjczLDEuNzMsMCwwLDAtMS42LDEuMDYsNi42MzQsNi42MzQsMCwwLDAtLjU0OCwyLjk5Myw5LjU4Myw5LjU4MywwLDAsMCwuMTIsMS41NTEsNC44LDQuOCwwLDAsMCwuMzc2LDEuMjczLDIuMjg2LDIuMjg2LDAsMCwwLC42NjUuODU2LDEuNTkxLDEuNTkxLDAsMCwwLC45OTEuMzA2LDEuNjExLDEuNjExLDAsMCwwLC45OTEtLjMwOUEyLjEzNSwyLjEzNSwwLDAsMCwxNy40MjMsMTcuN1pcXFwiIHN0eWxlPVxcXCJmaWxsOiNjMmMyYzJcXFwiLz48cGF0aCBkPVxcXCJNMjguNSwxMi44aC0uNDU1YTMuOTMsMy45MywwLDAsMC0uNi0xLjA4NiwxLjM4NSwxLjM4NSwwLDAsMC0uODEyLS42M2MtLjExNi0uMDE2LS4yNzItLjAzMS0uNDY1LS4wNDNzLS4zNzMtLjAxOS0uNTM1LS4wMTlIMjQuMzQ5djMuNDMzaC44MjJhMS45NjksMS45NjksMCwwLDAsLjYwNi0uMDgzLDEuMDU0LDEuMDU0LDAsMCwwLC40NTUtLjMsMS41OTEsMS41OTEsMCwwLDAsLjI4My0uNTE2LDIuNjM1LDIuNjM1LDAsMCwwLC4xNjYtLjYyMWguNDQzdjMuNjg2aC0uNDQzYTIuNDcxLDIuNDcxLDAsMCwwLS4xODEtLjY3NiwyLjA5NCwyLjA5NCwwLDAsMC0uMjY4LS41MjgsMS4wMTIsMS4wMTIsMCwwLDAtLjQzMS0uMjkzLDEuODQyLDEuODQyLDAsMCwwLS42My0uMWgtLjgyMnYyLjlhLjg0Mi44NDIsMCwwLDAsLjA3OS4zOC41OC41OCwwLDAsMCwuMy4yNTYsMS44NywxLjg3LDAsMCwwLC4zNTMuMXEuMjI0LjA0Ni40NDYuMDcxdi40ODJoLTQuNDZ2LS40ODJsLjQ0OS0uMDUyYTEuNTI1LDEuNTI1LDAsMCwwLC4zOTEtLjA4My41NDcuNTQ3LDAsMCwwLC4yOTItLjI0MS44NDIuODQyLDAsMCwwLC4wODItLjR2LTYuMThhLjg2Ny44NjcsMCwwLDAtLjA3My0uMzY3LjU3NS41NzUsMCwwLDAtLjMtLjI2MiwyLjM0MSwyLjM0MSwwLDAsMC0uNDMxLS4xMzZxLS4yNjgtLjA2Mi0uNDA4LS4wOHYtLjQ4MkgyOC41WlxcXCIgc3R5bGU9XFxcImZpbGw6I2MyYzJjMlxcXCIvPlwiLFxuXHRcIlNRRjogU3RhdHVzIFF1byBGdW5jdGlvbiAoQXJtYSAzKVwiOiBcIjxwYXRoIGQ9XFxcIk0yNSwyMy41SDdhNS4wMTUsNS4wMTUsMCwwLDEtNS01di02YTUuMDE1LDUuMDE1LDAsMCwxLDUtNUgyNWE1LjAxNSw1LjAxNSwwLDAsMSw1LDV2NmE1LjAxNSw1LjAxNSwwLDAsMS01LDVaXFxcIi8+PHBhdGggZD1cXFwiTTcsMTkuNDYxYTQuODEsNC44MSwwLDAsMS0xLjQxNC0uMiw1LjA1Miw1LjA1MiwwLDAsMS0xLjExMS0uNDcybC0uNC40MzJoLS41TDMuNSwxNi4wNTJINGE4LjQ2Miw4LjQ2MiwwLDAsMCwuNDMxLjk1Myw0LjYzOCw0LjYzOCwwLDAsMCwuNjA2LjksMy4xNzcsMy4xNzcsMCwwLDAsLjguNjc1LDEuOTg1LDEuOTg1LDAsMCwwLDEuMDI5LjI2LDEuNjcyLDEuNjcyLDAsMCwwLDEuMjE2LS40MTFBMS4zODIsMS4zODIsMCwwLDAsOC41LDE3LjM5MWExLjE1NiwxLjE1NiwwLDAsMC0uMzU5LS44NjIsMi45NDUsMi45NDUsMCwwLDAtMS4xMTEtLjZxLS40OS0uMTY3LS45LS4zMXQtLjc3My0uMjkyYTIuNTgsMi41OCwwLDAsMS0xLjIzOS0xLjAwNywyLjczLDIuNzMsMCwwLDEtLjQwNS0xLjQ2NSwyLjQwNiwyLjQwNiwwLDAsMSwuMjEtLjk4NiwyLjYwOCwyLjYwOCwwLDAsMSwuNjEyLS44NSwyLjk2NywyLjk2NywwLDAsMSwuOTg1LS41NzUsMy43MjIsMy43MjIsMCwwLDEsMS4zMDYtLjIyMywzLjk4NCwzLjk4NCwwLDAsMSwxLjI4OC4yLDUuMTUxLDUuMTUxLDAsMCwxLC45NDQuNDA4bC4zNTYtLjM3aC41MDdsLjA0NywyLjk4OGgtLjVxLS4xNzUtLjQ4My0uNDExLS45ODdhNC4zMzIsNC4zMzIsMCwwLDAtLjUtLjgzOSwyLjMsMi4zLDAsMCwwLS42NTktLjU3MywxLjcyOSwxLjcyOSwwLDAsMC0uODc1LS4yMTRBMS40MzcsMS40MzcsMCwwLDAsNiwxMS4yMTJhMS4yMzMsMS4yMzMsMCwwLDAtLjQuOTM0LDEuMTQxLDEuMTQxLDAsMCwwLC4zNDcuODYsMi45NTEsMi45NTEsMCwwLDAsMS4wODIuNTg4cS40MzEuMTU0Ljg4LjMwOXQuOC4zYTIuODg1LDIuODg1LDAsMCwxLDEuMjg2Ljk1NSwyLjUxMiwyLjUxMiwwLDAsMSwuNDQsMS41MTIsMi42MzIsMi42MzIsMCwwLDEtLjkyNywxLjk4NSwzLjM2NywzLjM2NywwLDAsMS0xLjA3OS42QTQuMzkxLDQuMzkxLDAsMCwxLDcsMTkuNDYxWlxcXCIgc3R5bGU9XFxcImZpbGw6I2MyYzJjMlxcXCIvPjxwYXRoIGQ9XFxcIk0xOC45MjEsMTEuNDM0YTQuMzM4LDQuMzM4LDAsMCwxLC45NzEsMS40MzIsNC44MzQsNC44MzQsMCwwLDEsLjM1OSwxLjkxNCw0Ljk1OCw0Ljk1OCwwLDAsMS0uNzIsMi42OCw0LjAzNiw0LjAzNiwwLDAsMS0yLjAzOCwxLjY2MSwyLjE1MSwyLjE1MSwwLDAsMCwuNDIsMS4yNzIsMS4xNjgsMS4xNjgsMCwwLDAsLjk1LjUzNywzLjU2MywzLjU2MywwLDAsMCwuNTkyLS4wNDNxLjI1NC0uMDQzLjQ1OC0uMXYuNTQzYTUuNzUzLDUuNzUzLDAsMCwxLS45ODUuMyw2LjA1NCw2LjA1NCwwLDAsMS0xLjM3LjE1MSwyLjIwNiwyLjIwNiwwLDAsMS0xLjYxMi0uNjIxLDIuNTc0LDIuNTc0LDAsMCwxLS43MDgtMS43MzJBNC41NzksNC41NzksMCwwLDEsMTMuNywxOWE0LjE4Niw0LjE4NiwwLDAsMS0xLjI1My0uOTMyLDQuMzg4LDQuMzg4LDAsMCwxLS44NDItMS4zNzcsNC43NjksNC43NjksMCwwLDEtLjMxMi0xLjc1Myw1LjIzNyw1LjIzNywwLDAsMSwuMzQ3LTEuOTQ4LDQuNSw0LjUsMCwwLDEsLjk1My0xLjUsNC4xMTksNC4xMTksMCwwLDEsMS40MjUtLjk0Miw0Ljg2LDQuODYsMCwwLDEsMy41LS4wMDlBNC4yNDcsNC4yNDcsMCwwLDEsMTguOTIxLDExLjQzNFptLTEuNSw2LjI2NmE0Ljg1Nyw0Ljg1NywwLDAsMCwuMzc5LTEuMjczLDkuOTgxLDkuOTgxLDAsMCwwLC4xMTctMS42MDYsMTAuNTM0LDEwLjUzNCwwLDAsMC0uMS0xLjQ4LDQuOTM2LDQuOTM2LDAsMCwwLS4zNDctMS4yODIsMi40MSwyLjQxLDAsMCwwLS42NjUtLjksMS41NzEsMS41NzEsMCwwLDAtMS4wMzItLjM0LDEuNzMsMS43MywwLDAsMC0xLjYsMS4wNiw2LjYzNCw2LjYzNCwwLDAsMC0uNTQ4LDIuOTkzLDkuNTgzLDkuNTgzLDAsMCwwLC4xMiwxLjU1MSw0LjgsNC44LDAsMCwwLC4zNzYsMS4yNzMsMi4yODYsMi4yODYsMCwwLDAsLjY2NS44NTYsMS41OTEsMS41OTEsMCwwLDAsLjk5MS4zMDYsMS42MTEsMS42MTEsMCwwLDAsLjk5MS0uMzA5QTIuMTM1LDIuMTM1LDAsMCwwLDE3LjQyMywxNy43WlxcXCIgc3R5bGU9XFxcImZpbGw6I2MyYzJjMlxcXCIvPjxwYXRoIGQ9XFxcIk0yOC41LDEyLjhoLS40NTVhMy45MywzLjkzLDAsMCwwLS42LTEuMDg2LDEuMzg1LDEuMzg1LDAsMCwwLS44MTItLjYzYy0uMTE2LS4wMTYtLjI3Mi0uMDMxLS40NjUtLjA0M3MtLjM3My0uMDE5LS41MzUtLjAxOUgyNC4zNDl2My40MzNoLjgyMmExLjk2OSwxLjk2OSwwLDAsMCwuNjA2LS4wODMsMS4wNTQsMS4wNTQsMCwwLDAsLjQ1NS0uMywxLjU5MSwxLjU5MSwwLDAsMCwuMjgzLS41MTYsMi42MzUsMi42MzUsMCwwLDAsLjE2Ni0uNjIxaC40NDN2My42ODZoLS40NDNhMi40NzEsMi40NzEsMCwwLDAtLjE4MS0uNjc2LDIuMDk0LDIuMDk0LDAsMCwwLS4yNjgtLjUyOCwxLjAxMiwxLjAxMiwwLDAsMC0uNDMxLS4yOTMsMS44NDIsMS44NDIsMCwwLDAtLjYzLS4xaC0uODIydjIuOWEuODQyLjg0MiwwLDAsMCwuMDc5LjM4LjU4LjU4LDAsMCwwLC4zLjI1NiwxLjg3LDEuODcsMCwwLDAsLjM1My4xcS4yMjQuMDQ2LjQ0Ni4wNzF2LjQ4MmgtNC40NnYtLjQ4MmwuNDQ5LS4wNTJhMS41MjUsMS41MjUsMCwwLDAsLjM5MS0uMDgzLjU0Ny41NDcsMCwwLDAsLjI5Mi0uMjQxLjg0Mi44NDIsMCwwLDAsLjA4Mi0uNHYtNi4xOGEuODY3Ljg2NywwLDAsMC0uMDczLS4zNjcuNTc1LjU3NSwwLDAsMC0uMy0uMjYyLDIuMzQxLDIuMzQxLDAsMCwwLS40MzEtLjEzNnEtLjI2OC0uMDYyLS40MDgtLjA4di0uNDgySDI4LjVaXFxcIiBzdHlsZT1cXFwiZmlsbDojYzJjMmMyXFxcIi8+XCIsXG5cdFwiU1FMXCI6IFwiPHBhdGggZD1cXFwiTTguNTYyLDE1LjI1NkEyMS4xNTksMjEuMTU5LDAsMCwwLDE2LDE2LjQ0OWEyMS4xNTksMjEuMTU5LDAsMCwwLDcuNDM4LTEuMTk0YzEuODY0LS43MjcsMi41MjUtMS41MzUsMi41MjUtMlY5LjdhMTAuMzU3LDEwLjM1NywwLDAsMS0yLjA4NCwxLjA3NkEyMi4yOTMsMjIuMjkzLDAsMCwxLDE2LDEyLjA3OGEyMi4zNiwyMi4zNiwwLDAsMS03Ljg3OS0xLjNBMTAuMjgsMTAuMjgsMCwwLDEsNi4wMzcsOS43djMuNTVDNi4wMzcsMTMuNzI0LDYuNywxNC41MjgsOC41NjIsMTUuMjU2WlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZGE0NFxcXCIvPjxwYXRoIGQ9XFxcIk04LjU2MiwyMS45NjFhMTUuNjExLDE1LjYxMSwwLDAsMCwyLjYuNzQxQTI0LjksMjQuOSwwLDAsMCwxNiwyMy4xNTVhMjQuOSwyNC45LDAsMCwwLDQuODM4LS40NTIsMTUuNjE0LDE1LjYxNCwwLDAsMCwyLjYtLjc0MWMxLjg2NC0uNzI3LDIuNTI1LTEuNTM1LDIuNTI1LTJ2LTMuMzlhMTAuNzA2LDEwLjcwNiwwLDAsMS0xLjY5Mi44MjVBMjMuNDksMjMuNDksMCwwLDEsMTYsMTguNzRhMjMuNDksMjMuNDksMCwwLDEtOC4yNzEtMS4zNDgsMTAuODI5LDEwLjgyOSwwLDAsMS0xLjY5Mi0uODI1VjE5Ljk2QzYuMDM3LDIwLjQyNiw2LjcsMjEuMjMxLDguNTYyLDIxLjk2MVpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmRhNDRcXFwiLz48cGF0aCBkPVxcXCJNMTYsMzBjNS41LDAsOS45NjMtMS43NDQsOS45NjMtMy44OTRWMjMuMjY5YTEwLjUsMTAuNSwwLDAsMS0xLjUzNS43NjJsLS4xNTcuMDYzQTIzLjQ4NywyMy40ODcsMCwwLDEsMTYsMjUuNDQ1YTIzLjQyMiwyMy40MjIsMCwwLDEtOC4yNzEtMS4zNTFjLS4wNTQtLjAyLS4xMDYtLjA0My0uMTU3LS4wNjNhMTAuNSwxMC41LDAsMCwxLTEuNTM1LS43NjJ2Mi44MzdDNi4wMzcsMjguMjU2LDEwLjUsMzAsMTYsMzBaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZkYTQ0XFxcIi8+PGVsbGlwc2UgY3g9XFxcIjE2XFxcIiBjeT1cXFwiNS44OTRcXFwiIHJ4PVxcXCI5Ljk2M1xcXCIgcnk9XFxcIjMuODk0XFxcIiBzdHlsZT1cXFwiZmlsbDojZmZkYTQ0XFxcIi8+XCIsXG5cdFwiU3F1aXJyZWxcIjogXCI8cGF0aCBkPVxcXCJNMTIuOTY2LDI3LjNhMTguOTI2LDE4LjkyNiwwLDAsMS01LjcwNy0uOTE1Yy0xLjgzMi0uNTkyLTQuMDQ0LTEuNTQtNC45MzEtMy42NDVhLjU1Ny41NTcsMCwwLDEtLjAyNS0uMDczLDEyLjIxNCwxMi4yMTQsMCwwLDEsLjc2My03LjUzMWMxLjUyMi00LjAwOCwzLjcxLTYuNzM5LDYuNS04LjExNmExMC40MjIsMTAuNDIyLDAsMCwxLDcuNi0uNTUsMTAuNDI2LDEwLjQyNiwwLDAsMSw2LjA0LDQuNjM5LDExLjA1NywxMS4wNTcsMCwwLDEsMS4wNTgsMi4zMjYsMTAuNjYsMTAuNjYsMCwwLDEtNS4zNzgsMTIuNjg5bC0uMDIuMDA5QTE0LjgzMiwxNC44MzIsMCwwLDEsMTIuOTY2LDI3LjNaXFxcIi8+PHBhdGggZD1cXFwiTTIyLjcyLDExLjM5M2ExMC4xNDQsMTAuMTQ0LDAsMCwwLTEyLjktMy44NjlDNi43LDkuMDYxLDQuNzg0LDEyLjIsMy41OTMsMTUuMzM0YTExLjksMTEuOSwwLDAsMC0uNzQ2LDcuMTg3Yy43ODMsMS44NiwyLjc3OSwyLjc0NCw0LjU4MiwzLjMyN2ExNi4yMDYsMTYuMjA2LDAsMCwwLDExLjIxMy0uMjMyQTEwLjExLDEwLjExLDAsMCwwLDIzLjcyNywxMy42LDEwLjQ4OCwxMC40ODgsMCwwLDAsMjIuNzIsMTEuMzkzWlxcXCIgc3R5bGU9XFxcImZpbGw6I2EwNWEyY1xcXCIvPjxwYXRoIGQ9XFxcIk0xNS43ODIsNi43MkE4LjI2Myw4LjI2MywwLDAsMSwxNy42NCw4LjA4NCw5LjY1LDkuNjUsMCwwLDEsMTkuMDgsOS44YTkuMzE3LDkuMzE3LDAsMCwxLTEuNTMxLDExLjkyMUExNC45MzMsMTQuOTMzLDAsMCwxLDcuNjU2LDI0LjdhNy41ODEsNy41ODEsMCwwLDEtNC4xMzUtMS4xLDguNDU0LDguNDU0LDAsMCwwLDMuOTA3LDIuMjQxLDE2LjIwOCwxNi4yMDgsMCwwLDAsMTEuMjE0LS4yMzNBMTAuMTEyLDEwLjExMiwwLDAsMCwyMy43MjcsMTMuNmExMC40ODcsMTAuNDg3LDAsMCwwLTEuMDA3LTIuMjExQTkuOTczLDkuOTczLDAsMCwwLDE1Ljc4Miw2LjcyWlxcXCIgc3R5bGU9XFxcImZpbGwtb3BhY2l0eTowLjMxMzcyNTUwMTI5ODkwNDRcXFwiLz48cGF0aCBkPVxcXCJNMjMuNDc2LDEzLjM4OWwtMS4wNjItMi44OTUuMTUyLS4yMzZBNi44NzUsNi44NzUsMCwwLDEsMjcuNTA5LDcuN2EyLjE3NywyLjE3NywwLDAsMSwxLjg3OS41ODgsMy4zNzYsMy4zNzYsMCwwLDEsLjEsMy43MjljLS4zNDMuMjkyLS43NTEuMTI0LTEuMjIyLS4wN2EyLjgyMSwyLjgyMSwwLDAsMC0yLjEzMy0uMjcsMTAuMiwxMC4yLDAsMCwwLTIuMDQ3LDEuMjA5WlxcXCIvPjxwYXRoIGQ9XFxcIk0yMy4wMzksMTAuNTYzYzEuMjIzLTEuOSw1LjEwNy0yLjkxNSw1LjkxMi0xLjkyM2EyLjk3LDIuOTcsMCwwLDEsLjE3NywyLjk0NWMtLjI0NS4yMDctMS44MzctMS4wNTktMy4yMjUtLjQyM0ExMC41NzQsMTAuNTc0LDAsMCwwLDIzLjczLDEyLjQ1WlxcXCIgc3R5bGU9XFxcImZpbGw6IzUwMmQxNlxcXCIvPjxwYXRoIGQ9XFxcIk0yOS40LDkuNzI3YS44LjgsMCwwLDEtLjIuNDY5Yy0uMjI5LjE2Mi0xLjktLjUwNi0zLjIzOC4wNTZhMTIuNDM5LDEyLjQzOSwwLDAsMC0yLjA3MSwxLjA3TDIzLjIsMTAuMzRjLS4wNTcuMDc0LS4xMTYuMTQ3LS4xNjUuMjIzbC42OTIsMS44ODZBMTAuNTc3LDEwLjU3NywwLDAsMSwyNS45LDExLjE2MmMxLjM4OC0uNjM2LDIuOTguNjMxLDMuMjI1LjQyM0EyLjg0NiwyLjg0NiwwLDAsMCwyOS40LDkuNzI3WlxcXCIgc3R5bGU9XFxcImZpbGwtb3BhY2l0eTowLjMxMzcyNTUwMTI5ODkwNDRcXFwiLz48cGF0aCBkPVxcXCJNMjEuMzgyLDI1LjE4YTIuMjM2LDIuMjM2LDAsMCwxLTEuMTQ3LS4zMjMuNTYzLjU2MywwLDAsMS0uMDgyLS44ODhjLjczNy0uNjg0LjYwNy0yLjE3My0uNDEtNC42ODlhMzYuNTI2LDM2LjUyNiwwLDAsMC01LjEyMy04LjgyNWwtLjM1LS40M2MtMS41MTItMS44NjUtMi4zNTgtMi44MTUtMy41NTQtMi4zYS41NjIuNTYyLDAsMCwxLS40MTMuMDE2LjU3MS41NzEsMCwwLDEtLjM3Ny0uNTkyLDIuMTE5LDIuMTE5LDAsMCwxLDEuNDYxLTJjNC43MTYtMS40ODEsMTAuMjYuODE0LDEyLjkwNSw1LjM0NGExMS4yLDExLjIsMCwwLDEtMS40MzEsMTMuOTkxQTEuOTE5LDEuOTE5LDAsMCwxLDIxLjM4MiwyNS4xOFpcXFwiLz48cGF0aCBkPVxcXCJNMjMuODEyLDEwLjc4M2MtMi40NDQtNC4xOTItNy43My02LjUyOC0xMi4yNy01LjA5My0xLjAwNy4yNDgtMS4wNjUsMS41MzUtMS4wNTIsMS41MTcsMS43NzYtLjc2NywyLjk1My45MTksNC41NjYsMi44OWEzNi45LDM2LjksMCwwLDEsNS4yMDksOC45NzFjLjg5LDIuMiwxLjQsNC4yNjcuMjcsNS4zMTJhMS41LDEuNSwwLDAsMCwxLjkwOS0uMjc0QTEwLjY0NiwxMC42NDYsMCwwLDAsMjMuODEyLDEwLjc4M1pcXFwiIHN0eWxlPVxcXCJmaWxsOiM1MDJkMTZcXFwiLz48cGF0aCBkPVxcXCJNMjMuNjQ5LDEwLjM0NmE5LjMxNCw5LjMxNCwwLDAsMS0yLjUxOCw3LjcyNWMtLjQ1NS40ODYtLjg3My4xNzctMS4yNjMuMDYzLjEzOC4zMTMuMjcxLjYyNi40LjkzNi44OSwyLjIsMS40LDQuMjY2LjI3MSw1LjMxMmExLjUsMS41LDAsMCwwLDEuOTA5LS4yNzRDMjYuMDg5LDIwLjE4MywyNi4zNTcsMTQuOTE5LDIzLjY0OSwxMC4zNDZaXFxcIiBzdHlsZT1cXFwiZmlsbC1vcGFjaXR5OjAuMzEzNzI1NTAxMjk4OTA0NFxcXCIvPlwiLFxuXHRcIlN0YW5cIjogXCI8dGl0bGU+ZmlsZV90eXBlX3N0YW48L3RpdGxlPjxwYXRoIGQ9XFxcIk0xNiwyQTE0LDE0LDAsMCwwLDUuNjg4LDI1LjQ2OWMxLjctLjUxNCwzLjQxMS0uOTkyLDQuODA2LTEuMzU3LDQuMDM3LTEuMDU0LDEwLjk0OC0yLjgzNiwxMS45NDYtNS4wODItLjI4Ljc4LTEuMjE4LDIuODctMS4yMTgsMi44Ny0xLjI3OSwxLjI0Ny03LjA5LDIuNjMxLTEwLjkxNywzLjM2Ny0xLjIyLjIzNS0yLjYxNC41MDctNC4wMjYuODA2QTE0LDE0LDAsMCwwLDI4LjQ2Nyw5LjYyOGMtMi41MjYuNDA4LTEwLjUsMS44NTQtMTIuNTM5LDIuMzE1LTIuMjU1LjUwOS02Ljc4OSwxLjQzMy03LjY5NCwyLjk5M0M4LjgsMTMuNSwxMC40OTIsOS43NDQsMTAuNDkyLDkuNzQ0YzEuMjE2LTIsNi42LTMuNDI1LDEwLjM1OC00LjQ2My44NzYtLjI0MiwxLjkyMi0uNTM5LDMuMDIzLS44NThBMTMuOTM0LDEzLjkzNCwwLDAsMCwxNiwyWlxcXCIgc3R5bGU9XFxcImZpbGw6I2IyMDAxZFxcXCIvPjxwYXRoIGQ9XFxcIk04LjIyMywxNC45ODdjLS4yNTIsMS4xNzUsMy41MiwyLjMxMyw2LjkyMSwzLjM4OWEyNi4zNjIsMjYuMzYyLDAsMCwxLDUuNjY3LDIuMTkyLDMuMDg1LDMuMDg1LDAsMCwwLDEuNjYyLTEuNjE0Yy4zNzctMS40ODktMy4wMTMtMy4zOTMtNS4yNzQtNC4yMjlhMzMuMzM3LDMzLjMzNywwLDAsMS00LjQwNy0yLjA0MmMtNC4zMTYsMS4xNDMtNC41NjksMi4zLTQuNTY5LDIuM1pcXFwiIHN0eWxlPVxcXCJmaWxsOiM1OTA4MTVcXFwiLz5cIixcblx0XCJTdGF0YSBBZG9cIjogXCI8ZGVmcz48bGluZWFyR3JhZGllbnQgaWQ9XFxcImFcXFwiIHgxPVxcXCIxNlxcXCIgeTE9XFxcIjJcXFwiIHgyPVxcXCIxNlxcXCIgeTI9XFxcIjMwXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjOGFhN2MwXFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjM2M2ZThmXFxcIi8+PC9saW5lYXJHcmFkaWVudD48L2RlZnM+PHRpdGxlPmZpbGVfdHlwZV9zdGF0YTwvdGl0bGU+PHJlY3QgeD1cXFwiMlxcXCIgeT1cXFwiMlxcXCIgd2lkdGg9XFxcIjI4XFxcIiBoZWlnaHQ9XFxcIjI4XFxcIiByeD1cXFwiMS41NTZcXFwiIHJ5PVxcXCIxLjU1NlxcXCIgc3R5bGU9XFxcImZpbGw6dXJsKCNhKVxcXCIvPjxyZWN0IHg9XFxcIjEzLjE3MVxcXCIgeT1cXFwiNi4wMTVcXFwiIHdpZHRoPVxcXCI1Ljc1NlxcXCIgaGVpZ2h0PVxcXCI1Ljc1NlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPjxyZWN0IHg9XFxcIjIwLjMyNlxcXCIgeT1cXFwiNi4wMTVcXFwiIHdpZHRoPVxcXCI1Ljc1NlxcXCIgaGVpZ2h0PVxcXCI1Ljc1NlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPjxyZWN0IHg9XFxcIjIwLjMyNlxcXCIgeT1cXFwiMTMuMTcxXFxcIiB3aWR0aD1cXFwiNS43NTZcXFwiIGhlaWdodD1cXFwiNS43NTZcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48cmVjdCB4PVxcXCIxMy4xNzFcXFwiIHk9XFxcIjEzLjE3MVxcXCIgd2lkdGg9XFxcIjUuNzU2XFxcIiBoZWlnaHQ9XFxcIjUuNzU2XFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+PHJlY3QgeD1cXFwiNi4wMTVcXFwiIHk9XFxcIjEzLjE3MVxcXCIgd2lkdGg9XFxcIjUuNzU2XFxcIiBoZWlnaHQ9XFxcIjUuNzU2XFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+PHJlY3QgeD1cXFwiNi4wMTVcXFwiIHk9XFxcIjIwLjMyNlxcXCIgd2lkdGg9XFxcIjUuNzU2XFxcIiBoZWlnaHQ9XFxcIjUuNzU2XFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+PHJlY3QgeD1cXFwiMTMuMTcxXFxcIiB5PVxcXCIyMC4zMjZcXFwiIHdpZHRoPVxcXCI1Ljc1NlxcXCIgaGVpZ2h0PVxcXCI1Ljc1NlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPlwiLFxuXHRcIlN0eWx1c1wiOiBcIjx0aXRsZT5maWxlX3R5cGVfc3R5bHVzPC90aXRsZT48cGF0aCBkPVxcXCJNNi4zMTUsMjAuNzc2Yy43MjYtLjg2OS44MTItMS43NjYuMjQ5LTMuNDMyLS4zNTYtMS4wNTQtLjk0Ny0xLjg2NS0uNTEzLTIuNTIxLjQ2My0uNywxLjQ0NS0uMDIxLjYyNy45MTFsLjE2NC4xMTRjLjk4My4xMTQsMS40NjctMS4yMzIuNzMzLTEuNjE2LTEuOTM3LTEuMDExLTMuNjMxLjkzMy0yLjg4NCwzLjE4My4zMi45NTQuNzY5LDEuOTY1LjQwNiwyLjc3QTEuNzk0LDEuNzk0LDAsMCwxLDMuNzczLDIxLjNjLS44NDcuMDQzLS4yODUtMS45LjY5MS0yLjM4NS4wODUtLjA0My4yMDYtLjEuMDkzLS4yNDJhMi4xMzQsMi4xMzQsMCwwLDAtMi4zMTQsMS4yQzEuMDYxLDIyLjEyMSw0LjQ4NSwyMi45NTQsNi4zMTUsMjAuNzc2WlxcXCIgc3R5bGU9XFxcImZpbGw6I2MyYzJjMlxcXCIvPjxwYXRoIGQ9XFxcIk0yNy40NjIsMTQuMTRjLjI3OC42ODQuNywxLjM2LjQ0OSwxLjk1OC0uMjA2LjUxMy0uNDc3LjcyNi0uNzc2Ljc3Ni0uNDIuMDcxLS4zMDYtMS4yNDYuNDEzLTEuNjM4LjA2NC0uMDM2LjE1Ny0uMjA2LjA3MS0uMzA2YTEuNjM2LDEuNjM2LDAsMCwwLTEuNy45NjFjLS44LDEuNjg3LDEuODIzLDIuMTUsMy4xMTIuNDkxLjUxMy0uNjYyLjUzNC0xLjMxNy4wNDMtMi41MDYtLjMxMy0uNzU1LS43OS0xLjMxNy0uNDkxLTEuODE2LjMyLS41MjcsMS4wODktLjA3MS41MTMuNjM0bC4xMjguMDcxYy43NDguMDQzLDEuMDU0LS45NTQuNDg0LTEuMkExLjgzNCwxLjgzNCwwLDAsMCwyNy40NjIsMTQuMTRaXFxcIiBzdHlsZT1cXFwiZmlsbDojYzJjMmMyXFxcIi8+PHBhdGggZD1cXFwiTTE3Ljk1LDEyLjMzOGMtLjUyLS40MTMtMS45NzkuMjc4LTIuMzkyLDEuM2ExNi4yMTMsMTYuMjEzLDAsMCwxLTIuMDQzLDQuMDM3Yy0uOC44NzYtLjg3Ni4yLS44LS4zMDZBMTUuMzI3LDE1LjMyNywwLDAsMSwxNC43LDEyLjY1MmMtLjIzNS0uMzQ5LTEuNzczLS4zLTIuODQxLDEuMzYtLjQuNjI3LTEuMzEsMi43MTMtMi4zMjEsNC4zNTgtLjIyMS4zNTYtLjUuMTA3LS4yODUtLjcyNmEzOS44LDM5LjgsMCwwLDEsMS44NzMtNS42ODIsMzkuMDcyLDM5LjA3MiwwLDAsMSw2LjkyMS0uODE5Yy4yNjMtLjA3MS40NDEtLjMwNiwwLS4zMmE0Ni43NzgsNDYuNzc4LDAsMCwwLTYuNTkzLjQ0MSw0LjkyMyw0LjkyMywwLDAsMSwxLjQ0NS0xLjk0NCwxLjc4NywxLjc4NywwLDAsMC0yLjI2NC43MTksMTIuMjg3LDEyLjI4NywwLDAsMC0uODE5LDEuNDUzLDI0LjE5NCwyNC4xOTQsMCwwLDAtMy45OC44NjJjLS43ODMuMy0uNywxLjI0Ni0uMjIxLDEuMDY4YTMxLjYzMSwzMS42MzEsMCwwLDEsMy44MTYtMS4xLDMwLjI5MiwzMC4yOTIsMCwwLDAtMS44NjUsNS42ODJjLS40NDEsMi40OTIsMS4xLDIuNDc4LDEuODU4LDEuNS44MTktMS4wNzUsMi41MjgtNC44NTYsMi43OTEtNS4yNTUuMDc4LS4xMzUuMTg1LS4wNjQuMTI4LjA1Ny0xLjkwOCwzLjgwOS0xLjc0NCw1LjI4My0uMiw0Ljk1NmE0LjkyOSw0LjkyOSwwLDAsMCwyLjIxNC0xLjk2NWMuMDY0LS4xNS4yLS4xMzUuMTcxLS4wNzEtMS4yMSwzLjE0LTIuNzQ4LDUuNjgyLTMuNzgxLDYuNDc5LS45NC43MTktMS42MzgtLjg0LDEuNjg3LTMuMDc2LjQ5MS0uMzM1LjI2My0uNzktLjI5Mi0uNjM0aDBhMjkuNzkzLDI5Ljc5MywwLDAsMC04Ljc4NiwzLjMyNWMtLjE2NC4xMTQtLjMxMy4yMDYtLjMwNi40NDEuMDA3LjEzNS4yNDIuMDg1LjM1Ni4wMTRBMjIuNzcxLDIyLjc3MSwwLDAsMSwxMS4xLDIwLjlhLjE1OC4xNTgsMCwwLDAsLjExNC4wMDdjLjEyMS0uMDI4LjExNC4wMzYuMDM2LjA4NS0uMTc4LjEtLjM1Ni4xOTItLjQuMjA2LTEuNzY2LjY5MS0yLjgzNCwyLjIxNC0yLjQ1NiwyLjk5LjMyLjY2OSwyLjA1MS40MjcsMi44NjktLjAxNCwyLjAwOC0xLjA4OSwzLjQ2OC0zLjIyNSw0LjQ2NC02LjE3M0MxNi42LDE1LjM4NiwxNy42OTMsMTIuNDI0LDE3Ljk1LDEyLjMzOFpcXFwiIHN0eWxlPVxcXCJmaWxsOiNjMmMyYzJcXFwiLz48cGF0aCBkPVxcXCJNMjkuNjIsMTguMzY5YTQ4LjE0NSw0OC4xNDUsMCwwLDAtMTMuNDI5Ljk2OGMtLjkyNi4yNDItLjY2OS43MzMtLjIuNjQxLjAwNywwLC4yMDYtLjA1LjIxNC0uMDVhNDIuMjc5LDQyLjI3OSwwLDAsMSwxMi4zNzUtLjI0MkMyOS4wMTQsMTkuNzY1LDMwLjMxNywxOC40NjIsMjkuNjIsMTguMzY5WlxcXCIgc3R5bGU9XFxcImZpbGw6I2MyYzJjMlxcXCIvPjxwYXRoIGQ9XFxcIk0xOC44NjEsMTcuOTg1Yy45MTEtLjQ1NiwyLjI2NC0zLjI3NSwzLjE1NC00LjgyLjA2NC0uMTE0LjE3OC0uMDIxLjExNC4wNTctMi4yNSwzLjg3My0xLjMsNC4zMjItLjQwNiw0LjI2NSwxLjE4OS0uMDcxLDIuMjg2LTEuNzgsMi41MjgtMi4xNjUuMS0uMTUuMTU3LS4wMjguMS4wNzgtLjA1Ny4xNzgtLjI2My40OTEtLjQ1Ni45MTktLjI3MS42MDUuMDE0Ljg0LjI0OS45NDcuMzcuMTc4LDEuMzgxLjA2NCwxLjUzOC0uNTU1LTEuMDExLS4wMjEsMS40MS00Ljc5MiwxLjY1OS01LjA4NGExLjcxOCwxLjcxOCwwLDAsMC0yLjIuOTc1Yy0xLjAxOCwyLjAxNS0xLjg3MywzLjYzOC0yLjQwNywzLjY2Ny0xLjA0LjA1NywxLjItNC40OTMsMS41NTktNC42MzUtLjIyMS0uMzItMS42MzgtLjE4NS0yLjQyOCwxLjA0LS4yODUuNDQxLTIuMDIyLDMuNTE3LTIuNDQ5LDQuMDIzLS43NTUuOS0uODEyLjEyOC0uNi0uNzY5YTEwLjU2OSwxMC41NjksMCwwLDEsLjM0OS0xLjEzMiw1LjMyNCw1LjMyNCwwLDAsMSwxLjM2LTEuODQ0YzIuMi0yLjQ0MiwzLjQ2LTQuNDIyLDIuOTYyLTUuMi0uNDQxLS42OTEtMS45MTUtLjM4NC0yLjg2MiwxLjA0LTEuNzQ0LDIuNjEzLTMuMzU0LDYuMTk1LTMuNTYsNy44MzJTMTguMDU2LDE4LjM4MywxOC44NjEsMTcuOTg1Wm0uOTI2LTQuNzkyYy4wNzgtLjE3OC4xMjgtLjIyOC4yNjMtLjUyN2gwQTI0LjkzNCwyNC45MzQsMCwwLDEsMjIuNDkyLDguMjhjLjQyLS40NDEsMS4wMTEuMTU3LS4wNTcsMS43OTRhMTYuNDYyLDE2LjQ2MiwwLDAsMS0yLjExNSwyLjY0MnYuMDA3Yy0uMi4yMjEtLjM3Ny40MDYtLjQ1Ni41MTNDMTkuODA4LDEzLjMwNywxOS43NDQsMTMuMjkyLDE5Ljc4NywxMy4xOTNaXFxcIiBzdHlsZT1cXFwiZmlsbDojYzJjMmMyXFxcIi8+XCIsXG5cdFwiU1ZHXCI6IFwiPHBhdGggZD1cXFwiTTcuNjc0LDE0LjQ4OGEyLjIxOCwyLjIxOCwwLDEsMCwwLDMuMTM3SDI0LjMyNmEyLjIxOCwyLjIxOCwwLDEsMCwwLTMuMTM3WlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmYjEzYjtzdHJva2U6IzAwMDtzdHJva2Utd2lkdGg6My43MzAwMDAwMTkwNzM0OXB4XFxcIi8+PHBhdGggZD1cXFwiTTExLjIyMiw5LjA2QTIuMjE4LDIuMjE4LDAsMSwwLDksMTEuMjc4TDIwLjc3OCwyMy4wNTJBMi4yMTgsMi4yMTgsMCwxLDAsMjMsMjAuODM0WlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmYjEzYjtzdHJva2U6IzAwMDtzdHJva2Utd2lkdGg6My43MzAwMDAwMTkwNzM0OXB4XFxcIi8+PHBhdGggZD1cXFwiTTE3LjU2OCw3LjczYTIuMjE4LDIuMjE4LDAsMSwwLTMuMTM3LDBWMjQuMzgyYTIuMjE4LDIuMjE4LDAsMSwwLDMuMTM3LDBaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZiMTNiO3N0cm9rZTojMDAwO3N0cm9rZS13aWR0aDozLjczMDAwMDAxOTA3MzQ5cHhcXFwiLz48cGF0aCBkPVxcXCJNMjMsMTEuMjc4QTIuMjE4LDIuMjE4LDAsMSwwLDIwLjc3OCw5LjA2TDksMjAuODM0YTIuMjE4LDIuMjE4LDAsMSwwLDIuMjE4LDIuMjE4WlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmYjEzYjtzdHJva2U6IzAwMDtzdHJva2Utd2lkdGg6My43MzAwMDAwMTkwNzM0OXB4XFxcIi8+PHBhdGggZD1cXFwiTTcuNjc0LDE0LjQ4OGEyLjIxOCwyLjIxOCwwLDEsMCwwLDMuMTM3SDI0LjMyNmEyLjIxOCwyLjIxOCwwLDEsMCwwLTMuMTM3WlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmYjEzYlxcXCIvPjxwYXRoIGQ9XFxcIk0xMS4yMjIsOS4wNkEyLjIxOCwyLjIxOCwwLDEsMCw5LDExLjI3OEwyMC43NzgsMjMuMDUyQTIuMjE4LDIuMjE4LDAsMSwwLDIzLDIwLjgzNFpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmIxM2JcXFwiLz48cGF0aCBkPVxcXCJNMTcuNTY4LDcuNzNhMi4yMTgsMi4yMTgsMCwxLDAtMy4xMzcsMFYyNC4zODJhMi4yMTgsMi4yMTgsMCwxLDAsMy4xMzcsMFpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmIxM2JcXFwiLz48cGF0aCBkPVxcXCJNMjMsMTEuMjc4QTIuMjE4LDIuMjE4LDAsMSwwLDIwLjc3OCw5LjA2TDksMjAuODM0YTIuMjE4LDIuMjE4LDAsMSwwLDIuMjE4LDIuMjE4WlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmYjEzYlxcXCIvPjxwYXRoIGQ9XFxcIk0yLDE2LjA1NkgzMFYyNS45NWE0LjAzNSw0LjAzNSwwLDAsMS00LjEwNiw0LjEwNkg2LjEwNkE0LjAzNSw0LjAzNSwwLDAsMSwyLDI1Ljk1WlxcXCIvPjxwYXRoIGQ9XFxcIk02LjIsMjMuMDQ1QTMuNjI4LDMuNjI4LDAsMSwxLDEyLjQsMjAuNDhIMTAuMjdBMS41LDEuNSwwLDEsMCw3LjcsMjEuNTQxaDBhMS42LDEuNiwwLDAsMCwxLjA2Mi40NDFoMGE0LjExOCw0LjExOCwwLDAsMSwyLjU2NiwxLjA2M2gwYTMuNjI4LDMuNjI4LDAsMSwxLTYuMTk0LDIuNTY1SDcuMjY0QTEuNSwxLjUsMCwxLDAsOS44MywyNC41NWgwYTEuOTQ4LDEuOTQ4LDAsMCwwLTEuMDYzLS40NGgwQTQuNDY1LDQuNDY1LDAsMCwxLDYuMiwyMy4wNDVaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+PHBhdGggZD1cXFwiTTE5LjY1MSwxNi44NTIsMTcuMDg1LDI5LjI0SDE0Ljk2TDEyLjQsMTYuODUySDE0LjUybDEuNSw3LjI1NSwxLjUtNy4yNTVaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+PHBhdGggZD1cXFwiTTIzLjI4LDIxLjk4M2gzLjYyOHYzLjYyOGgwYTMuNjI4LDMuNjI4LDAsMSwxLTcuMjU3LDBoMFYyMC40OGgwYTMuNjI4LDMuNjI4LDAsMCwxLDcuMjU3LDBIMjQuNzgzYTEuNSwxLjUsMCwxLDAtMy4wMDUsMHY1LjEzaDBhMS41LDEuNSwwLDAsMCwzLjAwNSwwaDB2LTEuNWgtMS41VjIxLjk4M1pcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz5cIixcblx0XCJTd2lmdFwiOiBcIjxkZWZzPjxsaW5lYXJHcmFkaWVudCBpZD1cXFwiYVxcXCIgeDE9XFxcIi0xMzQuNDk0XFxcIiB5MT1cXFwiLTE3MS44MlxcXCIgeDI9XFxcIi0xMzQuNDk3XFxcIiB5Mj1cXFwiLTE3MS44OVxcXCIgZ3JhZGllbnRUcmFuc2Zvcm09XFxcIm1hdHJpeCgyNDAsIDAsIDAsIC0yMDUuNiwgMzIyOTUsIC0zNTMxMi41ODUpXFxcIiBncmFkaWVudFVuaXRzPVxcXCJ1c2VyU3BhY2VPblVzZVxcXCI+PHN0b3Agb2Zmc2V0PVxcXCIwXFxcIiBzdG9wLWNvbG9yPVxcXCIjZjg4NTM1XFxcIi8+PHN0b3Agb2Zmc2V0PVxcXCIxXFxcIiBzdG9wLWNvbG9yPVxcXCIjZmQyMjIxXFxcIi8+PC9saW5lYXJHcmFkaWVudD48L2RlZnM+PHRpdGxlPmZpbGVfdHlwZV9zd2lmdDwvdGl0bGU+PHBhdGggZD1cXFwiTTE5LjQyMiw0LjAwN3M2LjIxNywzLjU1NCw3Ljg0NCw5LjJjMS40NjYsNS4xLjI5Miw3LjUzNC4yOTIsNy41MzRhOC45MTUsOC45MTUsMCwwLDEsMS43NDIsMi44LDQuODI1LDQuODI1LDAsMCwxLC4yOSw0LjQ1M3MtLjEtMi4wOC0zLjItMi41MTFjLTIuODQxLS40LTMuODc0LDIuMzY2LTkuMywyLjIzMkExOC40MzUsMTguNDM1LDAsMCwxLDIsMTkuMzU0QzQuNjUxLDIwLjgsOC4xMjQsMjMuMDQ1LDEyLjQ0OSwyMi43czUuMjI4LTEuNjc0LDUuMjI4LTEuNjc0QTY2LjksNjYuOSwwLDAsMSw0Ljg5MSw3LjY0M2MzLjQsMi44NDUsMTEuODIyLDguNTA3LDExLjYyNiw4LjM2M0E3NS44MjYsNzUuODI2LDAsMCwxLDguMDkyLDYuMjRTMjAuNzI4LDE2LjYyOSwyMS43NDUsMTYuNTYzYy40MTgtLjg2MSwyLjU3OS01LjMxOC0yLjMyNC0xMi41NTdaXFxcIiBzdHlsZT1cXFwiZmlsbDp1cmwoI2EpXFxcIi8+XCIsXG5cdFwiU3lzdGVtZCBjb25maWd1cmF0aW9uIGZpbGVcIjogXCI8cGF0aCBkPVxcXCJNMiwxMnY4SDUuMjU2VjE4Ljc2OUgzLjNWMTMuMjMxSDUuMjU2VjEyWlxcXCIgc3R5bGU9XFxcImZpbGw6I2QyZDJkMlxcXCIvPjxwYXRoIGQ9XFxcIk0yNi43NDQsMTJ2MS4yMzFIMjguN3Y1LjUzOEgyNi43NDRWMjBIMzBWMTJaXFxcIiBzdHlsZT1cXFwiZmlsbDojZDJkMmQyXFxcIi8+PHBhdGggZD1cXFwiTTE3LjYyOCwxNmw1LjIxLTIuNzY5djUuNTM4WlxcXCIgc3R5bGU9XFxcImZpbGw6IzMwZDQ3NVxcXCIvPjxlbGxpcHNlIGN4PVxcXCIxMi4wOTNcXFwiIGN5PVxcXCIxNlxcXCIgcng9XFxcIjIuOTNcXFwiIHJ5PVxcXCIyLjc2OVxcXCIgc3R5bGU9XFxcImZpbGw6IzMwZDQ3NVxcXCIvPlwiLFxuXHRcIlQ0IHRlbXBsYXRpbmdcIjogXCI8cGF0aCBkPVxcXCJNMTkuNTQ1LDYuMDM1SDEzLjI3VjI0SDguM1Y2LjAzNUgyLjA1NVYyaDE3LjQ5WlxcXCIgc3R5bGU9XFxcImZpbGw6IzFlODhlNVxcXCIvPjxwYXRoIGQ9XFxcIk0yNy41NjcsMTBWMjIuNjA4aDIuNFYyNS45aC0yLjRWMzBIMjMuNTUxVjI1LjlIMTQuODM0VjIyLjQ1NXExLjE1OC0xLjMsMi40LTIuODM4dDIuNC0zLjE3M3ExLjE1OC0xLjYzMiwyLjE1NS0zLjI4NUEzMi45MjUsMzIuOTI1LDAsMCwwLDIzLjQ4MSwxMFpNMTguNzgxLDIyLjYwOGg0Ljc3VjE1LjYyMXEtLjQ4OC45MDctMS4wNiwxLjgzNHQtMS4yLDEuODI3cS0uNjI4LjktMS4yNjksMS43NDNUMTguNzgxLDIyLjYwOFpcXFwiIHN0eWxlPVxcXCJmaWxsOiMxZTg4ZTVcXFwiLz5cIixcblx0XCJUNCBUZXh0IFRlbXBsYXRlcyAoQyMpXCI6IFwiPHBhdGggZD1cXFwiTTE5LjU0NSw2LjAzNUgxMy4yN1YyNEg4LjNWNi4wMzVIMi4wNTVWMmgxNy40OVpcXFwiIHN0eWxlPVxcXCJmaWxsOiMxZTg4ZTVcXFwiLz48cGF0aCBkPVxcXCJNMjcuNTY3LDEwVjIyLjYwOGgyLjRWMjUuOWgtMi40VjMwSDIzLjU1MVYyNS45SDE0LjgzNFYyMi40NTVxMS4xNTgtMS4zLDIuNC0yLjgzOHQyLjQtMy4xNzNxMS4xNTgtMS42MzIsMi4xNTUtMy4yODVBMzIuOTI1LDMyLjkyNSwwLDAsMCwyMy40ODEsMTBaTTE4Ljc4MSwyMi42MDhoNC43N1YxNS42MjFxLS40ODguOTA3LTEuMDYsMS44MzR0LTEuMiwxLjgyN3EtLjYyOC45LTEuMjY5LDEuNzQzVDE4Ljc4MSwyMi42MDhaXFxcIiBzdHlsZT1cXFwiZmlsbDojMWU4OGU1XFxcIi8+XCIsXG5cdFwiVDQgVGV4dCBUZW1wbGF0ZXMgKFZCKVwiOiBcIjxwYXRoIGQ9XFxcIk0xOS41NDUsNi4wMzVIMTMuMjdWMjRIOC4zVjYuMDM1SDIuMDU1VjJoMTcuNDlaXFxcIiBzdHlsZT1cXFwiZmlsbDojMWU4OGU1XFxcIi8+PHBhdGggZD1cXFwiTTI3LjU2NywxMFYyMi42MDhoMi40VjI1LjloLTIuNFYzMEgyMy41NTFWMjUuOUgxNC44MzRWMjIuNDU1cTEuMTU4LTEuMywyLjQtMi44Mzh0Mi40LTMuMTczcTEuMTU4LTEuNjMyLDIuMTU1LTMuMjg1QTMyLjkyNSwzMi45MjUsMCwwLDAsMjMuNDgxLDEwWk0xOC43ODEsMjIuNjA4aDQuNzdWMTUuNjIxcS0uNDg4LjkwNy0xLjA2LDEuODM0dC0xLjIsMS44MjdxLS42MjguOS0xLjI2OSwxLjc0M1QxOC43ODEsMjIuNjA4WlxcXCIgc3R5bGU9XFxcImZpbGw6IzFlODhlNVxcXCIvPlwiLFxuXHRcIlRjbFwiOiBcIjxwYXRoIGQ9XFxcIk0yMS45NDIsMi44NzZjLjA0LDIuNDY4LS4wMzMsNC45MS0yLjE2OSw3LjIzbC0uMDc5LjA4OWguMTE5bC44NzMuMDEzYy0xLjQxOCwyLjk1LTIuMzQxLDUuODkyLTQuMzgsOC44M2wtLjA3My4xMDYuMTI2LS4wMjMsMS4wNzgtLjJhNS44NTEsNS44NTEsMCwwLDEtMy40ODQsMy42NWMtLjM5LTUuNDU1LDIuMzMzLTEwLjI3LDQuNjQ1LTE1LjA3MWwuMDA3LS4wMTMtLjA4Ni0uMDZjLTMuNzg2LDQuMjMzLTUuNDkxLDEwLjItNi4xMzYsMTUuMTI3YTQuNTgyLDQuNTgyLDAsMCwxLTIuMTQ1LTIuOTg4bC45LjM3Ny4wOTMuMDQtLjAyLS4xYy0uNjgxLTMuMDI4LjM3Ni01LjIsMS40LTguMDU2bC43MzcuNDkzLjA4Ni4wNiwwLS4xYy0uMDU4LTIuMzIsMS41LTQuNjQ5LDMuNTc3LTYuNzI3bC4yODguNzcuMDQuMS4wNTYtLjEuNjMxLTEuMDUxLDAtLjAwN0E2LjEsNi4xLDAsMCwxLDIxLjk0MiwyLjg3NlpcXFwiIHN0eWxlPVxcXCJmaWxsOiNjM2IxNWZcXFwiLz48cGF0aCBkPVxcXCJNMjEuOTQ4LDIuODc1YTYuMTMxLDYuMTMxLDAsMCwwLTMuOTI2LDIuMzg4bDAsLjAwNy0uNjMxLDEuMDUxLS4wNTYuMS0uMDQtLjFMMTcsNS41NDRjLTIuMDcyLDIuMDc4LTMuNjM1LDQuNDA3LTMuNTc3LDYuNzI3bDAsLjEtLjA4Ni0uMDYtLjczNy0uNDkzYy0xLjAyNSwyLjg1Ni0yLjA4Myw1LjAyOS0xLjQsOC4wNTZsLjAyLjEtLjA5My0uMDQtLjg4Ni0uMzc0YzAsLjAxOC4wMDcuMDM1LjAxLjA1M2E0LjUzMyw0LjUzMywwLDAsMCwyLjEyNiwyLjkzMmMuMDUtLjM4MS4xMDUtLjc3MS4xNjktMS4xNjQtMS41NDMtMy42MTQtLjItNi4yNzEuNDA3LTguNjYxbC45MzkuNTQyYy0uMTMtMi4yMzgsMS4xODQtNC42NTEsMi44OTMtNi43NTdsLjUuODczQzE4LjU1NSw0Ljc2OSwxOS41NiwzLjcyLDIxLjk0OCwyLjg3NVpcXFwiIHN0eWxlPVxcXCJmaWxsOiNlZmYxY2I7c3Ryb2tlOiNlZmYxY2JcXFwiLz48cGF0aCBkPVxcXCJNMjIuNTE4LDJsLS4wNTYuMDFjLTIuMDgyLjM2My00LjEyMSwxLjEyOC01LjAxNSwyLjk1OWwtLjM3Ny0uNjU4LS4wMzMtLjA2LS4wNS4wNWEyMC44NSwyMC44NSwwLDAsMC0yLjkzOSwzLjVBNS45MzksNS45MzksMCwwLDAsMTIuODM1LDExbC0uNTMyLS42NjQtLjA1My0uMDY2LS4wMzYuMDc2YTI3LjUzNSwyNy41MzUsMCwwLDAtMS42OTMsNC43LDYuNzMsNi43MywwLDAsMC0uMTU5LDMuNzE5bC0uODc2LS41MDktLjA3My0uMDQzLS4wMDcuMDg2YTUuNTI5LDUuNTI5LDAsMCwwLDIuMDE3LDQuODQzbC0uOTcyLjI0MS0uMi4wNS4yLjA1M2E0LjI1OCw0LjI1OCwwLDAsMSwxLjQ1NS42LDEuMzI1LDEuMzI1LDAsMCwxLC41MTYsMS4zVjI4LjFsLjAxLjAxMywxLjIxNywxLjc0NS4xLjEzOVYyNS43MTlhMy40NjYsMy40NjYsMCwwLDEsLjYyMS0xLjQ4NEExLjYzOSwxLjYzOSwwLDAsMSwxNS41LDIzLjdsLjE4Mi0uMDIzLS4xNjUtLjA3Ni0uNjQxLS4zYTkuMTEyLDkuMTEyLDAsMCwwLDMuNjkzLTUuMzIybC4wMi0uMDg2LS4wODMuMDIzLS43OTMuMjE1YTExLjY2OSwxMS42NjksMCwwLDAsMi4wODktMy41QzIwLjUxMiwxMywyMS4xOCwxMS4xNjYsMjEuNzI4LDkuN2wuMDMtLjA3OS0uMDgzLjAwNy0uNjEyLjA0M2E2LjY1NSw2LjY1NSwwLDAsMCwxLjM4Mi0zLjUyNywxNy4wMzksMTcuMDM5LDAsMCwwLC4wNzktNC4wODZabS0uNTc1Ljg3NmMuMDQsMi40NjgtLjAzMyw0LjkxLTIuMTY5LDcuMjNsLS4wNzkuMDg5aC4xMTlsLjg3My4wMTNjLTEuNDE4LDIuOTUtMi4zNDEsNS44OTItNC4zOCw4LjgzbC0uMDczLjEwNi4xMjYtLjAyMywxLjA3OC0uMmE1Ljg1MSw1Ljg1MSwwLDAsMS0zLjQ4NCwzLjY1Yy0uMzktNS40NTUsMi4zMzMtMTAuMjcsNC42NDUtMTUuMDcxbC4wMDctLjAxMy0uMDg2LS4wNmMtMy43ODYsNC4yMzMtNS40OTEsMTAuMi02LjEzNiwxNS4xMjdhNC41ODIsNC41ODIsMCwwLDEtMi4xNDUtMi45ODhsLjkuMzc3LjA5My4wNC0uMDItLjFjLS42ODEtMy4wMjguMzc2LTUuMiwxLjQtOC4wNTZsLjczNy40OTMuMDg2LjA2LDAtLjFjLS4wNTgtMi4zMiwxLjUtNC42NDksMy41NzctNi43MjdsLjI4OC43Ny4wNC4xLjA1Ni0uMS42MzEtMS4wNTEsMC0uMDA3QTYuMSw2LjEsMCwwLDEsMjEuOTQyLDIuODc2WlxcXCIvPlwiLFxuXHRcIlRlbXBsYXRlIFRvb2xraXQgMlwiOiBcIjxwYXRoIGQ9XFxcIk04LjkwNywyMy4wMjFIOC44NzhhMy4zMDUsMy4zMDUsMCwwLDEtMi4wMTEtLjY2MUEyLjU2MSwyLjU2MSwwLDAsMSw1LjgzLDIwLjMzNFYxNi4xSDQuMjg4YTMuMDUsMy4wNSwwLDAsMS0yLjczOC0xLjY5LDMuMywzLjMsMCwwLDEsLjQ0MS0zLjUzLDIuMjY1LDIuMjY1LDAsMCwxLDEuODE1LS45aDkuNjVhMy4wNSwzLjA1LDAsMCwxLDIuNzM4LDEuNjksMy4zLDMuMywwLDAsMS0uNDQxLDMuNTMsMi4yNjUsMi4yNjUsMCwwLDEtMS44MTUuOUgxMS45NTV2NC4yMzFhMi41NjEsMi41NjEsMCwwLDEtMS4wMzcsMi4wMjZBMy4zMDUsMy4zMDUsMCwwLDEsOC45MDcsMjMuMDIxWk00LjI2NCwxMS42MzZhMS4zOSwxLjM5LDAsMCwwLTEuMzg4LDEuMzg4di4wMzNhMS4zOSwxLjM5LDAsMCwwLDEuMzg4LDEuMzg4SDcuNDg3djUuODgxYzAsLjU3Mi42MjQsMS4wMzcsMS4zOSwxLjAzN2guMDI5Yy43NjcsMCwxLjM5LS40NjUsMS4zOS0xLjAzN1YxNC40NDZoMy4yMjNhMS4zOSwxLjM5LDAsMCwwLDEuMzg4LTEuMzg4di0uMDMzYTEuMzksMS4zOSwwLDAsMC0xLjM4OC0xLjM4OFpcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMTVkOWFcXFwiLz48cGF0aCBkPVxcXCJNMTQuOTgxLDEyLjk1M3YuMDMzYTEuNTMzLDEuNTMzLDAsMCwxLTEuNTMzLDEuNTMzSDEwLjM3djUuNzM3YTEuMzkzLDEuMzkzLDAsMCwxLTEuNTM1LDEuMTgxSDguODA2YTEuMzkzLDEuMzkzLDAsMCwxLTEuNTM1LTEuMTgxVjE0LjUxOEg0LjE5MkExLjUzMywxLjUzMywwLDAsMSwyLjY2LDEyLjk4NnYtLjAzM0ExLjUzMywxLjUzMywwLDAsMSw0LjE5MiwxMS40Mmg5LjI1N0ExLjUzMywxLjUzMywwLDAsMSwxNC45ODEsMTIuOTUzWm0tNC4yMjMsOS4yMjJhMi40MTgsMi40MTgsMCwwLDAsLjk4LTEuOTEyVjE1Ljg4OGgyLjEyN2EyLjExNCwyLjExNCwwLDAsMCwxLjctLjg0NiwyLjk5MiwyLjk5MiwwLDAsMC0yLjE4LTQuOTlIMy43MzVhMi4xMTQsMi4xMTQsMCwwLDAtMS43Ljg0NiwyLjk5MiwyLjk5MiwwLDAsMCwyLjE4LDQuOTlINS45djQuMzc1YTIuNDE4LDIuNDE4LDAsMCwwLC45OCwxLjkxMiwzLjE2LDMuMTYsMCwwLDAsMS45MjMuNjMxaC4wMjlBMy4xNiwzLjE2LDAsMCwwLDEwLjc1OCwyMi4xNzRaXFxcIiBzdHlsZT1cXFwiZmlsbDojM2JjZWZjXFxcIi8+PHBhdGggZD1cXFwiTTIzLjYwNywyMy4wMjFoLS4wMjlhMy4zMDUsMy4zMDUsMCwwLDEtMi4wMTEtLjY2MSwyLjU2MSwyLjU2MSwwLDAsMS0xLjAzNy0yLjAyNlYxNi4xSDE4Ljk4OGEzLjA1LDMuMDUsMCwwLDEtMi43MzgtMS42OSwzLjMsMy4zLDAsMCwxLC40NDEtMy41MywyLjI2NSwyLjI2NSwwLDAsMSwxLjgxNS0uOWg5LjY1YTMuMDUsMy4wNSwwLDAsMSwyLjczOCwxLjY5LDMuMywzLjMsMCwwLDEtLjQ0MSwzLjUzLDIuMjY1LDIuMjY1LDAsMCwxLTEuODE1LjlIMjYuNjU1djQuMjMxYTIuNTYxLDIuNTYxLDAsMCwxLTEuMDM3LDIuMDI2QTMuMzA1LDMuMzA1LDAsMCwxLDIzLjYwNywyMy4wMjFaTTE4Ljk2NCwxMS42MzZhMS4zOSwxLjM5LDAsMCwwLTEuMzg4LDEuMzg4di4wMzNhMS4zOSwxLjM5LDAsMCwwLDEuMzg4LDEuMzg4aDMuMjIzdjUuODgxYzAsLjU3Mi42MjQsMS4wMzcsMS4zOSwxLjAzN2guMDI5Yy43NjcsMCwxLjM5LS40NjUsMS4zOS0xLjAzN1YxNC40NDZoMy4yMjNhMS4zOSwxLjM5LDAsMCwwLDEuMzg4LTEuMzg4di0uMDMzYTEuMzksMS4zOSwwLDAsMC0xLjM4OC0xLjM4OFpcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMTVkOWFcXFwiLz48cGF0aCBkPVxcXCJNMjkuNjgxLDEyLjk1M3YuMDMzYTEuNTMzLDEuNTMzLDAsMCwxLTEuNTMzLDEuNTMzSDI1LjA3djUuNzM3YTEuMzkzLDEuMzkzLDAsMCwxLTEuNTM1LDEuMTgxaC0uMDI5YTEuMzkzLDEuMzkzLDAsMCwxLTEuNTM1LTEuMTgxVjE0LjUxOEgxOC44OTJhMS41MzMsMS41MzMsMCwwLDEtMS41MzMtMS41MzN2LS4wMzNhMS41MzMsMS41MzMsMCwwLDEsMS41MzMtMS41MzNoOS4yNTdBMS41MzMsMS41MzMsMCwwLDEsMjkuNjgxLDEyLjk1M1ptLTQuMjIzLDkuMjIyYTIuNDE4LDIuNDE4LDAsMCwwLC45OC0xLjkxMlYxNS44ODhoMi4xMjdhMi4xMTQsMi4xMTQsMCwwLDAsMS43LS44NDYsMi45OTIsMi45OTIsMCwwLDAtMi4xOC00Ljk5aC05LjY1YTIuMTE0LDIuMTE0LDAsMCwwLTEuNy44NDYsMi45OTIsMi45OTIsMCwwLDAsMi4xOCw0Ljk5SDIwLjZ2NC4zNzVhMi40MTgsMi40MTgsMCwwLDAsLjk4LDEuOTEyLDMuMTYsMy4xNiwwLDAsMCwxLjkyMy42MzFoLjAyOUEzLjE2LDMuMTYsMCwwLDAsMjUuNDU4LDIyLjE3NFpcXFwiIHN0eWxlPVxcXCJmaWxsOiMzYmNlZmNcXFwiLz5cIixcblx0XCJUZVhcIjogXCI8cGF0aCBkPVxcXCJNMTEuMzMzLDEzLjEyMmMtLjEyOC0xLjU2Mi0uMjQxLTIuNzU2LTIuMjg3LTIuNzU2SDcuOTF2OC40aDIuMTQ1di42MTFsLTMuMDgzLS4wMjktMy4wODIuMDI5di0uNjExSDYuMDM0di04LjRINC44ODRjLTIuMDQ2LDAtMi4xNTksMS4yMDgtMi4yODcsMi43NTZIMmwuMjg0LTMuMzY3aDkuMzYybC4yODQsMy4zNjdoLS42WlxcXCIgc3R5bGU9XFxcImZpbGw6I2NmY2ZjZlxcXCIvPjxwYXRoIGQ9XFxcIk0xOS4yODksMjIuNTNIMTAuNDFWMjEuOTJoMS41MDZWMTMuNDY3SDEwLjQxdi0uNjExaDguNjM3bC40MTIsMy4zNjdoLS42Yy0uMjEzLTEuODMzLS42ODItMi43NTYtMi44NTUtMi43NTZIMTMuNzkxVjE3LjJoLjgzOGMxLjM2NCwwLDEuNTA1LS42LDEuNTA1LTEuNjYyaC42djMuOTM1aC0uNmMwLTEuMDgtLjE0Mi0xLjY2Mi0xLjUwNS0xLjY2MmgtLjgzOHY0LjEwNmgyLjIxNmMyLjQ3MiwwLDMtMS4xMDgsMy4zLTMuMjI1aC42WlxcXCIgc3R5bGU9XFxcImZpbGw6I2NmY2ZjZlxcXCIvPjxwYXRoIGQ9XFxcIk0yNy43MjcsMTkuMTg2Yy0uNTQsMC0xLjk2LDAtMi40MTUuMDI5VjE4LjZoMS4xNzlsLTIuNTU3LTMuNTUyLTIuNTI5LDMuMzgxQTQuMSw0LjEsMCwwLDAsMjIuNywxOC42di42MTFjLS4zNTUtLjAyOS0xLjU3Ni0uMDI5LTIuMDE3LS4wMjktLjQsMC0xLjU0OCwwLTEuODc1LjAyOVYxOC42aC4zODNhNy40NTksNy40NTksMCwwLDAsLjgyNC0uMDQzYy41LS4wNDMuNTQtLjA4NS42NjctLjI1NkwyMy41MzYsMTQuNWwtMy4xNTMtNC40MThIMTlWOS40N2MuMzg0LjAyOCwxLjc5LjAyOCwyLjI3My4wMjguNTgyLDAsMS45MTgsMCwyLjQyOS0uMDI4di42MTFIMjIuNTI4bDIuMTE3LDIuOTU1LDIuMDc0LTIuNzg0YTQuMSw0LjEsMCwwLDAtMS4yOTMtLjE3VjkuNDdjLjM1Ni4wMjgsMS41OTEuMDI4LDIuMDMyLjAyOC40LDAsMS41MzQsMCwxLjg2MS0uMDI4di42MTFoLS4zNjlhNS4yNjQsNS4yNjQsMCwwLDAtLjgzOC4wNDNjLS40NjkuMDQzLS41MjYuMDcxLS42NjcuMjU2bC0yLjQsMy4yMUwyOC42MzYsMTguNkgzMHYuNjExQzI5LjY0NSwxOS4xODYsMjguMTgyLDE5LjE4NiwyNy43MjcsMTkuMTg2WlxcXCIgc3R5bGU9XFxcImZpbGw6I2NmY2ZjZlxcXCIvPlwiLFxuXHRcIlRleHRpbGVcIjogXCI8cGF0aCBkPVxcXCJNMjguNjgxLDI2LjA3NUgzLjMxOUExLjMxNywxLjMxNywwLDAsMSwyLDI0Ljc1NlY3LjI0NEExLjMxNywxLjMxNywwLDAsMSwzLjMxOSw1LjkyNUgyOC42ODFBMS4zMTcsMS4zMTcsMCwwLDEsMzAsNy4yNDRWMjQuNzZBMS4zMTYsMS4zMTYsMCwwLDEsMjguNjgxLDI2LjA3NVpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmU3YWNcXFwiLz48cGF0aCBkPVxcXCJNNi4wNjYsMTIuODQ4YTQuOTg3LDQuOTg3LDAsMCwxLDEuNTA4LS42NTlWMTAuNjY0YTMuNywzLjcsMCwwLDEsLjc0My0uMzMsNy44NjksNy44NjksMCwwLDEsMS4zMjctLjM0N2guNjQydjIuMzkxaDIuNDg0VjEzLjZIMTAuMjg2djQuODQ4YTMuMTcyLDMuMTcyLDAsMCwwLC4yOSwxLjYwOSwxLjA3LDEuMDcsMCwwLDAsLjk3MS40NDgsNy4xMjcsNy4xMjcsMCwwLDAsLjc2LS4wNDgsMy4zMzgsMy4zMzgsMCwwLDAsLjc4Mi0uMThsLjEzMi42MmEyLjM4OCwyLjM4OCwwLDAsMS0uNS4zNTYsNS40NTcsNS40NTcsMCwwLDEtLjc1Mi4zNTYsNS44MzcsNS44MzcsMCwwLDEtLjkyMy4yODFBNC43NjksNC43NjksMCwwLDEsMTAsMjJhMi4zODUsMi4zODUsMCwwLDEtMS44MjQtLjYzNywyLjk0NywyLjk0NywwLDAsMS0uNi0yLjA2MlYxMy41OTFINi4wNjZaXFxcIi8+PHBhdGggZD1cXFwiTTE0LjYwNywyMC40NTNhMS40NDcsMS40NDcsMCwwLDEsLjQzMS0xLjA5LDEuNTkxLDEuNTkxLDAsMCwxLDEuMTQ3LS40MTMsMS42NDksMS42NDksMCwwLDEsMS4xNjUuNDEzLDEuNDIyLDEuNDIyLDAsMCwxLC40NTMsMS4wOSwxLjM2OSwxLjM2OSwwLDAsMS0uNDUzLDEuMDgxLDEuNjkyLDEuNjkyLDAsMCwxLTEuMTY1LjQsMS42MSwxLjYxLDAsMCwxLTEuMTQ3LS40QTEuNDI3LDEuNDI3LDAsMCwxLDE0LjYwNywyMC40NTNaXFxcIi8+XCIsXG5cdFwiVE9NTFwiOiBcIjxwYXRoIGQ9XFxcIk0yMi43Niw2LjgzdjMuMjVoLTVWMjUuMTdIMTQuMjZWMTAuMDhoLTVWNi44M1pcXFwiIHN0eWxlPVxcXCJmaWxsOiM3ZjdmN2ZcXFwiLz48cGF0aCBkPVxcXCJNMiwySDguMlY1LjA5SDUuMzR2MjEuOEg4LjJWMzBIMlpcXFwiIHN0eWxlPVxcXCJmaWxsOiNiZmJmYmZcXFwiLz48cGF0aCBkPVxcXCJNMzAsMzBIMjMuOFYyNi45MWgyLjg2VjUuMTFIMjMuOFYySDMwWlxcXCIgc3R5bGU9XFxcImZpbGw6I2JmYmZiZlxcXCIvPlwiLFxuXHRcIlRTQ29uZmlnXCI6IFwiPHBhdGggZD1cXFwiTTIzLjgyNyw4LjI0M0E0LjQyNCw0LjQyNCwwLDAsMSwyNi4wNSw5LjUyNGE1Ljg1Myw1Ljg1MywwLDAsMSwuODUyLDEuMTQzYy4wMTEuMDQ1LTEuNTM0LDEuMDgzLTIuNDcxLDEuNjYyLS4wMzQuMDIzLS4xNjktLjEyNC0uMzIyLS4zNWEyLjAxNCwyLjAxNCwwLDAsMC0xLjY3LTFjLTEuMDc3LS4wNzQtMS43NzEuNDktMS43NjYsMS40MzNhMS4zLDEuMywwLDAsMCwuMTUzLjY2NmMuMjM3LjQ5LjY3Ny43ODQsMi4wNTksMS4zODMsMi41NDQsMS4xLDMuNjM2LDEuODE3LDQuMzEsMi44NDNhNS4xNTgsNS4xNTgsMCwwLDEsLjQxNiw0LjMzMyw0Ljc2NCw0Ljc2NCwwLDAsMS0zLjkzMiwyLjgxNSwxMC45LDEwLjksMCwwLDEtMi43MDgtLjAyOCw2LjUzMSw2LjUzMSwwLDAsMS0zLjYxNi0xLjg4NCw2LjI3OCw2LjI3OCwwLDAsMS0uOTI2LTEuMzcxLDIuNjU1LDIuNjU1LDAsMCwxLC4zMjctLjIwOGMuMTU4LS4wOS43NTYtLjQzNCwxLjMyLS43NjFsMS4wMjQtLjYuMjE0LjMxMmE0Ljc3MSw0Ljc3MSwwLDAsMCwxLjM1LDEuMjkyLDMuMywzLjMsMCwwLDAsMy40NTgtLjE3NSwxLjU0NSwxLjU0NSwwLDAsMCwuMi0xLjk3NGMtLjI3Ni0uNC0uODQtLjcyNy0yLjQ0My0xLjQyMmE4LjgsOC44LDAsMCwxLTMuMzQ5LTIuMDU1LDQuNjg3LDQuNjg3LDAsMCwxLS45NzYtMS43NzcsNy4xMTYsNy4xMTYsMCwwLDEtLjA2Mi0yLjI2OCw0LjMzMiw0LjMzMiwwLDAsMSwzLjY0NC0zLjM3NEE5LDksMCwwLDEsMjMuODI3LDguMjQzWk0xNS40ODQsOS43MjZsLjAxMSwxLjQ1NGgtNC42M1YyNC4zMjhINy42VjExLjE4M0gyLjk3VjkuNzU1YTEzLjk4NiwxMy45ODYsMCwwLDEsLjA0LTEuNDY2Yy4wMTctLjAyMywyLjgzMi0uMDM0LDYuMjQ1LS4wMjhsNi4yMTEuMDE3WlxcXCIgc3R5bGU9XFxcImZpbGw6IzAwN2FjY1xcXCIvPjxwYXRoIGQ9XFxcIk0yNy4wNzUsMjUuMTA3bC4zNjMtLjM2MWMxLjY4LjA1NSwxLjcwNiwwLDEuNzgtLjE3N2wuNDYyLTEuMTI0LjAzNC0uMTA3LS4wMzgtLjA5M2MtLjAyLS4wNDktLjA4MS0uMi0xLjEzLTEuMnYtLjUyNmMxLjIxMS0xLjE2NiwxLjE4NS0xLjIyNiwxLjExNi0xLjRsLS40Ni0xLjEzNmMtLjA2OS0uMTctLjEtLjIzNy0xLjc2My0uMTkxbC0uMzY0LS4zNjdhOC4xMzgsOC4xMzgsMCwwLDAtLjA1Ny0xLjY1N2wtLjA0Ny0uMTA2LTEuMi0uNTI1Yy0uMTc3LS4wODEtLjIzOS0uMTEtMS4zNzIsMS4xMjRsLS41MDktLjAwOGMtMS4xNjctMS4yNDUtMS4yMjItMS4yMjMtMS40LTEuMTUybC0xLjExNS40NTJjLS4xNzUuMDcxLS4yMzYuMS0uMTY5LDEuNzlsLS4zNi4zNTljLTEuNjgtLjA1NS0xLjcsMC0xLjc3OC4xNzdMMTguNjA2LDIwbC0uMDM2LjEwOC4wMzguMDk0Yy4wMi4wNDguMDc4LjE5NCwxLjEzLDEuMnYuNTI1Yy0xLjIxMSwxLjE2Ni0xLjE4NCwxLjIyNi0xLjExNSwxLjRsLjQ1OSwxLjEzN2MuMDcuMTc0LjEuMjM2LDEuNzYzLjE5MmwuMzYzLjM3N2E4LjE2OSw4LjE2OSwwLDAsMCwuMDU1LDEuNjU0bC4wNDcuMTA3LDEuMjA4LjUyOGMuMTc2LjA3My4yMzYuMSwxLjM2Ni0xLjEzbC41MDkuMDA2YzEuMTY4LDEuMjQ3LDEuMjI4LDEuMjIzLDEuNCwxLjE1NGwxLjExMy0uNDVDMjcuMDgyLDI2LjgyNywyNy4xNDMsMjYuOCwyNy4wNzUsMjUuMTA3Wm0tNC43ODgtMi42MzJhMiwyLDAsMSwxLDIuNjE4LDEuMTRBMi4wMjMsMi4wMjMsMCwwLDEsMjIuMjg3LDIyLjQ3NVpcXFwiIHN0eWxlPVxcXCJmaWxsOiM5OWI4YzRcXFwiLz5cIixcblx0XCJUd2lnXCI6IFwiPHBhdGggZD1cXFwiTTQuNTc0LDUuNDYzYy4yNjIuNCwyLjUtMS42MDgsNC40NTQtMS4xNjEsMi4wNjEuNDcyLDQuMDE0LDMuNzI0LDQuODQ4LDEzLjdhNDAuMTgsNDAuMTgsMCwwLDEsMy41NDEsMy42MXEuNTMuNjE0LDEuMDEzLDEuMjJhMTEuODQ3LDExLjg0NywwLDAsMSwuMjI5LTEuNCwxMi4zLDEyLjMsMCwwLDEsMS45ODEtNC40QTE5LjE1MSwxOS4xNTEsMCwwLDAsMTcuMjcyLDcuOWMtMS4wMy0xLjQ0NS00LjYtNi40NzgtOC41NDYtNS44NDNDNi4xODIsMi40NjUsNC4zLDUuMDU0LDQuNTc0LDUuNDYzWlxcXCIgc3R5bGU9XFxcImZpbGw6IzYzYmY2YVxcXCIvPjxwYXRoIGQ9XFxcIk0yNC40LDMwYy0uMzItMi41NjctLjQ0OC00Ljc2LS41LTYuNDQ5LS4wOTQtMy4yMzIuMS00LjU0MS45LTUuNzU2LjE5My0uMjk1LDEuMjg4LTEuOTc1LDIuNTgtMS44NjMsMS40NjYuMTI4LDIuMjEzLDIuNDE0LDIuMzYyLDIuMzM3LjE3NS0uMDktLjM2LTMuNTQzLTIuNTMyLTQuNDMxLTIuNi0xLjA2My02LjMxMiwyLjA3LTcuOCw1LjE1NGExMi4yMjMsMTIuMjIzLDAsMCwwLS44NTcsMi44MSwzMi41NTUsMzIuNTU1LDAsMCwwLS43MSw4LjJaXFxcIiBzdHlsZT1cXFwiZmlsbDojNzRkNzRkXFxcIi8+PHBhdGggZD1cXFwiTTIuMjM4LDEzLjkzNWMuMTQ1LS40NDcsMi40NjgtLjI1OSw0LjU0LjI5MywyLjUuNjY2LDcsMi4zNDQsMTEuNjUxLDguNjA2QTEyLjU0NCwxMi41NDQsMCwwLDEsMjAuMjc5LDMwSDEwLjM4NmEyMS44NzUsMjEuODc1LDAsMCwwLS4xNzUtNC42MiwxNC45LDE0LjksMCwwLDAtMi40NTktNy4xNThDNS40NDEsMTUuMTU5LDIuMDU1LDE0LjUsMi4yMzgsMTMuOTM1WlxcXCIgc3R5bGU9XFxcImZpbGw6Izc4ZGM1MFxcXCIvPjxwYXRoIGQ9XFxcIk0xNy4zLDIxLjMyM2ExLjc1MywxLjc1MywwLDEsMS0uNTEzLTEuMjRBMS43NDgsMS43NDgsMCwwLDEsMTcuMywyMS4zMjNaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+PHBhdGggZD1cXFwiTTIxLjk3NSwyMS4zMjNhMS43NTMsMS43NTMsMCwxLDEtLjUxMy0xLjI0QTEuNzQ4LDEuNzQ4LDAsMCwxLDIxLjk3NSwyMS4zMjNaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+XCIsXG5cdFwiVHlwZVNjcmlwdFwiOiBcIjxyZWN0IHg9XFxcIjJcXFwiIHk9XFxcIjJcXFwiIHdpZHRoPVxcXCIyOFxcXCIgaGVpZ2h0PVxcXCIyOFxcXCIgcng9XFxcIjEuMzEyXFxcIiBzdHlsZT1cXFwiZmlsbDojMzE3OGM2XFxcIi8+PHBhdGggZD1cXFwiTTE4LjI0NSwyMy43NTl2My4wNjhhNi40OTIsNi40OTIsMCwwLDAsMS43NjQuNTc1LDExLjU2LDExLjU2LDAsMCwwLDIuMTQ2LjE5Miw5Ljk2OCw5Ljk2OCwwLDAsMCwyLjA4OC0uMjExLDUuMTEsNS4xMSwwLDAsMCwxLjczNS0uNywzLjU0MiwzLjU0MiwwLDAsMCwxLjE4MS0xLjI2Niw0LjQ2OSw0LjQ2OSwwLDAsMCwuMTg2LTMuMzk0LDMuNDA5LDMuNDA5LDAsMCwwLS43MTctMS4xMTcsNS4yMzYsNS4yMzYsMCwwLDAtMS4xMjMtLjg3NywxMi4wMjcsMTIuMDI3LDAsMCwwLTEuNDc3LS43MzRxLS42LS4yNDktMS4wOC0uNDg0YTUuNSw1LjUsMCwwLDEtLjgxMy0uNDc5LDIuMDg5LDIuMDg5LDAsMCwxLS41MTYtLjUxOCwxLjA5MSwxLjA5MSwwLDAsMS0uMTgxLS42MTgsMS4wMzksMS4wMzksMCwwLDEsLjE2Mi0uNTcxLDEuNCwxLjQsMCwwLDEsLjQ1OS0uNDM2LDIuNDM5LDIuNDM5LDAsMCwxLC43MjYtLjI4Myw0LjIxMSw0LjIxMSwwLDAsMSwuOTU2LS4xLDUuOTQyLDUuOTQyLDAsMCwxLC44MDguMDU4LDYuMjkyLDYuMjkyLDAsMCwxLC44NTYuMTc3LDUuOTk0LDUuOTk0LDAsMCwxLC44MzYuMyw0LjY1Nyw0LjY1NywwLDAsMSwuNzUxLjQyMlYxMy45YTcuNTA5LDcuNTA5LDAsMCwwLTEuNTI1LS40LDEyLjQyNiwxMi40MjYsMCwwLDAtMS45LS4xMjksOC43NjcsOC43NjcsMCwwLDAtMi4wNjQuMjM1LDUuMjM5LDUuMjM5LDAsMCwwLTEuNzE2LjczMywzLjY1NSwzLjY1NSwwLDAsMC0xLjE3MSwxLjI3MSwzLjczMSwzLjczMSwwLDAsMC0uNDMxLDEuODQ1LDMuNTg4LDMuNTg4LDAsMCwwLC43ODksMi4zNCw2LDYsMCwwLDAsMi4zOTUsMS42MzlxLjYzLjI2LDEuMTc1LjUwOWE2LjQ1OCw2LjQ1OCwwLDAsMSwuOTQyLjUxNywyLjQ2MywyLjQ2MywwLDAsMSwuNjI2LjU4NSwxLjIsMS4yLDAsMCwxLC4yMy43MTksMS4xLDEuMSwwLDAsMS0uMTQ0LjU1MiwxLjI2OSwxLjI2OSwwLDAsMS0uNDM1LjQ0MSwyLjM4MSwyLjM4MSwwLDAsMS0uNzI2LjI5Miw0LjM3Nyw0LjM3NywwLDAsMS0xLjAxOC4xMDUsNS43NzMsNS43NzMsMCwwLDEtMS45NjktLjM1QTUuODc0LDUuODc0LDAsMCwxLDE4LjI0NSwyMy43NTlabS01LjE1NC03LjYzOGg0VjEzLjU5NEg1LjkzOHYyLjUyN0g5LjkyVjI3LjM3NWgzLjE3MVpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmY7ZmlsbC1ydWxlOmV2ZW5vZGRcXFwiLz5cIixcblx0XCJUeXBvU2NyaXB0XCI6IFwiPHBhdGggZD1cXFwiTTIzLjA5MywyMS4zYTMuODQ3LDMuODQ3LDAsMCwxLTEuMTguMTY1Yy0zLjU1NSwwLTguNzc4LTEyLjQyNC04Ljc3OC0xNi41NTksMC0xLjUyMy4zNjItMi4wMzEuODctMi40NjZDOS42NTMsMi45NDMsNC40Myw0LjUzOSwyLjc2MSw2LjU3YTQuMDQ4LDQuMDQ4LDAsMCwwLS41OCwyLjMyMUMyLjE4MSwxNS4zNDgsOS4wNzIsMzAsMTMuOTMzLDMwYzIuMjQ4LDAsNi4wNDEtMy43LDkuMTYtOC43XFxcIiBzdHlsZT1cXFwiZmlsbDojZmY4NzAwXFxcIi8+PHBhdGggZD1cXFwiTTIwLjgyMywyYzQuNSwwLDksLjcyNSw5LDMuMjY0LDAsNS4xNTEtMy4yNjQsMTEuMzg5LTQuOTMzLDExLjM4OS0yLjk3NCwwLTYuNjczLTguMjY5LTYuNjczLTEyLjQsMC0xLjg4Ni43MjUtMi4yNDksMi42MTEtMi4yNDlcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZjg3MDBcXFwiLz5cIixcblx0XCJWXCI6IFwiPHBhdGggZD1cXFwiTTIwLjQ2NywyOS4yODgsMjkuOTUyLDIuOTEzYS41LjUsMCwwLDAtLjU2Ni0uNzI4TDIxLjkyNywyLjlhMS40NjQsMS40NjQsMCwwLDAtMS4xNDEuOUwxMi4wMDcsMjkuMDA2YS41NzMuNTczLDAsMCwwLC41NzguODEzaDcuMjZhLjY1Ny42NTcsMCwwLDAsLjU3Ny0uNFpcXFwiIHN0eWxlPVxcXCJmaWxsOiM1MzZiOGFcXFwiLz48cGF0aCBkPVxcXCJNMi42MTQsMi4xODVsNy40NTkuNzE5YTEuNDY2LDEuNDY2LDAsMCwxLDEuMTQyLjlMMjAuMTgsMjkuNDEzYS4yODYuMjg2LDAsMCwxLS4yODkuNDA2SDEyLjU4NWExLjMxMSwxLjMxMSwwLDAsMS0xLjE1Mi0uODFMMi4wNDgsMi45MTNBLjUuNSwwLDAsMSwyLjYxNCwyLjE4NVpcXFwiIHN0eWxlPVxcXCJmaWxsOiM1ZDg3YmZcXFwiLz5cIixcblx0XCJWYWxhXCI6IFwiPHBhdGggZD1cXFwiTTEyLjUwOSwxNy4xOTNjLS4xNjUtNi44MzYtLjMyNS0xMi40NTUtLjM1Ny0xMi40ODdBNy45MTYsNy45MTYsMCwwLDAsOS44NzksNS44NzQsNy42MDYsNy42MDYsMCwwLDAsNy4zMjQsOS4xODhhOC40MjIsOC40MjIsMCwwLDAtLjU4NywzLjU0Myw0LjY2NSw0LjY2NSwwLDAsMCwuMiwxLjk2MiwzLjQxNywzLjQxNywwLDAsMSwuMTgyLjU2Yy0uMDEyLjAwOS0uMzM4LS4wMTgtLjcyNC0uMDYxLTEuODY4LS4yMDctMi43ODYtMS4wNS0zLTIuNzU3QTYuMzEyLDYuMzEyLDAsMCwxLDQuODUsNy43MTlhMTUuMTM0LDE1LjEzNCwwLDAsMSw4LjQxNC01LjE2MywxMi44OTEsMTIuODkxLDAsMCwxLDIuNTQyLS4yMzVsMS43NDgtLjA1LjA1OSwyLjUwNmMuMDMyLDEuMzc4LjEsNi4zNTguMTYxLDExLjA2N3MtLjI1Miw4LjI5LS4yMTksOC40QzE5LjUsMTcuODc5LDIyLDEzLjA3MywyNC4zNjcsNi4yNTNsMS40MjctMy45ODNIMjguNTRjLS4wMjIuMDYzLTIuNzUxLDYuNS01LjUxNCwxMy45MTZsLTUuNDczLDEzLjU1SDEyLjk3NkMxMi45NzYsMjcuOTA2LDEyLjUzNSwxOC40ODYsMTIuNTA5LDE3LjE5M1pcXFwiIHN0eWxlPVxcXCJmaWxsOiM0MDM3NTdcXFwiLz48cGF0aCBkPVxcXCJNMTcuNzMyLDMwSDEyLjcxM3YtLjI2M2MwLTEuMTM3LS4xNy01LjE5Mi0uMzA3LTguNDUyLS4wODEtMS45MjktLjE1LTMuNi0uMTYxLTQuMDg3LS4xNTYtNi40NzktLjI4Ni0xMS0uMzM2LTEyLjE2M2ExMS42NzQsMTEuNjc0LDAsMCwwLTEuODc0LDEuMDQ5LDcuMzQ4LDcuMzQ4LDAsMCwwLTIuNDY2LDMuMkE4LjE0Niw4LjE0NiwwLDAsMCw3LDEyLjczMSw0LjM3LDQuMzcsMCwwLDAsNy4xODUsMTQuNmMuMjE1LjU2OS4yNzMuNzIzLjEuODU5LS4wOTMuMDczLS4xMDcuMDg0LS45MTYtLjAwNy0xLjk3Ni0uMjE5LTMtMS4xNjctMy4yMzQtMi45ODZBNi41NjgsNi41NjgsMCwwLDEsNC42NCw3LjU2MSwxNS40MzksMTUuNDM5LDAsMCwxLDEzLjIsMi4zLDEzLjE3NiwxMy4xNzYsMCwwLDEsMTUuOCwyLjA1OEwxNy44MTEsMmwuMDY1LDIuNzdjLjAzMiwxLjM5Mi4xMDYsNi40NjEuMTYxLDExLjA3LjAzMSwyLjYxNi0uMDUyLDQuOTE1LS4xMjQsNi40My45MzEtMi43NjMsMS45NTgtNS4yNywzLjAzMy03LjksMS4wNDMtMi41NDcsMi4xMjItNS4xOCwzLjE3My04LjIwN2wxLjQ5MS00LjE2aDMuM2wtLjEyNS4zNTFjMCwuMDA3LS4wMzEuMDc2LS4wODQuMi0xLjEsMi42MjItMy4yNTksNy44ODktNS40MywxMy43MTdabS00LjQ5NS0uNTI2aDQuMTRsNS40MDctMTMuMzg2YzIuMTI0LTUuNyw0LjI0My0xMC44NzYsNS4zNjItMTMuNTU1SDI1Ljk3OUwyNC42MTQsNi4zNDJjLTEuMDU1LDMuMDM4LTIuMTM3LDUuNjc4LTMuMTgzLDguMjMxLTEuMzExLDMuMi0yLjU1LDYuMjI2LTMuNjI2LDkuNzQ3bC0uMjU1LjgzMS0uMjQ4LS44MzNhMy4yNzQsMy4yNzQsMCwwLDEsLjAyMS0uODM5Yy4wNzQtMS4zNS4yMjktNC4xNTguMTg4LTcuNjMzLS4wNTUtNC42MDctLjEyOS05LjY3NC0uMTYxLTExLjA2NEwxNy4zLDIuNTQxbC0xLjQ4NC4wNDNhMTIuNzI5LDEyLjcyOSwwLDAsMC0yLjQ5LjIyOEExNC44ODcsMTQuODg3LDAsMCwwLDUuMDYsNy44NzdhNi4wNzEsNi4wNzEsMCwwLDAtMS40LDQuNTI0Yy4yLDEuNTgsMS4wMjgsMi4zMzYsMi43NywyLjUyOWwuMzMzLjAzNWMtLjAxOS0uMDU0LS4wNDEtLjExNC0uMDY2LS4xNzlhNC44OTMsNC44OTMsMCwwLDEtLjIxOS0yLjA1NSw4LjcsOC43LDAsMCwxLC42LTMuNjM4LDcuODgzLDcuODgzLDAsMCwxLDIuNjQ0LTMuNDNjLjAyMi0uMDE2LDIuMjMyLTEuNTI1LDIuNjE1LTEuMTQyLjA5Mi4wOTIuMTMxLjEzMS40MzMsMTIuNjY2aDBjLjAxLjQ4NS4wOCwyLjE0OS4xNiw0LjA3NkMxMy4wNiwyNC4zMTMsMTMuMjE3LDI4LjA2LDEzLjIzNywyOS40NzRaXFxcIiBzdHlsZT1cXFwiZmlsbDojYzhjOGM4XFxcIi8+XCIsXG5cdFwiVkIuTmV0XCI6IFwiPHBhdGggZD1cXFwiTTYuNjcsNy44MzYsOSwxOC45MTUsMTEuMzM2LDcuODM2SDE2TDExLjMzNiwyNC4xNjRINi42NzJMMiw3LjgzNlpcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMDUxOWFcXFwiLz48cGF0aCBkPVxcXCJNMTguMzMxLDcuODM2aDcuNmE0LjA4LDQuMDgsMCwwLDEsMi45LDEuNzQ5LDMuNzgsMy43OCwwLDAsMSwuNTcxLDIuMDQsMy45ODUsMy45ODUsMCwwLDEtLjU3MSwyLjAzNCw0LjEwOCw0LjEwOCwwLDAsMS0yLjM0MSwxLjc2Myw0LjEsNC4xLDAsMCwxLDIuOTI5LDEuNzU2LDMuOCwzLjgsMCwwLDEsLjU4LDIuMSw0LjY2Myw0LjY2MywwLDAsMS0uNTc5LDIuNTQ2LDUuMDQ3LDUuMDQ3LDAsMCwxLTMuNSwyLjMzOEgxOC4zMzFaTTIzLDE0LjI1MmgxLjE2NmExLjc1NCwxLjc1NCwwLDAsMCwwLTMuNUgyM1ptMCw3SDI0LjM5YTIuMDQ3LDIuMDQ3LDAsMCwwLDAtNC4wODlIMjNaXFxcIiBzdHlsZT1cXFwiZmlsbDojMDA1MTlhXFxcIi8+XCIsXG5cdFwiVkJBXCI6IFwiPHBvbHlnb24gcG9pbnRzPVxcXCIxMC40NTcgMTEuMDkyIDE2LjAxNCAxMy44MzkgMTYuMDE0IDE4LjMwNyAxMC40NTcgMTUuMzgyIDEwLjQ1NyAxMS4wOTJcXFwiIHN0eWxlPVxcXCJmaWxsOiM2NDgzYzBcXFwiLz48cGF0aCBkPVxcXCJNMTYuMiwxOC42MTNsLTUuOTI2LTMuMTJWMTAuOEwxNi4yLDEzLjcyNFpNMTAuNjQyLDE1LjI3LDE1LjgzLDE4VjEzLjk1M2wtNS4xODgtMi41NjRaXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIxNi4zNzEgMTMuODM5IDE2LjM3MSAxOC4zMDcgMjEuMzE1IDE1LjgxNCAyMS4zMTUgMTEuMzU0IDE2LjM3MSAxMy44MzlcXFwiIHN0eWxlPVxcXCJmaWxsOiM2NDgzYzBcXFwiLz48cGF0aCBkPVxcXCJNMTYuMTg2LDE4LjYwN1YxMy43MjVsNS4zMTMtMi42N3Y0Ljg3M1ptLjM2OS00LjY1NXY0LjA1NUwyMS4xMywxNS43VjExLjY1M1pcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjEwLjcwMyAxMC43OTcgMTYuMTg2IDEzLjU4IDIxLjA4MiAxMS4wNjQgMTUuNzc3IDguMzg5IDEwLjcwMyAxMC43OTdcXFwiIHN0eWxlPVxcXCJmaWxsOiM2NDgzYzBcXFwiLz48cGF0aCBkPVxcXCJNMTYuMTg3LDEzLjc4OGwtNS45LTMsNS41LTIuNjA4LDUuNzA5LDIuODc5Wk0xMS4xMjIsMTAuOGw1LjA2NCwyLjU3LDQuNDktMi4zMDgtNC45LTIuNDcxWlxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMTguOTU3IDE1LjgyOSAyNC41MTUgMTguNTc1IDI0LjUxNSAyMy4wNDMgMTguOTU3IDIwLjExOCAxOC45NTcgMTUuODI5XFxcIiBzdHlsZT1cXFwiZmlsbDojOTUyNzgxXFxcIi8+PHBhdGggZD1cXFwiTTI0LjcsMjMuMzQ5bC01LjkyNi0zLjEydi00LjdMMjQuNywxOC40NlptLTUuNTU3LTMuMzQzLDUuMTg4LDIuNzMxVjE4LjY4OWwtNS4xODgtMi41NjRaXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIyNC44NzEgMTguNTc1IDI0Ljg3MSAyMy4wNDMgMjkuODE1IDIwLjU1IDI5LjgxNSAxNi4wOSAyNC44NzEgMTguNTc1XFxcIiBzdHlsZT1cXFwiZmlsbDojOTUyNzgxXFxcIi8+PHBhdGggZD1cXFwiTTI0LjY4NywyMy4zNDNWMTguNDYxTDMwLDE1Ljc5MXY0Ljg3M1ptLjM2OS00LjY1NXY0LjA1NWw0LjU3NS0yLjMwOFYxNi4zODlaXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIxOS4yMDMgMTUuNTQ2IDI0LjY4NyAxOC4zMjkgMjkuNTgzIDE1LjgxMiAyNC4zNjQgMTMuMzQ2IDE5LjIwMyAxNS41NDZcXFwiIHN0eWxlPVxcXCJmaWxsOiM5NTI3ODFcXFwiLz48cGF0aCBkPVxcXCJNMjQuNjg3LDE4LjUzNmwtNS45Mi0zLjAwNSw1LjYtMi4zODdMMzAsMTUuODA1Wk0xOS42NCwxNS41Nmw1LjA0NiwyLjU2MSw0LjQ3OS0yLjMtNC44MDYtMi4yN1pcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjIuMTkgMTUuNDk2IDcuNzQ4IDE4LjI0MyA3Ljc0OCAyMi43MTEgMi4xOSAxOS43ODYgMi4xOSAxNS40OTZcXFwiIHN0eWxlPVxcXCJmaWxsOiNkODdiMzBcXFwiLz48cGF0aCBkPVxcXCJNNy45MzIsMjMuMDE3LDIuMDA2LDE5LjlWMTUuMmw1LjkyNiwyLjkyOVpNMi4zNzUsMTkuNjc0bDUuMTg4LDIuNzMxVjE4LjM1N0wyLjM3NSwxNS43OTNaXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCI4LjEwNCAxOC4yNDMgOC4xMDQgMjIuNzExIDEzLjA0OCAyMC4yMTggMTMuMDQ4IDE1Ljc1OCA4LjEwNCAxOC4yNDNcXFwiIHN0eWxlPVxcXCJmaWxsOiNkODdiMzBcXFwiLz48cGF0aCBkPVxcXCJNNy45MiwyMy4wMTFWMTguMTI5bDUuMzEzLTIuNjd2NC44NzNabS4zNjktNC42NTV2NC4wNTVMMTIuODY0LDIwLjFWMTYuMDU3WlxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMi40MzYgMTUuMjEzIDcuOTIgMTcuOTk3IDEyLjgxNiAxNS40OCA3LjU5NyAxMy4wMTQgMi40MzYgMTUuMjEzXFxcIiBzdHlsZT1cXFwiZmlsbDojZDg3YjMwXFxcIi8+PHBhdGggZD1cXFwiTTcuOTIsMTguMiwyLDE1LjJsNS42LTIuMzg3LDUuNjMyLDIuNjYxWk0yLjg3MywxNS4yMjhsNS4wNDYsMi41NjEsNC40NzktMi4zLTQuODA2LTIuMjdaXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIxMC44NzUgMTYuMjk2IDE2LjQzMiAxOS4wNDIgMTYuNDMyIDIzLjUxMSAxMC44NzUgMjAuNTg1IDEwLjg3NSAxNi4yOTZcXFwiIHN0eWxlPVxcXCJmaWxsOiNlMGQ0MDBcXFwiLz48cGF0aCBkPVxcXCJNMTYuNjE3LDIzLjgxNiwxMC42OTEsMjAuN1YxNmw1LjkyNiwyLjkyOVpNMTEuMDYsMjAuNDc0bDUuMTg4LDIuNzMxVjE5LjE1N0wxMS4wNiwxNi41OTNaXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIxNi43ODkgMTkuMDQyIDE2Ljc4OSAyMy41MTEgMjEuNzMzIDIxLjAxNyAyMS43MzMgMTYuNTU3IDE2Ljc4OSAxOS4wNDJcXFwiIHN0eWxlPVxcXCJmaWxsOiNlMGQ0MDBcXFwiLz48cGF0aCBkPVxcXCJNMTYuNiwyMy44MTFWMTguOTI5bDUuMzEzLTIuNjd2NC44NzNabS4zNjktNC42NTV2NC4wNTVMMjEuNTQ5LDIwLjlWMTYuODU3WlxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMTEuMTIxIDE2LjAwMSAxNi42MDUgMTguNzg0IDIxLjUwMSAxNi4yNjcgMTYuMTk2IDEzLjU5MyAxMS4xMjEgMTYuMDAxXFxcIiBzdHlsZT1cXFwiZmlsbDojZTBkNDAwXFxcIi8+PHBhdGggZD1cXFwiTTE2LjYwNSwxOC45OTFsLTUuOS0zLDUuNS0yLjYwOCw1LjcwOSwyLjg3OVpNMTEuNTQsMTYuMDA2bDUuMDY0LDIuNTcsNC40OS0yLjMwOC00LjktMi40NzFaXFxcIi8+XCIsXG5cdFwiVmVsb2NpdHlcIjogXCI8cGF0aCBkPVxcXCJNMTYuMjQ1LDI0LjE4N0E4LjM1Miw4LjM1MiwwLDEsMSwyNC42LDE1LjgzNSw4LjM2Miw4LjM2MiwwLDAsMSwxNi4yNDUsMjQuMTg3Wm0wLTE0Ljc2MmE2LjQxLDYuNDEsMCwxLDAsNi40MSw2LjQxQTYuNDE3LDYuNDE3LDAsMCwwLDE2LjI0NSw5LjQyNVpcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjI5LjEzMiA4LjU1MSAyNS40NTEgNi41MzEgMjUuNDUxIDcuNDc0IDE1LjgyMSA3LjQ3NCAxNS44MjEgOS40MjQgMjUuNDUxIDkuNDI0IDI1LjQ1MSAxMC41NzEgMjkuMTMyIDguNTUxXFxcIiBzdHlsZT1cXFwiZmlsbDojMjYyNjkyXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCI4Ljk4NCAyIDYuOTY0IDUuNjg3IDcuOTA2IDUuNjg3IDcuOTA2IDE1LjMyOCA5Ljg1NyAxNS4zMjggOS44NTcgNS42ODcgMTEuMDA0IDUuNjg3IDguOTg0IDJcXFwiIHN0eWxlPVxcXCJmaWxsOiMyNjI2OTNcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjIzLjcwNSAzMCAyMS42ODUgMjYuMjQzIDIyLjYyOCAyNi4yNDMgMjIuNjI4IDE2LjQxNyAyNC41NzggMTYuNDE3IDI0LjU3OCAyNi4yNDMgMjUuNzI1IDI2LjI0MyAyMy43MDUgMzBcXFwiIHN0eWxlPVxcXCJmaWxsOiMyNjI2OTNcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjIuODY4IDIzLjMyIDYuNjM0IDIxLjMgNi42MzQgMjIuMjQyIDE2LjQ4NCAyMi4yNDIgMTYuNDg0IDI0LjE5MiA2LjYzNCAyNC4xOTIgNi42MzQgMjUuMzQgMi44NjggMjMuMzJcXFwiIHN0eWxlPVxcXCJmaWxsOiMyNjI2OTJcXFwiLz5cIixcblx0XCJWZXJpbG9nXCI6IFwiPHBhdGggZD1cXFwiTTI5LjAwNywxNy40aC4wMzdhMS40NDksMS40NDksMCwwLDAsLjkzOC0uMzE2LDEuNDczLDEuNDczLDAsMCwwLC41MTktMS4wMzFWMTUuOWExLjQxMywxLjQxMywwLDAsMC0xLjM3Ni0xLjNoLS4wMDljLS42ODcsMC0xLjM3NCwwLTIuMDYyLDBIMjUuNVYxMS45NTZsMy41MTMsMGguMDM0QTEuNDExLDEuNDExLDAsMCwwLDMwLjUsMTAuNmwwLS4wOSwwLS4wMzJhMS40MTIsMS40MTIsMCwwLDAtLjY0Ni0xLjEsMS40NTUsMS40NTUsMCwwLDAtLjgzNS0uMjI1SDI1LjQ1NmEyLjk2LDIuOTYsMCwwLDAtLjI3OC0xLjAzNCwyLjkwOSwyLjkwOSwwLDAsMC0xLjctMS40NjEsMi42ODQsMi42ODQsMCwwLDAtLjYyOS0uMTNWNC45NDdjMC0uNjksMC0xLjM4LDAtMi4wNjNBMS40MTQsMS40MTQsMCwwLDAsMjEuNDgxLDEuNWgtLjExNmExLjQsMS40LDAsMCwwLTEuMzE5LDEuMzg4cTAsMS4xNTQsMCwyLjMwNlY2LjVIMTcuNFY0Ljk4MWMwLS43LDAtMS40LDAtMi4wODdBMS40MSwxLjQxLDAsMCwwLDE2LjA1MywxLjVIMTUuOWExLjQwOCwxLjQwOCwwLDAsMC0xLjMsMS4zODNjMCwuNjg4LDAsMS4zNzYsMCwyLjA2NFY2LjUwOHEtMS4zMTksMC0yLjYzOSwwVjQuODg4YzAtLjY2NiwwLTEuMzMyLDAtMS45ODlhMS4zNjYsMS4zNjYsMCwwLDAtLjQtLjk3NSwxLjQsMS40LDAsMCwwLS45ODQtLjQyNEgxMC41QTEuNDEsMS40MSwwLDAsMCw5LjE1OSwyLjg4MWMwLC42ODMsMCwxLjM2NiwwLDIuMDQ5djEuNmEyLjkzMywyLjkzMywwLDAsMC0yLjQ2NiwxLjksMi44NzgsMi44NzgsMCwwLDAtLjE2MS43MjZINC45NTdjLS42OTMsMC0xLjM4NiwwLTIuMDczLDBIMi44NzZBMS40MTMsMS40MTMsMCwwLDAsMS41LDEwLjV2LjA5NWExLjQxNywxLjQxNywwLDAsMCwuNTc1LDEuMDkxLDEuNDYzLDEuNDYzLDAsMCwwLC44ODcuMjczaC4wMTdsMy41MjIsMFYxNC42SDQuOTQ4Yy0uNjg2LDAtMS4zNzUsMC0yLjA1NywwQTEuNDI4LDEuNDI4LDAsMCwwLDEuNSwxNS45MTNWMTYuMWExLjQsMS40LDAsMCwwLDEuMzg2LDEuM2MuNzExLDAsMS40MjMsMCwyLjEzNSwwSDYuNVYyMC4wNWwtLjI5MiwwYy0uNjEzLS4wMDctMS4yMjYsMC0xLjgzOCwwSDMuMDg3YTEuNjMzLDEuNjMzLDAsMCwwLS45MTguMjExQTEuNDM3LDEuNDM3LDAsMCwwLDEuNSwyMS40VjIxLjVhMS40MTcsMS40MTcsMCwwLDAsMS4zNzUsMS4zMzdoLjAwNXEuNjQ1LDAsMS4yOSwwSDYuNTQ2YTIuODMyLDIuODMyLDAsMCwwLDEuOTc4LDIuNSwyLjcxMiwyLjcxMiwwLDAsMCwuNjMxLjEyOHYxLjYyYzAsLjY3OCwwLDEuMzU0LDAsMi4wMjVhMS40LDEuNCwwLDEsMCwyLjgtLjA5MmwwLTMuNTI3SDE0LjZ2My41MTZBMS40MTQsMS40MTQsMCwwLDAsMTUuOTQ3LDMwLjVIMTYuMWExLjQxMSwxLjQxMSwwLDAsMCwxLjMtMS4zODVxLjAwNi0xLjA2NiwwLTIuMTMxVjI1LjVoMi42NDRWMjkuMUExLjQyMywxLjQyMywwLDAsMCwyMS40LDMwLjVoLjExOWExLjQwOCwxLjQwOCwwLDAsMCwxLjE2LS43NDEsMS42NDMsMS42NDMsMCwwLDAsLjE2Ny0uODMzVjI1LjQ3NGEyLjY3MSwyLjY3MSwwLDAsMCwuNjItLjEyOCwyLjkyOCwyLjkyOCwwLDAsMCwxLjg4Ni0xLjg4OCwyLjgzNCwyLjgzNCwwLDAsMCwuMTIzLS42MTNoMS41ODFjLjY4NywwLDEuMzc1LDAsMi4wNTcsMGguMDA4QTEuNDIyLDEuNDIyLDAsMCwwLDMwLjUsMjEuNDgxdi0uMTE4YTEuNDA5LDEuNDA5LDAsMCwwLTEuMzgyLTEuMzE4aDBjLS43MTgsMC0xLjQzNiwwLTIuMTU0LDBIMjUuNVYxNy40WlxcXCIgc3R5bGU9XFxcImZpbGw6I2M1YzVjNTtvcGFjaXR5OjAuM1xcXCIvPjxwYXRoIGQ9XFxcIk0xMC41MTUsMmguMDU2YS45MS45MSwwLDAsMSwuODg2Ljg5M2MuMDA2LDEuMTA4LDAsMi4yMTYsMCwzLjMyNC0uNiwwLTEuMiwwLTEuOCwwLDAtMS4xMTEsMC0yLjIyMiwwLTMuMzMzQS45MDcuOTA3LDAsMCwxLDEwLjUxNSwyWlxcXCIgc3R5bGU9XFxcImZpbGw6IzFhMzQ4ZlxcXCIvPjxwYXRoIGQ9XFxcIk0xNS45MzcsMmguMTE2YS45MTIuOTEyLDAsMCwxLC44NDYuODg5Yy4wMDYsMS4xMDksMCwyLjIxOSwwLDMuMzI5SDE1LjFjMC0xLjExLDAtMi4yMiwwLTMuMzNBLjkxMS45MTEsMCwwLDEsMTUuOTM3LDJaXFxcIiBzdHlsZT1cXFwiZmlsbDojMWEzNDhmXFxcIi8+PHBhdGggZD1cXFwiTTIxLjM5MiwyaC4wODlhLjkwNy45MDcsMCwwLDEsLjg1OS44ODFjLjAwNywxLjExMiwwLDIuMjI1LDAsMy4zMzdoLTEuOGMwLTEuMTA5LDAtMi4yMTcsMC0zLjMyNkEuOTEyLjkxMiwwLDAsMSwyMS4zOTIsMlpcXFwiIHN0eWxlPVxcXCJmaWxsOiMxYTM0OGZcXFwiLz48cGF0aCBkPVxcXCJNMiwxMC41MThhLjkwOC45MDgsMCwwLDEsLjg4Mi0uODU5YzEuMTEyLS4wMDcsMi4yMjMsMCwzLjMzNCwwcTAsLjksMCwxLjhjLTEuMDc5LDAtMi4xNTgsMC0zLjIzNywwYS45ODMuOTgzLDAsMCwxLS42LS4xNzNBLjkyNC45MjQsMCwwLDEsMiwxMC41NzFaXFxcIiBzdHlsZT1cXFwiZmlsbDojMWEzNDhmXFxcIi8+PHBhdGggZD1cXFwiTTI1Ljc4Niw5LjY1NWgzLjIzM2ExLDEsMCwwLDEsLjU2MS4xNDMuOTI0LjkyNCwwLDAsMSwuNDIuNzE2di4wNThhLjkzMy45MzMsMCwwLDEtLjMuNjUxLjk1Ny45NTcsMCwwLDEtLjY3Ny4yMzRjLTEuMDc5LDAtMi4xNTgsMC0zLjIzNywwUTI1Ljc4NiwxMC41NTYsMjUuNzg2LDkuNjU1WlxcXCIgc3R5bGU9XFxcImZpbGw6IzFhMzQ4ZlxcXCIvPjxwYXRoIGQ9XFxcIk0yLDE1Ljk0NGEuOTEzLjkxMywwLDAsMSwuODg4LS44NDJjMS4xMDktLjAwNywyLjIxOSwwLDMuMzI4LDBxMCwuOSwwLDEuOGMtMS4xMDksMC0yLjIxNywwLTMuMzI2LDBBLjkxNS45MTUsMCwwLDEsMiwxNi4wNjNaXFxcIiBzdHlsZT1cXFwiZmlsbDojMWEzNDhmXFxcIi8+PHBhdGggZD1cXFwiTTI1Ljc4NiwxNS4xYzEuMTA5LDAsMi4yMTgsMCwzLjMyNiwwYS45MTQuOTE0LDAsMCwxLC44ODkuODM1di4xMTdhLjk0Ni45NDYsMCwwLDEtLjMzMS42NDEuOTczLjk3MywwLDAsMS0uNjUxLjIwN0gyNS43ODZRMjUuNzg1LDE2LDI1Ljc4NiwxNS4xWlxcXCIgc3R5bGU9XFxcImZpbGw6IzFhMzQ4ZlxcXCIvPjxwYXRoIGQ9XFxcIk0yLjQzMywyMC42NzhhMS4xMjEsMS4xMjEsMCwwLDEsLjY0My0uMTM2YzEuMDQzLjAwNiwyLjA4Ni0uMDA2LDMuMTI5LjAwNi4wMjguNiwwLDEuMi4wMTIsMS44LTEuMTEsMC0yLjIyMSwwLTMuMzMxLDBBLjkxMS45MTEsMCwwLDEsMiwyMS40ODNWMjEuNEEuOTI1LjkyNSwwLDAsMSwyLjQzMywyMC42NzhaXFxcIiBzdHlsZT1cXFwiZmlsbDojMWEzNDhmXFxcIi8+PHBhdGggZD1cXFwiTTI1Ljc4NiwyMC41NDNjMS4xMDgsMCwyLjIxNiwwLDMuMzI0LDBhLjkxNC45MTQsMCwwLDEsLjg5Ljg0N3YuMDlhLjkxMS45MTEsMCwwLDEtLjg4OC44NTljLTEuMTA5LjAwNy0yLjIxOCwwLTMuMzI2LDBDMjUuNzg2LDIxLjc0MywyNS43ODUsMjEuMTQzLDI1Ljc4NiwyMC41NDNaXFxcIiBzdHlsZT1cXFwiZmlsbDojMWEzNDhmXFxcIi8+PHBhdGggZD1cXFwiTTkuNjU2LDI1Ljc4MWgxLjhjMCwxLjA4MSwwLDIuMTYyLDAsMy4yNDNhLjk1Ny45NTcsMCwwLDEtLjIzNS42NzcuOTMxLjkzMSwwLDAsMS0uNjUzLjNoLS4wNTJhLjkwNy45MDcsMCwwLDEtLjg2LS44ODJDOS42NTEsMjguMDA2LDkuNjU4LDI2Ljg5NCw5LjY1NiwyNS43ODFaXFxcIiBzdHlsZT1cXFwiZmlsbDojMWEzNDhmXFxcIi8+PHBhdGggZD1cXFwiTTE1LjEsMjUuNzgxaDEuOGMwLDEuMTEsMCwyLjIyLDAsMy4zM2EuOTE0LjkxNCwwLDAsMS0uODM2Ljg4OWgtLjExNmEuOTQuOTQsMCwwLDEtLjYxOS0uMzA2Ljk2Mi45NjIsMCwwLDEtLjIyOC0uNjczUTE1LjEsMjcuNCwxNS4xLDI1Ljc4MVpcXFwiIHN0eWxlPVxcXCJmaWxsOiMxYTM0OGZcXFwiLz48cGF0aCBkPVxcXCJNMjAuNTQ3LDI5LjEwNmMwLTEuMTA4LDAtMi4yMTcsMC0zLjMyNWgxLjhjMCwxLjA0OCwwLDIuMSwwLDMuMTQ0YTEuMTc4LDEuMTc4LDAsMCwxLS4xMDUuNTkuOTIuOTIsMCwwLDEtLjc1Ni40ODRIMjEuNEEuOTExLjkxMSwwLDAsMSwyMC41NDcsMjkuMTA2WlxcXCIgc3R5bGU9XFxcImZpbGw6IzFhMzQ4ZlxcXCIvPjxwYXRoIGQ9XFxcIk0yNC43MzIsOC4zNDlBMi40MjksMi40MjksMCwwLDAsMjMuMzEsNy4xMzEsMy4yNDUsMy4yNDUsMCwwLDAsMjIuMjU0LDdjLTQuMy4wMDgtOC42LS4wMTEtMTIuOTA1LjAxQTIuNDM2LDIuNDM2LDAsMCwwLDcuMTU3LDguNjA2LDMuNjExLDMuNjExLDAsMCwwLDcsOS45MzRxMCw2LjI1LDAsMTIuNWEyLjY3MywyLjY3MywwLDAsMCwuMjY4LDEuMjE5QTIuNDMxLDIuNDMxLDAsMCwwLDguNjg4LDI0Ljg3LDMuNzU2LDMuNzU2LDAsMCwwLDkuOTI3LDI1SDIyLjA3YTMuNzYyLDMuNzYyLDAsMCwwLDEuMjQzLS4xMjdBMi40MjksMi40MjksMCwwLDAsMjQuODc1LDIzLjMsMy44LDMuOCwwLDAsMCwyNSwyMi4wNzFxMC02LjI1LDAtMTIuNUEyLjY4NiwyLjY4NiwwLDAsMCwyNC43MzIsOC4zNDlaXFxcIiBzdHlsZT1cXFwiZmlsbDojMWEzNDhmXFxcIi8+PHBhdGggZD1cXFwiTTcuNSw4LjMwN2wuMDg0LS4ycS45NjgsMCwxLjkzNS4wMjRoLjM5NHEuMTc5LDAsLjM5NC0uMDEyLjc3Ni0uMDM2LDIuODA3LS4wMzYuNDA2LDAsLjc4OC4wMDZ0Ljc0MS4wMThhLjIzNC4yMzQsMCwwLDEsLjEwOC4xMDhsLS4wMjQuMTkxcS0uMDcyLjExOS0uMzU4LjExOWgtLjFhMTAuMywxMC4zLDAsMCwwLTEuMS4wNTQsMi4xNzksMi4xNzksMCwwLDAtMSwuMjQ1LjQzMi40MzIsMCwwLDAtLjE1NS4zNDYsNC4wNSw0LjA1LDAsMCwwLC4zOTQsMS40bDEuODE4LDQuMjE3LjYzNCwxLjRxLjkyMSwyLjIyMiwxLjgxOSw0LjUzOS4xLjI1MS4xNzkuNDU0bC44LTEuOTU5cS42Mi0xLjQ4MSwxLjI1Mi0zLjE1NGwuODIzLTIuMjQ2cS4wMjQtLjA3Mi4xMzEtLjQ3OGExNy4wMjYsMTcuMDI2LDAsMCwwLDEuMTU3LTQsLjU2MS41NjEsMCwwLDAtLjE2MS0uMzY0LDEuMTY1LDEuMTY1LDAsMCwwLS41Mi0uMyw3LjcyMyw3LjcyMywwLDAsMC0uOTMyLS4xNDNsLS44ODQtLjEwOGEuMzM3LjMzNywwLDAsMS0uMTA4LS4ybC4wMzYtLjEsMy44Ny0uMDM2SDIzLjZhMy4xLDMuMSwwLDAsMSwuODg1LjA4NGwuMDEyLjFhLjY0MS42NDEsMCwwLDEtLjA3Mi4yNTEsMi40NDksMi40NDksMCwwLDEtLjUyNi4xMTksMy42LDMuNiwwLDAsMC0xLjI0NC4yODEsMS44MTUsMS44MTUsMCwwLDAtLjUuNjg3bC0zLjEzNCw3Ljc2NXEtMS40NjYsMy41LTIuMDg2LDUuNDIzbC0uMzQ1LDEuMDM5YS41MzEuNTMxLDAsMCwxLS4yNjMuMSwxLjM4MywxLjM4MywwLDAsMS0uMy0uMDM2cS0xLjQyMi0zLjY3Ni0yLjMxOC01LjY4MUwxMC4wNTUsOS45MmEzLjI0NywzLjI0NywwLDAsMC0uNTkxLS44OSw1LjQ2Myw1LjQ2MywwLDAsMC0xLjM3OS0uNDI0LDQuMzQ3LDQuMzQ3LDAsMCwxLS40NjYtLjExOUEuMzI2LjMyNiwwLDAsMSw3LjUsOC4zMDdaXFxcIiBzdHlsZT1cXFwiZmlsbDojYzVjMmZmXFxcIi8+XCIsXG5cdFwiVkhETFwiOiBcIjxwYXRoIGQ9XFxcIk0yLDJIMzBWMzBIMlptMS42ODkuMDY3QTEuNjI0LDEuNjI0LDAsMCwwLDIuMDYzLDMuNjkyVjI4LjMxNEExLjYyNSwxLjYyNSwwLDAsMCwzLjY4OSwyOS45NEgyOC4zMTZhMS42MjUsMS42MjUsMCwwLDAsMS42MjYtMS42MjZWMy42OTJhMS42MjQsMS42MjQsMCwwLDAtMS42MjYtMS42MjVaTTMuMDA4LDI4LjA3OWEuOTExLjkxMSwwLDAsMCwuOTExLjkxMkgyOC4wODNhLjkxMS45MTEsMCwwLDAsLjkxMS0uOTEyVjMuOTE5YS45MS45MSwwLDAsMC0uOTExLS45MTFIMy45MTlhLjkxLjkxLDAsMCwwLS45MTEuOTExWlxcXCIgc3R5bGU9XFxcImZpbGw6IzBkOWIzNVxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMjUuNTIgNS41MDIgMTguODU4IDI2LjQ5MSAxMy4xNTQgMjYuNDkxIDYuNDkyIDUuNTAyIDEwLjUwOCA1LjUwMiAxNi4wMjkgMjIuNzk1IDIxLjUwNCA1LjUwMiAyNS41MiA1LjUwMlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPlwiLFxuXHRcInZpbVwiOiBcIjxkZWZzPjxjbGlwUGF0aCBpZD1cXFwiYVxcXCI+PHBvbHlnb24gcG9pbnRzPVxcXCIyIDIgMzAgMiAzMCAzMCAyIDMwIDIgMiAyIDJcXFwiIHN0eWxlPVxcXCJmaWxsOm5vbmU7Y2xpcC1ydWxlOmV2ZW5vZGRcXFwiLz48L2NsaXBQYXRoPjwvZGVmcz48dGl0bGU+ZmlsZV90eXBlX3ZpbTwvdGl0bGU+PHBvbHlnb24gcG9pbnRzPVxcXCIyOS45ODkgMTUuODU2IDE1Ljg1NiAyLjAxMSAyLjAxMSAxNi4xMzYgMTUuODU2IDI5Ljk4OSAyOS45ODkgMTUuODU2IDI5Ljk4OSAxNS44NTZcXFwiIHN0eWxlPVxcXCJmaWxsOiMyMzFmMjA7ZmlsbC1ydWxlOmV2ZW5vZGRcXFwiLz48ZyBzdHlsZT1cXFwiY2xpcC1wYXRoOnVybCgjYSlcXFwiPjxwb2x5Z29uIHBvaW50cz1cXFwiMjkuOTg5IDE1Ljg1NiAxNS44NTYgMi4wMTEgMi4wMTEgMTYuMTM2IDE1Ljg1NiAyOS45ODkgMjkuOTg5IDE1Ljg1NiAyOS45ODkgMTUuODU2XFxcIiBzdHlsZT1cXFwiZmlsbDpub25lO3N0cm9rZTojMjMxZjIwO3N0cm9rZS1taXRlcmxpbWl0OjEwO3N0cm9rZS13aWR0aDowLjIxNjAwMDAwNTYwMjgzN3B4XFxcIi8+PC9nPjxwb2x5Z29uIHBvaW50cz1cXFwiMjguNTc1IDE1Ljg1NiAyOS40MjIgMTUuODU2IDE1Ljg1NiAyOS40MjIgMTUuODU2IDI4LjU3NSAyOC41NzUgMTUuODU2IDI4LjU3NSAxNS44NTZcXFwiIHN0eWxlPVxcXCJmaWxsOiMyOTY5NWQ7ZmlsbC1ydWxlOmV2ZW5vZGRcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjI4LjU3NSAxNS44NTYgMjkuNDIyIDE1Ljg1NiAxNS44NTYgMjkuNDIyIDE1Ljg1NiAyOC41NzUgMjguNTc1IDE1Ljg1NiAyOC41NzUgMTUuODU2XFxcIiBzdHlsZT1cXFwiZmlsbDpub25lO3N0cm9rZTojMjMxZjIwO3N0cm9rZS1taXRlcmxpbWl0OjEwO3N0cm9rZS13aWR0aDowLjIxNjAwMDAwNTYwMjgzN3B4XFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIyLjU3OCAxNi4xMzYgMy40MjUgMTYuMTM2IDE1Ljg1NiAyOC41NzUgMTUuODU2IDI5LjQyMiAyLjU3OCAxNi4xMzYgMi41NzggMTYuMTM2XFxcIiBzdHlsZT1cXFwiZmlsbDojMzE3MzY3O2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIyLjU3OCAxNi4xMzYgMy40MjUgMTYuMTM2IDE1Ljg1NiAyOC41NzUgMTUuODU2IDI5LjQyMiAyLjU3OCAxNi4xMzYgMi41NzggMTYuMTM2XFxcIiBzdHlsZT1cXFwiZmlsbDpub25lO3N0cm9rZTojMjMxZjIwO3N0cm9rZS1taXRlcmxpbWl0OjEwO3N0cm9rZS13aWR0aDowLjIxNjAwMDAwNTYwMjgzN3B4XFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIxNS44NTYgMy40MTggMTUuODU2IDIuNTc4IDIuNTc4IDE2LjEzNiAzLjQyNSAxNi4xMzYgMTUuODU2IDMuNDE4IDE1Ljg1NiAzLjQxOFxcXCIgc3R5bGU9XFxcImZpbGw6IzYwYzJhYztmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMTUuODU2IDMuNDE4IDE1Ljg1NiAyLjU3OCAyLjU3OCAxNi4xMzYgMy40MjUgMTYuMTM2IDE1Ljg1NiAzLjQxOCAxNS44NTYgMy40MThcXFwiIHN0eWxlPVxcXCJmaWxsOm5vbmU7c3Ryb2tlOiMyMzFmMjA7c3Ryb2tlLW1pdGVybGltaXQ6MTA7c3Ryb2tlLXdpZHRoOjAuMjE2MDAwMDA1NjAyODM3cHhcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjE1Ljg1NiAyLjU3OCAxNS44NTYgMy40MTggMjguNTc1IDE1Ljg1NiAyOS40MjIgMTUuODU2IDE1Ljg1NiAyLjU3OCAxNS44NTYgMi41NzhcXFwiIHN0eWxlPVxcXCJmaWxsOiM0M2I1NGE7ZmlsbC1ydWxlOmV2ZW5vZGRcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjE1Ljg1NiAyLjU3OCAxNS44NTYgMy40MTggMjguNTc1IDE1Ljg1NiAyOS40MjIgMTUuODU2IDE1Ljg1NiAyLjU3OCAxNS44NTYgMi41NzhcXFwiIHN0eWxlPVxcXCJmaWxsOm5vbmU7c3Ryb2tlOiMyMzFmMjA7c3Ryb2tlLW1pdGVybGltaXQ6MTA7c3Ryb2tlLXdpZHRoOjAuMjE2MDAwMDA1NjAyODM3cHhcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjE1Ljg1NiAyOC41NzUgMjguNTc1IDE1Ljg1NiAxNS44NTYgMy40MTggMy40MjUgMTYuMTM2IDE1Ljg1NiAyOC41NzUgMTUuODU2IDI4LjU3NVxcXCIgc3R5bGU9XFxcImZpbGw6IzNjODM3NjtmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMTUuODU2IDI4LjU3NSAyOC41NzUgMTUuODU2IDE1Ljg1NiAzLjQxOCAzLjQyNSAxNi4xMzYgMTUuODU2IDI4LjU3NSAxNS44NTYgMjguNTc1XFxcIiBzdHlsZT1cXFwiZmlsbDpub25lO3N0cm9rZTojMjMxZjIwO3N0cm9rZS1taXRlcmxpbWl0OjEwO3N0cm9rZS13aWR0aDowLjIxNjAwMDAwNTYwMjgzN3B4XFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIxOC40OTggNi4yNDYgMTkuMzQ1IDcuMSAxMy41MDIgMTMuMDI4IDEzLjUwMiA3LjEgMTQuMDY5IDcuMSAxNC45MTYgNi4yNDYgMTQuOTE2IDMuOTkyIDE0LjA2OSAzLjEzOCA0LjY1MiAzLjEzOCAzLjgwNSAzLjk5MiAzLjgwNSA2LjI0NiA0LjY1MiA3LjEgNS4zMTIgNy4xIDUuMzEyIDI2LjMxNCA2LjM0NiAyNy4xNjEgOS4yNjcgMjcuMTYxIDI5LjUxNiA2LjI0NiAyOS41MTYgMy45OTIgMjguNjY5IDMuMTM4IDE5LjQzOCAzLjEzOCAxOC40OTggMy45OTIgMTguNDk4IDYuMjQ2IDE4LjQ5OCA2LjI0NlxcXCIgc3R5bGU9XFxcImZpbGw6IzIzMWYyMDtmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMTguNDk4IDYuMjQ2IDE5LjM0NSA3LjEgMTMuNTAyIDEzLjAyOCAxMy41MDIgNy4xIDE0LjA2OSA3LjEgMTQuOTE2IDYuMjQ2IDE0LjkxNiAzLjk5MiAxNC4wNjkgMy4xMzggNC42NTIgMy4xMzggMy44MDUgMy45OTIgMy44MDUgNi4yNDYgNC42NTIgNy4xIDUuMzEyIDcuMSA1LjMxMiAyNi4zMTQgNi4zNDYgMjcuMTYxIDkuMjY3IDI3LjE2MSAyOS41MTYgNi4yNDYgMjkuNTE2IDMuOTkyIDI4LjY2OSAzLjEzOCAxOS40MzggMy4xMzggMTguNDk4IDMuOTkyIDE4LjQ5OCA2LjI0NiAxOC40OTggNi4yNDZcXFwiIHN0eWxlPVxcXCJmaWxsOm5vbmU7c3Ryb2tlOiMyMzFmMjA7c3Ryb2tlLW1pdGVybGltaXQ6MTA7c3Ryb2tlLXdpZHRoOjAuMjE2MDAwMDA1NjAyODM3cHhcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjQuOTMyIDYuNTMzIDQuMzY1IDUuOTY2IDQuMzY1IDQuMjcyIDQuOTMyIDMuNzA1IDEzLjc4OSAzLjY5OCAxNC4zNDkgNC4yNzIgMTMuNzg5IDQuNTQ0IDEzLjUwMiA0LjI3MiA0LjkzMiA1LjY3OSA0LjkzMiA2LjUzMyA0LjkzMiA2LjUzM1xcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZjtmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiNC45MzIgNi41MzMgNC4zNjUgNS45NjYgNC4zNjUgNC4yNzIgNC45MzIgMy43MDUgMTMuNzg5IDMuNjk4IDE0LjM0OSA0LjI3MiAxMy43ODkgNC41NDQgMTMuNTAyIDQuMjcyIDQuOTMyIDUuNjc5IDQuOTMyIDYuNTMzIDQuOTMyIDYuNTMzXFxcIiBzdHlsZT1cXFwiZmlsbDpub25lO3N0cm9rZTojMjMxZjIwO3N0cm9rZS1taXRlcmxpbWl0OjEwO3N0cm9rZS13aWR0aDowLjIxNjAwMDAwNTYwMjgzN3B4XFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCI2LjYyNiAyNi41OTQgNS45NjYgMjYuMDI3IDUuOTY2IDYuNTI2IDYuNjI2IDUuOTY2IDYuNjI2IDI2LjU5NCA2LjYyNiAyNi41OTRcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmY7ZmlsbC1ydWxlOmV2ZW5vZGRcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjYuNjI2IDI2LjU5NCA1Ljk2NiAyNi4wMjcgNS45NjYgNi41MjYgNi42MjYgNS45NjYgNi42MjYgMjYuNTk0IDYuNjI2IDI2LjU5NFxcXCIgc3R5bGU9XFxcImZpbGw6bm9uZTtzdHJva2U6IzIzMWYyMDtzdHJva2UtbWl0ZXJsaW1pdDoxMDtzdHJva2Utd2lkdGg6MC4yMTYwMDAwMDU2MDI4MzdweFxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMjAuNzU5IDYuNTMzIDIxLjMyNiA1Ljk2NiAyMS4zMjYgNy4xIDExLjkwMiAxNi43MDMgMTIuOTQyIDE0LjQ0MiAyMC43NTkgNi41MzMgMjAuNzU5IDYuNTMzXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmO2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIyMC43NTkgNi41MzMgMjEuMzI2IDUuOTY2IDIxLjMyNiA3LjEgMTEuOTAyIDE2LjcwMyAxMi45NDIgMTQuNDQyIDIwLjc1OSA2LjUzMyAyMC43NTkgNi41MzNcXFwiIHN0eWxlPVxcXCJmaWxsOm5vbmU7c3Ryb2tlOiMyMzFmMjA7c3Ryb2tlLW1pdGVybGltaXQ6MTA7c3Ryb2tlLXdpZHRoOjAuMjE2MDAwMDA1NjAyODM3cHhcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjYuODIgNS42ODYgNi42MjYgNS45NjYgNS45NjYgNi41MzMgNC45MzIgNi41MzMgNC45MzIgNS4zOTkgNi44MiA1LjY4NiA2LjgyIDUuNjg2XFxcIiBzdHlsZT1cXFwiZmlsbDojOTI5NDk3O2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCI2LjgyIDUuNjg2IDYuNjI2IDUuOTY2IDUuOTY2IDYuNTMzIDQuOTMyIDYuNTMzIDQuOTMyIDUuMzk5IDYuODIgNS42ODYgNi44MiA1LjY4NlxcXCIgc3R5bGU9XFxcImZpbGw6bm9uZTtzdHJva2U6IzIzMWYyMDtzdHJva2UtbWl0ZXJsaW1pdDoxMDtzdHJva2Utd2lkdGg6MC4yMTYwMDAwMDU2MDI4MzdweFxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMTIuOTQyIDYuNTMzIDEyLjk0MiAxNC40NDIgMTEuOTAyIDE2LjY5NiAxMS45MDIgNS45NTggMTMuNTAyIDUuOTU4IDEzLjc4OSA1LjY3OCAxMy41MDIgNC4yNzIgMTQuMzQ5IDQuMjcyIDE0LjM0OSA1Ljk2NiAxMy43ODkgNi41MzMgMTIuOTQyIDYuNTMzIDEyLjk0MiA2LjUzM1xcXCIgc3R5bGU9XFxcImZpbGw6IzkyOTQ5NztmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMTIuOTQyIDYuNTMzIDEyLjk0MiAxNC40NDIgMTEuOTAyIDE2LjY5NiAxMS45MDIgNS45NTggMTMuNTAyIDUuOTU4IDEzLjc4OSA1LjY3OCAxMy41MDIgNC4yNzIgMTQuMzQ5IDQuMjcyIDE0LjM0OSA1Ljk2NiAxMy43ODkgNi41MzMgMTIuOTQyIDYuNTMzIDEyLjk0MiA2LjUzM1xcXCIgc3R5bGU9XFxcImZpbGw6bm9uZTtzdHJva2U6IzIzMWYyMDtzdHJva2UtbWl0ZXJsaW1pdDoxMDtzdHJva2Utd2lkdGg6MC4yMTYwMDAwMDU2MDI4MzdweFxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMTkuNjI1IDYuNTMzIDE5LjA2NSA1Ljk2NiAxOS4wNjUgNC4yNzIgMTkuNzE4IDMuNzA1IDI4LjI5NSAzLjcwNSAyOC45NTYgNC4yNzIgMjguMDA4IDUuMTE5IDE5LjYyNSA1LjY3OSAxOS42MjUgNi41MzMgMTkuNjI1IDYuNTMzXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmO2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIxOS42MjUgNi41MzMgMTkuMDY1IDUuOTY2IDE5LjA2NSA0LjI3MiAxOS43MTggMy43MDUgMjguMjk1IDMuNzA1IDI4Ljk1NiA0LjI3MiAyOC4wMDggNS4xMTkgMTkuNjI1IDUuNjc5IDE5LjYyNSA2LjUzMyAxOS42MjUgNi41MzNcXFwiIHN0eWxlPVxcXCJmaWxsOm5vbmU7c3Ryb2tlOiMyMzFmMjA7c3Ryb2tlLW1pdGVybGltaXQ6MTA7c3Ryb2tlLXdpZHRoOjAuMjE2MDAwMDA1NjAyODM3cHhcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjI4Ljk1NiA1Ljk2NiA5LjA3NCAyNi41OTQgNi42MjYgMjYuNTk0IDYuNjI2IDI1Ljc0NyA4LjQyIDI1Ljc0NyAyOC4yOTUgNS4zOTkgMjguMDA4IDQuMjcyIDI4Ljk1NiA0LjI3MiAyOC45NTYgNS45NjYgMjguOTU2IDUuOTY2XFxcIiBzdHlsZT1cXFwiZmlsbDojOTI5NDk3O2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIyOC45NTYgNS45NjYgOS4wNzQgMjYuNTk0IDYuNjI2IDI2LjU5NCA2LjYyNiAyNS43NDcgOC40MiAyNS43NDcgMjguMjk1IDUuMzk5IDI4LjAwOCA0LjI3MiAyOC45NTYgNC4yNzIgMjguOTU2IDUuOTY2IDI4Ljk1NiA1Ljk2NlxcXCIgc3R5bGU9XFxcImZpbGw6bm9uZTtzdHJva2U6IzIzMWYyMDtzdHJva2UtbWl0ZXJsaW1pdDoxMDtzdHJva2Utd2lkdGg6MC4yMTYwMDAwMDU2MDI4MzdweFxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMjEuNTEyIDUuNjg2IDIxLjMxOSA1Ljk2NiAyMC43NTkgNi41MzMgMTkuNjI1IDYuNTMzIDE5LjYyNSA1LjM5OSAyMS41MTIgNS42ODYgMjEuNTEyIDUuNjg2XFxcIiBzdHlsZT1cXFwiZmlsbDojOTI5NDk3O2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIyMS41MTIgNS42ODYgMjEuMzE5IDUuOTY2IDIwLjc1OSA2LjUzMyAxOS42MjUgNi41MzMgMTkuNjI1IDUuMzk5IDIxLjUxMiA1LjY4NiAyMS41MTIgNS42ODZcXFwiIHN0eWxlPVxcXCJmaWxsOm5vbmU7c3Ryb2tlOiMyMzFmMjA7c3Ryb2tlLW1pdGVybGltaXQ6MTA7c3Ryb2tlLXdpZHRoOjAuMjE2MDAwMDA1NjAyODM3cHhcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjExLjkwMiAxNi42OTYgMTEuOTAyIDUuOTU4IDEzLjUwMiA1Ljk1OCAxMy43ODkgNS42NzkgMTMuNzg5IDQuNTQ0IDEzLjUwMiA0LjI2NSA1LjIxMiA0LjI2NSA0LjkzMiA0LjU0NCA0LjkzMiA1LjY3OSA1LjIxMiA1Ljk1OCA2LjYyNiA1Ljk1OCA2LjYyNiAyNS43NDcgNi45OTIgMjYuMDI3IDguNjA3IDI2LjAyNyAyOC4zODkgNS4zOTkgMjguMzg5IDQuNTg4IDI4LjEwMiA0LjI2NSAxOS45MTIgNC4yNjUgMTkuNjI1IDQuNTQ0IDE5LjYyNSA1LjY4NiAxOS45MTIgNS45NjYgMjEuMzI2IDUuOTY2IDIxLjMyNiA3LjEgMTEuOTAyIDE2LjY5NiAxMS45MDIgMTYuNjk2XFxcIiBzdHlsZT1cXFwiZmlsbDojZDBkMmQzO2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIxMS45MDIgMTYuNjk2IDExLjkwMiA1Ljk1OCAxMy41MDIgNS45NTggMTMuNzg5IDUuNjc5IDEzLjc4OSA0LjU0NCAxMy41MDIgNC4yNjUgNS4yMTIgNC4yNjUgNC45MzIgNC41NDQgNC45MzIgNS42NzkgNS4yMTIgNS45NTggNi42MjYgNS45NTggNi42MjYgMjUuNzQ3IDYuOTkyIDI2LjAyNyA4LjYwNyAyNi4wMjcgMjguMzg5IDUuMzk5IDI4LjM4OSA0LjU4OCAyOC4xMDIgNC4yNjUgMTkuOTEyIDQuMjY1IDE5LjYyNSA0LjU0NCAxOS42MjUgNS42ODYgMTkuOTEyIDUuOTY2IDIxLjMyNiA1Ljk2NiAyMS4zMjYgNy4xIDExLjkwMiAxNi42OTYgMTEuOTAyIDE2LjY5NlxcXCIgc3R5bGU9XFxcImZpbGw6bm9uZTtzdHJva2U6IzIzMWYyMDtzdHJva2UtbWl0ZXJsaW1pdDoxMDtzdHJva2Utd2lkdGg6MC4yMTYwMDAwMDU2MDI4MzdweFxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMTcuMDQxIDE2LjcxMSAxNy43MDEgMTYuMTQ0IDE5LjM5NSAxNi4xNDQgMTkuODY5IDE2LjcxMSAxOS4zMDIgMTguNDA1IDE4LjY0OSAxOC45NzIgMTYuOTU1IDE4Ljk3MiAxNi40NzQgMTguNDA1IDE3LjA0MSAxNi43MTEgMTcuMDQxIDE2LjcxMVxcXCIgc3R5bGU9XFxcImZpbGw6IzIzMWYyMDtmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMTcuMDQxIDE2LjcxMSAxNy43MDEgMTYuMTQ0IDE5LjM5NSAxNi4xNDQgMTkuODY5IDE2LjcxMSAxOS4zMDIgMTguNDA1IDE4LjY0OSAxOC45NzIgMTYuOTU1IDE4Ljk3MiAxNi40NzQgMTguNDA1IDE3LjA0MSAxNi43MTEgMTcuMDQxIDE2LjcxMVxcXCIgc3R5bGU9XFxcImZpbGw6bm9uZTtzdHJva2U6IzIzMWYyMDtzdHJva2UtbWl0ZXJsaW1pdDoxMDtzdHJva2Utd2lkdGg6MC4yMTYwMDAwMDU2MDI4MzdweFxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMTcuNjA4IDI2LjAzNCAxOS4zMDkgMjAuOTUzIDE4Ljc0MiAyMC45NTMgMTkuMzA5IDE5LjI1MSAyMS44NDMgMTkuMjUxIDIyLjQxIDE5LjgxOSAyMi43OSAxOS44MTkgMjMuMzUgMTkuMjUxIDI1LjIzOCAxOS4yNTEgMjUuODA1IDE5LjgxOSAyNi4xNzggMTkuODE5IDI2Ljc0NSAxOS4yNTEgMjguODEyIDE5LjI1MSAyOS41NjYgMjAuMzg2IDI4LjMzMSAyNC40MDUgMjguODkxIDI0LjQwNSAyOC4zNDYgMjYuMDM0IDI0Ljk1MSAyNi4wMzQgMjYuMjc4IDIyLjA3OSAyNS40MzEgMjIuMDc5IDI0LjY0OSAyNC4zOTEgMjUuMjA5IDI0LjM5MSAyNC42NzggMjYuMDM0IDIxLjI4MyAyNi4wMzQgMjIuNjAzIDIyLjA3OSAyMS43NTYgMjIuMDc5IDIwLjk2NyAyNC40MDUgMjEuNTM0IDI0LjQwNSAyMS4wMDMgMjYuMDM0IDE3LjYwOCAyNi4wMzQgMTcuNjA4IDI2LjAzNFxcXCIgc3R5bGU9XFxcImZpbGw6IzIzMWYyMDtmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMTcuNjA4IDI2LjAzNCAxOS4zMDkgMjAuOTUzIDE4Ljc0MiAyMC45NTMgMTkuMzA5IDE5LjI1MSAyMS44NDMgMTkuMjUxIDIyLjQxIDE5LjgxOSAyMi43OSAxOS44MTkgMjMuMzUgMTkuMjUxIDI1LjIzOCAxOS4yNTEgMjUuODA1IDE5LjgxOSAyNi4xNzggMTkuODE5IDI2Ljc0NSAxOS4yNTEgMjguODEyIDE5LjI1MSAyOS41NjYgMjAuMzg2IDI4LjMzMSAyNC40MDUgMjguODkxIDI0LjQwNSAyOC4zNDYgMjYuMDM0IDI0Ljk1MSAyNi4wMzQgMjYuMjc4IDIyLjA3OSAyNS40MzEgMjIuMDc5IDI0LjY0OSAyNC4zOTEgMjUuMjA5IDI0LjM5MSAyNC42NzggMjYuMDM0IDIxLjI4MyAyNi4wMzQgMjIuNjAzIDIyLjA3OSAyMS43NTYgMjIuMDc5IDIwLjk2NyAyNC40MDUgMjEuNTM0IDI0LjQwNSAyMS4wMDMgMjYuMDM0IDE3LjYwOCAyNi4wMzQgMTcuNjA4IDI2LjAzNFxcXCIgc3R5bGU9XFxcImZpbGw6bm9uZTtzdHJva2U6IzIzMWYyMDtzdHJva2UtbWl0ZXJsaW1pdDoxMDtzdHJva2Utd2lkdGg6MC4yMTYwMDAwMDU2MDI4MzdweFxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMjguNTU0IDE5LjgxOSAyOC45OTIgMjAuNDQzIDI3LjU5OSAyNC45MDcgMjguMTU5IDI0LjkwNyAyNy45NzIgMjUuNDY3IDI1LjcxMSAyNS40NjcgMjcuMDMyIDIxLjUxMiAyNS4wNTEgMjEuNTEyIDIzLjkyNCAyNC45MDcgMjQuNDg0IDI0LjkwNyAyNC4yOTcgMjUuNDY3IDIyLjAzNiAyNS40NjcgMjMuMzU3IDIxLjUxMiAyMS4zNzYgMjEuNTEyIDIwLjI0OSAyNC45MDcgMjAuODE2IDI0LjkwNyAyMC42MjIgMjUuNDY3IDE4LjM2MSAyNS40NjcgMjAuMDYzIDIwLjM4NiAxOS40OTUgMjAuMzg2IDE5LjY4MiAxOS44MTkgMjEuNzU2IDE5LjgxOSAyMi4zMjMgMjAuMzg2IDIyLjg4MyAyMC4zODYgMjMuNDUgMTkuODE5IDI1LjE0NCAxOS44MTkgMjUuNzExIDIwLjM4NiAyNi4yNzggMjAuMzg2IDI2Ljg0NSAxOS44MTkgMjguNTU0IDE5LjgxOSAyOC41NTQgMTkuODE5XFxcIiBzdHlsZT1cXFwiZmlsbDojZDBkMmQzO2ZpbGwtcnVsZTpldmVub2RkXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIyOC41NTQgMTkuODE5IDI4Ljk5MiAyMC40NDMgMjcuNTk5IDI0LjkwNyAyOC4xNTkgMjQuOTA3IDI3Ljk3MiAyNS40NjcgMjUuNzExIDI1LjQ2NyAyNy4wMzIgMjEuNTEyIDI1LjA1MSAyMS41MTIgMjMuOTI0IDI0LjkwNyAyNC40ODQgMjQuOTA3IDI0LjI5NyAyNS40NjcgMjIuMDM2IDI1LjQ2NyAyMy4zNTcgMjEuNTEyIDIxLjM3NiAyMS41MTIgMjAuMjQ5IDI0LjkwNyAyMC44MTYgMjQuOTA3IDIwLjYyMiAyNS40NjcgMTguMzYxIDI1LjQ2NyAyMC4wNjMgMjAuMzg2IDE5LjQ5NSAyMC4zODYgMTkuNjgyIDE5LjgxOSAyMS43NTYgMTkuODE5IDIyLjMyMyAyMC4zODYgMjIuODgzIDIwLjM4NiAyMy40NSAxOS44MTkgMjUuMTQ0IDE5LjgxOSAyNS43MTEgMjAuMzg2IDI2LjI3OCAyMC4zODYgMjYuODQ1IDE5LjgxOSAyOC41NTQgMTkuODE5IDI4LjU1NCAxOS44MTlcXFwiIHN0eWxlPVxcXCJmaWxsOm5vbmU7c3Ryb2tlOiMyMzFmMjA7c3Ryb2tlLW1pdGVybGltaXQ6MTA7c3Ryb2tlLXdpZHRoOjAuMjE2MDAwMDA1NjAyODM3cHhcXFwiLz48cGF0aCBkPVxcXCJNMTkuMDIyLDE5LjI1MSwxNy4yOTIsMjQuNGguNTg5bC0uNTYsMS42MzdIMTMuOTMzbDEuNjk0LTUuMDgySDE1LjA2bDMuOTYyLTEuN1ptLTMuOTYyLDEuNy41NjctMS43aDMuNGwtMy45NjIsMS43WlxcXCIgc3R5bGU9XFxcImZpbGw6IzIzMWYyMDtmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwYXRoIGQ9XFxcIk0xOS4wMjIsMTkuMjUxLDE3LjI5MiwyNC40aC41ODlsLS41NiwxLjYzN0gxMy45MzNsMS42OTQtNS4wODJIMTUuMDZsMy45NjItMS43Wm0tMy45NjIsMS43LjU2Ny0xLjdoMy40bC0zLjk2MiwxLjdaXFxcIiBzdHlsZT1cXFwiZmlsbDpub25lO3N0cm9rZTojMjMxZjIwO3N0cm9rZS1taXRlcmxpbWl0OjEwO3N0cm9rZS13aWR0aDowLjIxNjAwMDAwNTYwMjgzN3B4XFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIxNi45NDcgMjUuNDY3IDE3LjEzNCAyNC45MDcgMTYuNTY3IDI0LjkwNyAxOC4yNjggMTkuODE5IDE1LjkxNCAxOS44MTkgMTUuNzIgMjAuMzg2IDE2LjM4IDIwLjM4NiAxNC42ODYgMjUuNDY3IDE2Ljk0NyAyNS40NjcgMTYuOTQ3IDI1LjQ2N1xcXCIgc3R5bGU9XFxcImZpbGw6I2QwZDJkMztmaWxsLXJ1bGU6ZXZlbm9kZFxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMTYuOTQ3IDI1LjQ2NyAxNy4xMzQgMjQuOTA3IDE2LjU2NyAyNC45MDcgMTguMjY4IDE5LjgxOSAxNS45MTQgMTkuODE5IDE1LjcyIDIwLjM4NiAxNi4zOCAyMC4zODYgMTQuNjg2IDI1LjQ2NyAxNi45NDcgMjUuNDY3IDE2Ljk0NyAyNS40NjdcXFwiIHN0eWxlPVxcXCJmaWxsOm5vbmU7c3Ryb2tlOiMyMzFmMjA7c3Ryb2tlLW1pdGVybGltaXQ6MTA7c3Ryb2tlLXdpZHRoOjAuMjE2MDAwMDA1NjAyODM3cHhcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjE4LjgyOCAxOC4xMjUgMTkuMjA4IDE2Ljk5MSAxOS4wMjIgMTYuNzExIDE3Ljg4OCAxNi43MTEgMTcuNTE0IDE2Ljk5MSAxNy4xMzQgMTguMTI1IDE3LjMyOCAxOC40MDUgMTguNDYyIDE4LjQwNSAxOC44MjggMTguMTI1IDE4LjgyOCAxOC4xMjVcXFwiIHN0eWxlPVxcXCJmaWxsOiNkMGQyZDM7ZmlsbC1ydWxlOmV2ZW5vZGRcXFwiLz48cG9seWdvbiBwb2ludHM9XFxcIjE4LjgyOCAxOC4xMjUgMTkuMjA4IDE2Ljk5MSAxOS4wMjIgMTYuNzExIDE3Ljg4OCAxNi43MTEgMTcuNTE0IDE2Ljk5MSAxNy4xMzQgMTguMTI1IDE3LjMyOCAxOC40MDUgMTguNDYyIDE4LjQwNSAxOC44MjggMTguMTI1IDE4LjgyOCAxOC4xMjVcXFwiIHN0eWxlPVxcXCJmaWxsOm5vbmU7c3Ryb2tlOiMyMzFmMjA7c3Ryb2tlLW1pdGVybGltaXQ6MTA7c3Ryb2tlLXdpZHRoOjAuMjE2MDAwMDA1NjAyODM3cHhcXFwiLz5cIixcblx0XCJWaXN1YWwgQmFzaWNcIjogXCI8cGF0aCBkPVxcXCJNNi42Nyw3LjgzNiw5LDE4LjkxNSwxMS4zMzYsNy44MzZIMTZMMTEuMzM2LDI0LjE2NEg2LjY3MkwyLDcuODM2WlxcXCIgc3R5bGU9XFxcImZpbGw6IzAwNTE5YVxcXCIvPjxwYXRoIGQ9XFxcIk0xOC4zMzEsNy44MzZoNy42YTQuMDgsNC4wOCwwLDAsMSwyLjksMS43NDksMy43OCwzLjc4LDAsMCwxLC41NzEsMi4wNCwzLjk4NSwzLjk4NSwwLDAsMS0uNTcxLDIuMDM0LDQuMTA4LDQuMTA4LDAsMCwxLTIuMzQxLDEuNzYzLDQuMSw0LjEsMCwwLDEsMi45MjksMS43NTYsMy44LDMuOCwwLDAsMSwuNTgsMi4xLDQuNjYzLDQuNjYzLDAsMCwxLS41NzksMi41NDYsNS4wNDcsNS4wNDcsMCwwLDEtMy41LDIuMzM4SDE4LjMzMVpNMjMsMTQuMjUyaDEuMTY2YTEuNzU0LDEuNzU0LDAsMCwwLDAtMy41SDIzWm0wLDdIMjQuMzlhMi4wNDcsMi4wNDcsMCwwLDAsMC00LjA4OUgyM1pcXFwiIHN0eWxlPVxcXCJmaWxsOiMwMDUxOWFcXFwiLz5cIixcblx0XCJXZWJBc3NlbWJseVwiOiBcIjxwYXRoIGQ9XFxcIk0xOS4xNTMsMi4zNVYyLjVhMy4yLDMuMiwwLDEsMS02LjQsMGgwVjIuMzVIMlYzMC4yNjlIMjkuOTE5VjIuMzVaXFxcIiBzdHlsZT1cXFwiZmlsbDojNjU0ZmYwXFxcIi8+PHBhdGggZD1cXFwiTTguNDg1LDE3LjRoMS44NUwxMS42LDI0LjEyM2guMDIzTDEzLjE0LDE3LjRoMS43MzFsMS4zNzEsNi44MWguMDI3bDEuNDQtNi44MWgxLjgxNWwtMi4zNTgsOS44ODVIMTUuMzI5bC0xLjM2LTYuNzI4aC0uMDM2bC0xLjQ1Niw2LjcyOGgtMS44N1ptMTMuMTI0LDBoMi45MTdsMi45LDkuODg1SDI1LjUxNWwtLjYzLTIuMkgyMS41NjJsLS40ODYsMi4ySDE5LjIxN1ptMS4xMSwyLjQzNy0uODA3LDMuNjI3aDIuNTEyTDIzLjUsMTkuODMyWlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPlwiLFxuXHRcIldvbGZyYW0gbGFuZ3VhZ2VcIjogXCI8cGF0aCBkPVxcXCJNMzAsMjAuNTUsMjUuOTQsMTYsMzAsMTEuNDVsLTUuOTQ4LTEuMjk0LjU5NS02LjA2N0wxOS4wNzEsNi41NDMsMTUuOTkzLDEuMjc5LDEyLjkyOSw2LjU0Myw3LjM1Myw0LjA4OWwuNTk1LDYuMDY3TDIsMTEuNDUsNi4wNTksMTYsMiwyMC41NWw1Ljk0OCwxLjI5NC0uNTk1LDYuMDY3LDUuNTc2LTIuNDU0LDMuMDc4LDUuMjY0LDMuMDYzLTUuMjY0LDUuNTkxLDIuNDU0LS42MS02LjA2N1pcXFwiIHN0eWxlPVxcXCJmaWxsOiNkMTBcXFwiLz48cGF0aCBkPVxcXCJNMTkuMzUzLDExLjQ1YTYuOTY4LDYuOTY4LDAsMCwxLTMuNDIuODYyLDUuNDQ2LDUuNDQ2LDAsMCwxLTMuMjEyLS44NjJBNy4xLDcuMSwwLDAsMSwxMi41LDE0LjhhNi4yMjUsNi4yMjUsMCwwLDEtMS44NzQsMi45MTQsNy40NTQsNy40NTQsMCwwLDEsMy4xMzgsMS4xOSw5LjY1OSw5LjY1OSwwLDAsMSwyLjIxNiwyLjcyMSw4LjE5NCw4LjE5NCwwLDAsMSwyLjE0MS0yLjY5MSw3LjYwNSw3LjYwNSwwLDAsMSwzLjI0Mi0xLjIsMTIuNTYyLDEyLjU2MiwwLDAsMS0xLjkzMy0yLjk0NEE2LjcxOCw2LjcxOCwwLDAsMSwxOS4zNTMsMTEuNDVabS0xLjksNi41NDNhNS4yMzMsNS4yMzMsMCwwLDAtMS40NTcsMS42MzYsNi4yMzYsNi4yMzYsMCwwLDAtMS41LTEuNjIxLDUuMTkxLDUuMTkxLDAsMCwwLTEuOTQ4LS44NDgsNi44MzksNi44MzksMCwwLDAsMS4xMTUtMi4wMDcsNi4xOCw2LjE4LDAsMCwwLC4yMjMtMi4wODIsNi4zMTcsNi4zMTcsMCwwLDAsMi4wODIuNDQ2LDYuNTUyLDYuNTUyLDAsMCwwLDIuMTcxLS40NjEsNC41MjEsNC41MjEsMCwwLDAsLjA3NCwyLjE1Niw2LjcxLDYuNzEsMCwwLDAsMS4yNDksMS45MzNBNy4wMzEsNy4wMzEsMCwwLDAsMTcuNDUsMTcuOTkzWm00LjIzOC00LjAxNWMtLjM1Ny0xLjE3NS42NTQtNi43MDYuNjU0LTYuNzA2UzE4LjU1LDkuODQ0LDE1Ljg4OCw5Ljg0NHMtNi4yMy0yLjU3Mi02LjIzLTIuNTcyLDEuMTc1LDQuMDE1LjQ2MSw2LjU4Ny00LjM4Nyw1LjQ3Mi00LjM4Nyw1LjQ3Miw0Ljc4OC4yODMsNi42LDEuNSwzLjY1OCw1Ljk0OCwzLjY1OCw1Ljk0OCwyLjQ1NC01LjIsMy40OC01Ljk0OCw2LjgtMS41LDYuOC0xLjUtNC4yMjMtNC4xNzgtNC41OC01LjM1M1ptLTIuODQsNS45NjNhOS40NDQsOS40NDQsMCwwLDAtMi44NCw0LjE3OHMtMS40MTMtMy4xNTItMi45NzQtNC4yMjNTOC4zLDE4LjU0Myw4LjMsMTguNTQzczIuNDU0LTIuMTcxLDMuMDQ4LTQuMWExMS45MjMsMTEuOTIzLDAsMCwwLS4xLTQuOTUyLDExLjMsMTEuMywwLDAsMCw0LjY2OSwxLjYyMWMyLjAzNywwLDQuODQ4LTEuNjIxLDQuODQ4LTEuNjIxcy0uODE4LDMuMDMzLS4xNjQsNC45MjIsMy4xMDgsNC4xMzQsMy4xMDgsNC4xMzRhMTAuNTU3LDEwLjU1NywwLDAsMC00Ljg2MiwxLjRaXFxcIiBzdHlsZT1cXFwiZmlsbDojZmZmXFxcIi8+XCIsXG5cdFwiWE1MXCI6IFwiPHBhdGggZD1cXFwiTTIwLjQyLDIxLjE1N2wyLjIxMSwyLjIxMUwzMCwxNiwyMi42MzEsOC42MzEsMjAuNDIsMTAuODQzLDI1LjU4LDE2WlxcXCIgc3R5bGU9XFxcImZpbGw6I2YxNjYyYVxcXCIvPjxwYXRoIGQ9XFxcIk0xMS41OCwxMC44NDMsOS4zNjksOC42MzEsMiwxNmw3LjM2OSw3LjM2OSwyLjIxMS0yLjIxMUw2LjQyLDE2WlxcXCIgc3R5bGU9XFxcImZpbGw6I2YxNjYyYVxcXCIvPjxwYXRoIGQ9XFxcIk0xNy40MTEsNy42NzdsMS42LjQzNy00LjQyLDE2LjIwOS0xLjYtLjQzNyw0LjQyLTE2LjIwOVpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmMTY2MmFcXFwiLz5cIixcblx0XCJYUXVlcnlcIjogXCI8cGF0aCBkPVxcXCJNMjAuNDIsMjEuMTU3bDIuMjExLDIuMjExTDMwLDE2LDIyLjYzMSw4LjYzMSwyMC40MiwxMC44NDMsMjUuNTgsMTZaTTExLjU4LDEwLjg0Myw5LjM2OSw4LjYzMSwyLDE2bDcuMzY5LDcuMzY5LDIuMjExLTIuMjExTDYuNDIsMTZabTUuODMxLTMuMTY2LDEuNi40MzctNC40MiwxNi4yMDktMS42LS40MzdaXFxcIiBzdHlsZT1cXFwiZmlsbDojZjE2NjJhXFxcIi8+PHBhdGggZD1cXFwiTTIwLjMzMiwxOC40NjJhMy4zNTQsMy4zNTQsMCwwLDEsLjk3NS0xLjQyMyw0LjAxNCw0LjAxNCwwLDAsMSwxLjYxNy0uOEE5LjExOCw5LjExOCwwLDAsMSwyNS4xMzgsMTZhNS40NzIsNS40NzIsMCwwLDEsMy42ODEsMS4wMzlBMy41LDMuNSwwLDAsMSwzMCwxOS44MDhhNC40Nyw0LjQ3LDAsMCwxLS4yNCwxLjQ5MSwzLjEyNCwzLjEyNCwwLDAsMS0uODM4LDEuMjM5bC0xLjY3NSwxLjZhMS41MTIsMS41MTIsMCwwLDAtLjQyNC43ODksNS4zMDcsNS4zMDcsMCwwLDAtLjEsMS4xSDIzdi0uNTRhNi4zMiw2LjMyLDAsMCwxLC4yMDctMS43NzgsMi44ODYsMi44ODYsMCwwLDEsLjc4LTEuMjRsMS4zNTItMS4yODlhMS44NCwxLjg0LDAsMCwwLC41NjMtLjg5NCwzLjY4MiwzLjY4MiwwLDAsMCwuMS0uOCwxLjUsMS41LDAsMCwwLS4yNTItLjkuOS45LDAsMCwwLS43NzktLjM0NiwxLjI1NSwxLjI1NSwwLDAsMC0uNDgzLjA4Ni43MjQuNzI0LDAsMCwwLS4zNDQuMzM3LDIuMzQ3LDIuMzQ3LDAsMCwwLS4yMTcuNzIxLDcuNjE0LDcuNjE0LDAsMCwwLS4wODEsMS4yNEgyMEE2LjE1NSw2LjE1NSwwLDAsMSwyMC4zMzIsMTguNDYyWm02LjQ1Nyw4LjVWMzBIMjIuOTM2VjI2Ljk2MlpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmY2JhMDBcXFwiLz5cIixcblx0XCJZQU1MXCI6IFwiPHBhdGggZD1cXFwiTTIsMTIuMjE4Yy43NTUsMCwxLjUxLS4wMDgsMi4yNjQsMGwuMDUzLjAzOFE1LjcsMTMuNjM4LDcuMDc4LDE1LjAxNGMuODkxLS45MDYsMS44LTEuNzk0LDIuNy0yLjcuMDUzLS4wNTIuMTEtLjExMy4xOTItLjEuNjA4LDAsMS4yMTUsMCwxLjgyMywwYTEuNCwxLjQsMCwwLDEsLjM1My4wMTljLS43LjY3LTEuMzc3LDEuMzY5LTIuMDY5LDIuMDVMNS41NDUsMTguOGMtLjMzMS4zMjQtLjY0OC42NjMtLjk4OS45NzUtLjc1NC4wMjItMS41MTEuMDA3LTIuMjY2LjAwNywxLjIyMy0xLjIwOSwyLjQzMS0yLjQzMywzLjY1OC0zLjYzN0M0LjYyNywxNC44NDEsMy4zMTgsMTMuNTI1LDIsMTIuMjE4WlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZTg4NVxcXCIvPjxwYXRoIGQ9XFxcIk0xMi43LDEyLjIxOGMuNjEzLDAsMS4yMjYsMCwxLjgzOSwwcTAsMy43ODMsMCw3LjU2NmMtLjYxMSwwLTEuMjIyLjAxMi0xLjgzMi0uMDA4LDAtMS42NjQsMC0zLjMyOSwwLTQuOTk0LTEuNiwxLjYwNy0zLjIwOSwzLjItNC44MTEsNC44LS4wODkuMDgtLjE2Ni4yMTctLjMwNS4xOTQtLjgyNC0uMDA2LTEuNjQ5LDAtMi40NzQsMFE4LjkxNiwxNiwxMi43LDEyLjIxOFpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmU4ODVcXFwiLz48cGF0aCBkPVxcXCJNMTQuOTU4LDEyLjIyYy40Ny0uMDA5LjkzOSwwLDEuNDA5LDAsLjgzNi44NTMsMS42OSwxLjY4OSwyLjUzNiwyLjUzMnExLjI2OC0xLjI2NywyLjUzOS0yLjUzMi43LDAsMS40LDAtLjAwOCwzLjc4NCwwLDcuNTY3Yy0uNDcxLDAtLjk0My4wMDYtMS40MTQsMHEuMDA4LTIuMzg3LDAtNC43NzNjLS44NDQuODQzLTEuNjc2LDEuNy0yLjUyNiwyLjUzNi0uODU2LS44MzUtMS42ODctMS42OTUtMi41MzItMi41NDEsMCwxLjU5NC0uMDA2LDMuMTg4LjAwNiw0Ljc4MS0uNDcyLDAtLjk0My4wMDUtMS40MTUsMFExNC45NTgsMTYsMTQuOTU4LDEyLjIyWlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZTg4NVxcXCIvPjxwYXRoIGQ9XFxcIk0yMy4yNTksMTIuMjE3Yy40NzIsMCwuOTQ0LS4wMDcsMS40MTYsMHEtLjAwNywzLjA4MywwLDYuMTY2YzEuMjYsMCwyLjUyMSwwLDMuNzgyLDAsLjA2My4wMDYuMTQ0LS4wMTIuMTkxLjA0NS40NDguNDU0LjkwNy45LDEuMzUzLDEuMzU0cS0zLjM3MS4wMDctNi43NDEsMFEyMy4yNjcsMTYsMjMuMjU5LDEyLjIxN1pcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmU4ODVcXFwiLz5cIixcblx0XCJZQU5HXCI6IFwiPHBhdGggZD1cXFwiTTguODc3LDIzLjE1OWMwLTUuNTM1LDMuOTkyLTcuMTY4LDcuODk0LTcuMTY4LDMuMzU3LDAsNS45ODgtMy44MTEsNS45ODgtNi42MjQsMC0zLjYyMS0yLjQ4Ny01LjgzMS00Ljg4Mi03LjEyQTEzLjg4MSwxMy44ODEsMCwxLDAsMTQuNSwyOS44QzEwLjQ5MSwyOC4yNDgsOC44NzcsMjUuMzI0LDguODc3LDIzLjE1OVpcXFwiIHN0eWxlPVxcXCJmaWxsOiNmZmZcXFwiLz48cGF0aCBkPVxcXCJNMTQuNDgyLDI5LjkxN0ExNCwxNCwwLDAsMSwxNiwyYTE0LjE1NCwxNC4xNTQsMCwwLDEsMS44OTMuMTMxbC4wNC4wMTNjMi4yNTUsMS4yMTMsNC45NDQsMy40NTIsNC45NDQsNy4yMjMsMCwyLjcxNS0yLjU2NCw2Ljc0MS02LjEwNiw2Ljc0MS0yLjksMC03Ljc3Ni45MTYtNy43NzYsNy4wNSwwLDIuMDIyLDEuNDUxLDQuOTQ2LDUuNTQyLDYuNTMxWk0xNiwyLjIzNkExMy43NjUsMTMuNzY1LDAsMCwwLDEzLjYzNywyOS41NmMtMy41ODEtMS42ODQtNC44NzctNC40NDctNC44NzctNi40LDAtNi41NzYsNS42LTcuMjg2LDguMDEyLTcuMjg2LDMuNDA2LDAsNS44Ny0zLjg4Niw1Ljg3LTYuNTA2LDAtMy42NDUtMi42MDYtNS44Mi00LjgtNy4wMDZBMTMuOTI4LDEzLjkyOCwwLDAsMCwxNiwyLjIzNlpcXFwiIHN0eWxlPVxcXCJmaWxsOiMyMzFmMjBcXFwiLz48cGF0aCBkPVxcXCJNMjkuODgyLDE2YTEzLjg4MiwxMy44ODIsMCwwLDAtMTItMTMuNzUyYzIuNCwxLjI4OSw0Ljg4MiwzLjUsNC44ODIsNy4xMiwwLDIuODEzLTIuNjMxLDYuNjI0LTUuOTg4LDYuNjI0LTMuOSwwLTcuODk0LDEuNjMzLTcuODk0LDcuMTY4LDAsMi4xNjYsMS42MTMsNS4wODksNS42MTgsNi42NDFBMTMuODc1LDEzLjg3NSwwLDAsMCwyOS44ODIsMTZaXFxcIiBzdHlsZT1cXFwiZmlsbDojMjMxZjIwXFxcIi8+PHBhdGggZD1cXFwiTTE2LDMwYTE0LjIsMTQuMiwwLDAsMS0xLjUxOC0uMDgzbC0uMDMtLjAwN2MtNC4yLTEuNjI4LTUuNjkzLTQuNjU0LTUuNjkzLTYuNzUsMC02LjU3Niw1LjYtNy4yODYsOC4wMTItNy4yODYsMy40MDYsMCw1Ljg3LTMuODg2LDUuODctNi41MDYsMC0zLjY1NS0yLjYyMS01LjgzMy00LjgyLTcuMDE2bC4wNzItLjIyMUExNCwxNCwwLDAsMSwxNiwzMFptLTEuNDc3LS4zMTZBMTMuNzU2LDEzLjc1NiwwLDAsMCwyOS43NjQsMTYsMTMuODA3LDEzLjgwNywwLDAsMCwxOC41LDIuNDY2YzIuMTE1LDEuMjcyLDQuMzc3LDMuNDQxLDQuMzc3LDYuOSwwLDIuNzE1LTIuNTY0LDYuNzQxLTYuMTA2LDYuNzQxLTIuOSwwLTcuNzc2LjkxNi03Ljc3Niw3LjA1QzksMjUuMTc4LDEwLjQ0MywyOC4xLDE0LjUyMywyOS42ODRaXFxcIiBzdHlsZT1cXFwiZmlsbDojMjMxZjIwXFxcIi8+PGNpcmNsZSBjeD1cXFwiMTUuOTQzXFxcIiBjeT1cXFwiMjIuNzg3XFxcIiByPVxcXCIxLjUwNlxcXCIgc3R5bGU9XFxcImZpbGw6I2ZmZlxcXCIvPjxjaXJjbGUgY3g9XFxcIjE2LjAwN1xcXCIgY3k9XFxcIjkuMTQyXFxcIiByPVxcXCIxLjUwNlxcXCIgc3R5bGU9XFxcImZpbGw6IzIzMWYyMFxcXCIvPlwiLFxuXHRcIlppZ1wiOiBcIjxwb2x5Z29uIHBvaW50cz1cXFwiNS43MzMgMTkuNzMxIDUuNzMzIDEyLjI2NCA4LjUzMyAxMi4yNjQgOC41MzMgOC41MzEgMiA4LjUzMSAyIDIzLjQ2NCA1LjU0NyAyMy40NjQgOC45MDcgMTkuNzMxIDUuNzMzIDE5LjczMVxcXCIgc3R5bGU9XFxcImZpbGw6I2Y3YTQxZFxcXCIvPjxwb2x5Z29uIHBvaW50cz1cXFwiMjYuNDUzIDguNTMxIDIzLjA5MyAxMi4yNjQgMjYuMjY3IDEyLjI2NCAyNi4yNjcgMTkuNzMxIDIzLjQ2NyAxOS43MzEgMjMuNDY3IDIzLjQ2NCAzMCAyMy40NjQgMzAgOC41MzEgMjYuNDUzIDguNTMxXFxcIiBzdHlsZT1cXFwiZmlsbDojZjdhNDFkXFxcIi8+PHBvbHlnb24gcG9pbnRzPVxcXCIyNi44NzUgNi43MDcgMjAuNTEzIDguNTMxIDkuNDY3IDguNTMxIDkuNDY3IDEyLjI2NCAxNi44NDcgMTIuMjY0IDUuMTE1IDI1LjI5MyAxMS40OTcgMjMuNDY0IDIyLjUzMyAyMy40NjQgMjIuNTMzIDE5LjczMSAxNS4xNDggMTkuNzMxIDI2Ljg3NSA2LjcwN1xcXCIgc3R5bGU9XFxcImZpbGw6I2Y3YTQxZFxcXCIvPlwiXG59O1xuZXhwb3J0IGNvbnN0IExBTkdVQUdFX0NPTE9VUlMgOiB7W2tleTogc3RyaW5nXTogc3RyaW5nfSA9IHtcblx0XCIuZ2l0aWdub3JlXCI6IFwiI2RkNGMzNVwiLFxuXHRcIi5oZ2lnbm9yZVwiOiBcIiNiZmJmYmZcIixcblx0XCIubnBtaWdub3JlXCI6IFwiI2NiMzgzN1wiLFxuXHRcIi5wcm9wZXJ0aWVzXCI6IFwiIzk5YjhjNFwiLFxuXHRcIjY1MDIgQXNzZW1ibHlcIjogXCIjMDAwMGJmXCIsXG5cdFwiQWN0aW9uU2NyaXB0XCI6IFwiI2M0MTcxOFwiLFxuXHRcIkFkYVwiOiBcIiMwZjIzYzNcIixcblx0XCJBTFwiOiBcIiMyZWE5OGVcIixcblx0XCJBTlRMUjRcIjogXCIjZTQ0YTMyXCIsXG5cdFwiQXBhY2hlIENvbmZpZ3VyYXRpb25cIjogXCIjYzkyMDM3XCIsXG5cdFwiQXBleFwiOiBcIiMwZjliZDdcIixcblx0XCJBUExcIjogXCIjZDJkMmQyXCIsXG5cdFwiQXBwbGVTY3JpcHRcIjogXCIjYThjMmFiXCIsXG5cdFwiQXJkdWlub1wiOiBcIiMyZDkwOTRcIixcblx0XCJBUk0gQXNzZW1ibHlcIjogXCIjMDAwMGJmXCIsXG5cdFwiQXNjaWlEb2NcIjogXCIjZTQwMDQ2XCIsXG5cdFwiQVNQLk5FVCAoQyMpXCI6IFwiIzMzYTlkY1wiLFxuXHRcIkF1dG9Ib3RrZXlcIjogXCIjZDhkOGQ4XCIsXG5cdFwiQXV0b0l0XCI6IFwiIzVkODNhY1wiLFxuXHRcIkF2cm8gSURMXCI6IFwiIzAwNDBmZlwiLFxuXHRcIkFXS1wiOiBcIiNkMmQyZDJcIixcblx0XCJCYXRjaFwiOiBcIiNkOWI0MDBcIixcblx0XCJDI1wiOiBcIiMzNjg4MzJcIixcblx0XCJDXCI6IFwiIzAwNWY5MVwiLFxuXHRcIkMrK1wiOiBcIiM5ODRjOTNcIixcblx0XCJDbG9qdXJlXCI6IFwiIzkxZGM0N1wiLFxuXHRcIkNNYWtlXCI6IFwiIzAxYTMwMFwiLFxuXHRcIkNPQk9MXCI6IFwiIzAwNWNhNVwiLFxuXHRcIkNvZmZlZVNjcmlwdFwiOiBcIiM2ZjRlMzdcIixcblx0XCJDcnlzdGFsXCI6IFwiI2M4YzhjOFwiLFxuXHRcIkNTU1wiOiBcIiMxNTcyYjZcIixcblx0XCJDU1ZcIjogXCIjYzJjMmMyXCIsXG5cdFwiRFwiOiBcIiNiMDM5MzFcIixcblx0XCJEYXJ0XCI6IFwiIzU4YjZmMFwiLFxuXHRcIkRoYWxsXCI6IFwiI2I3YjdiN1wiLFxuXHRcIkRpZmZcIjogXCIjYzAwMDAwXCIsXG5cdFwiRGphbmdvL0ppbmphMlwiOiBcIiNmZjAwMDBcIixcblx0XCJEb2NrZXJcIjogXCIjMDA5NmU2XCIsXG5cdFwiRE9UIChHcmFwaHZpeilcIjogXCIjNGVkMWY4XCIsXG5cdFwiRWRpdG9yQ29uZmlnXCI6IFwiI2UzZTNmOFwiLFxuXHRcIkVKU1wiOiBcIiM5MGE5M2FcIixcblx0XCJFbGl4aXJcIjogXCIjNDUyNDU5XCIsXG5cdFwiRWxtXCI6IFwiIzhjZDYzNlwiLFxuXHRcIkVSQlwiOiBcIiM5MjFhMWVcIixcblx0XCJFcmxhbmdcIjogXCIjYTIwMDNlXCIsXG5cdFwiRiNcIjogXCIjMzc4YmJhXCIsXG5cdFwiRmlyZXN0b3JlIHNlY3VyaXR5IHJ1bGVzXCI6IFwiI2Y2ODIwY1wiLFxuXHRcIkZsb3dcIjogXCIjZmZiMDQ3XCIsXG5cdFwiRm9ydHJhblwiOiBcIiM3MzRmOTZcIixcblx0XCJGcmVlTWFya2VyIFRlbXBsYXRlIExhbmd1YWdlXCI6IFwiIzAwNTBiMlwiLFxuXHRcIkdhbWVNYWtlciBMYW5ndWFnZVwiOiBcIiM4YmMzNGFcIixcblx0XCJHLWNvZGVcIjogXCIjYmEwMDAwXCIsXG5cdFwiR0RTY3JpcHRcIjogXCIjNDc4Y2JmXCIsXG5cdFwiR2l0XCI6IFwiI2RkNGMzNVwiLFxuXHRcIkdMU0xcIjogXCIjNDM4NmI1XCIsXG5cdFwiR28gbW9kdWxlXCI6IFwiI2NlMzI2MlwiLFxuXHRcIkdvXCI6IFwiIzAwYWNkN1wiLFxuXHRcIkdyYWRsZVwiOiBcIiMwMDY1MzNcIixcblx0XCJHcmFwaFFMXCI6IFwiI2UxMDA5OFwiLFxuXHRcIkdyb292eVwiOiBcIiM2Mzk4YWFcIixcblx0XCJIYW1sXCI6IFwiI2VjZGZhN1wiLFxuXHRcIkhhbmRsZWJhcnNcIjogXCIjYzE5NzcwXCIsXG5cdFwiSGFza2VsbFwiOiBcIiNDMDQ1MDRcIixcblx0XCJIYXhlXCI6IFwiI2Y2ODcxMlwiLFxuXHRcIkhMU0xcIjogXCIjMDAwMGZmXCIsXG5cdFwiSFRNTFwiOiBcIiNlNDRmMjZcIixcblx0XCJIVFRQXCI6IFwiIzNiNjFhNlwiLFxuXHRcIklkcmlzXCI6IFwiIzhhMDgxOVwiLFxuXHRcIkluaVwiOiBcIiM5OWI4YzRcIixcblx0XCJJb1wiOiBcIiNjMmMyYzJcIixcblx0XCJKYXZhXCI6IFwiIzUzODJhMVwiLFxuXHRcIkphdmFTY3JpcHRcIjogXCIjZjVkZTE5XCIsXG5cdFwiSlNPTlwiOiBcIiNmNWRlMTlcIixcblx0XCJKU09ONVwiOiBcIiM5MDkwOTBcIixcblx0XCJKdWxpYVwiOiBcIiM0MDYzZDhcIixcblx0XCJLb3RsaW5cIjogXCIjOWQ0YjlkXCIsXG5cdFwiS3VzdG9cIjogXCIjNTliNGQ5XCIsXG5cdFwiTGFUZVhcIjogXCIjY2ZjZmNmXCIsXG5cdFwiTGVzc1wiOiBcIiMyYTRmODRcIixcblx0XCJMaXF1aWRcIjogXCIjMDA0OTk5XCIsXG5cdFwiTGlzcFwiOiBcIiM4MzgxYzVcIixcblx0XCJMaXZlU2NyaXB0XCI6IFwiIzMxN2VhY1wiLFxuXHRcIkxvZyBmaWxlXCI6IFwiIzAwYmQwMlwiLFxuXHRcIkxPTENPREVcIjogXCIjOGQyNzAxXCIsXG5cdFwiTHVhXCI6IFwiIzA1MDA4MFwiLFxuXHRcIk1hcmtkb3duXCI6IFwiIzc1NTgzOFwiLFxuXHRcIk1BVExBQlwiOiBcIiNlZjZjM2VcIixcblx0XCJNQVhTY3JpcHRcIjogXCIjMDA2OTZiXCIsXG5cdFwiTUVMXCI6IFwiIzA2YTBhMlwiLFxuXHRcIk1vbmdvREJcIjogXCIjNDFhMjQ3XCIsXG5cdFwibmdpbnhcIjogXCIjMDE5NjM5XCIsXG5cdFwiTmltXCI6IFwiI2ZmZTk1M1wiLFxuXHRcIk5peFwiOiBcIiM1Mjc3YzNcIixcblx0XCJOU0lTXCI6IFwiI2E0MmQyNlwiLFxuXHRcIk9iamVjdCBQYXNjYWxcIjogXCIjRkY2MzQ0XCIsXG5cdFwiT2JqZWN0aXZlLUNcIjogXCIjYzJjMmMyXCIsXG5cdFwiT0NhbWxcIjogXCIjZjI5MTA0XCIsXG5cdFwiT2N0YXZlXCI6IFwiIzc3Y2NlMVwiLFxuXHRcIk9wZW5DTFwiOiBcIiNGRjFDMUFcIixcblx0XCJQYXNjYWxcIjogXCIjRkY2MzQ0XCIsXG5cdFwiUGVybFwiOiBcIiMzYTNjNWJcIixcblx0XCJQSFBcIjogXCIjNGM2Yjk2XCIsXG5cdFwiUEwvU1FMXCI6IFwiI2ZmMDAwMFwiLFxuXHRcIlBsYWluIHRleHRcIjogXCIjYzJjMmMyXCIsXG5cdFwiUGxhbnRVTUxcIjogXCIjQTExRjQxXCIsXG5cdFwiUG93ZXJRdWVyeVwiOiBcIiNjZmNmY2ZcIixcblx0XCJQb3dlclNoZWxsXCI6IFwiIzUzOTFmZVwiLFxuXHRcIlByb2Nlc3NpbmdcIjogXCIjMWM0YzcwXCIsXG5cdFwiUHJvbG9nXCI6IFwiI2VjMWMyNFwiLFxuXHRcIlByb3RvY29sIEJ1ZmZlcnNcIjogXCIjOTdmZjI3XCIsXG5cdFwiUHVnXCI6IFwiIzQ0MjgyM1wiLFxuXHRcIlB1cHBldFwiOiBcIiNmZmFlMWFcIixcblx0XCJQdXJlU2NyaXB0XCI6IFwiIzE2MTcxYlwiLFxuXHRcIlB5dGhvblwiOiBcIiMzNjcxQTFcIixcblx0XCJRIChrZGIrIGRhdGFiYXNlKVwiOiBcIiMxZTc4YjNcIixcblx0XCJRI1wiOiBcIiMzMzMzY2NcIixcblx0XCJRTUxcIjogXCIjNDFjZDUyXCIsXG5cdFwiUlwiOiBcIiMyNzZkYzNcIixcblx0XCJSYWNrZXRcIjogXCIjOWYxZDIwXCIsXG5cdFwiUmF6b3IgQyNcIjogXCIjMzY4ODMyXCIsXG5cdFwiUmVhY3QgSlNYXCI6IFwiIzAwZDhmZlwiLFxuXHRcIlJlYWN0IFRTWFwiOiBcIiMwMDdhY2NcIixcblx0XCJSZWFzb25cIjogXCIjZGQ0YjM5XCIsXG5cdFwiUmVnb1wiOiBcIiM3ODkyOWFcIixcblx0XCJSZVNjcmlwdFwiOiBcIiNlODRmNGZcIixcblx0XCJyZVNUIChyZVN0cnVjdHVyZWRUZXh0KVwiOiBcIiNjZTNmMzFcIixcblx0XCJSb2JvdCBGcmFtZXdvcmtcIjogXCJcIixcblx0XCJSdWJ5XCI6IFwiI2IzMTMwMVwiLFxuXHRcIlJ1c3RcIjogXCIjYTA0ZjEyXCIsXG5cdFwiU0FTXCI6IFwiIzAwMmJiNVwiLFxuXHRcIlNhc3MgKFNhc3MpXCI6IFwiI2NkNjc5OVwiLFxuXHRcIlNhc3MgKFNDU1MpXCI6IFwiI2NkNjc5OVwiLFxuXHRcIlNjYWxhXCI6IFwiI2U2MmQyYSBcIixcblx0XCJTaGVsbCBzZXNzaW9uXCI6IFwiI2Q5YjQwMFwiLFxuXHRcIlNoZWxsXCI6IFwiI2Q5YjQwMFwiLFxuXHRcIlNtYXJ0eVwiOiBcIiNmNmUyMDBcIixcblx0XCJTb2xpZGl0eSAoRXRoZXJldW0pXCI6IFwiI2MxYzFjMVwiLFxuXHRcIlNvbHV0aW9uIGZpbGVcIjogXCIjODU0Y2M3XCIsXG5cdFwiU1BBUlFMXCI6IFwiIzBjNDc5Y1wiLFxuXHRcIlNRRlwiOiBcIiNjMmMyYzJcIixcblx0XCJTUUY6IFN0YXR1cyBRdW8gRnVuY3Rpb24gKEFybWEgMylcIjogXCIjYzJjMmMyXCIsXG5cdFwiU1FMXCI6IFwiI2ZmZGE0NFwiLFxuXHRcIlNxdWlycmVsXCI6IFwiI2EwNWEyY1wiLFxuXHRcIlN0YW5cIjogXCIjYjIwMDFkXCIsXG5cdFwiU3RhdGEgQWRvXCI6IFwiIzNjNmU4ZlwiLFxuXHRcIlN0eWx1c1wiOiBcIiNjMmMyYzJcIixcblx0XCJTVkdcIjogXCIjZmZiMTNiXCIsXG5cdFwiU3dpZnRcIjogXCIjRkE1RDJEXCIsXG5cdFwiU3lzdGVtZCBjb25maWd1cmF0aW9uIGZpbGVcIjogXCIjMzBkNDc1XCIsXG5cdFwiVDQgdGVtcGxhdGluZ1wiOiBcIiMxZTg4ZTVcIixcblx0XCJUNCBUZXh0IFRlbXBsYXRlcyAoQyMpXCI6IFwiIzFlODhlNVwiLFxuXHRcIlQ0IFRleHQgVGVtcGxhdGVzIChWQilcIjogXCIjMWU4OGU1XCIsXG5cdFwiVGNsXCI6IFwiI2VmZjFjYlwiLFxuXHRcIlRlbXBsYXRlIFRvb2xraXQgMlwiOiBcIiMzYmNlZmNcIixcblx0XCJUZVhcIjogXCIjY2ZjZmNmXCIsXG5cdFwiVGV4dGlsZVwiOiBcIiNmZmU3YWNcIixcblx0XCJUT01MXCI6IFwiI2JmYmZiZlwiLFxuXHRcIlRTQ29uZmlnXCI6IFwiIzAwN2FjY1wiLFxuXHRcIlR3aWdcIjogXCIjNzhkYzUwXCIsXG5cdFwiVHlwZVNjcmlwdFwiOiBcIiMzMTc4YzZcIixcblx0XCJUeXBvU2NyaXB0XCI6IFwiI2ZmODcwMFwiLFxuXHRcIlZcIjogXCIjNWQ4N2JmXCIsXG5cdFwiVmFsYVwiOiBcIiM0MDM3NTdcIixcblx0XCJWQi5OZXRcIjogXCIjMDA1MTlhXCIsXG5cdFwiVkJBXCI6IFwiI2Q4N2IzMFwiLFxuXHRcIlZlbG9jaXR5XCI6IFwiIzI2MjY5MlwiLFxuXHRcIlZlcmlsb2dcIjogXCIjMWEzNDhmXCIsXG5cdFwiVkhETFwiOiBcIiMwZDliMzVcIixcblx0XCJ2aW1cIjogXCIjNDNiNTRhXCIsXG5cdFwiVmlzdWFsIEJhc2ljXCI6IFwiIzAwNTE5YVwiLFxuXHRcIldlYkFzc2VtYmx5XCI6IFwiIzY1NGZmMFwiLFxuXHRcIldvbGZyYW0gbGFuZ3VhZ2VcIjogXCIjZDAxMDAwXCIsXG5cdFwiWE1MXCI6IFwiI2YxNjYyYVwiLFxuXHRcIlhRdWVyeVwiOiBcIiNmMTY2MmFcIixcblx0XCJZQU1MXCI6IFwiI2ZmZTg4NVwiLFxuXHRcIllBTkdcIjogXCIjMjMxZjIwXCIsXG5cdFwiWmlnXCI6IFwiI2Y3YTQxZFwiXG59O1xuXG5jb25zdCBFWEVDVVRFX0NPREVfTEFOR1VBR0VfQUxJQVNFUzogQXJyYXk8c3RyaW5nPiA9IFtcImphdmFzY3JpcHRcIixcInR5cGVzY3JpcHRcIixcImJhc2hcIixcImNzaGFycFwiLFwid29sZnJhbVwiLFwibmJcIixcIndsXCIsXCJoc1wiLFwicHlcIl07XG5jb25zdCBFWEVDVVRFX0NPREVfQ0FOT05JQ0FMX0xBTkdVQUdFUzogQXJyYXk8c3RyaW5nPiA9IFtcImpzXCIsXCJ0c1wiLFwiY3NcIixcImxlYW5cIixcImx1YVwiLFwicHl0aG9uXCIsXCJjcHBcIixcInByb2xvZ1wiLFwic2hlbGxcIixcImdyb292eVwiLFwiclwiLFwiZ29cIixcInJ1c3RcIixcImphdmFcIixcInBvd2Vyc2hlbGxcIixcImtvdGxpblwiLFwibWF0aGVtYXRpY2FcIixcImhhc2tlbGxcIixcInNjYWxhXCIsXCJyYWNrZXRcIixcImZzaGFycFwiLFwiY1wiLFwiZGFydFwiLFwicnVieVwiLFwiYmF0Y2hcIixcInNxbFwiLFwib2N0YXZlXCIsXCJtYXhpbWFcIl07XG5cbmV4cG9ydCBjb25zdCBFWEVDVVRFX0NPREVfU1VQUE9SVEVEX0xBTkdVQUdFUyA9IFsuLi5FWEVDVVRFX0NPREVfTEFOR1VBR0VfQUxJQVNFUywuLi5FWEVDVVRFX0NPREVfQ0FOT05JQ0FMX0xBTkdVQUdFU107XG4iLCAiaW1wb3J0IHsgQXBwLCBQbHVnaW5TZXR0aW5nVGFiLCBTZXR0aW5nLCBOb3RpY2UsIFRleHRDb21wb25lbnQsIERyb3Bkb3duQ29tcG9uZW50LCBTbGlkZXJDb21wb25lbnQsIFRvZ2dsZUNvbXBvbmVudCwgRXh0cmFCdXR0b25Db21wb25lbnQgfSBmcm9tIFwib2JzaWRpYW5cIjtcbmltcG9ydCBQaWNrciBmcm9tIFwiQHNpbW9ud2VwL3BpY2tyXCI7XG5pbXBvcnQgeyBDb2xvclRyYW5zbGF0b3IgfSBmcm9tIFwiY29sb3J0cmFuc2xhdG9yXCI7XG5cbmltcG9ydCBDb2RlU3R5bGVyUGx1Z2luIGZyb20gXCIuL21haW5cIjtcbmltcG9ydCB7IENvbG91ciwgQ1NTLCBIRVgsIERpc3BsYXksIENvZGVTdHlsZXJTZXR0aW5ncywgQ29kZVN0eWxlclRoZW1lQ29sb3VycywgRk9MRF9QTEFDRUhPTERFUiwgUEFSQU1FVEVSUywgREVGQVVMVF9TRVRUSU5HUywgTEFOR1VBR0VfTkFNRVMsIExBTkdVQUdFX0lDT05TX0RBVEEgfSBmcm9tIFwiLi9TZXR0aW5nc1wiO1xuXG5jb25zdCBESVNQTEFZX09QVElPTlM6IFJlY29yZDxEaXNwbGF5LHN0cmluZz4gPSB7XG5cdFwibm9uZVwiOiBcIk5ldmVyXCIsXG5cdFwiaWZfaGVhZGVyX3Nob3duXCI6IFwiSWYgSGVhZGVyIFNob3duXCIsXG5cdFwiYWx3YXlzXCI6IFwiQWx3YXlzXCIsXG59O1xuXG5leHBvcnQgY2xhc3MgU2V0dGluZ3NUYWIgZXh0ZW5kcyBQbHVnaW5TZXR0aW5nVGFiIHtcblx0cGx1Z2luOiBDb2RlU3R5bGVyUGx1Z2luO1xuXHRwaWNrcnM6IFJlY29yZDxzdHJpbmcsUGlja3JSZXNldHRhYmxlPjtcblx0ZGlzYWJsZWFibGVDb21wb25lbnRzOiBSZWNvcmQ8c3RyaW5nLEFycmF5PFRvZ2dsZUNvbXBvbmVudCB8IFNsaWRlckNvbXBvbmVudCB8IFRleHRDb21wb25lbnQgfCBFeHRyYUJ1dHRvbkNvbXBvbmVudD4+O1xuXG5cdGNvbnN0cnVjdG9yKGFwcDogQXBwLCBwbHVnaW46IENvZGVTdHlsZXJQbHVnaW4pIHtcblx0XHRzdXBlcihhcHAsIHBsdWdpbik7XG5cdFx0dGhpcy5wbHVnaW4gPSBwbHVnaW47XG5cdFx0dGhpcy5waWNrcnMgPSB7fTtcblx0XHR0aGlzLmRpc2FibGVhYmxlQ29tcG9uZW50cyA9IHt9O1xuXHR9XG5cblx0LyoqXG5cdCAqICBCdWlsZHMgdGhlIGh0bWwgcGFnZSB0aGF0IGlzIHNob3dlZCBpbiB0aGUgc2V0dGluZ3MuXG5cdCAqL1xuXHRkaXNwbGF5KCkge1xuXHRcdGNvbnN0IHtjb250YWluZXJFbH0gPSB0aGlzO1xuXHRcdGNvbnRhaW5lckVsLmVtcHR5KCk7XG5cdFx0Y29udGFpbmVyRWwuY3JlYXRlRWwoXCJoMlwiLCB7dGV4dDogXCJTZXR0aW5ncyBmb3IgdGhlIENvZGUgU3R5bGVyIFBsdWdpbi5cIn0pO1xuXG5cdFx0dGhpcy5kaXNhYmxlYWJsZUNvbXBvbmVudHMgPSB7XG5cdFx0XHRcImxpbmVOdW1iZXJzXCI6IFtdLFxuXHRcdFx0XCJ3cmFwTGluZXNcIjogW10sXG5cdFx0XHRcImhlYWRlckxhbmd1YWdlVGFnc1wiOiBbXSxcblx0XHRcdFwiaGVhZGVyTGFuZ3VhZ2VJY29uc1wiOiBbXSxcblx0XHRcdFwiZWRpdG9yQWN0aXZlTGluZUhpZ2hsaWdodFwiOiBbXSxcblx0XHRcdFwiY29kZWJsb2NrQWN0aXZlTGluZUhpZ2hsaWdodFwiOiBbXSxcblx0XHRcdFwiZ3JhZGllbnRIaWdobGlnaHRpbmdcIjogW10sXG5cdFx0XHRcImxhbmd1YWdlQm9yZGVyQ29sb3VyXCI6IFtdLFxuXHRcdH07XG5cblx0XHQvLyA9PT09PT09PT09IEdlbmVyYWwgPT09PT09PT09PVxuXG5cdFx0bGV0IGlnbm9yZVRpbWVvdXQ6IE5vZGVKUy5UaW1lb3V0ID0gc2V0VGltZW91dCgoKT0+e30pOyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1mdW5jdGlvblxuXHRcdC8vVE9ETyAoQG1heXVyYW5rdikgUmUtcmVuZGVyIChMUClcblx0XHRuZXcgU2V0dGluZyhjb250YWluZXJFbClcblx0XHRcdC5zZXROYW1lKFwiSWdub3JlIENvZGVibG9ja3NcIilcblx0XHRcdC5zZXREZXNjKFwiRGVmaW5lIGxhbmd1YWdlcyBpbiBhIGNvbW1hIHNlcGFyYXRlZCBsaXN0IHdoaWNoIHRoZSBwbHVnaW4gc2hvdWxkIGNvbXBsZXRlbHkgaWdub3JlLiBZb3UgY2FuIHVzZSBhIHdpbGRjYXJkICgqKSBlaXRoZXIgYXQgdGhlIGJlZ2lubmluZywgb3IgYXQgdGhlIGVuZC4gRm9yIGV4YW1wbGU6IGFkLSogd2lsbCBleGNsdWRlIGNvZGVibG9ja3Mgd2hlcmUgdGhlIGxhbmd1YWdlIHN0YXJ0cyB3aXRoIGFkLSBlLmcuOiBhZC1pbmZvLCBhZC1lcnJvciBldGMuXCIpXG5cdFx0XHQuYWRkVGV4dCh0ZXh0ID0+IHRleHRcblx0XHRcdFx0LnNldFBsYWNlaG9sZGVyKFwiZS5nLiBkYXRhdmlldywgZGF0YXZpZXdqcyBldGMuXCIpXG5cdFx0XHRcdC5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5leGNsdWRlZENvZGVibG9ja3MpXG5cdFx0XHRcdC5vbkNoYW5nZSgodmFsdWUpID0+IHtcblx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5leGNsdWRlZENvZGVibG9ja3MgPSB2YWx1ZTtcblx0XHRcdFx0XHQoYXN5bmMgKCkgPT4ge2F3YWl0IHRoaXMucGx1Z2luLnNhdmVTZXR0aW5ncygpO30pKCk7XG5cdFx0XHRcdFx0Y2xlYXJUaW1lb3V0KGlnbm9yZVRpbWVvdXQpO1xuXHRcdFx0XHRcdGlnbm9yZVRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpPT50aGlzLnBsdWdpbi5yZW5kZXJSZWFkaW5nVmlldygpLDEwMDApO1xuXHRcdFx0XHR9KSk7XG5cdFx0bGV0IGV4Y2x1ZGVUaW1lb3V0OiBOb2RlSlMuVGltZW91dCA9IHNldFRpbWVvdXQoKCk9Pnt9KTsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZW1wdHktZnVuY3Rpb25cblx0XHQvL1RPRE8gKEBtYXl1cmFua3YpIFJlLXJlbmRlciAoTFApXG5cdFx0bmV3IFNldHRpbmcoY29udGFpbmVyRWwpXG5cdFx0XHQuc2V0TmFtZShcIkV4Y2x1ZGUgTGFuZ3VhZ2VzXCIpXG5cdFx0XHQuc2V0RGVzYyhcIkRlZmluZSBsYW5ndWFnZXMgaW4gYSBjb21tYSBzZXBhcmF0ZWQgbGlzdCB3aGljaCB0aGUgcGx1Z2luIHNob3VsZCBub3QgZGVjb3JhdGUuIFlvdSBjYW4gdXNlIGEgd2lsZGNhcmQgKCopIGVpdGhlciBhdCB0aGUgYmVnaW5uaW5nLCBvciBhdCB0aGUgZW5kLiBGb3IgZXhhbXBsZTogYWQtKiB3aWxsIGV4Y2x1ZGUgY29kZWJsb2NrcyB3aGVyZSB0aGUgbGFuZ3VhZ2Ugc3RhcnRzIHdpdGggYWQtIGUuZy46IGFkLWluZm8sIGFkLWVycm9yIGV0Yy5cIilcblx0XHRcdC5hZGRUZXh0KHRleHQgPT4gdGV4dFxuXHRcdFx0XHQuc2V0UGxhY2Vob2xkZXIoXCJlLmcuIGFkLSosIHB5dGhvbiBldGMuXCIpXG5cdFx0XHRcdC5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5leGNsdWRlZExhbmd1YWdlcylcblx0XHRcdFx0Lm9uQ2hhbmdlKCh2YWx1ZSkgPT4ge1xuXHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLmV4Y2x1ZGVkTGFuZ3VhZ2VzID0gdmFsdWU7XG5cdFx0XHRcdFx0KGFzeW5jICgpID0+IHthd2FpdCB0aGlzLnBsdWdpbi5zYXZlU2V0dGluZ3MoKTt9KSgpO1xuXHRcdFx0XHRcdGNsZWFyVGltZW91dChleGNsdWRlVGltZW91dCk7XG5cdFx0XHRcdFx0ZXhjbHVkZVRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpPT50aGlzLnBsdWdpbi5yZW5kZXJSZWFkaW5nVmlldygpLDEwMDApO1xuXHRcdFx0XHR9KSk7XG5cdFx0bmV3IFNldHRpbmcoY29udGFpbmVyRWwpXG5cdFx0XHQuc2V0TmFtZShcIlN0eWxlIENvZGUgb24gRXhwb3J0XCIpXG5cdFx0XHQuc2V0RGVzYyhcIklmIGVuYWJsZWQsIHN0eWxpbmcgd2lsbCBiZSBhcHBsaWVkIHdoZW4gZXhwb3J0aW5nIHRvIFBERi5cIilcblx0XHRcdC5hZGRUb2dnbGUodG9nZ2xlID0+IHRvZ2dsZVxuXHRcdFx0XHQuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuZGVjb3JhdGVQcmludClcblx0XHRcdFx0Lm9uQ2hhbmdlKCh2YWx1ZSkgPT4ge1xuXHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLmRlY29yYXRlUHJpbnQgPSB2YWx1ZTtcblx0XHRcdFx0XHQoYXN5bmMgKCkgPT4ge2F3YWl0IHRoaXMucGx1Z2luLnNhdmVTZXR0aW5ncygpO30pKCk7ICAgICAgICAgXG5cdFx0XHRcdH0pKTtcblxuXHRcdC8vID09PT09PT09PT0gVGhlbWVzID09PT09PT09PT1cblx0XHRjb250YWluZXJFbC5jcmVhdGVFbChcImgzXCIsIHt0ZXh0OiBcIlRoZW1lIFNldHRpbmdzXCJ9KTtcblxuXHRcdGxldCB0aGVtZURyb3Bkb3duOiBEcm9wZG93bkNvbXBvbmVudDtcblx0XHRuZXcgU2V0dGluZyhjb250YWluZXJFbClcblx0XHRcdC5zZXROYW1lKFwiU2VsZWN0IFRoZW1lXCIpXG5cdFx0XHQuYWRkRHJvcGRvd24oKGRyb3Bkb3duKSA9PiB7XG5cdFx0XHRcdHRoZW1lRHJvcGRvd24gPSBkcm9wZG93bjtcblx0XHRcdFx0dGhpcy51cGRhdGVEcm9wZG93bih0aGVtZURyb3Bkb3duLHRoaXMucGx1Z2luLnNldHRpbmdzKTtcblx0XHRcdFx0dGhlbWVEcm9wZG93bi5vbkNoYW5nZSgodmFsdWUpID0+IHtcblx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5zZWxlY3RlZFRoZW1lID0gdmFsdWU7XG5cdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lID0gc3RydWN0dXJlZENsb25lKHRoaXMucGx1Z2luLnNldHRpbmdzLnRoZW1lc1t0aGlzLnBsdWdpbi5zZXR0aW5ncy5zZWxlY3RlZFRoZW1lXSk7XG5cdFx0XHRcdFx0dGhpcy5kaXNwbGF5KCk7XG5cdFx0XHRcdFx0KGFzeW5jICgpID0+IHthd2FpdCB0aGlzLnBsdWdpbi5zYXZlU2V0dGluZ3MoKTt9KSgpO1xuXHRcdFx0XHR9KTtcblx0XHRcdH0pXG5cdFx0XHQuYWRkRXh0cmFCdXR0b24oYnV0dG9uID0+IHtcblx0XHRcdFx0YnV0dG9uLnNldFRvb2x0aXAoXCJVcGRhdGUgdGhlbWVcIik7XG5cdFx0XHRcdGJ1dHRvbi5zZXRJY29uKFwic2F2ZVwiKTtcblx0XHRcdFx0YnV0dG9uLm9uQ2xpY2soKCkgPT4ge1xuXHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLnRoZW1lc1t0aGlzLnBsdWdpbi5zZXR0aW5ncy5zZWxlY3RlZFRoZW1lXSA9IHN0cnVjdHVyZWRDbG9uZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUpO1xuXHRcdFx0XHRcdHRoaXMudXBkYXRlQWx0ZXJuYXRpdmVIaWdobGlnaHRzKGFsdGVybmF0aXZlSGlnaGxpZ2h0c0NvbnRhaW5lcik7XG5cdFx0XHRcdFx0bmV3IE5vdGljZShgJHt0aGlzLnBsdWdpbi5zZXR0aW5ncy5zZWxlY3RlZFRoZW1lfSB0aGVtZSBzYXZlZCBzdWNjZXNzZnVsbHkhYCk7IC8vTk9TT05BUlxuXHRcdFx0XHRcdChhc3luYyAoKSA9PiB7YXdhaXQgdGhpcy5wbHVnaW4uc2F2ZVNldHRpbmdzKCk7fSkoKTtcblx0XHRcdFx0fSk7XG5cdFx0XHR9KVxuXHRcdFx0LmFkZEV4dHJhQnV0dG9uKGJ1dHRvbiA9PiB7XG5cdFx0XHRcdGJ1dHRvbi5zZXRUb29sdGlwKFwiRGVsZXRlIHRoZW1lXCIpO1xuXHRcdFx0XHRidXR0b24uc2V0SWNvbihcInRyYXNoXCIpO1xuXHRcdFx0XHRidXR0b24ub25DbGljaygoKSA9PiB7XG5cdFx0XHRcdFx0aWYgKHRoaXMucGx1Z2luLnNldHRpbmdzLnNlbGVjdGVkVGhlbWUudHJpbSgpLmxlbmd0aCA9PT0gMClcblx0XHRcdFx0XHRcdG5ldyBOb3RpY2UoXCJTZWxlY3QgYSB0aGVtZSBmaXJzdCB0byBkZWxldGVcIik7IC8vTk9TT05BUlxuXHRcdFx0XHRcdGVsc2UgaWYgKHRoaXMucGx1Z2luLnNldHRpbmdzLnNlbGVjdGVkVGhlbWUgaW4gREVGQVVMVF9TRVRUSU5HUy50aGVtZXMpXG5cdFx0XHRcdFx0XHRuZXcgTm90aWNlKFwiWW91IGNhbm5vdCBkZWxldGUgdGhlIGRlZmF1bHQgdGhlbWVzXCIpOyAvL05PU09OQVJcblx0XHRcdFx0XHRlbHNlIHtcblx0XHRcdFx0XHRcdGRlbGV0ZSB0aGlzLnBsdWdpbi5zZXR0aW5ncy50aGVtZXNbdGhpcy5wbHVnaW4uc2V0dGluZ3Muc2VsZWN0ZWRUaGVtZV07XG5cdFx0XHRcdFx0XHRuZXcgTm90aWNlKGAke3RoaXMucGx1Z2luLnNldHRpbmdzLnNlbGVjdGVkVGhlbWV9IHRoZW1lIGRlbGV0ZWQgc3VjY2Vzc2Z1bGx5IWApOyAvL05PU09OQVJcblx0XHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLnNlbGVjdGVkVGhlbWUgPSBcIkRlZmF1bHRcIjtcblx0XHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZSA9IHN0cnVjdHVyZWRDbG9uZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy50aGVtZXNbdGhpcy5wbHVnaW4uc2V0dGluZ3Muc2VsZWN0ZWRUaGVtZV0pO1xuXHRcdFx0XHRcdFx0dGhpcy51cGRhdGVEcm9wZG93bih0aGVtZURyb3Bkb3duLHRoaXMucGx1Z2luLnNldHRpbmdzKTtcblx0XHRcdFx0XHRcdHRoaXMuZGlzcGxheSgpO1xuXHRcdFx0XHRcdFx0KGFzeW5jICgpID0+IHthd2FpdCB0aGlzLnBsdWdpbi5zYXZlU2V0dGluZ3MoKTt9KSgpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSk7XG5cdFx0XHR9KTtcblx0XHRsZXQgbmV3VGhlbWVOYW1lOiBUZXh0Q29tcG9uZW50O1xuXHRcdGxldCBuZXdUaGVtZURlZmF1bHQ6IFRvZ2dsZUNvbXBvbmVudDtcblx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5uZXdUaGVtZSA9IFwiXCI7XG5cdFx0bmV3IFNldHRpbmcoY29udGFpbmVyRWwpXG5cdFx0XHQuc2V0TmFtZShcIkFkZCBOZXcgVGhlbWVcIilcblx0XHRcdC5zZXREZXNjKFwiQ3JlYXRlIGEgbmV3IHRoZW1lIGZyb20gdGhlIGN1cnJlbnQgc2V0dGluZ3MuXCIpXG5cdFx0XHQuYWRkVGV4dCh0ZXh0ID0+IHtuZXdUaGVtZU5hbWUgPSB0ZXh0XG5cdFx0XHRcdC5zZXRQbGFjZWhvbGRlcihcIk5ldyB0aGVtZSBuYW1lXCIpXG5cdFx0XHRcdC5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5uZXdUaGVtZSlcblx0XHRcdFx0Lm9uQ2hhbmdlKCh2YWx1ZSkgPT4ge1xuXHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLm5ld1RoZW1lID0gdmFsdWU7XG5cdFx0XHRcdH0pO1xuXHRcdFx0fSlcblx0XHRcdC5hZGRFeHRyYUJ1dHRvbihidXR0b24gPT4ge1xuXHRcdFx0XHRidXR0b24uc2V0VG9vbHRpcChcIlNhdmUgdGhlbWVcIik7XG5cdFx0XHRcdGJ1dHRvbi5zZXRJY29uKFwicGx1c1wiKTtcblx0XHRcdFx0YnV0dG9uLm9uQ2xpY2soKCkgPT4ge1xuXHRcdFx0XHRcdGlmICh0aGlzLnBsdWdpbi5zZXR0aW5ncy5uZXdUaGVtZS50cmltKCkubGVuZ3RoID09PSAwKVxuXHRcdFx0XHRcdFx0bmV3IE5vdGljZShcIlNldCBhIG5hbWUgZm9yIHlvdXIgdGhlbWVcIik7IC8vTk9TT05BUlxuXHRcdFx0XHRcdGVsc2UgaWYgKHRoaXMucGx1Z2luLnNldHRpbmdzLm5ld1RoZW1lIGluIERFRkFVTFRfU0VUVElOR1MudGhlbWVzKVxuXHRcdFx0XHRcdFx0bmV3IE5vdGljZShcIllvdSBjYW4ndCBvdmVyd3JpdGUgdGhlIGRlZmF1bHQgdGhlbWVzXCIpOyAvL05PU09OQVJcblx0XHRcdFx0XHRlbHNlIHtcblx0XHRcdFx0XHRcdGlmICh0aGlzLnBsdWdpbi5zZXR0aW5ncy5uZXdUaGVtZSBpbiB0aGlzLnBsdWdpbi5zZXR0aW5ncy50aGVtZXMpIHtcblx0XHRcdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MudGhlbWVzW3RoaXMucGx1Z2luLnNldHRpbmdzLm5ld1RoZW1lXSA9IHN0cnVjdHVyZWRDbG9uZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUpO1xuXHRcdFx0XHRcdFx0XHRuZXcgTm90aWNlKGAke3RoaXMucGx1Z2luLnNldHRpbmdzLm5ld1RoZW1lfSB0aGVtZSB1cGRhdGVkIHN1Y2Nlc3NmdWxseSFgKTsgLy9OT1NPTkFSXG5cdFx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy50aGVtZXNbdGhpcy5wbHVnaW4uc2V0dGluZ3MubmV3VGhlbWVdID0gc3RydWN0dXJlZENsb25lKHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZSk7XG5cdFx0XHRcdFx0XHRcdG5ldyBOb3RpY2UoYCR7dGhpcy5wbHVnaW4uc2V0dGluZ3MubmV3VGhlbWV9IHRoZW1lIHNhdmVkIHN1Y2Nlc3NmdWxseSFgKTsgLy9OT1NPTkFSXG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5zZWxlY3RlZFRoZW1lID0gdGhpcy5wbHVnaW4uc2V0dGluZ3MubmV3VGhlbWU7XG5cdFx0XHRcdFx0XHR0aGlzLnVwZGF0ZURyb3Bkb3duKHRoZW1lRHJvcGRvd24sdGhpcy5wbHVnaW4uc2V0dGluZ3MpO1xuXHRcdFx0XHRcdFx0dGhpcy51cGRhdGVBbHRlcm5hdGl2ZUhpZ2hsaWdodHMoYWx0ZXJuYXRpdmVIaWdobGlnaHRzQ29udGFpbmVyKTtcblx0XHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLm5ld1RoZW1lID0gXCJcIjtcblx0XHRcdFx0XHRcdG5ld1RoZW1lTmFtZS5zZXRWYWx1ZShcIlwiKTtcblx0XHRcdFx0XHRcdG5ld1RoZW1lRGVmYXVsdC5zZXRWYWx1ZShmYWxzZSk7XG5cdFx0XHRcdFx0XHQoYXN5bmMgKCkgPT4ge2F3YWl0IHRoaXMucGx1Z2luLnNhdmVTZXR0aW5ncygpO30pKCk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9KTtcblx0XHRcdH0pO1xuXHRcdFxuXHRcdGNvbnRhaW5lckVsLmNyZWF0ZUVsKFwiaDRcIiwge3RleHQ6IFwiQ29kZWJsb2NrIEFwcGVhcmFuY2VcIn0pO1xuXHRcdG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxuXHRcdFx0LnNldE5hbWUoXCJDb2RlYmxvY2sgQmFja2dyb3VuZCBDb2xvdXJcIilcblx0XHRcdC50aGVuKChzZXR0aW5nKSA9PiB7dGhpcy5jcmVhdGVQaWNrcihcblx0XHRcdFx0dGhpcy5wbHVnaW4sY29udGFpbmVyRWwsc2V0dGluZyxcblx0XHRcdFx0XCJjb2RlYmxvY2tfYmFja2dyb3VuZFwiLFxuXHRcdFx0XHQocmVsZXZhbnRUaGVtZUNvbG91cnM6IENvZGVTdHlsZXJUaGVtZUNvbG91cnMpID0+IHJlbGV2YW50VGhlbWVDb2xvdXJzW2dldEN1cnJlbnRNb2RlKCldLmNvZGVibG9jay5iYWNrZ3JvdW5kQ29sb3VyLFxuXHRcdFx0XHQocmVsZXZhbnRUaGVtZUNvbG91cnM6IENvZGVTdHlsZXJUaGVtZUNvbG91cnMsIHNhdmVDb2xvdXI6IENvbG91cikgPT4ge3JlbGV2YW50VGhlbWVDb2xvdXJzW2dldEN1cnJlbnRNb2RlKCldLmNvZGVibG9jay5iYWNrZ3JvdW5kQ29sb3VyID0gc2F2ZUNvbG91cjt9LFxuXHRcdFx0KTt9KTtcblx0XHRuZXcgU2V0dGluZyhjb250YWluZXJFbClcblx0XHRcdC5zZXROYW1lKFwiQ29kZWJsb2NrIFRleHQgQ29sb3VyXCIpXG5cdFx0XHQudGhlbigoc2V0dGluZykgPT4ge3RoaXMuY3JlYXRlUGlja3IoXG5cdFx0XHRcdHRoaXMucGx1Z2luLGNvbnRhaW5lckVsLHNldHRpbmcsXG5cdFx0XHRcdFwiY29kZWJsb2NrX3RleHRcIixcblx0XHRcdFx0KHJlbGV2YW50VGhlbWVDb2xvdXJzOiBDb2RlU3R5bGVyVGhlbWVDb2xvdXJzKSA9PiByZWxldmFudFRoZW1lQ29sb3Vyc1tnZXRDdXJyZW50TW9kZSgpXS5jb2RlYmxvY2sudGV4dENvbG91cixcblx0XHRcdFx0KHJlbGV2YW50VGhlbWVDb2xvdXJzOiBDb2RlU3R5bGVyVGhlbWVDb2xvdXJzLCBzYXZlQ29sb3VyOiBDb2xvdXIpID0+IHtyZWxldmFudFRoZW1lQ29sb3Vyc1tnZXRDdXJyZW50TW9kZSgpXS5jb2RlYmxvY2sudGV4dENvbG91ciA9IHNhdmVDb2xvdXI7fSxcblx0XHRcdCk7fSk7XG5cdFx0bmV3IFNldHRpbmcoY29udGFpbmVyRWwpXG5cdFx0XHQuc2V0TmFtZShcIlVud3JhcCBjb2RlYmxvY2sgbGluZXNcIilcblx0XHRcdC5zZXREZXNjKFwiQ2hvb3NlIHdoZXRoZXIgdG8gdW53cmFwIGxpbmVzIGluIHJlYWRpbmcgbW9kZVwiKVxuXHRcdFx0LmFkZFRvZ2dsZSh0b2dnbGUgPT4gdG9nZ2xlXG5cdFx0XHRcdC5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuY29kZWJsb2NrLnVud3JhcExpbmVzKVxuXHRcdFx0XHQub25DaGFuZ2UoKHZhbHVlKSA9PiB7XG5cdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmNvZGVibG9jay51bndyYXBMaW5lcyA9IHZhbHVlO1xuXHRcdFx0XHRcdGlmICghdmFsdWUpXG5cdFx0XHRcdFx0XHR3cmFwTGluZXNBY3RpdmVUb2dnbGUuc2V0VmFsdWUoZmFsc2UpO1xuXHRcdFx0XHRcdHRoaXMuZGlzYWJsZWFibGVDb21wb25lbnRzW1wid3JhcExpbmVzXCJdLmZvckVhY2goY29tcG9uZW50ID0+IHtjb21wb25lbnQuc2V0RGlzYWJsZWQoIXZhbHVlKTt9KTtcblx0XHRcdFx0XHQoYXN5bmMgKCkgPT4ge2F3YWl0IHRoaXMucGx1Z2luLnNhdmVTZXR0aW5ncygpO30pKCk7ICBcblx0XHRcdFx0XHR0aGlzLnBsdWdpbi5yZW5kZXJSZWFkaW5nVmlldygpO1xuXHRcdFx0XHR9KSk7XG5cdFx0bmV3IFNldHRpbmcoY29udGFpbmVyRWwpXG5cdFx0XHQuc2V0TmFtZShcIkNvZGVibG9jayBDdXJ2YXR1cmVcIilcblx0XHRcdC5zZXREZXNjKFwiRGV0ZXJtaW5lcyBob3cgcm91bmRlZCB0aGUgY29kZWJsb2NrcyBhcHBlYXIgaW4gcGl4ZWxzLlwiKVxuXHRcdFx0LnRoZW4oKHNldHRpbmcpID0+IHtcblx0XHRcdFx0bGV0IHJlc2V0dGFibGVTbGlkZXI6IFNsaWRlckNvbXBvbmVudDtcblx0XHRcdFx0c2V0dGluZy5hZGRTbGlkZXIoKHNsaWRlcikgPT4ge3Jlc2V0dGFibGVTbGlkZXIgPSBzbGlkZXJcblx0XHRcdFx0XHQuc2V0TGltaXRzKDAsMjUsMSlcblx0XHRcdFx0XHQuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmNvZGVibG9jay5jdXJ2YXR1cmUpXG5cdFx0XHRcdFx0LnNldER5bmFtaWNUb29sdGlwKClcblx0XHRcdFx0XHQub25DaGFuZ2UoKHZhbHVlKSA9PiB7XG5cdFx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuY29kZWJsb2NrLmN1cnZhdHVyZSA9IHZhbHVlO1xuXHRcdFx0XHRcdFx0KGFzeW5jICgpID0+IHthd2FpdCB0aGlzLnBsdWdpbi5zYXZlU2V0dGluZ3MoKTt9KSgpOyAgICBcblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0fSk7XG5cdFx0XHRcdHNldHRpbmcuYWRkRXh0cmFCdXR0b24oKGJ1dHRvbikgPT4ge2J1dHRvblxuXHRcdFx0XHRcdC5zZXRJY29uKFwicmVzZXRcIilcblx0XHRcdFx0XHQuc2V0VG9vbHRpcChcIlJlc3RvcmUgZGVmYXVsdCBjdXJ2YXR1cmVcIilcblx0XHRcdFx0XHQub25DbGljaygoKSA9PiB7XG5cdFx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuY29kZWJsb2NrLmN1cnZhdHVyZSA9IHRoaXMucGx1Z2luLnNldHRpbmdzLnRoZW1lc1t0aGlzLnBsdWdpbi5zZXR0aW5ncy5zZWxlY3RlZFRoZW1lXS5zZXR0aW5ncy5jb2RlYmxvY2suY3VydmF0dXJlO1xuXHRcdFx0XHRcdFx0cmVzZXR0YWJsZVNsaWRlci5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuY29kZWJsb2NrLmN1cnZhdHVyZSk7XG5cdFx0XHRcdFx0XHQoYXN5bmMgKCkgPT4ge2F3YWl0IHRoaXMucGx1Z2luLnNhdmVTZXR0aW5ncygpO30pKCk7XG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdH0pO1xuXHRcdFx0fSk7XG5cdFx0XHRcblx0XHRjb250YWluZXJFbC5jcmVhdGVFbChcImg0XCIsIHt0ZXh0OiBcIkd1dHRlciBBcHBlYXJhbmNlXCJ9KTtcblx0XHRuZXcgU2V0dGluZyhjb250YWluZXJFbClcblx0XHRcdC5zZXROYW1lKFwiRW5hYmxlIExpbmUgTnVtYmVyc1wiKVxuXHRcdFx0LnNldERlc2MoXCJJZiBkaXNhYmxlZCwgdGhlIGJlbG93IHNldHRpbmdzIGFyZSBkaXNhYmxlZCB0b28uXCIpXG5cdFx0XHQuYWRkVG9nZ2xlKHRvZ2dsZSA9PiB0b2dnbGVcblx0XHRcdFx0LnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5jb2RlYmxvY2subGluZU51bWJlcnMpXG5cdFx0XHRcdC5vbkNoYW5nZSgodmFsdWUpID0+IHtcblx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuY29kZWJsb2NrLmxpbmVOdW1iZXJzID0gdmFsdWU7XG5cdFx0XHRcdFx0dGhpcy5kaXNhYmxlYWJsZUNvbXBvbmVudHNbXCJsaW5lTnVtYmVyc1wiXS5mb3JFYWNoKGNvbXBvbmVudCA9PiB7Y29tcG9uZW50LnNldERpc2FibGVkKCF2YWx1ZSk7fSk7XG5cdFx0XHRcdFx0KGFzeW5jICgpID0+IHthd2FpdCB0aGlzLnBsdWdpbi5zYXZlU2V0dGluZ3MoKTt9KSgpOyAgICAgICAgIFxuXHRcdFx0XHR9KSk7XG5cdFx0bmV3IFNldHRpbmcoY29udGFpbmVyRWwpXG5cdFx0XHQuc2V0TmFtZShcIkd1dHRlciBCYWNrZ3JvdW5kIENvbG91clwiKVxuXHRcdFx0LnRoZW4oKHNldHRpbmcpID0+IHt0aGlzLmNyZWF0ZVBpY2tyKFxuXHRcdFx0XHR0aGlzLnBsdWdpbixjb250YWluZXJFbCxzZXR0aW5nLFxuXHRcdFx0XHRcImd1dHRlcl9iYWNrZ3JvdW5kXCIsXG5cdFx0XHRcdChyZWxldmFudFRoZW1lQ29sb3VyczogQ29kZVN0eWxlclRoZW1lQ29sb3VycykgPT4gcmVsZXZhbnRUaGVtZUNvbG91cnNbZ2V0Q3VycmVudE1vZGUoKV0uZ3V0dGVyLmJhY2tncm91bmRDb2xvdXIsXG5cdFx0XHRcdChyZWxldmFudFRoZW1lQ29sb3VyczogQ29kZVN0eWxlclRoZW1lQ29sb3Vycywgc2F2ZUNvbG91cjogQ29sb3VyKSA9PiB7cmVsZXZhbnRUaGVtZUNvbG91cnNbZ2V0Q3VycmVudE1vZGUoKV0uZ3V0dGVyLmJhY2tncm91bmRDb2xvdXIgPSBzYXZlQ29sb3VyO30sXG5cdFx0XHRcdCgpID0+ICF0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuY29kZWJsb2NrLmxpbmVOdW1iZXJzLFxuXHRcdFx0KTt9KTtcblx0XHR0aGlzLmRpc2FibGVhYmxlQ29tcG9uZW50c1tcImxpbmVOdW1iZXJzXCJdLnB1c2godGhpcy5waWNrcnNbXCJndXR0ZXJfYmFja2dyb3VuZFwiXS5yZXNldEJ1dHRvbik7XG5cdFx0bmV3IFNldHRpbmcoY29udGFpbmVyRWwpXG5cdFx0XHQuc2V0TmFtZShcIkxpbmUgTnVtYmVyIENvbG91clwiKVxuXHRcdFx0LnRoZW4oKHNldHRpbmcpID0+IHt0aGlzLmNyZWF0ZVBpY2tyKFxuXHRcdFx0XHR0aGlzLnBsdWdpbixjb250YWluZXJFbCxzZXR0aW5nLFxuXHRcdFx0XHRcImxpbmVfbnVtYmVyXCIsXG5cdFx0XHRcdChyZWxldmFudFRoZW1lQ29sb3VyczogQ29kZVN0eWxlclRoZW1lQ29sb3VycykgPT4gcmVsZXZhbnRUaGVtZUNvbG91cnNbZ2V0Q3VycmVudE1vZGUoKV0uZ3V0dGVyLnRleHRDb2xvdXIsXG5cdFx0XHRcdChyZWxldmFudFRoZW1lQ29sb3VyczogQ29kZVN0eWxlclRoZW1lQ29sb3Vycywgc2F2ZUNvbG91cjogQ29sb3VyKSA9PiB7cmVsZXZhbnRUaGVtZUNvbG91cnNbZ2V0Q3VycmVudE1vZGUoKV0uZ3V0dGVyLnRleHRDb2xvdXIgPSBzYXZlQ29sb3VyO30sXG5cdFx0XHRcdCgpID0+ICF0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuY29kZWJsb2NrLmxpbmVOdW1iZXJzLFxuXHRcdFx0KTt9KTtcblx0XHR0aGlzLmRpc2FibGVhYmxlQ29tcG9uZW50c1tcImxpbmVOdW1iZXJzXCJdLnB1c2godGhpcy5waWNrcnNbXCJsaW5lX251bWJlclwiXS5yZXNldEJ1dHRvbik7XG5cdFx0bmV3IFNldHRpbmcoY29udGFpbmVyRWwpXG5cdFx0XHQuc2V0TmFtZShcIkhpZ2hsaWdodCBMaW5lIE51bWJlcnNcIilcblx0XHRcdC5zZXREZXNjKFwiSWYgZW5hYmxlZCwgaGlnaGxpZ2h0cyB3aWxsIGFsc28gaGlnaGxpZ2h0IHRoZSBsaW5lIG51bWJlcnMuXCIpXG5cdFx0XHQuYWRkVG9nZ2xlKHRvZ2dsZSA9PiB7Y29uc3QgaGlnaGxpZ2h0TGluZU51bWJlcnNUb2dnbGUgPSB0b2dnbGVcblx0XHRcdFx0LnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5ndXR0ZXIuaGlnaGxpZ2h0KVxuXHRcdFx0XHQuc2V0RGlzYWJsZWQoIXRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5jb2RlYmxvY2subGluZU51bWJlcnMpXG5cdFx0XHRcdC5vbkNoYW5nZSgodmFsdWUpID0+IHtcblx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuZ3V0dGVyLmhpZ2hsaWdodCA9IHZhbHVlO1xuXHRcdFx0XHRcdChhc3luYyAoKSA9PiB7YXdhaXQgdGhpcy5wbHVnaW4uc2F2ZVNldHRpbmdzKCk7fSkoKTtcblx0XHRcdFx0fSk7XG5cdFx0XHR0aGlzLmRpc2FibGVhYmxlQ29tcG9uZW50c1tcImxpbmVOdW1iZXJzXCJdLnB1c2goaGlnaGxpZ2h0TGluZU51bWJlcnNUb2dnbGUpO1xuXHRcdFx0fSk7XG5cdFx0bmV3IFNldHRpbmcoY29udGFpbmVyRWwpXG5cdFx0XHQuc2V0TmFtZShcIkluZGljYXRlIEN1cnJlbnQgTGluZSBOdW1iZXJcIilcblx0XHRcdC5zZXREZXNjKFwiSWYgZW5hYmxlZCwgdGhlIGN1cnJlbnQgbGluZSBudW1iZXIgaW4gY29kZWJsb2NrcyB3aWxsIGJlIGluZGljYXRlZCB3aXRoIGEgc2VwYXJhdGUgY29sb3VyLlwiKVxuXHRcdFx0LnNldENsYXNzKFwiY29kZS1zdHlsZXItc3BhY2VkXCIpXG5cdFx0XHQuYWRkVG9nZ2xlKHRvZ2dsZSA9PiB7Y29uc3QgaW5kaWNhdGVDdXJyZW50TGluZU51bWJlclRvZ2dsZSA9IHRvZ2dsZVxuXHRcdFx0XHQuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmd1dHRlci5hY3RpdmVMaW5lKVxuXHRcdFx0XHQuc2V0RGlzYWJsZWQoIXRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5jb2RlYmxvY2subGluZU51bWJlcnMpXG5cdFx0XHRcdC5vbkNoYW5nZSgodmFsdWUpID0+IHtcblx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuZ3V0dGVyLmFjdGl2ZUxpbmUgPSB2YWx1ZTtcblx0XHRcdFx0XHQoYXN5bmMgKCkgPT4ge2F3YWl0IHRoaXMucGx1Z2luLnNhdmVTZXR0aW5ncygpO30pKCk7XG5cdFx0XHRcdH0pO1xuXHRcdFx0dGhpcy5kaXNhYmxlYWJsZUNvbXBvbmVudHNbXCJsaW5lTnVtYmVyc1wiXS5wdXNoKGluZGljYXRlQ3VycmVudExpbmVOdW1iZXJUb2dnbGUpO1xuXHRcdFx0fSlcblx0XHRcdC50aGVuKChzZXR0aW5nKSA9PiB7dGhpcy5jcmVhdGVQaWNrcihcblx0XHRcdFx0dGhpcy5wbHVnaW4sY29udGFpbmVyRWwsc2V0dGluZyxcblx0XHRcdFx0XCJhY3RpdmVfbGluZV9udW1iZXJcIixcblx0XHRcdFx0KHJlbGV2YW50VGhlbWVDb2xvdXJzOiBDb2RlU3R5bGVyVGhlbWVDb2xvdXJzKSA9PiByZWxldmFudFRoZW1lQ29sb3Vyc1tnZXRDdXJyZW50TW9kZSgpXS5ndXR0ZXIuYWN0aXZlVGV4dENvbG91cixcblx0XHRcdFx0KHJlbGV2YW50VGhlbWVDb2xvdXJzOiBDb2RlU3R5bGVyVGhlbWVDb2xvdXJzLCBzYXZlQ29sb3VyOiBDb2xvdXIpID0+IHtyZWxldmFudFRoZW1lQ29sb3Vyc1tnZXRDdXJyZW50TW9kZSgpXS5ndXR0ZXIuYWN0aXZlVGV4dENvbG91ciA9IHNhdmVDb2xvdXI7fSxcblx0XHRcdFx0KCkgPT4gIXRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5jb2RlYmxvY2subGluZU51bWJlcnMsXG5cdFx0XHQpO30pO1xuXHRcdFxuXHRcdGNvbnRhaW5lckVsLmNyZWF0ZUVsKFwiaDRcIiwge3RleHQ6IFwiSGVhZGVyIEFwcGVhcmFuY2VcIn0pO1xuXHRcdG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxuXHRcdFx0LnNldE5hbWUoXCJIZWFkZXIgQmFja2dyb3VuZCBDb2xvdXJcIilcblx0XHRcdC50aGVuKChzZXR0aW5nKSA9PiB7dGhpcy5jcmVhdGVQaWNrcihcblx0XHRcdFx0dGhpcy5wbHVnaW4sY29udGFpbmVyRWwsc2V0dGluZyxcblx0XHRcdFx0XCJoZWFkZXJfYmFja2dyb3VuZFwiLFxuXHRcdFx0XHQocmVsZXZhbnRUaGVtZUNvbG91cnM6IENvZGVTdHlsZXJUaGVtZUNvbG91cnMpID0+IHJlbGV2YW50VGhlbWVDb2xvdXJzW2dldEN1cnJlbnRNb2RlKCldLmhlYWRlci5iYWNrZ3JvdW5kQ29sb3VyLFxuXHRcdFx0XHQocmVsZXZhbnRUaGVtZUNvbG91cnM6IENvZGVTdHlsZXJUaGVtZUNvbG91cnMsIHNhdmVDb2xvdXI6IENvbG91cikgPT4ge3JlbGV2YW50VGhlbWVDb2xvdXJzW2dldEN1cnJlbnRNb2RlKCldLmhlYWRlci5iYWNrZ3JvdW5kQ29sb3VyID0gc2F2ZUNvbG91cjt9LFxuXHRcdFx0KTt9KTtcblx0XHRuZXcgU2V0dGluZyhjb250YWluZXJFbClcblx0XHRcdC5zZXROYW1lKFwiSGVhZGVyIEZvbnQgU2l6ZVwiKVxuXHRcdFx0LnNldERlc2MoXCJTZXQgdGhlIGZvbnQgc2l6ZSBmb3IgaGVhZGVyIGxhbmd1YWdlIHRhZ3MgYW5kIHRpdGxlcy5cIilcblx0XHRcdC50aGVuKChzZXR0aW5nKSA9PiB7XG5cdFx0XHRcdGxldCByZXNldHRhYmxlU2xpZGVyOiBTbGlkZXJDb21wb25lbnQ7XG5cdFx0XHRcdHNldHRpbmcuYWRkU2xpZGVyKChzbGlkZXIpID0+IHtyZXNldHRhYmxlU2xpZGVyID0gc2xpZGVyXG5cdFx0XHRcdFx0LnNldExpbWl0cyg2LDMyLDEpXG5cdFx0XHRcdFx0LnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5oZWFkZXIuZm9udFNpemUpXG5cdFx0XHRcdFx0LnNldER5bmFtaWNUb29sdGlwKClcblx0XHRcdFx0XHQub25DaGFuZ2UoKHZhbHVlKSA9PiB7XG5cdFx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaGVhZGVyLmZvbnRTaXplID0gdmFsdWU7XG5cdFx0XHRcdFx0XHQoYXN5bmMgKCkgPT4ge2F3YWl0IHRoaXMucGx1Z2luLnNhdmVTZXR0aW5ncygpO30pKCk7ICAgIFxuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHR9KTtcblx0XHRcdFx0c2V0dGluZy5hZGRFeHRyYUJ1dHRvbigoYnV0dG9uKSA9PiB7YnV0dG9uXG5cdFx0XHRcdFx0LnNldEljb24oXCJyZXNldFwiKVxuXHRcdFx0XHRcdC5zZXRUb29sdGlwKFwiUmVzdG9yZSBkZWZhdWx0IGZvbnQgc2l6ZVwiKVxuXHRcdFx0XHRcdC5vbkNsaWNrKCgpID0+IHtcblx0XHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5oZWFkZXIuZm9udFNpemUgPSB0aGlzLnBsdWdpbi5zZXR0aW5ncy50aGVtZXNbdGhpcy5wbHVnaW4uc2V0dGluZ3Muc2VsZWN0ZWRUaGVtZV0uc2V0dGluZ3MuaGVhZGVyLmZvbnRTaXplO1xuXHRcdFx0XHRcdFx0cmVzZXR0YWJsZVNsaWRlci5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaGVhZGVyLmZvbnRTaXplKTtcblx0XHRcdFx0XHRcdChhc3luYyAoKSA9PiB7YXdhaXQgdGhpcy5wbHVnaW4uc2F2ZVNldHRpbmdzKCk7fSkoKTtcblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0fSk7XG5cdFx0XHR9KTtcblx0XHRuZXcgU2V0dGluZyhjb250YWluZXJFbClcblx0XHRcdC5zZXROYW1lKFwiSGVhZGVyIFRpdGxlIFRleHQgU3R5bGluZ1wiKVxuXHRcdFx0LnNldERlc2MoXCJTdHlsZSB0aGUgaGVhZGVyIHRpdGxlIHRleHQgdXNpbmcgYm9sZCBhbmQgaXRhbGljIHRvZ2dsZXMsIGJ5IHNldHRpbmcgYSBmb250IG9yIGJ5IHNldHRpbmcgYSB0ZXh0IGNvbG91ci5cIilcblx0XHRcdC5hZGRUb2dnbGUodG9nZ2xlID0+IHt0b2dnbGVcblx0XHRcdFx0LnNldFRvb2x0aXAoXCJUb2dnbGUgYm9sZCB0aXRsZSB0ZXh0XCIpXG5cdFx0XHRcdC5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaGVhZGVyLnRpdGxlLnRleHRCb2xkKVxuXHRcdFx0XHQub25DaGFuZ2UoKHZhbHVlKSA9PiB7XG5cdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmhlYWRlci50aXRsZS50ZXh0Qm9sZCA9IHZhbHVlO1xuXHRcdFx0XHRcdChhc3luYyAoKSA9PiB7YXdhaXQgdGhpcy5wbHVnaW4uc2F2ZVNldHRpbmdzKCk7fSkoKTtcblx0XHRcdFx0fSk7XG5cdFx0XHR9KVxuXHRcdFx0LmFkZFRvZ2dsZSh0b2dnbGUgPT4ge3RvZ2dsZVxuXHRcdFx0XHQuc2V0VG9vbHRpcChcIlRvZ2dsZSBpdGFsaWMgdGl0bGUgdGV4dFwiKVxuXHRcdFx0XHQuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmhlYWRlci50aXRsZS50ZXh0SXRhbGljKVxuXHRcdFx0XHQub25DaGFuZ2UoKHZhbHVlKSA9PiB7XG5cdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmhlYWRlci50aXRsZS50ZXh0SXRhbGljID0gdmFsdWU7XG5cdFx0XHRcdFx0KGFzeW5jICgpID0+IHthd2FpdCB0aGlzLnBsdWdpbi5zYXZlU2V0dGluZ3MoKTt9KSgpO1xuXHRcdFx0XHR9KTtcblx0XHRcdH0pXG5cdFx0XHQuYWRkVGV4dCh0ZXh0ID0+IHt0ZXh0XG5cdFx0XHRcdC5zZXRQbGFjZWhvbGRlcihcIkZvbnRcIilcblx0XHRcdFx0LnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5oZWFkZXIudGl0bGUudGV4dEZvbnQpXG5cdFx0XHRcdC5vbkNoYW5nZSgodmFsdWUpID0+IHtcblx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaGVhZGVyLnRpdGxlLnRleHRGb250ID0gdmFsdWU7XG5cdFx0XHRcdFx0KGFzeW5jICgpID0+IHthd2FpdCB0aGlzLnBsdWdpbi5zYXZlU2V0dGluZ3MoKTt9KSgpO1xuXHRcdFx0XHR9KTtcblx0XHRcdH0pXG5cdFx0XHQudGhlbigoc2V0dGluZykgPT4ge3RoaXMuY3JlYXRlUGlja3IoXG5cdFx0XHRcdHRoaXMucGx1Z2luLGNvbnRhaW5lckVsLHNldHRpbmcsXG5cdFx0XHRcdFwiaGVhZGVyX3RpdGxlX3RleHRcIixcblx0XHRcdFx0KHJlbGV2YW50VGhlbWVDb2xvdXJzOiBDb2RlU3R5bGVyVGhlbWVDb2xvdXJzKSA9PiByZWxldmFudFRoZW1lQ29sb3Vyc1tnZXRDdXJyZW50TW9kZSgpXS5oZWFkZXIudGl0bGUudGV4dENvbG91cixcblx0XHRcdFx0KHJlbGV2YW50VGhlbWVDb2xvdXJzOiBDb2RlU3R5bGVyVGhlbWVDb2xvdXJzLCBzYXZlQ29sb3VyOiBDb2xvdXIpID0+IHtyZWxldmFudFRoZW1lQ29sb3Vyc1tnZXRDdXJyZW50TW9kZSgpXS5oZWFkZXIudGl0bGUudGV4dENvbG91ciA9IHNhdmVDb2xvdXI7fSxcblx0XHRcdCk7fSk7XG5cdFx0bGV0IGZvbGRQbGFjZWhvbGRlclRpbWVvdXQ6IE5vZGVKUy5UaW1lb3V0ID0gc2V0VGltZW91dCgoKT0+e30pOyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1mdW5jdGlvblxuXHRcdC8vVE9ETyAoQG1heXVyYW5rdikgUmUtcmVuZGVyIChMUClcblx0XHRuZXcgU2V0dGluZyhjb250YWluZXJFbClcblx0XHRcdC5zZXROYW1lKFwiRm9sZCBQbGFjZWhvbGRlciBUZXh0XCIpXG5cdFx0XHQuc2V0RGVzYyhcIlRpdGxlIHBsYWNlaG9sZGVyIHRleHQgZm9yIGZvbGRlZCBjb2RlIHdoZW4gbm8gdGl0bGUgcGFyYW1ldGVyIGlzIHNldC5cIilcblx0XHRcdC5hZGRUZXh0KHRleHQgPT4gdGV4dFxuXHRcdFx0XHQuc2V0UGxhY2Vob2xkZXIoRk9MRF9QTEFDRUhPTERFUilcblx0XHRcdFx0LnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5oZWFkZXIuZm9sZFBsYWNlaG9sZGVyKVxuXHRcdFx0XHQub25DaGFuZ2UoKHZhbHVlKSA9PiB7XG5cdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmhlYWRlci5mb2xkUGxhY2Vob2xkZXIgPSB2YWx1ZTtcblx0XHRcdFx0XHQoYXN5bmMgKCkgPT4ge2F3YWl0IHRoaXMucGx1Z2luLnNhdmVTZXR0aW5ncygpO30pKCk7XG5cdFx0XHRcdFx0Y2xlYXJUaW1lb3V0KGZvbGRQbGFjZWhvbGRlclRpbWVvdXQpO1xuXHRcdFx0XHRcdGZvbGRQbGFjZWhvbGRlclRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpPT50aGlzLnBsdWdpbi5yZW5kZXJSZWFkaW5nVmlldygpLDEwMDApO1xuXHRcdFx0XHR9KSk7XG5cdFx0bmV3IFNldHRpbmcoY29udGFpbmVyRWwpXG5cdFx0XHQuc2V0TmFtZShcIkhlYWRlciBTZXBhcmF0b3IgQ29sb3VyXCIpXG5cdFx0XHQuc2V0RGVzYyhcIkNvbG91ciBvZiB0aGUgbGluZSBzZXBhcmF0aW5nIHRoZSBjb2RlYmxvY2sgaGVhZGVyIGFuZCB0aGUgY29kZWJsb2NrLlwiKVxuXHRcdFx0LnRoZW4oKHNldHRpbmcpID0+IHt0aGlzLmNyZWF0ZVBpY2tyKFxuXHRcdFx0XHR0aGlzLnBsdWdpbixjb250YWluZXJFbCxzZXR0aW5nLFxuXHRcdFx0XHRcImhlYWRlcl9zZXBhcmF0b3JcIixcblx0XHRcdFx0KHJlbGV2YW50VGhlbWVDb2xvdXJzOiBDb2RlU3R5bGVyVGhlbWVDb2xvdXJzKSA9PiByZWxldmFudFRoZW1lQ29sb3Vyc1tnZXRDdXJyZW50TW9kZSgpXS5oZWFkZXIubGluZUNvbG91cixcblx0XHRcdFx0KHJlbGV2YW50VGhlbWVDb2xvdXJzOiBDb2RlU3R5bGVyVGhlbWVDb2xvdXJzLCBzYXZlQ29sb3VyOiBDb2xvdXIpID0+IHtyZWxldmFudFRoZW1lQ29sb3Vyc1tnZXRDdXJyZW50TW9kZSgpXS5oZWFkZXIubGluZUNvbG91ciA9IHNhdmVDb2xvdXI7fSxcblx0XHRcdCk7fSk7XG5cdFx0XHRcblx0XHRjb250YWluZXJFbC5jcmVhdGVFbChcImg1XCIsIHt0ZXh0OiBcIkhlYWRlciBMYW5ndWFnZSBUYWcgQXBwZWFyYW5jZVwifSk7XG5cdFx0bmV3IFNldHRpbmcoY29udGFpbmVyRWwpXG5cdFx0XHQuc2V0TmFtZShcIkRpc3BsYXkgSGVhZGVyIExhbmd1YWdlIFRhZ3NcIilcblx0XHRcdC5zZXREZXNjKFwiRGV0ZXJtaW5lIHdoZW4gdG8gc2hvdyBsYW5ndWFnZSB0YWdzIGluIHRoZSBoZWFkZXIuIFxcXCJUaXRsZSBPbmx5XFxcIiB3aWxsIG9ubHkgc2hvdyBsYW5ndWFnZSB0YWdzIHdoZW4gdGhlIHRpdGxlIHBhcmFtZXRlciBpcyBzZXQuIElmIHNldCB0byBcXFwiTm9uZVxcXCIsIHRoZSBiZWxvdyBzZXR0aW5ncyBhcmUgZGlzYWJsZWQgdG9vLlwiKVxuXHRcdFx0LmFkZERyb3Bkb3duKChkcm9wZG93bikgPT4gZHJvcGRvd25cblx0XHRcdFx0LmFkZE9wdGlvbnMoRElTUExBWV9PUFRJT05TKVxuXHRcdFx0XHQuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmhlYWRlci5sYW5ndWFnZVRhZy5kaXNwbGF5KVxuXHRcdFx0XHQub25DaGFuZ2UoKHZhbHVlOiBEaXNwbGF5KSA9PiB7XG5cdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmhlYWRlci5sYW5ndWFnZVRhZy5kaXNwbGF5ID0gdmFsdWU7XG5cdFx0XHRcdFx0dGhpcy5kaXNhYmxlYWJsZUNvbXBvbmVudHNbXCJoZWFkZXJMYW5ndWFnZVRhZ3NcIl0uZm9yRWFjaChjb21wb25lbnQgPT4ge2NvbXBvbmVudC5zZXREaXNhYmxlZCh2YWx1ZT09PVwibm9uZVwiKTt9KTtcblx0XHRcdFx0XHQoYXN5bmMgKCkgPT4ge2F3YWl0IHRoaXMucGx1Z2luLnNhdmVTZXR0aW5ncygpO30pKCk7XG5cdFx0XHRcdFx0dGhpcy5wbHVnaW4ucmVuZGVyUmVhZGluZ1ZpZXcoKTtcblx0XHRcdFx0fSkpO1xuXHRcdG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxuXHRcdFx0LnNldE5hbWUoXCJIZWFkZXIgTGFuZ3VhZ2UgVGFnIEJhY2tncm91bmQgQ29sb3VyXCIpXG5cdFx0XHQudGhlbigoc2V0dGluZykgPT4ge3RoaXMuY3JlYXRlUGlja3IoXG5cdFx0XHRcdHRoaXMucGx1Z2luLGNvbnRhaW5lckVsLHNldHRpbmcsXG5cdFx0XHRcdFwiaGVhZGVyX2xhbmd1YWdlX3RhZ19iYWNrZ3JvdW5kXCIsXG5cdFx0XHRcdChyZWxldmFudFRoZW1lQ29sb3VyczogQ29kZVN0eWxlclRoZW1lQ29sb3VycykgPT4gcmVsZXZhbnRUaGVtZUNvbG91cnNbZ2V0Q3VycmVudE1vZGUoKV0uaGVhZGVyLmxhbmd1YWdlVGFnLmJhY2tncm91bmRDb2xvdXIsXG5cdFx0XHRcdChyZWxldmFudFRoZW1lQ29sb3VyczogQ29kZVN0eWxlclRoZW1lQ29sb3Vycywgc2F2ZUNvbG91cjogQ29sb3VyKSA9PiB7cmVsZXZhbnRUaGVtZUNvbG91cnNbZ2V0Q3VycmVudE1vZGUoKV0uaGVhZGVyLmxhbmd1YWdlVGFnLmJhY2tncm91bmRDb2xvdXIgPSBzYXZlQ29sb3VyO30sXG5cdFx0XHRcdCgpID0+IHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5oZWFkZXIubGFuZ3VhZ2VUYWcuZGlzcGxheSA9PT0gXCJub25lXCIsXG5cdFx0XHQpO30pO1xuXHRcdHRoaXMuZGlzYWJsZWFibGVDb21wb25lbnRzW1wiaGVhZGVyTGFuZ3VhZ2VUYWdzXCJdLnB1c2godGhpcy5waWNrcnNbXCJoZWFkZXJfbGFuZ3VhZ2VfdGFnX2JhY2tncm91bmRcIl0ucmVzZXRCdXR0b24pO1xuXHRcdGxldCBsYW5ndWFnZVRhZ3NCb2xkVG9nZ2xlOiBUb2dnbGVDb21wb25lbnQ7XG5cdFx0bGV0IGxhbmd1YWdlVGFnc0l0YWxpY1RvZ2dsZTogVG9nZ2xlQ29tcG9uZW50O1xuXHRcdGxldCBsYW5ndWFnZUljb25zRm9udFRleHQ6IFRleHRDb21wb25lbnQ7XG5cdFx0bmV3IFNldHRpbmcoY29udGFpbmVyRWwpXG5cdFx0XHQuc2V0TmFtZShcIkhlYWRlciBMYW5ndWFnZSBUYWcgVGV4dCBTdHlsaW5nXCIpXG5cdFx0XHQuc2V0RGVzYyhcIlN0eWxlIHRoZSBoZWFkZXIgbGFuZ3VhZ2UgdGFnIHRleHQgdXNpbmcgYm9sZCBhbmQgaXRhbGljIHRvZ2dsZXMsIGJ5IHNldHRpbmcgYSBmb250IG9yIGJ5IHNldHRpbmcgYSB0ZXh0IGNvbG91ci5cIilcblx0XHRcdC5hZGRUb2dnbGUodG9nZ2xlID0+IHtsYW5ndWFnZVRhZ3NCb2xkVG9nZ2xlID0gdG9nZ2xlXG5cdFx0XHRcdC5zZXRUb29sdGlwKFwiVG9nZ2xlIGJvbGQgbGFuZ3VhZ2UgdGFnIHRleHRcIilcblx0XHRcdFx0LnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5oZWFkZXIubGFuZ3VhZ2VUYWcudGV4dEJvbGQpXG5cdFx0XHRcdC5zZXREaXNhYmxlZCh0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaGVhZGVyLmxhbmd1YWdlVGFnLmRpc3BsYXk9PT1cIm5vbmVcIilcblx0XHRcdFx0Lm9uQ2hhbmdlKCh2YWx1ZSkgPT4ge1xuXHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5oZWFkZXIubGFuZ3VhZ2VUYWcudGV4dEJvbGQgPSB2YWx1ZTtcblx0XHRcdFx0XHQoYXN5bmMgKCkgPT4ge2F3YWl0IHRoaXMucGx1Z2luLnNhdmVTZXR0aW5ncygpO30pKCk7XG5cdFx0XHRcdH0pO1xuXHRcdFx0dGhpcy5kaXNhYmxlYWJsZUNvbXBvbmVudHNbXCJoZWFkZXJMYW5ndWFnZVRhZ3NcIl0ucHVzaChsYW5ndWFnZVRhZ3NCb2xkVG9nZ2xlKTtcblx0XHRcdH0pXG5cdFx0XHQuYWRkVG9nZ2xlKHRvZ2dsZSA9PiB7bGFuZ3VhZ2VUYWdzSXRhbGljVG9nZ2xlID0gdG9nZ2xlXG5cdFx0XHRcdC5zZXRUb29sdGlwKFwiVG9nZ2xlIGl0YWxpYyBsYW5ndWFnZSB0YWcgdGV4dFwiKVxuXHRcdFx0XHQuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmhlYWRlci5sYW5ndWFnZVRhZy50ZXh0SXRhbGljKVxuXHRcdFx0XHQuc2V0RGlzYWJsZWQodGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmhlYWRlci5sYW5ndWFnZVRhZy5kaXNwbGF5PT09XCJub25lXCIpXG5cdFx0XHRcdC5vbkNoYW5nZSgodmFsdWUpID0+IHtcblx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaGVhZGVyLmxhbmd1YWdlVGFnLnRleHRJdGFsaWMgPSB2YWx1ZTtcblx0XHRcdFx0XHQoYXN5bmMgKCkgPT4ge2F3YWl0IHRoaXMucGx1Z2luLnNhdmVTZXR0aW5ncygpO30pKCk7XG5cdFx0XHRcdH0pO1xuXHRcdFx0dGhpcy5kaXNhYmxlYWJsZUNvbXBvbmVudHNbXCJoZWFkZXJMYW5ndWFnZVRhZ3NcIl0ucHVzaChsYW5ndWFnZVRhZ3NJdGFsaWNUb2dnbGUpO1xuXHRcdFx0fSlcblx0XHRcdC5hZGRUZXh0KHRleHQgPT4ge2xhbmd1YWdlSWNvbnNGb250VGV4dCA9IHRleHRcblx0XHRcdFx0LnNldFBsYWNlaG9sZGVyKFwiRm9udFwiKVxuXHRcdFx0XHQuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmhlYWRlci5sYW5ndWFnZVRhZy50ZXh0Rm9udClcblx0XHRcdFx0LnNldERpc2FibGVkKHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5oZWFkZXIubGFuZ3VhZ2VUYWcuZGlzcGxheT09PVwibm9uZVwiKVxuXHRcdFx0XHQub25DaGFuZ2UoKHZhbHVlKSA9PiB7XG5cdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmhlYWRlci5sYW5ndWFnZVRhZy50ZXh0Rm9udCA9IHZhbHVlO1xuXHRcdFx0XHRcdChhc3luYyAoKSA9PiB7YXdhaXQgdGhpcy5wbHVnaW4uc2F2ZVNldHRpbmdzKCk7fSkoKTtcblx0XHRcdFx0fSk7XG5cdFx0XHR0aGlzLmRpc2FibGVhYmxlQ29tcG9uZW50c1tcImhlYWRlckxhbmd1YWdlVGFnc1wiXS5wdXNoKGxhbmd1YWdlSWNvbnNGb250VGV4dCk7XG5cdFx0XHR9KVxuXHRcdFx0LnRoZW4oKHNldHRpbmcpID0+IHt0aGlzLmNyZWF0ZVBpY2tyKFxuXHRcdFx0XHR0aGlzLnBsdWdpbixjb250YWluZXJFbCxzZXR0aW5nLFxuXHRcdFx0XHRcImhlYWRlcl9sYW5ndWFnZV90YWdfdGV4dFwiLFxuXHRcdFx0XHQocmVsZXZhbnRUaGVtZUNvbG91cnM6IENvZGVTdHlsZXJUaGVtZUNvbG91cnMpID0+IHJlbGV2YW50VGhlbWVDb2xvdXJzW2dldEN1cnJlbnRNb2RlKCldLmhlYWRlci5sYW5ndWFnZVRhZy50ZXh0Q29sb3VyLFxuXHRcdFx0XHQocmVsZXZhbnRUaGVtZUNvbG91cnM6IENvZGVTdHlsZXJUaGVtZUNvbG91cnMsIHNhdmVDb2xvdXI6IENvbG91cikgPT4ge3JlbGV2YW50VGhlbWVDb2xvdXJzW2dldEN1cnJlbnRNb2RlKCldLmhlYWRlci5sYW5ndWFnZVRhZy50ZXh0Q29sb3VyID0gc2F2ZUNvbG91cjt9LFxuXHRcdFx0XHQoKSA9PiB0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaGVhZGVyLmxhbmd1YWdlVGFnLmRpc3BsYXkgPT09IFwibm9uZVwiLFxuXHRcdFx0KTt9KTtcblx0XHR0aGlzLmRpc2FibGVhYmxlQ29tcG9uZW50c1tcImhlYWRlckxhbmd1YWdlVGFnc1wiXS5wdXNoKHRoaXMucGlja3JzW1wiaGVhZGVyX2xhbmd1YWdlX3RhZ190ZXh0XCJdLnJlc2V0QnV0dG9uKTtcblx0XHRcblx0XHRjb250YWluZXJFbC5jcmVhdGVFbChcImg1XCIsIHt0ZXh0OiBcIkhlYWRlciBMYW5ndWFnZSBJY29uIEFwcGVhcmFuY2VcIn0pO1xuXHRcdG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxuXHRcdFx0LnNldE5hbWUoXCJEaXNwbGF5IEhlYWRlciBMYW5ndWFnZSBJY29uc1wiKVxuXHRcdFx0LnNldERlc2MoXCJEZXRlcm1pbmUgd2hlbiB0byBzaG93IGxhbmd1YWdlIGljb25zIHdoZXJlIGF2YWlsYWJsZS4gXFxcIlRpdGxlIE9ubHlcXFwiIHdpbGwgb25seSBzaG93IGxhbmd1YWdlIHRhZ3Mgd2hlbiB0aGUgdGl0bGUgcGFyYW1ldGVyIGlzIHNldC4gSWYgc2V0IHRvIFxcXCJOb25lXFxcIiwgdGhlIGJlbG93IHNldHRpbmdzIGFyZSBkaXNhYmxlZCB0b28uXCIpXG5cdFx0XHQuYWRkRHJvcGRvd24oKGRyb3Bkb3duKSA9PiBkcm9wZG93blxuXHRcdFx0XHQuYWRkT3B0aW9ucyhESVNQTEFZX09QVElPTlMpXG5cdFx0XHRcdC5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaGVhZGVyLmxhbmd1YWdlSWNvbi5kaXNwbGF5KVxuXHRcdFx0XHQub25DaGFuZ2UoKHZhbHVlOiBEaXNwbGF5KSA9PiB7XG5cdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmhlYWRlci5sYW5ndWFnZUljb24uZGlzcGxheSA9IHZhbHVlO1xuXHRcdFx0XHRcdHRoaXMuZGlzYWJsZWFibGVDb21wb25lbnRzW1wiaGVhZGVyTGFuZ3VhZ2VJY29uc1wiXS5mb3JFYWNoKGNvbXBvbmVudCA9PiB7Y29tcG9uZW50LnNldERpc2FibGVkKHZhbHVlPT09XCJub25lXCIpO30pO1xuXHRcdFx0XHRcdChhc3luYyAoKSA9PiB7YXdhaXQgdGhpcy5wbHVnaW4uc2F2ZVNldHRpbmdzKCk7fSkoKTtcblx0XHRcdFx0XHR0aGlzLnBsdWdpbi5yZW5kZXJSZWFkaW5nVmlldygpO1xuXHRcdFx0XHR9KSk7XG5cdFx0bGV0IGxhbmd1YWdlSWNvbnNDb2xvdXJlZFRvZ2dsZTogVG9nZ2xlQ29tcG9uZW50O1xuXHRcdG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxuXHRcdFx0LnNldE5hbWUoXCJMYW5ndWFnZSBJY29ucyBDb2xvdXJlZFwiKVxuXHRcdFx0LnNldERlc2MoXCJJZiBkaXNhYmxlZCwgbGFuZ3VhZ2UgaWNvbnMgd2lsbCBiZSBibGFjayBhbmQgd2hpdGUuXCIpXG5cdFx0XHQuYWRkVG9nZ2xlKHRvZ2dsZSA9PiB7bGFuZ3VhZ2VJY29uc0NvbG91cmVkVG9nZ2xlID0gdG9nZ2xlXG5cdFx0XHRcdC5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaGVhZGVyLmxhbmd1YWdlSWNvbi5kaXNwbGF5Q29sb3VyKVxuXHRcdFx0XHQuc2V0RGlzYWJsZWQodGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmhlYWRlci5sYW5ndWFnZUljb24uZGlzcGxheT09PVwibm9uZVwiKVxuXHRcdFx0XHQub25DaGFuZ2UoKHZhbHVlKSA9PiB7XG5cdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmhlYWRlci5sYW5ndWFnZUljb24uZGlzcGxheUNvbG91ciA9IHZhbHVlO1xuXHRcdFx0XHRcdChhc3luYyAoKSA9PiB7YXdhaXQgdGhpcy5wbHVnaW4uc2F2ZVNldHRpbmdzKCk7fSkoKTtcblx0XHRcdFx0fSk7XG5cdFx0XHR0aGlzLmRpc2FibGVhYmxlQ29tcG9uZW50c1tcImhlYWRlckxhbmd1YWdlSWNvbnNcIl0ucHVzaChsYW5ndWFnZUljb25zQ29sb3VyZWRUb2dnbGUpO1xuXHRcdFx0fSk7XG5cdFx0bmV3IFNldHRpbmcoY29udGFpbmVyRWwpXG5cdFx0XHQuc2V0TmFtZShcIkxhbmd1YWdlIEljb24gU2l6ZVwiKVxuXHRcdFx0LnNldERlc2MoXCJTZXQgdGhlIHNpemUgb2YgdGhlIGRpc3BsYXllZCBsYW5ndWFnZSBpY29ucy5cIilcblx0XHRcdC50aGVuKChzZXR0aW5nKSA9PiB7XG5cdFx0XHRcdGxldCByZXNldHRhYmxlU2xpZGVyOiBTbGlkZXJDb21wb25lbnQ7XG5cdFx0XHRcdHNldHRpbmcuYWRkU2xpZGVyKChzbGlkZXIpID0+IHtyZXNldHRhYmxlU2xpZGVyID0gc2xpZGVyXG5cdFx0XHRcdFx0LnNldExpbWl0cygxMCw0MCwxKVxuXHRcdFx0XHRcdC5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuYWR2YW5jZWQuaWNvblNpemUpXG5cdFx0XHRcdFx0LnNldERpc2FibGVkKHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5oZWFkZXIubGFuZ3VhZ2VJY29uLmRpc3BsYXk9PT1cIm5vbmVcIilcblx0XHRcdFx0XHQuc2V0RHluYW1pY1Rvb2x0aXAoKVxuXHRcdFx0XHRcdC5vbkNoYW5nZSgodmFsdWUpID0+IHtcblx0XHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5hZHZhbmNlZC5pY29uU2l6ZSA9IHZhbHVlO1xuXHRcdFx0XHRcdFx0KGFzeW5jICgpID0+IHthd2FpdCB0aGlzLnBsdWdpbi5zYXZlU2V0dGluZ3MoKTt9KSgpOyAgICBcblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0dGhpcy5kaXNhYmxlYWJsZUNvbXBvbmVudHNbXCJoZWFkZXJMYW5ndWFnZUljb25zXCJdLnB1c2gocmVzZXR0YWJsZVNsaWRlcik7XG5cdFx0XHRcdH0pO1xuXHRcdFx0XHRsZXQgcmVzZXRCdXR0b246IEV4dHJhQnV0dG9uQ29tcG9uZW50O1xuXHRcdFx0XHRzZXR0aW5nLmFkZEV4dHJhQnV0dG9uKChidXR0b24pID0+IHtyZXNldEJ1dHRvbiA9IGJ1dHRvblxuXHRcdFx0XHRcdC5zZXRJY29uKFwicmVzZXRcIilcblx0XHRcdFx0XHQuc2V0RGlzYWJsZWQodGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmhlYWRlci5sYW5ndWFnZUljb24uZGlzcGxheT09PVwibm9uZVwiKVxuXHRcdFx0XHRcdC5zZXRUb29sdGlwKFwiUmVzdG9yZSBkZWZhdWx0IGljb24gc2l6ZVwiKVxuXHRcdFx0XHRcdC5vbkNsaWNrKCgpID0+IHtcblx0XHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5hZHZhbmNlZC5pY29uU2l6ZSA9IHRoaXMucGx1Z2luLnNldHRpbmdzLnRoZW1lc1t0aGlzLnBsdWdpbi5zZXR0aW5ncy5zZWxlY3RlZFRoZW1lXS5zZXR0aW5ncy5hZHZhbmNlZC5pY29uU2l6ZTtcblx0XHRcdFx0XHRcdHJlc2V0dGFibGVTbGlkZXIuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmFkdmFuY2VkLmljb25TaXplKTtcblx0XHRcdFx0XHRcdChhc3luYyAoKSA9PiB7YXdhaXQgdGhpcy5wbHVnaW4uc2F2ZVNldHRpbmdzKCk7fSkoKTtcblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0dGhpcy5kaXNhYmxlYWJsZUNvbXBvbmVudHNbXCJoZWFkZXJMYW5ndWFnZUljb25zXCJdLnB1c2gocmVzZXRCdXR0b24pO1xuXHRcdFx0XHR9KTtcblx0XHRcdH0pO1xuXHRcdFxuXHRcdGNvbnRhaW5lckVsLmNyZWF0ZUVsKFwiaDRcIiwge3RleHQ6IFwiSGlnaGxpZ2h0aW5nIEFwcGVhcmFuY2VcIn0pO1xuXHRcdG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxuXHRcdFx0LnNldE5hbWUoXCJFZGl0b3IgQWN0aXZlIExpbmUgSGlnaGxpZ2h0XCIpXG5cdFx0XHQuc2V0RGVzYyhcIklmIGVuYWJsZWQsIGhpZ2hsaWdodHMgdGhlIGFjdGl2ZSBsaW5lIG91dHNpZGUgY29kZWJsb2Nrcy5cIilcblx0XHRcdC5zZXRDbGFzcyhcImNvZGUtc3R5bGVyLXNwYWNlZFwiKVxuXHRcdFx0LmFkZFRvZ2dsZSh0b2dnbGUgPT4ge3JldHVybiB0b2dnbGVcblx0XHRcdFx0LnNldFRvb2x0aXAoXCJUb2dnbGUgZWRpdG9yIGFjdGl2ZSBsaW5lIGhpZ2hsaWdodGluZ1wiKVxuXHRcdFx0XHQuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmhpZ2hsaWdodHMuYWN0aXZlRWRpdG9yTGluZSlcblx0XHRcdFx0Lm9uQ2hhbmdlKCh2YWx1ZSkgPT4ge1xuXHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5oaWdobGlnaHRzLmFjdGl2ZUVkaXRvckxpbmUgPSB2YWx1ZTtcblx0XHRcdFx0XHR0aGlzLmRpc2FibGVhYmxlQ29tcG9uZW50c1tcImVkaXRvckFjdGl2ZUxpbmVIaWdobGlnaHRcIl0uZm9yRWFjaChjb21wb25lbnQgPT4ge2NvbXBvbmVudC5zZXREaXNhYmxlZCghdmFsdWUpO30pO1xuXHRcdFx0XHRcdChhc3luYyAoKSA9PiB7YXdhaXQgdGhpcy5wbHVnaW4uc2F2ZVNldHRpbmdzKCk7fSkoKTtcblx0XHRcdFx0fSk7XG5cdFx0XHR9KVxuXHRcdFx0LnRoZW4oKHNldHRpbmcpID0+IHt0aGlzLmNyZWF0ZVBpY2tyKFxuXHRcdFx0XHR0aGlzLnBsdWdpbixjb250YWluZXJFbCxzZXR0aW5nLFxuXHRcdFx0XHRcImVkaXRvcl9hY3RpdmVfbGluZV9oaWdobGlnaHRcIixcblx0XHRcdFx0KHJlbGV2YW50VGhlbWVDb2xvdXJzOiBDb2RlU3R5bGVyVGhlbWVDb2xvdXJzKSA9PiByZWxldmFudFRoZW1lQ29sb3Vyc1tnZXRDdXJyZW50TW9kZSgpXS5oaWdobGlnaHRzLmFjdGl2ZUVkaXRvckxpbmVDb2xvdXIsXG5cdFx0XHRcdChyZWxldmFudFRoZW1lQ29sb3VyczogQ29kZVN0eWxlclRoZW1lQ29sb3Vycywgc2F2ZUNvbG91cjogQ29sb3VyKSA9PiB7cmVsZXZhbnRUaGVtZUNvbG91cnNbZ2V0Q3VycmVudE1vZGUoKV0uaGlnaGxpZ2h0cy5hY3RpdmVFZGl0b3JMaW5lQ29sb3VyID0gc2F2ZUNvbG91cjt9LFxuXHRcdFx0XHQoKSA9PiAhdGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmhpZ2hsaWdodHMuYWN0aXZlRWRpdG9yTGluZSxcblx0XHRcdCk7fSk7XG5cdFx0dGhpcy5kaXNhYmxlYWJsZUNvbXBvbmVudHNbXCJlZGl0b3JBY3RpdmVMaW5lSGlnaGxpZ2h0XCJdLnB1c2godGhpcy5waWNrcnNbXCJlZGl0b3JfYWN0aXZlX2xpbmVfaGlnaGxpZ2h0XCJdLnJlc2V0QnV0dG9uKTtcblx0XHRuZXcgU2V0dGluZyhjb250YWluZXJFbClcblx0XHRcdC5zZXROYW1lKFwiQ29kZWJsb2NrIEFjdGl2ZSBMaW5lIEhpZ2hsaWdodFwiKVxuXHRcdFx0LnNldERlc2MoXCJJZiBlbmFibGVkLCBoaWdobGlnaHRzIHRoZSBhY3RpdmUgbGluZSBpbnNpZGUgY29kZWJsb2Nrcy5cIilcblx0XHRcdC5zZXRDbGFzcyhcImNvZGUtc3R5bGVyLXNwYWNlZFwiKVxuXHRcdFx0LmFkZFRvZ2dsZSh0b2dnbGUgPT4ge3JldHVybiB0b2dnbGVcblx0XHRcdFx0LnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5oaWdobGlnaHRzLmFjdGl2ZUNvZGVibG9ja0xpbmUpXG5cdFx0XHRcdC5vbkNoYW5nZSgodmFsdWUpID0+IHtcblx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaGlnaGxpZ2h0cy5hY3RpdmVDb2RlYmxvY2tMaW5lID0gdmFsdWU7IFxuXHRcdFx0XHRcdHRoaXMuZGlzYWJsZWFibGVDb21wb25lbnRzW1wiY29kZWJsb2NrQWN0aXZlTGluZUhpZ2hsaWdodFwiXS5mb3JFYWNoKGNvbXBvbmVudCA9PiB7Y29tcG9uZW50LnNldERpc2FibGVkKCF2YWx1ZSk7fSk7XG5cdFx0XHRcdFx0KGFzeW5jICgpID0+IHthd2FpdCB0aGlzLnBsdWdpbi5zYXZlU2V0dGluZ3MoKTt9KSgpO1xuXHRcdFx0XHR9KTtcblx0XHRcdH0pXG5cdFx0XHQudGhlbigoc2V0dGluZykgPT4ge3RoaXMuY3JlYXRlUGlja3IoXG5cdFx0XHRcdHRoaXMucGx1Z2luLGNvbnRhaW5lckVsLHNldHRpbmcsXG5cdFx0XHRcdFwiY29kZWJsb2NrX2FjdGl2ZV9saW5lX2hpZ2hsaWdodFwiLFxuXHRcdFx0XHQocmVsZXZhbnRUaGVtZUNvbG91cnM6IENvZGVTdHlsZXJUaGVtZUNvbG91cnMpID0+IHJlbGV2YW50VGhlbWVDb2xvdXJzW2dldEN1cnJlbnRNb2RlKCldLmhpZ2hsaWdodHMuYWN0aXZlQ29kZWJsb2NrTGluZUNvbG91cixcblx0XHRcdFx0KHJlbGV2YW50VGhlbWVDb2xvdXJzOiBDb2RlU3R5bGVyVGhlbWVDb2xvdXJzLCBzYXZlQ29sb3VyOiBDb2xvdXIpID0+IHtyZWxldmFudFRoZW1lQ29sb3Vyc1tnZXRDdXJyZW50TW9kZSgpXS5oaWdobGlnaHRzLmFjdGl2ZUNvZGVibG9ja0xpbmVDb2xvdXIgPSBzYXZlQ29sb3VyO30sXG5cdFx0XHRcdCgpID0+ICF0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaGlnaGxpZ2h0cy5hY3RpdmVDb2RlYmxvY2tMaW5lLFxuXHRcdFx0KTt9KTtcblx0XHR0aGlzLmRpc2FibGVhYmxlQ29tcG9uZW50c1tcImNvZGVibG9ja0FjdGl2ZUxpbmVIaWdobGlnaHRcIl0ucHVzaCh0aGlzLnBpY2tyc1tcImNvZGVibG9ja19hY3RpdmVfbGluZV9oaWdobGlnaHRcIl0ucmVzZXRCdXR0b24pO1xuXHRcdG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxuXHRcdFx0LnNldE5hbWUoXCJEZWZhdWx0IEhpZ2hsaWdodCBDb2xvdXJcIilcblx0XHRcdC5zZXREZXNjKFwiVXNlZCBieSB0aGUgJ2hsJyBwYXJhbWV0ZXIuXCIpXG5cdFx0XHQudGhlbigoc2V0dGluZykgPT4ge3RoaXMuY3JlYXRlUGlja3IoXG5cdFx0XHRcdHRoaXMucGx1Z2luLGNvbnRhaW5lckVsLHNldHRpbmcsXG5cdFx0XHRcdFwiZGVmYXVsdF9oaWdobGlnaHRcIixcblx0XHRcdFx0KHJlbGV2YW50VGhlbWVDb2xvdXJzOiBDb2RlU3R5bGVyVGhlbWVDb2xvdXJzKSA9PiByZWxldmFudFRoZW1lQ29sb3Vyc1tnZXRDdXJyZW50TW9kZSgpXS5oaWdobGlnaHRzLmRlZmF1bHRDb2xvdXIsXG5cdFx0XHRcdChyZWxldmFudFRoZW1lQ29sb3VyczogQ29kZVN0eWxlclRoZW1lQ29sb3Vycywgc2F2ZUNvbG91cjogQ29sb3VyKSA9PiB7cmVsZXZhbnRUaGVtZUNvbG91cnNbZ2V0Q3VycmVudE1vZGUoKV0uaGlnaGxpZ2h0cy5kZWZhdWx0Q29sb3VyID0gc2F2ZUNvbG91cjt9LFxuXHRcdFx0KTt9KTtcblx0XHRsZXQgbmV3SGlnaGxpZ2h0VGV4dDogVGV4dENvbXBvbmVudDtcblx0XHRuZXcgU2V0dGluZyhjb250YWluZXJFbClcblx0XHRcdC5zZXROYW1lKFwiQWRkIEFsdGVybmF0aXZlIEhpZ2hsaWdodFwiKVxuXHRcdFx0LnNldERlc2MoXCJEZWZpbmUgYSBuZXcgYWx0ZXJuYXRpdmUgaGlnaGxpZ2h0IG5hbWUuIFRoZSBjb2xvdXIgY2FuIGJlIG1vZGlmaWVkIGFmdGVyIGl0IGlzIGFkZGVkLlwiKVxuXHRcdFx0LmFkZFRleHQodmFsdWUgPT4ge25ld0hpZ2hsaWdodFRleHQgPSB2YWx1ZVxuXHRcdFx0XHQuc2V0UGxhY2Vob2xkZXIoXCJlLmcuIGVycm9yLCB3YXJuXCIpXG5cdFx0XHRcdC5vbkNoYW5nZSgodmFsdWUpID0+IHtcblx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5uZXdIaWdobGlnaHQgPSB2YWx1ZTtcblx0XHRcdFx0fSk7XG5cdFx0XHR9KVxuXHRcdFx0LmFkZEJ1dHRvbigoYnV0dG9uKSA9PiB7XG5cdFx0XHRcdGJ1dHRvbi5zZXRCdXR0b25UZXh0KFwiQWRkXCIpO1xuXHRcdFx0XHRidXR0b24ub25DbGljaygoKSA9PiB7XG5cdFx0XHRcdFx0aWYgKHRoaXMucGx1Z2luLnNldHRpbmdzLm5ld0hpZ2hsaWdodC50cmltKCkgPT09IFwiXCIpXG5cdFx0XHRcdFx0XHRuZXcgTm90aWNlKFwiUGxlYXNlIGVudGVyIGEgY29sb3VyIG5hbWUuXCIpOyAvL05PU09OQVJcblx0XHRcdFx0XHRlbHNlIGlmICghL15bXlxcZF1cXHcqJC8udGVzdCh0aGlzLnBsdWdpbi5zZXR0aW5ncy5uZXdIaWdobGlnaHQpKVxuXHRcdFx0XHRcdFx0bmV3IE5vdGljZShgXCIke3RoaXMucGx1Z2luLnNldHRpbmdzLm5ld0hpZ2hsaWdodH1cIiBpcyBub3QgYSB2YWxpZCBjb2xvdXIgbmFtZS5gKTsgLy9OT1NPTkFSXG5cdFx0XHRcdFx0ZWxzZSBpZiAodGhpcy5wbHVnaW4uc2V0dGluZ3MubmV3SGlnaGxpZ2h0LnRyaW0oKS50b0xvd2VyQ2FzZSgpID09PSBcImhsXCIpXG5cdFx0XHRcdFx0XHRuZXcgTm90aWNlKFwiQ2Fubm90IG92ZXJyaWRlIHRoZSBkZWZhdWx0IGhpZ2hsaWdodCBwYXJhbWV0ZXIuXCIpOyAvL05PU09OQVJcblx0XHRcdFx0XHRlbHNlIGlmIChQQVJBTUVURVJTLmluY2x1ZGVzKHRoaXMucGx1Z2luLnNldHRpbmdzLm5ld0hpZ2hsaWdodC50cmltKCkudG9Mb3dlckNhc2UoKSkpXG5cdFx0XHRcdFx0XHRuZXcgTm90aWNlKFwiQ2Fubm90IHVzZSBvdGhlciBkZWZhdWx0IHBhcmFtZXRlcnMuXCIpOyAvL05PU09OQVJcblx0XHRcdFx0XHRlbHNlIHtcblx0XHRcdFx0XHRcdGlmICh0aGlzLnBsdWdpbi5zZXR0aW5ncy5uZXdIaWdobGlnaHQgaW4gdGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLmNvbG91cnMubGlnaHQuaGlnaGxpZ2h0cy5hbHRlcm5hdGl2ZUhpZ2hsaWdodHMpXG5cdFx0XHRcdFx0XHRcdG5ldyBOb3RpY2UoYEEgaGlnaGxpZ2h0IHdpdGggdGhlIG5hbWUgXCIke3RoaXMucGx1Z2luLnNldHRpbmdzLm5ld0hpZ2hsaWdodH1cIiBhbHJlYWR5IGV4aXN0cy5gKTsgLy9OT1NPTkFSXG5cdFx0XHRcdFx0XHRcdC8vVE9ETyAoQG1heXVyYW5rdikgRnV0dXJlOiBGb2N1cyBvbiBleGlzdGluZyBoaWdobGlnaHRlciAtIGByZW5kZXJNYXRjaGVzYFxuXHRcdFx0XHRcdFx0ZWxzZSB7XG5cdFx0XHRcdFx0XHRcdGNvbnN0IG5ld0NvbG91ciA9IGdldFJhbmRvbUNvbG91cigpO1xuXHRcdFx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuY29sb3Vycy5saWdodC5oaWdobGlnaHRzLmFsdGVybmF0aXZlSGlnaGxpZ2h0c1t0aGlzLnBsdWdpbi5zZXR0aW5ncy5uZXdIaWdobGlnaHRdID0gbmV3Q29sb3VyO1xuXHRcdFx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuY29sb3Vycy5kYXJrLmhpZ2hsaWdodHMuYWx0ZXJuYXRpdmVIaWdobGlnaHRzW3RoaXMucGx1Z2luLnNldHRpbmdzLm5ld0hpZ2hsaWdodF0gPSBuZXdDb2xvdXI7XG5cdFx0XHRcdFx0XHRcdHRoaXMudXBkYXRlQWx0ZXJuYXRpdmVIaWdobGlnaHRzKGFsdGVybmF0aXZlSGlnaGxpZ2h0c0NvbnRhaW5lcik7XG5cdFx0XHRcdFx0XHRcdG5ldyBOb3RpY2UoYEFkZGVkIGhpZ2hsaWdodCBcIiR7dGhpcy5wbHVnaW4uc2V0dGluZ3MubmV3SGlnaGxpZ2h0fVwiLmApOyAvL05PU09OQVJcblx0XHRcdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MubmV3SGlnaGxpZ2h0ID0gXCJcIjtcblx0XHRcdFx0XHRcdFx0bmV3SGlnaGxpZ2h0VGV4dC5zZXRWYWx1ZShcIlwiKTtcblx0XHRcdFx0XHRcdFx0KGFzeW5jICgpID0+IHthd2FpdCB0aGlzLnBsdWdpbi5zYXZlU2V0dGluZ3MoKTt9KSgpO1xuXHRcdFx0XHRcdFx0XHR0aGlzLnBsdWdpbi5yZW5kZXJSZWFkaW5nVmlldygpO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSk7XG5cdFx0XHR9KTtcblx0XHRjb25zdCBhbHRlcm5hdGl2ZUhpZ2hsaWdodHNDb250YWluZXIgPSBjb250YWluZXJFbC5jcmVhdGVEaXYoKTtcblx0XHR0aGlzLnVwZGF0ZUFsdGVybmF0aXZlSGlnaGxpZ2h0cyhhbHRlcm5hdGl2ZUhpZ2hsaWdodHNDb250YWluZXIpO1xuXG5cdFx0Y29udGFpbmVyRWwuY3JlYXRlRWwoXCJoNFwiLCB7dGV4dDogXCJJbmxpbmUgQ29kZSBBcHBlYXJhbmNlXCJ9KTtcblx0XHRuZXcgU2V0dGluZyhjb250YWluZXJFbClcblx0XHRcdC5zZXROYW1lKFwiU3ludGF4IEhpZ2hsaWdodCBJbmxpbmUgQ29kZVwiKVxuXHRcdFx0LnNldERlc2MoXCJJZiBlbmFibGVkLCBpbiByZWFkaW5nIG1vZGUsIGlubGluZSBjb2RlIHdpbGwgYmUgc3ludGF4IGhpZ2hsaWdodGVkIGJhc2VkIG9uIGEgbGFuZ3VhZ2Ugc2V0IHdpdGggYHtsYW5ndWFnZX0gaGlnaGxpZ2h0ZWRfaW5saW5lX2NvZGVgLiBTZWUgdGhlIFJFQURNRSBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cIilcblx0XHRcdC5hZGRUb2dnbGUodG9nZ2xlID0+IHRvZ2dsZVxuXHRcdFx0XHQuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmlubGluZS5zeW50YXhIaWdobGlnaHQpXG5cdFx0XHRcdC5vbkNoYW5nZSgodmFsdWUpID0+IHtcblx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaW5saW5lLnN5bnRheEhpZ2hsaWdodCA9IHZhbHVlO1xuXHRcdFx0XHRcdChhc3luYyAoKSA9PiB7YXdhaXQgdGhpcy5wbHVnaW4uc2F2ZVNldHRpbmdzKCk7fSkoKTsgICAgXG5cdFx0XHRcdFx0dGhpcy5wbHVnaW4ucmVuZGVyUmVhZGluZ1ZpZXcoKTtcblx0XHRcdFx0fSkpO1xuXHRcdG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxuXHRcdFx0LnNldE5hbWUoXCJJbmxpbmUgQ29kZSBCYWNrZ3JvdW5kIENvbG91clwiKVxuXHRcdFx0LnRoZW4oKHNldHRpbmcpID0+IHt0aGlzLmNyZWF0ZVBpY2tyKFxuXHRcdFx0XHR0aGlzLnBsdWdpbixjb250YWluZXJFbCxzZXR0aW5nLFxuXHRcdFx0XHRcImlubGluZV9iYWNrZ3JvdW5kXCIsXG5cdFx0XHRcdChyZWxldmFudFRoZW1lQ29sb3VyczogQ29kZVN0eWxlclRoZW1lQ29sb3VycykgPT4gcmVsZXZhbnRUaGVtZUNvbG91cnNbZ2V0Q3VycmVudE1vZGUoKV0uaW5saW5lLmJhY2tncm91bmRDb2xvdXIsXG5cdFx0XHRcdChyZWxldmFudFRoZW1lQ29sb3VyczogQ29kZVN0eWxlclRoZW1lQ29sb3Vycywgc2F2ZUNvbG91cjogQ29sb3VyKSA9PiB7cmVsZXZhbnRUaGVtZUNvbG91cnNbZ2V0Q3VycmVudE1vZGUoKV0uaW5saW5lLmJhY2tncm91bmRDb2xvdXIgPSBzYXZlQ29sb3VyO30sXG5cdFx0XHQpO30pO1xuXHRcdG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxuXHRcdFx0LnNldE5hbWUoXCJJbmxpbmUgQ29kZSBUZXh0IENvbG91clwiKVxuXHRcdFx0LnRoZW4oKHNldHRpbmcpID0+IHt0aGlzLmNyZWF0ZVBpY2tyKFxuXHRcdFx0XHR0aGlzLnBsdWdpbixjb250YWluZXJFbCxzZXR0aW5nLFxuXHRcdFx0XHRcImlubGluZV90ZXh0XCIsXG5cdFx0XHRcdChyZWxldmFudFRoZW1lQ29sb3VyczogQ29kZVN0eWxlclRoZW1lQ29sb3VycykgPT4gcmVsZXZhbnRUaGVtZUNvbG91cnNbZ2V0Q3VycmVudE1vZGUoKV0uaW5saW5lLnRleHRDb2xvdXIsXG5cdFx0XHRcdChyZWxldmFudFRoZW1lQ29sb3VyczogQ29kZVN0eWxlclRoZW1lQ29sb3Vycywgc2F2ZUNvbG91cjogQ29sb3VyKSA9PiB7cmVsZXZhbnRUaGVtZUNvbG91cnNbZ2V0Q3VycmVudE1vZGUoKV0uaW5saW5lLnRleHRDb2xvdXIgPSBzYXZlQ29sb3VyO30sXG5cdFx0XHQpO30pO1xuXHRcdG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxuXHRcdFx0LnNldE5hbWUoXCJJbmxpbmUgQ29kZSBBY3RpdmUgVGV4dCBDb2xvdXJcIilcblx0XHRcdC5zZXREZXNjKFwiVGhlIHRleHQgY29sb3VyIHdoZW4gZWRpdGluZyBpbmxpbmUgY29kZS5cIilcblx0XHRcdC50aGVuKChzZXR0aW5nKSA9PiB7dGhpcy5jcmVhdGVQaWNrcihcblx0XHRcdFx0dGhpcy5wbHVnaW4sY29udGFpbmVyRWwsc2V0dGluZyxcblx0XHRcdFx0XCJpbmxpbmVfYWN0aXZlX3RleHRcIixcblx0XHRcdFx0KHJlbGV2YW50VGhlbWVDb2xvdXJzOiBDb2RlU3R5bGVyVGhlbWVDb2xvdXJzKSA9PiByZWxldmFudFRoZW1lQ29sb3Vyc1tnZXRDdXJyZW50TW9kZSgpXS5pbmxpbmUuYWN0aXZlVGV4dENvbG91cixcblx0XHRcdFx0KHJlbGV2YW50VGhlbWVDb2xvdXJzOiBDb2RlU3R5bGVyVGhlbWVDb2xvdXJzLCBzYXZlQ29sb3VyOiBDb2xvdXIpID0+IHtyZWxldmFudFRoZW1lQ29sb3Vyc1tnZXRDdXJyZW50TW9kZSgpXS5pbmxpbmUuYWN0aXZlVGV4dENvbG91ciA9IHNhdmVDb2xvdXI7fSxcblx0XHRcdCk7fSk7XG5cdFx0bmV3IFNldHRpbmcoY29udGFpbmVyRWwpXG5cdFx0XHQuc2V0TmFtZShcIklubGluZSBDb2RlIEZvbnQgV2VpZ2h0XCIpXG5cdFx0XHQuc2V0RGVzYyhcIkRldGVybWluZXMgaG93IGJvbGQgaW5saW5lIGNvZGUgYXBwZWFycy5cIilcblx0XHRcdC50aGVuKChzZXR0aW5nKSA9PiB7XG5cdFx0XHRcdGxldCByZXNldHRhYmxlU2xpZGVyOiBTbGlkZXJDb21wb25lbnQ7XG5cdFx0XHRcdHNldHRpbmcuYWRkU2xpZGVyKChzbGlkZXIpID0+IHtyZXNldHRhYmxlU2xpZGVyID0gc2xpZGVyXG5cdFx0XHRcdFx0LnNldExpbWl0cygxLDksMSlcblx0XHRcdFx0XHQuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmlubGluZS5mb250V2VpZ2h0KVxuXHRcdFx0XHRcdC5zZXREeW5hbWljVG9vbHRpcCgpXG5cdFx0XHRcdFx0Lm9uQ2hhbmdlKCh2YWx1ZSkgPT4ge1xuXHRcdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmlubGluZS5mb250V2VpZ2h0ID0gdmFsdWU7XG5cdFx0XHRcdFx0XHQoYXN5bmMgKCkgPT4ge2F3YWl0IHRoaXMucGx1Z2luLnNhdmVTZXR0aW5ncygpO30pKCk7ICAgIFxuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHR9KTtcblx0XHRcdFx0c2V0dGluZy5hZGRFeHRyYUJ1dHRvbigoYnV0dG9uKSA9PiB7YnV0dG9uXG5cdFx0XHRcdFx0LnNldEljb24oXCJyZXNldFwiKVxuXHRcdFx0XHRcdC5zZXRUb29sdGlwKFwiUmVzdG9yZSBkZWZhdWx0IGZvbnQgd2VpZ2h0XCIpXG5cdFx0XHRcdFx0Lm9uQ2xpY2soKCkgPT4ge1xuXHRcdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmlubGluZS5mb250V2VpZ2h0ID0gdGhpcy5wbHVnaW4uc2V0dGluZ3MudGhlbWVzW3RoaXMucGx1Z2luLnNldHRpbmdzLnNlbGVjdGVkVGhlbWVdLnNldHRpbmdzLmlubGluZS5mb250V2VpZ2h0O1xuXHRcdFx0XHRcdFx0cmVzZXR0YWJsZVNsaWRlci5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaW5saW5lLmZvbnRXZWlnaHQpO1xuXHRcdFx0XHRcdFx0KGFzeW5jICgpID0+IHthd2FpdCB0aGlzLnBsdWdpbi5zYXZlU2V0dGluZ3MoKTt9KSgpO1xuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHR9KTtcblx0XHRcdH0pO1xuXHRcdG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxuXHRcdFx0LnNldE5hbWUoXCJJbmxpbmUgQ29kZSBDdXJ2YXR1cmVcIilcblx0XHRcdC5zZXREZXNjKFwiRGV0ZXJtaW5lcyBob3cgcm91bmRlZCBpbmxpbmUgY29kZSBhcHBlYXIgaW4gcGl4ZWxzLlwiKVxuXHRcdFx0LnRoZW4oKHNldHRpbmcpID0+IHtcblx0XHRcdFx0bGV0IHJlc2V0dGFibGVTbGlkZXI6IFNsaWRlckNvbXBvbmVudDtcblx0XHRcdFx0c2V0dGluZy5hZGRTbGlkZXIoKHNsaWRlcikgPT4ge3Jlc2V0dGFibGVTbGlkZXIgPSBzbGlkZXJcblx0XHRcdFx0XHQuc2V0TGltaXRzKDAsMTIsMSlcblx0XHRcdFx0XHQuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmlubGluZS5jdXJ2YXR1cmUpXG5cdFx0XHRcdFx0LnNldER5bmFtaWNUb29sdGlwKClcblx0XHRcdFx0XHQub25DaGFuZ2UoKHZhbHVlKSA9PiB7XG5cdFx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaW5saW5lLmN1cnZhdHVyZSA9IHZhbHVlO1xuXHRcdFx0XHRcdFx0KGFzeW5jICgpID0+IHthd2FpdCB0aGlzLnBsdWdpbi5zYXZlU2V0dGluZ3MoKTt9KSgpOyAgICBcblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0fSk7XG5cdFx0XHRcdHNldHRpbmcuYWRkRXh0cmFCdXR0b24oKGJ1dHRvbikgPT4ge2J1dHRvblxuXHRcdFx0XHRcdC5zZXRJY29uKFwicmVzZXRcIilcblx0XHRcdFx0XHQuc2V0VG9vbHRpcChcIlJlc3RvcmUgZGVmYXVsdCBjdXJ2YXR1cmVcIilcblx0XHRcdFx0XHQub25DbGljaygoKSA9PiB7XG5cdFx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaW5saW5lLmN1cnZhdHVyZSA9IHRoaXMucGx1Z2luLnNldHRpbmdzLnRoZW1lc1t0aGlzLnBsdWdpbi5zZXR0aW5ncy5zZWxlY3RlZFRoZW1lXS5zZXR0aW5ncy5pbmxpbmUuY3VydmF0dXJlO1xuXHRcdFx0XHRcdFx0cmVzZXR0YWJsZVNsaWRlci5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaW5saW5lLmN1cnZhdHVyZSk7XG5cdFx0XHRcdFx0XHQoYXN5bmMgKCkgPT4ge2F3YWl0IHRoaXMucGx1Z2luLnNhdmVTZXR0aW5ncygpO30pKCk7XG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdH0pO1xuXHRcdFx0fSk7XG5cdFx0bmV3IFNldHRpbmcoY29udGFpbmVyRWwpXG5cdFx0XHQuc2V0TmFtZShcIklubGluZSBDb2RlIFZlcnRpY2FsIFBhZGRpbmdcIilcblx0XHRcdC5zZXREZXNjKFwiRGV0ZXJtaW5lcyBob3cgbXVjaCB2ZXJ0aWNhbCBpbm5lciBwYWRkaW5nIGluIHBpeGVscyBpbmxpbmUgY29kZSBoYXMuXCIpXG5cdFx0XHQudGhlbigoc2V0dGluZykgPT4ge1xuXHRcdFx0XHRsZXQgcmVzZXR0YWJsZVNsaWRlcjogU2xpZGVyQ29tcG9uZW50O1xuXHRcdFx0XHRzZXR0aW5nLmFkZFNsaWRlcigoc2xpZGVyKSA9PiB7cmVzZXR0YWJsZVNsaWRlciA9IHNsaWRlclxuXHRcdFx0XHRcdC5zZXRMaW1pdHMoMCwxMCwxKVxuXHRcdFx0XHRcdC5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaW5saW5lLnBhZGRpbmdWZXJ0aWNhbClcblx0XHRcdFx0XHQuc2V0RHluYW1pY1Rvb2x0aXAoKVxuXHRcdFx0XHRcdC5vbkNoYW5nZSgodmFsdWUpID0+IHtcblx0XHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5pbmxpbmUucGFkZGluZ1ZlcnRpY2FsID0gdmFsdWU7XG5cdFx0XHRcdFx0XHQoYXN5bmMgKCkgPT4ge2F3YWl0IHRoaXMucGx1Z2luLnNhdmVTZXR0aW5ncygpO30pKCk7ICAgIFxuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHR9KTtcblx0XHRcdFx0c2V0dGluZy5hZGRFeHRyYUJ1dHRvbigoYnV0dG9uKSA9PiB7YnV0dG9uXG5cdFx0XHRcdFx0LnNldEljb24oXCJyZXNldFwiKVxuXHRcdFx0XHRcdC5zZXRUb29sdGlwKFwiUmVzdG9yZSBkZWZhdWx0IHZlcnRpY2FsIHBhZGRpbmdcIilcblx0XHRcdFx0XHQub25DbGljaygoKSA9PiB7XG5cdFx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaW5saW5lLnBhZGRpbmdWZXJ0aWNhbCA9IHRoaXMucGx1Z2luLnNldHRpbmdzLnRoZW1lc1t0aGlzLnBsdWdpbi5zZXR0aW5ncy5zZWxlY3RlZFRoZW1lXS5zZXR0aW5ncy5pbmxpbmUucGFkZGluZ1ZlcnRpY2FsO1xuXHRcdFx0XHRcdFx0cmVzZXR0YWJsZVNsaWRlci5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaW5saW5lLnBhZGRpbmdWZXJ0aWNhbCk7XG5cdFx0XHRcdFx0XHQoYXN5bmMgKCkgPT4ge2F3YWl0IHRoaXMucGx1Z2luLnNhdmVTZXR0aW5ncygpO30pKCk7XG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdH0pO1xuXHRcdFx0fSk7XG5cdFx0bmV3IFNldHRpbmcoY29udGFpbmVyRWwpXG5cdFx0XHQuc2V0TmFtZShcIklubGluZSBDb2RlIEhvcml6b250YWwgUGFkZGluZ1wiKVxuXHRcdFx0LnNldERlc2MoXCJEZXRlcm1pbmVzIGhvdyBtdWNoIGhvcml6b250YWwgaW5uZXIgcGFkZGluZyBpbiBwaXhlbHMgaW5saW5lIGNvZGUgaGFzLlwiKVxuXHRcdFx0LnRoZW4oKHNldHRpbmcpID0+IHtcblx0XHRcdFx0bGV0IHJlc2V0dGFibGVTbGlkZXI6IFNsaWRlckNvbXBvbmVudDtcblx0XHRcdFx0c2V0dGluZy5hZGRTbGlkZXIoKHNsaWRlcikgPT4ge3Jlc2V0dGFibGVTbGlkZXIgPSBzbGlkZXJcblx0XHRcdFx0XHQuc2V0TGltaXRzKDAsMTAsMSlcblx0XHRcdFx0XHQuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmlubGluZS5wYWRkaW5nSG9yaXpvbnRhbClcblx0XHRcdFx0XHQuc2V0RHluYW1pY1Rvb2x0aXAoKVxuXHRcdFx0XHRcdC5vbkNoYW5nZSgodmFsdWUpID0+IHtcblx0XHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5pbmxpbmUucGFkZGluZ0hvcml6b250YWwgPSB2YWx1ZTtcblx0XHRcdFx0XHRcdChhc3luYyAoKSA9PiB7YXdhaXQgdGhpcy5wbHVnaW4uc2F2ZVNldHRpbmdzKCk7fSkoKTsgICAgXG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdH0pO1xuXHRcdFx0XHRzZXR0aW5nLmFkZEV4dHJhQnV0dG9uKChidXR0b24pID0+IHtidXR0b25cblx0XHRcdFx0XHQuc2V0SWNvbihcInJlc2V0XCIpXG5cdFx0XHRcdFx0LnNldFRvb2x0aXAoXCJSZXN0b3JlIGRlZmF1bHQgaG9yaXpvbnRhbCBwYWRkaW5nXCIpXG5cdFx0XHRcdFx0Lm9uQ2xpY2soKCkgPT4ge1xuXHRcdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmlubGluZS5wYWRkaW5nSG9yaXpvbnRhbCA9IHRoaXMucGx1Z2luLnNldHRpbmdzLnRoZW1lc1t0aGlzLnBsdWdpbi5zZXR0aW5ncy5zZWxlY3RlZFRoZW1lXS5zZXR0aW5ncy5pbmxpbmUucGFkZGluZ0hvcml6b250YWw7XG5cdFx0XHRcdFx0XHRyZXNldHRhYmxlU2xpZGVyLnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5pbmxpbmUucGFkZGluZ0hvcml6b250YWwpO1xuXHRcdFx0XHRcdFx0KGFzeW5jICgpID0+IHthd2FpdCB0aGlzLnBsdWdpbi5zYXZlU2V0dGluZ3MoKTt9KSgpO1xuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHR9KTtcblx0XHRcdH0pO1xuXHRcdG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxuXHRcdFx0LnNldE5hbWUoXCJJbmxpbmUgQ29kZSBIb3Jpem9udGFsIE1hcmdpblwiKVxuXHRcdFx0LnNldERlc2MoXCJEZXRlcm1pbmVzIGhvdyBtdWNoIGhvcml6b250YWwgb3V0ZXIgbWFyZ2luIGlzIGFkZGVkIHRvIHRoZSBpbmxpbmUgY29kZSBpbiBwaXhlbHMuXCIpXG5cdFx0XHQudGhlbigoc2V0dGluZykgPT4ge1xuXHRcdFx0XHRsZXQgcmVzZXR0YWJsZVNsaWRlcjogU2xpZGVyQ29tcG9uZW50O1xuXHRcdFx0XHRzZXR0aW5nLmFkZFNsaWRlcigoc2xpZGVyKSA9PiB7cmVzZXR0YWJsZVNsaWRlciA9IHNsaWRlclxuXHRcdFx0XHRcdC5zZXRMaW1pdHMoMCw4LDEpXG5cdFx0XHRcdFx0LnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5pbmxpbmUubWFyZ2luSG9yaXpvbnRhbClcblx0XHRcdFx0XHQuc2V0RHluYW1pY1Rvb2x0aXAoKVxuXHRcdFx0XHRcdC5vbkNoYW5nZSgodmFsdWUpID0+IHtcblx0XHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5pbmxpbmUubWFyZ2luSG9yaXpvbnRhbCA9IHZhbHVlO1xuXHRcdFx0XHRcdFx0KGFzeW5jICgpID0+IHthd2FpdCB0aGlzLnBsdWdpbi5zYXZlU2V0dGluZ3MoKTt9KSgpOyAgICBcblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0fSk7XG5cdFx0XHRcdHNldHRpbmcuYWRkRXh0cmFCdXR0b24oKGJ1dHRvbikgPT4ge2J1dHRvblxuXHRcdFx0XHRcdC5zZXRJY29uKFwicmVzZXRcIilcblx0XHRcdFx0XHQuc2V0VG9vbHRpcChcIlJlc3RvcmUgZGVmYXVsdCBob3Jpem9udGFsIG1hcmdpblwiKVxuXHRcdFx0XHRcdC5vbkNsaWNrKCgpID0+IHtcblx0XHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5pbmxpbmUubWFyZ2luSG9yaXpvbnRhbCA9IHRoaXMucGx1Z2luLnNldHRpbmdzLnRoZW1lc1t0aGlzLnBsdWdpbi5zZXR0aW5ncy5zZWxlY3RlZFRoZW1lXS5zZXR0aW5ncy5pbmxpbmUubWFyZ2luSG9yaXpvbnRhbDtcblx0XHRcdFx0XHRcdHJlc2V0dGFibGVTbGlkZXIuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmlubGluZS5tYXJnaW5Ib3Jpem9udGFsKTtcblx0XHRcdFx0XHRcdChhc3luYyAoKSA9PiB7YXdhaXQgdGhpcy5wbHVnaW4uc2F2ZVNldHRpbmdzKCk7fSkoKTtcblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0fSk7XG5cdFx0XHR9KTtcblx0XHRuZXcgU2V0dGluZyhjb250YWluZXJFbClcblx0XHRcdC5zZXROYW1lKFwiSW5saW5lIENvZGUgVGl0bGUgQ29sb3VyXCIpXG5cdFx0XHQuc2V0RGVzYyhcIlRoZSB0ZXh0IGNvbG91ciBvZiBpbmxpbmUgY29kZSB0aXRsZXMuXCIpXG5cdFx0XHQudGhlbigoc2V0dGluZykgPT4ge3RoaXMuY3JlYXRlUGlja3IoXG5cdFx0XHRcdHRoaXMucGx1Z2luLGNvbnRhaW5lckVsLHNldHRpbmcsXG5cdFx0XHRcdFwidGl0bGVfdGV4dFwiLFxuXHRcdFx0XHQocmVsZXZhbnRUaGVtZUNvbG91cnM6IENvZGVTdHlsZXJUaGVtZUNvbG91cnMpID0+IHJlbGV2YW50VGhlbWVDb2xvdXJzW2dldEN1cnJlbnRNb2RlKCldLmlubGluZS50aXRsZVRleHRDb2xvdXIsXG5cdFx0XHRcdChyZWxldmFudFRoZW1lQ29sb3VyczogQ29kZVN0eWxlclRoZW1lQ29sb3Vycywgc2F2ZUNvbG91cjogQ29sb3VyKSA9PiB7cmVsZXZhbnRUaGVtZUNvbG91cnNbZ2V0Q3VycmVudE1vZGUoKV0uaW5saW5lLnRpdGxlVGV4dENvbG91ciA9IHNhdmVDb2xvdXI7fSxcblx0XHRcdCk7fSk7XG5cdFx0bmV3IFNldHRpbmcoY29udGFpbmVyRWwpXG5cdFx0XHQuc2V0TmFtZShcIklubGluZSBDb2RlIFRpdGxlIEZvbnQgV2VpZ2h0XCIpXG5cdFx0XHQuc2V0RGVzYyhcIkRldGVybWluZXMgaG93IGJvbGQgaW5saW5lIGNvZGUgdGl0bGVzIGFwcGVhci5cIilcblx0XHRcdC50aGVuKChzZXR0aW5nKSA9PiB7XG5cdFx0XHRcdGxldCByZXNldHRhYmxlU2xpZGVyOiBTbGlkZXJDb21wb25lbnQ7XG5cdFx0XHRcdHNldHRpbmcuYWRkU2xpZGVyKChzbGlkZXIpID0+IHtyZXNldHRhYmxlU2xpZGVyID0gc2xpZGVyXG5cdFx0XHRcdFx0LnNldExpbWl0cygxLDksMSlcblx0XHRcdFx0XHQuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmlubGluZS50aXRsZUZvbnRXZWlnaHQpXG5cdFx0XHRcdFx0LnNldER5bmFtaWNUb29sdGlwKClcblx0XHRcdFx0XHQub25DaGFuZ2UoKHZhbHVlKSA9PiB7XG5cdFx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaW5saW5lLnRpdGxlRm9udFdlaWdodCA9IHZhbHVlO1xuXHRcdFx0XHRcdFx0KGFzeW5jICgpID0+IHthd2FpdCB0aGlzLnBsdWdpbi5zYXZlU2V0dGluZ3MoKTt9KSgpOyAgICBcblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0fSk7XG5cdFx0XHRcdHNldHRpbmcuYWRkRXh0cmFCdXR0b24oKGJ1dHRvbikgPT4ge2J1dHRvblxuXHRcdFx0XHRcdC5zZXRJY29uKFwicmVzZXRcIilcblx0XHRcdFx0XHQuc2V0VG9vbHRpcChcIlJlc3RvcmUgZGVmYXVsdCBmb250IHdlaWdodFwiKVxuXHRcdFx0XHRcdC5vbkNsaWNrKCgpID0+IHtcblx0XHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5pbmxpbmUudGl0bGVGb250V2VpZ2h0ID0gdGhpcy5wbHVnaW4uc2V0dGluZ3MudGhlbWVzW3RoaXMucGx1Z2luLnNldHRpbmdzLnNlbGVjdGVkVGhlbWVdLnNldHRpbmdzLmlubGluZS50aXRsZUZvbnRXZWlnaHQ7XG5cdFx0XHRcdFx0XHRyZXNldHRhYmxlU2xpZGVyLnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5pbmxpbmUudGl0bGVGb250V2VpZ2h0KTtcblx0XHRcdFx0XHRcdChhc3luYyAoKSA9PiB7YXdhaXQgdGhpcy5wbHVnaW4uc2F2ZVNldHRpbmdzKCk7fSkoKTtcblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0fSk7XG5cdFx0XHR9KTtcblxuXHRcdC8vID09PT09PT09PT0gQWR2YW5jZWQgPT09PT09PT09PVxuXHRcdGNvbnRhaW5lckVsLmNyZWF0ZUVsKFwiaDNcIiwge3RleHQ6IFwiQWR2YW5jZWQgU2V0dGluZ3NcIn0pO1xuXHRcdFxuXG5cdFx0bGV0IHdyYXBMaW5lc0FjdGl2ZVRvZ2dsZTogVG9nZ2xlQ29tcG9uZW50O1xuXHRcdG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxuXHRcdFx0LnNldE5hbWUoXCJXcmFwIExpbmVzIG9uIENsaWNrXCIpXG5cdFx0XHQuc2V0RGVzYyhcIklmIGVuYWJsZWQsIGluIHJlYWRpbmcgbW9kZSwgaG9sZGluZyBjbGljayBvbiBhIGNvZGVibG9jayB3aWxsIHdyYXAgdGhlIGxpbmVzIGZvciBiZXR0ZXIgdmlzaWJpbGl0eS4gVGhpcyBjYW4gb25seSBiZSB1c2VkIGlmIHRoZSBcXFwiVW53cmFwIExpbmVzXFxcIiBzZXR0aW5nIGlzIGVuYWJsZWQuXCIpXG5cdFx0XHQuYWRkVG9nZ2xlKHRvZ2dsZSA9PiB7d3JhcExpbmVzQWN0aXZlVG9nZ2xlID0gdG9nZ2xlXG5cdFx0XHRcdC5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuY29kZWJsb2NrLndyYXBMaW5lc0FjdGl2ZSlcblx0XHRcdFx0LnNldERpc2FibGVkKCF0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuY29kZWJsb2NrLnVud3JhcExpbmVzKVxuXHRcdFx0XHQub25DaGFuZ2UoKHZhbHVlKSA9PiB7XG5cdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmNvZGVibG9jay53cmFwTGluZXNBY3RpdmUgPSB2YWx1ZTtcblx0XHRcdFx0XHQoYXN5bmMgKCkgPT4ge2F3YWl0IHRoaXMucGx1Z2luLnNhdmVTZXR0aW5ncygpO30pKCk7IFxuXHRcdFx0XHRcdHRoaXMucGx1Z2luLnJlbmRlclJlYWRpbmdWaWV3KCk7ICAgXG5cdFx0XHRcdH0pO1xuXHRcdFx0dGhpcy5kaXNhYmxlYWJsZUNvbXBvbmVudHNbXCJ3cmFwTGluZXNcIl0ucHVzaCh3cmFwTGluZXNBY3RpdmVUb2dnbGUpO1xuXHRcdFx0fSk7XG5cdFx0bmV3IFNldHRpbmcoY29udGFpbmVyRWwpXG5cdFx0XHQuc2V0TmFtZShcIkJ1dHRvbiBDb2xvdXJcIilcblx0XHRcdC5zZXREZXNjKFwiVXNlZCBmb3IgVUkgYnV0dG9ucyBsaWtlIHRoZSBjb3B5IGNvZGUgYnV0dG9uLlwiKVxuXHRcdFx0LnRoZW4oKHNldHRpbmcpID0+IHt0aGlzLmNyZWF0ZVBpY2tyKFxuXHRcdFx0XHR0aGlzLnBsdWdpbixjb250YWluZXJFbCxzZXR0aW5nLFxuXHRcdFx0XHRcImRlZmF1bHRfaGlnaGxpZ2h0XCIsXG5cdFx0XHRcdChyZWxldmFudFRoZW1lQ29sb3VyczogQ29kZVN0eWxlclRoZW1lQ29sb3VycykgPT4gcmVsZXZhbnRUaGVtZUNvbG91cnNbZ2V0Q3VycmVudE1vZGUoKV0uYWR2YW5jZWQuYnV0dG9uQ29sb3VyLFxuXHRcdFx0XHQocmVsZXZhbnRUaGVtZUNvbG91cnM6IENvZGVTdHlsZXJUaGVtZUNvbG91cnMsIHNhdmVDb2xvdXI6IENvbG91cikgPT4ge3JlbGV2YW50VGhlbWVDb2xvdXJzW2dldEN1cnJlbnRNb2RlKCldLmFkdmFuY2VkLmJ1dHRvbkNvbG91ciA9IHNhdmVDb2xvdXI7fSxcblx0XHRcdCk7fSk7XG5cdFx0bmV3IFNldHRpbmcoY29udGFpbmVyRWwpXG5cdFx0XHQuc2V0TmFtZShcIkJ1dHRvbiBBY3RpdmUgQ29sb3VyXCIpXG5cdFx0XHQuc2V0RGVzYyhcIkNvbG91ciBidXR0b25zIHVzZSB3aGVuIGFjdGl2YXRlZC5cIilcblx0XHRcdC50aGVuKChzZXR0aW5nKSA9PiB7dGhpcy5jcmVhdGVQaWNrcihcblx0XHRcdFx0dGhpcy5wbHVnaW4sY29udGFpbmVyRWwsc2V0dGluZyxcblx0XHRcdFx0XCJkZWZhdWx0X2hpZ2hsaWdodFwiLFxuXHRcdFx0XHQocmVsZXZhbnRUaGVtZUNvbG91cnM6IENvZGVTdHlsZXJUaGVtZUNvbG91cnMpID0+IHJlbGV2YW50VGhlbWVDb2xvdXJzW2dldEN1cnJlbnRNb2RlKCldLmFkdmFuY2VkLmJ1dHRvbkFjdGl2ZUNvbG91cixcblx0XHRcdFx0KHJlbGV2YW50VGhlbWVDb2xvdXJzOiBDb2RlU3R5bGVyVGhlbWVDb2xvdXJzLCBzYXZlQ29sb3VyOiBDb2xvdXIpID0+IHtyZWxldmFudFRoZW1lQ29sb3Vyc1tnZXRDdXJyZW50TW9kZSgpXS5hZHZhbmNlZC5idXR0b25BY3RpdmVDb2xvdXIgPSBzYXZlQ29sb3VyO30sXG5cdFx0XHQpO30pO1xuXHRcdG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxuXHRcdFx0LnNldE5hbWUoXCJHcmFkaWVudCBIaWdobGlnaHRpbmdcIilcblx0XHRcdC5zZXREZXNjKFwiSWYgZW5hYmxlZCwgaGlnaGxpZ2h0cyBmYWRlIGF3YXkgdG8gdGhlIHJpZ2h0LiBUaGUgc2xpZGVyIHNldHMgdGhlIGdyYWRpZW50IGNvbG91ciBzdG9wIGFzIGEgcGVyY2VudGFnZS5cIilcblx0XHRcdC5hZGRUb2dnbGUodG9nZ2xlID0+IHRvZ2dsZVxuXHRcdFx0XHQuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmFkdmFuY2VkLmdyYWRpZW50SGlnaGxpZ2h0cylcblx0XHRcdFx0Lm9uQ2hhbmdlKCh2YWx1ZSkgPT4ge1xuXHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5hZHZhbmNlZC5ncmFkaWVudEhpZ2hsaWdodHMgPSB2YWx1ZTtcblx0XHRcdFx0XHR0aGlzLmRpc2FibGVhYmxlQ29tcG9uZW50c1tcImdyYWRpZW50SGlnaGxpZ2h0aW5nXCJdLmZvckVhY2goY29tcG9uZW50ID0+IHtjb21wb25lbnQuc2V0RGlzYWJsZWQoIXZhbHVlKTt9KTtcblx0XHRcdFx0XHQoYXN5bmMgKCkgPT4ge2F3YWl0IHRoaXMucGx1Z2luLnNhdmVTZXR0aW5ncygpO30pKCk7XG5cdFx0XHRcdH0pKVxuXHRcdFx0LnRoZW4oKHNldHRpbmcpID0+IHtcblx0XHRcdFx0bGV0IHJlc2V0dGFibGVTbGlkZXI6IFNsaWRlckNvbXBvbmVudDtcblx0XHRcdFx0c2V0dGluZy5hZGRTbGlkZXIoKHNsaWRlcikgPT4ge3Jlc2V0dGFibGVTbGlkZXIgPSBzbGlkZXJcblx0XHRcdFx0XHQuc2V0TGltaXRzKDAsMTAwLDEpXG5cdFx0XHRcdFx0LnNldFZhbHVlKCt0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuYWR2YW5jZWQuZ3JhZGllbnRIaWdobGlnaHRzQ29sb3VyU3RvcC5zbGljZSgwLC0xKSlcblx0XHRcdFx0XHQuc2V0RGlzYWJsZWQoIXRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5hZHZhbmNlZC5ncmFkaWVudEhpZ2hsaWdodHMpXG5cdFx0XHRcdFx0LnNldER5bmFtaWNUb29sdGlwKClcblx0XHRcdFx0XHQub25DaGFuZ2UoKHZhbHVlKSA9PiB7XG5cdFx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuYWR2YW5jZWQuZ3JhZGllbnRIaWdobGlnaHRzQ29sb3VyU3RvcCA9IGAke3ZhbHVlfSVgO1xuXHRcdFx0XHRcdFx0KGFzeW5jICgpID0+IHthd2FpdCB0aGlzLnBsdWdpbi5zYXZlU2V0dGluZ3MoKTt9KSgpOyAgICBcblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0dGhpcy5kaXNhYmxlYWJsZUNvbXBvbmVudHNbXCJncmFkaWVudEhpZ2hsaWdodGluZ1wiXS5wdXNoKHJlc2V0dGFibGVTbGlkZXIpO1xuXHRcdFx0XHR9KTtcblx0XHRcdFx0bGV0IHJlc2V0QnV0dG9uOiBFeHRyYUJ1dHRvbkNvbXBvbmVudDtcblx0XHRcdFx0c2V0dGluZy5hZGRFeHRyYUJ1dHRvbigoYnV0dG9uKSA9PiB7cmVzZXRCdXR0b24gPSBidXR0b25cblx0XHRcdFx0XHQuc2V0SWNvbihcInJlc2V0XCIpXG5cdFx0XHRcdFx0LnNldERpc2FibGVkKCF0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuYWR2YW5jZWQuZ3JhZGllbnRIaWdobGlnaHRzKVxuXHRcdFx0XHRcdC5zZXRUb29sdGlwKFwiUmVzdG9yZSBkZWZhdWx0IGNvbG91ciBzdG9wXCIpXG5cdFx0XHRcdFx0Lm9uQ2xpY2soKCkgPT4ge1xuXHRcdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmFkdmFuY2VkLmdyYWRpZW50SGlnaGxpZ2h0c0NvbG91clN0b3AgPSB0aGlzLnBsdWdpbi5zZXR0aW5ncy50aGVtZXNbdGhpcy5wbHVnaW4uc2V0dGluZ3Muc2VsZWN0ZWRUaGVtZV0uc2V0dGluZ3MuYWR2YW5jZWQuZ3JhZGllbnRIaWdobGlnaHRzQ29sb3VyU3RvcDtcblx0XHRcdFx0XHRcdHJlc2V0dGFibGVTbGlkZXIuc2V0VmFsdWUoK3RoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5hZHZhbmNlZC5ncmFkaWVudEhpZ2hsaWdodHNDb2xvdXJTdG9wLnNsaWNlKDAsLTEpKTtcblx0XHRcdFx0XHRcdChhc3luYyAoKSA9PiB7YXdhaXQgdGhpcy5wbHVnaW4uc2F2ZVNldHRpbmdzKCk7fSkoKTtcblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0dGhpcy5kaXNhYmxlYWJsZUNvbXBvbmVudHNbXCJncmFkaWVudEhpZ2hsaWdodGluZ1wiXS5wdXNoKHJlc2V0QnV0dG9uKTtcblx0XHRcdFx0fSk7XG5cdFx0XHR9KTtcblx0XHRuZXcgU2V0dGluZyhjb250YWluZXJFbClcblx0XHRcdC5zZXROYW1lKFwiTGFuZ3VhZ2UgQ29sb3VyZWQgQm9yZGVyc1wiKVxuXHRcdFx0LnNldERlc2MoXCJJZiBlbmFibGVkLCBsYW5ndWFnZXMgd2l0aCBpY29ucyBkaXNwbGF5IGEgbGVmdCBib3JkZXIgd2l0aCB0aGUgY29sb3VyIG9mIHRoZSBpY29uLiBUaGUgc2xpZGVyIHNldHMgdGhlIHdpZHRoIG9mIHRoZSBib3JkZXIuXCIpXG5cdFx0XHQuYWRkVG9nZ2xlKHRvZ2dsZSA9PiB0b2dnbGVcblx0XHRcdFx0LnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5hZHZhbmNlZC5sYW5ndWFnZUJvcmRlckNvbG91cilcblx0XHRcdFx0Lm9uQ2hhbmdlKCh2YWx1ZSkgPT4ge1xuXHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5hZHZhbmNlZC5sYW5ndWFnZUJvcmRlckNvbG91ciA9IHZhbHVlO1xuXHRcdFx0XHRcdHRoaXMuZGlzYWJsZWFibGVDb21wb25lbnRzW1wibGFuZ3VhZ2VCb3JkZXJDb2xvdXJcIl0uZm9yRWFjaChjb21wb25lbnQgPT4ge2NvbXBvbmVudC5zZXREaXNhYmxlZCghdmFsdWUpO30pO1xuXHRcdFx0XHRcdChhc3luYyAoKSA9PiB7YXdhaXQgdGhpcy5wbHVnaW4uc2F2ZVNldHRpbmdzKCk7fSkoKTtcblx0XHRcdFx0fSkpXG5cdFx0XHQudGhlbigoc2V0dGluZykgPT4ge1xuXHRcdFx0XHRsZXQgcmVzZXR0YWJsZVNsaWRlcjogU2xpZGVyQ29tcG9uZW50O1xuXHRcdFx0XHRzZXR0aW5nLmFkZFNsaWRlcigoc2xpZGVyKSA9PiB7cmVzZXR0YWJsZVNsaWRlciA9IHNsaWRlclxuXHRcdFx0XHRcdC5zZXRMaW1pdHMoMCwyMCwxKVxuXHRcdFx0XHRcdC5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuYWR2YW5jZWQubGFuZ3VhZ2VCb3JkZXJXaWR0aClcblx0XHRcdFx0XHQuc2V0RGlzYWJsZWQoIXRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5hZHZhbmNlZC5sYW5ndWFnZUJvcmRlckNvbG91cilcblx0XHRcdFx0XHQuc2V0RHluYW1pY1Rvb2x0aXAoKVxuXHRcdFx0XHRcdC5vbkNoYW5nZSgodmFsdWUpID0+IHtcblx0XHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5hZHZhbmNlZC5sYW5ndWFnZUJvcmRlcldpZHRoID0gdmFsdWU7XG5cdFx0XHRcdFx0XHQoYXN5bmMgKCkgPT4ge2F3YWl0IHRoaXMucGx1Z2luLnNhdmVTZXR0aW5ncygpO30pKCk7ICAgIFxuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHR0aGlzLmRpc2FibGVhYmxlQ29tcG9uZW50c1tcImxhbmd1YWdlQm9yZGVyQ29sb3VyXCJdLnB1c2gocmVzZXR0YWJsZVNsaWRlcik7XG5cdFx0XHRcdH0pO1xuXHRcdFx0XHRsZXQgcmVzZXRCdXR0b246IEV4dHJhQnV0dG9uQ29tcG9uZW50O1xuXHRcdFx0XHRzZXR0aW5nLmFkZEV4dHJhQnV0dG9uKChidXR0b24pID0+IHtyZXNldEJ1dHRvbiA9IGJ1dHRvblxuXHRcdFx0XHRcdC5zZXRJY29uKFwicmVzZXRcIilcblx0XHRcdFx0XHQuc2V0RGlzYWJsZWQoIXRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5hZHZhbmNlZC5sYW5ndWFnZUJvcmRlckNvbG91cilcblx0XHRcdFx0XHQuc2V0VG9vbHRpcChcIlJlc3RvcmUgZGVmYXVsdCBjb2xvdXIgc3RvcFwiKVxuXHRcdFx0XHRcdC5vbkNsaWNrKCgpID0+IHtcblx0XHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5hZHZhbmNlZC5sYW5ndWFnZUJvcmRlcldpZHRoID0gdGhpcy5wbHVnaW4uc2V0dGluZ3MudGhlbWVzW3RoaXMucGx1Z2luLnNldHRpbmdzLnNlbGVjdGVkVGhlbWVdLnNldHRpbmdzLmFkdmFuY2VkLmxhbmd1YWdlQm9yZGVyV2lkdGg7XG5cdFx0XHRcdFx0XHRyZXNldHRhYmxlU2xpZGVyLnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5hZHZhbmNlZC5sYW5ndWFnZUJvcmRlcldpZHRoKTtcblx0XHRcdFx0XHRcdChhc3luYyAoKSA9PiB7YXdhaXQgdGhpcy5wbHVnaW4uc2F2ZVNldHRpbmdzKCk7fSkoKTtcblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0dGhpcy5kaXNhYmxlYWJsZUNvbXBvbmVudHNbXCJsYW5ndWFnZUJvcmRlckNvbG91clwiXS5wdXNoKHJlc2V0QnV0dG9uKTtcblx0XHRcdFx0fSk7XG5cdFx0XHR9KTtcblx0XHQvL1RPRE8gKEBtYXl1cmFua3YpIFJlLXJlbmRlciAoVGVzdClcblx0XHRuZXcgU2V0dGluZyhjb250YWluZXJFbClcblx0XHRcdC5zZXROYW1lKFwiUmVkaXJlY3QgTGFuZ3VhZ2UgU2V0dGluZ3NcIilcblx0XHRcdC5zZXREZXNjKFwiVXNlIHRoaXMgdGV4dGJveCB0byByZWRpcmVjdCBzcGVjaWZpYyBsYW5ndWFnZSBjb2xvdXJzIGFuZCBpY29ucyBhcyBhIEpTT04gd2l0aCBsYW5ndWFnZSBuYW1lcyBhcyBrZXlzIGFuZCBlaXRoZXIgYSBjb2xvdXIga2V5LCBhbiBpY29uIGtleSBvciBib3RoIGFzIHRoZSB2YWx1ZSBmb3IgYSBnaXZlbiBsYW5ndWFnZS4gQ29sb3VycyBzaG91bGQgYmUgcGFzc2VkIGFzIENTUyBjb2xvdXJzIGFuZCBpY29ucyBzaG91bGQgYmUgcGFzc2VkIGFzIGEgc3RyaW5nIG9mIHRoZSBpbnNpZGUgb2YgYW4gc3ZnIGVsZW1lbnQuIFRoaXMgc2V0dGluZyBpcyB0aGVtZSBpbmRlcGVuZGVudC5cIilcblx0XHRcdC5zZXRDbGFzcyhcImNvZGUtc3R5bGVyLXNldHRpbmctdGV4dC1hcmVhXCIpXG5cdFx0XHQuYWRkVGV4dEFyZWEodGV4dEFyZWEgPT4gdGV4dEFyZWFcblx0XHRcdFx0LnNldFZhbHVlKEpTT04uc3RyaW5naWZ5KHRoaXMucGx1Z2luLnNldHRpbmdzLnJlZGlyZWN0TGFuZ3VhZ2VzKT09PVwie31cIj9cIlwiOkpTT04uc3RyaW5naWZ5KHRoaXMucGx1Z2luLnNldHRpbmdzLnJlZGlyZWN0TGFuZ3VhZ2VzLG51bGwsNCkpXG5cdFx0XHRcdC5zZXRQbGFjZWhvbGRlcihKU09OLnN0cmluZ2lmeSh7dG9tbDoge2NvbG91cjogXCIjMDEyMzQ1XCIsIGljb246IExBTkdVQUdFX0lDT05TX0RBVEFbXCJBUExcIl19fSxudWxsLDQpKVxuXHRcdFx0XHQub25DaGFuZ2UoKHZhbHVlKT0+e1xuXHRcdFx0XHRcdGlmICh2YWx1ZSA9PT0gXCJcIikge1xuXHRcdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MucmVkaXJlY3RMYW5ndWFnZXMgPSB7fTtcblx0XHRcdFx0XHRcdChhc3luYyAoKSA9PiB7YXdhaXQgdGhpcy5wbHVnaW4uc2F2ZVNldHRpbmdzKCk7fSkoKTtcblx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0dHJ5IHtcblx0XHRcdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MucmVkaXJlY3RMYW5ndWFnZXMgPSBKU09OLnBhcnNlKHZhbHVlKTtcblx0XHRcdFx0XHRcdFx0dGhpcy5yZWRpcmVjdExhbmd1YWdlcygpO1xuXHRcdFx0XHRcdFx0XHQoYXN5bmMgKCkgPT4ge2F3YWl0IHRoaXMucGx1Z2luLnNhdmVTZXR0aW5ncygpO30pKCk7XG5cdFx0XHRcdFx0XHR9IGNhdGNoIHtcblx0XHRcdFx0XHRcdFx0bmV3IE5vdGljZShcIkludmFsaWQgSlNPTlwiKTsgLy9OT1NPTkFSXG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9KSk7XG5cblx0XHQvLyA9PT09PT09PT09IERvbmF0aW9uID09PT09PT09PT1cblx0XHRjb25zdCBkb25hdGlvbkRpdiA9IGNvbnRhaW5lckVsLmNyZWF0ZUVsKFwiZGl2XCIsIHsgY2xzOiBcImNvZGUtc3R5bGVyLWRvbmF0aW9uXCIsIH0pOyAgICBcblx0XHRjb25zdCBkb25hdGlvblRleHQgPSBjcmVhdGVFbChcInBcIiwge3RleHQ6IFwiSWYgeW91IGxpa2UgdGhpcyBwbHVnaW4sIGFuZCB3b3VsZCBsaWtlIHRvIGhlbHAgc3VwcG9ydCBjb250aW51ZWQgZGV2ZWxvcG1lbnQsIHVzZSB0aGUgYnV0dG9uIGJlbG93IVwifSk7XG5cdFx0ZG9uYXRpb25EaXYuYXBwZW5kQ2hpbGQoZG9uYXRpb25UZXh0KTtcblx0XHRjb25zdCBkb25hdGlvbkJ1dHRvbiA9IGNyZWF0ZUVsKFwiYVwiLCB7IGhyZWY6IFwiaHR0cHM6Ly93d3cuYnV5bWVhY29mZmVlLmNvbS9tYXl1cmFua3YyXCJ9KTtcblx0XHRkb25hdGlvbkJ1dHRvbi5pbm5lckhUTUwgPSBcIjxpbWcgc3JjPVxcXCJodHRwczovL2ltZy5idXltZWFjb2ZmZWUuY29tL2J1dHRvbi1hcGkvP3RleHQ9QnV5IG1lIGEgY29mZmVlJmVtb2ppPSZzbHVnPW1heXVyYW5rdjImYnV0dG9uX2NvbG91cj1lM2U3ZWZhMCZmb250X2NvbG91cj0yNjI2MjYmZm9udF9mYW1pbHk9SW50ZXImb3V0bGluZV9jb2xvdXI9MjYyNjI2JmNvZmZlZV9jb2xvdXI9YTA1MjJkXFxcIiBoZWlnaHQ9XFxcIjQycHhcXFwiPlwiO1xuXHRcdGRvbmF0aW9uRGl2LmFwcGVuZENoaWxkKGRvbmF0aW9uQnV0dG9uKTtcblx0fVxuXG5cdC8vIFNldHRpbmcgUGFyc2luZ1xuXHRyZWRpcmVjdExhbmd1YWdlcygpIHtcblx0XHRPYmplY3QuZW50cmllcyh0aGlzLnBsdWdpbi5zZXR0aW5ncy5yZWRpcmVjdExhbmd1YWdlcykuZm9yRWFjaCgoW2xhbmd1YWdlTmFtZSwgbGFuZ3VhZ2VTZXR0aW5nc106IFtzdHJpbmcsIHtjb2xvdXI/OiBDb2xvdXIsIGljb24/OiBzdHJpbmd9XSk9Pntcblx0XHRcdGlmIChcImljb25cIiBpbiBsYW5ndWFnZVNldHRpbmdzKSB7XG5cdFx0XHRcdGlmIChMQU5HVUFHRV9OQU1FU1tsYW5ndWFnZU5hbWVdIGluIHRoaXMucGx1Z2luLmxhbmd1YWdlSWNvbnMpXG5cdFx0XHRcdFx0VVJMLnJldm9rZU9iamVjdFVSTCh0aGlzLnBsdWdpbi5sYW5ndWFnZUljb25zW0xBTkdVQUdFX05BTUVTW2xhbmd1YWdlTmFtZV1dKTtcblx0XHRcdFx0dGhpcy5wbHVnaW4ubGFuZ3VhZ2VJY29uc1tMQU5HVUFHRV9OQU1FU1tsYW5ndWFnZU5hbWVdXSA9IFVSTC5jcmVhdGVPYmplY3RVUkwobmV3IEJsb2IoW2A8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB4bWxuczp4bGluaz1cImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmtcIiB2aWV3Qm94PVwiMCAwIDMyIDMyXCI+JHtsYW5ndWFnZVNldHRpbmdzLmljb259PC9zdmc+YF0sIHsgdHlwZTogXCJpbWFnZS9zdmcreG1sXCIgfSkpO1xuXHRcdFx0fVxuXHRcdH0pO1xuXHR9XG5cblx0Ly8gU2V0dGluZyBDcmVhdGlvblxuXHRjcmVhdGVQaWNrcihwbHVnaW46IENvZGVTdHlsZXJQbHVnaW4sIGNvbnRhaW5lckVsOiBIVE1MRWxlbWVudCwgc2V0dGluZzogU2V0dGluZywgaWQ6IHN0cmluZywgZ2V0UmVsZXZhbnRUaGVtZUNvbG91cjogKHJlbGV2YW50VGhlbWVDb2xvdXJzOiBDb2RlU3R5bGVyVGhlbWVDb2xvdXJzKT0+Q29sb3VyLCBzYXZlUmVsZXZhbnRUaGVtZUNvbG91cjogKHJlbGV2YW50VGhlbWVDb2xvdXJzOiBDb2RlU3R5bGVyVGhlbWVDb2xvdXJzLCBzYXZlQ29sb3VyOiBDb2xvdXIpPT52b2lkLCBkaXNhYmxlZD86ICgpPT5ib29sZWFuKSB7XG5cdFx0Y29uc3QgcGlja3I6IFBpY2tyUmVzZXR0YWJsZSA9IG5ldyBQaWNrclJlc2V0dGFibGUocGx1Z2luLGNvbnRhaW5lckVsLHNldHRpbmcsZ2V0UmVsZXZhbnRUaGVtZUNvbG91cixzYXZlUmVsZXZhbnRUaGVtZUNvbG91cik7XG5cdFx0cGlja3Jcblx0XHRcdC5vbihcInNob3dcIiwgKGNvbG91cjogUGlja3IuSFNWYUNvbG9yLCBpbnN0YW5jZTogUGlja3IpID0+IHtcblx0XHRcdFx0aWYgKHR5cGVvZiBkaXNhYmxlZCAhPT0gXCJ1bmRlZmluZWRcIiAmJiBkaXNhYmxlZCgpKVxuXHRcdFx0XHRcdGluc3RhbmNlLmhpZGUoKTtcblx0XHRcdFx0Ly8gcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiAoaW5zdGFuY2UuZ2V0Um9vdCgpIGFzIGFueSkuaW50ZXJhY3Rpb24ucmVzdWx0LnNlbGVjdCgpKSlcblx0XHRcdH0pXG5cdFx0XHQub24oXCJzYXZlXCIsIChjb2xvdXI6IFBpY2tyLkhTVmFDb2xvciwgaW5zdGFuY2U6IFBpY2tyUmVzZXR0YWJsZSkgPT4ge1xuXHRcdFx0XHRjb25zdCBzYXZlZENvbG91cjogQ29sb3VyID0gYCMke2NvbG91ci50b0hFWEEoKS50b1N0cmluZygpLnN1YnN0cmluZygxKX1gO1xuXHRcdFx0XHRpbnN0YW5jZS5oaWRlKCk7XG5cdFx0XHRcdGluc3RhbmNlLmFkZFN3YXRjaChzYXZlZENvbG91cik7XG5cdFx0XHRcdGluc3RhbmNlLnNhdmVDb2xvdXIoc2F2ZWRDb2xvdXIpO1xuXHRcdFx0fSlcblx0XHRcdC5vbihcImNhbmNlbFwiLCAoaW5zdGFuY2U6IFBpY2tyUmVzZXR0YWJsZSkgPT4ge2luc3RhbmNlLmhpZGUoKTt9KTtcblx0XHRzZXR0aW5nLmFkZEV4dHJhQnV0dG9uKChidXR0b24pID0+IHtwaWNrci5yZXNldEJ1dHRvbiA9IGJ1dHRvblxuXHRcdFx0LnNldEljb24oXCJyZXNldFwiKVxuXHRcdFx0LnNldERpc2FibGVkKHR5cGVvZiBkaXNhYmxlZCAhPT0gXCJ1bmRlZmluZWRcIiAmJiBkaXNhYmxlZCgpKVxuXHRcdFx0LnNldFRvb2x0aXAoXCJSZXN0b3JlIGRlZmF1bHQgY29sb3VyXCIpXG5cdFx0XHQub25DbGljaygoKSA9PiB7cGlja3IucmVzZXRDb2xvdXIoKTt9KTtcblx0XHR9KTtcblx0XHR0aGlzLnBpY2tyc1tpZF09cGlja3I7XG5cdH1cblx0XG5cdC8vIFNldHRpbmcgVGFiIFVwZGF0ZXNcblx0dXBkYXRlRHJvcGRvd24oZHJvcGRvd246IERyb3Bkb3duQ29tcG9uZW50LCBzZXR0aW5nczogQ29kZVN0eWxlclNldHRpbmdzKSB7XG5cdFx0ZHJvcGRvd24uc2VsZWN0RWwuZW1wdHkoKTtcblx0XHRPYmplY3Qua2V5cyhzZXR0aW5ncy50aGVtZXMpLmZvckVhY2goKHRoZW1lX25hbWU6IHN0cmluZykgPT4ge1xuXHRcdFx0ZHJvcGRvd24uYWRkT3B0aW9uKHRoZW1lX25hbWUsIHRoZW1lX25hbWUpOyAgICAgICAgICAgIFxuXHRcdH0pO1xuXHRcdGRyb3Bkb3duLnNldFZhbHVlKHNldHRpbmdzLnNlbGVjdGVkVGhlbWUpO1xuXHR9XG5cdHVwZGF0ZUFsdGVybmF0aXZlSGlnaGxpZ2h0cyhhbHRlcm5hdGl2ZUhpZ2hsaWdodHNDb250YWluZXI6IEhUTUxEaXZFbGVtZW50KSB7XG5cdFx0YWx0ZXJuYXRpdmVIaWdobGlnaHRzQ29udGFpbmVyLmVtcHR5KCk7XG5cdFx0T2JqZWN0LmtleXModGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLmNvbG91cnMubGlnaHQuaGlnaGxpZ2h0cy5hbHRlcm5hdGl2ZUhpZ2hsaWdodHMpLmZvckVhY2goKGFsdGVybmF0aXZlSGlnaGxpZ2h0TmFtZSkgPT4ge1xuXHRcdFx0bmV3IFNldHRpbmcoYWx0ZXJuYXRpdmVIaWdobGlnaHRzQ29udGFpbmVyKVxuXHRcdFx0XHQuc2V0TmFtZShhbHRlcm5hdGl2ZUhpZ2hsaWdodE5hbWUpXG5cdFx0XHRcdC5zZXREZXNjKGBUbyBoaWdobGlnaHQgbGluZXMgd2l0aCB0aGlzIGhpZ2hsaWdodCwgdXNlIHRoZSAke2FsdGVybmF0aXZlSGlnaGxpZ2h0TmFtZX0gcGFyYW1ldGVyLmApXG5cdFx0XHRcdC50aGVuKChzZXR0aW5nKSA9PiB7XG5cdFx0XHRcdFx0dGhpcy5jcmVhdGVQaWNrcihcblx0XHRcdFx0XHRcdHRoaXMucGx1Z2luLGFsdGVybmF0aXZlSGlnaGxpZ2h0c0NvbnRhaW5lcixzZXR0aW5nLFxuXHRcdFx0XHRcdFx0YGFsdGVybmF0aXZlX2hpZ2hsaWdodF8ke2FsdGVybmF0aXZlSGlnaGxpZ2h0TmFtZX1gLFxuXHRcdFx0XHRcdFx0KHJlbGV2YW50VGhlbWVDb2xvdXJzOiBDb2RlU3R5bGVyVGhlbWVDb2xvdXJzKSA9PiBhbHRlcm5hdGl2ZUhpZ2hsaWdodE5hbWUgaW4gcmVsZXZhbnRUaGVtZUNvbG91cnMubGlnaHQuaGlnaGxpZ2h0cy5hbHRlcm5hdGl2ZUhpZ2hsaWdodHM/cmVsZXZhbnRUaGVtZUNvbG91cnNbZ2V0Q3VycmVudE1vZGUoKV0uaGlnaGxpZ2h0cy5hbHRlcm5hdGl2ZUhpZ2hsaWdodHNbYWx0ZXJuYXRpdmVIaWdobGlnaHROYW1lXTp0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuY29sb3Vyc1tnZXRDdXJyZW50TW9kZSgpXS5oaWdobGlnaHRzLmFsdGVybmF0aXZlSGlnaGxpZ2h0c1thbHRlcm5hdGl2ZUhpZ2hsaWdodE5hbWVdLFxuXHRcdFx0XHRcdFx0KHJlbGV2YW50VGhlbWVDb2xvdXJzOiBDb2RlU3R5bGVyVGhlbWVDb2xvdXJzLCBzYXZlQ29sb3VyOiBDb2xvdXIpID0+IHtyZWxldmFudFRoZW1lQ29sb3Vyc1tnZXRDdXJyZW50TW9kZSgpXS5oaWdobGlnaHRzLmFsdGVybmF0aXZlSGlnaGxpZ2h0c1thbHRlcm5hdGl2ZUhpZ2hsaWdodE5hbWVdID0gc2F2ZUNvbG91cjt9LFxuXHRcdFx0XHRcdCk7XG5cdFx0XHRcdFx0c2V0dGluZy5hZGRFeHRyYUJ1dHRvbigoYnV0dG9uKSA9PiB7YnV0dG9uXG5cdFx0XHRcdFx0XHQuc2V0SWNvbihcInRyYXNoXCIpXG5cdFx0XHRcdFx0XHQuc2V0VG9vbHRpcChcIkRlbGV0ZSBoaWdobGlnaHRcIilcblx0XHRcdFx0XHRcdC5vbkNsaWNrKCgpID0+IHtcblx0XHRcdFx0XHRcdFx0ZGVsZXRlIHRoaXMucGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5jb2xvdXJzLmxpZ2h0LmhpZ2hsaWdodHMuYWx0ZXJuYXRpdmVIaWdobGlnaHRzW2FsdGVybmF0aXZlSGlnaGxpZ2h0TmFtZV07XG5cdFx0XHRcdFx0XHRcdGRlbGV0ZSB0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuY29sb3Vycy5kYXJrLmhpZ2hsaWdodHMuYWx0ZXJuYXRpdmVIaWdobGlnaHRzW2FsdGVybmF0aXZlSGlnaGxpZ2h0TmFtZV07XG5cdFx0XHRcdFx0XHRcdG5ldyBOb3RpY2UoYFJlbW92ZWQgaGlnaGxpZ2h0IFwiJHthbHRlcm5hdGl2ZUhpZ2hsaWdodE5hbWV9XCIuYCk7IC8vTk9TT05BUlxuXHRcdFx0XHRcdFx0XHR0aGlzLnVwZGF0ZUFsdGVybmF0aXZlSGlnaGxpZ2h0cyhhbHRlcm5hdGl2ZUhpZ2hsaWdodHNDb250YWluZXIpO1xuXHRcdFx0XHRcdFx0XHQoYXN5bmMgKCkgPT4ge2F3YWl0IHRoaXMucGx1Z2luLnNhdmVTZXR0aW5ncygpO30pKCk7XG5cdFx0XHRcdFx0XHR9KTtcblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0fSk7XG5cdFx0fSk7XG5cdH1cbn1cblxuY2xhc3MgUGlja3JSZXNldHRhYmxlIGV4dGVuZHMgUGlja3Ige1xuXHRzYXZlQ29sb3VyOiAoc2F2ZUNvbG91cjogQ29sb3VyKT0+dm9pZDtcblx0cmVzZXRDb2xvdXI6ICgpPT52b2lkO1xuXHRnZXRDdXJyZW50Q29sb3VyOiAoYWNjZXNzVGhlbWU6IGJvb2xlYW4pPT52b2lkO1xuXHRyZXNldEJ1dHRvbjogRXh0cmFCdXR0b25Db21wb25lbnQ7XG5cblx0Y29uc3RydWN0b3IocGx1Z2luOiBDb2RlU3R5bGVyUGx1Z2luLCBjb250YWluZXJFbDogSFRNTEVsZW1lbnQsIHNldHRpbmc6IFNldHRpbmcsIGdldFJlbGV2YW50VGhlbWVDb2xvdXI6IChyZWxldmFudFRoZW1lQ29sb3VyczogQ29kZVN0eWxlclRoZW1lQ29sb3Vycyk9PkNvbG91ciwgc2F2ZVJlbGV2YW50VGhlbWVDb2xvdXI6IChyZWxldmFudFRoZW1lQ29sb3VyczogQ29kZVN0eWxlclRoZW1lQ29sb3Vycywgc2F2ZUNvbG91cjogQ29sb3VyKT0+dm9pZCwgdG9vbHRpcD86IHN0cmluZykge1xuXHRcdGNvbnN0IHNldHRpbmdzOiBQaWNrci5PcHRpb25zID0ge1xuXHRcdFx0ZWw6IHNldHRpbmcuY29udHJvbEVsLmNyZWF0ZURpdih7Y2xzOiBcInBpY2tlclwifSksXG5cdFx0XHR0aGVtZTogXCJuYW5vXCIsXG5cdFx0XHRkZWZhdWx0OiBnZXRDb2xvdXIoZ2V0UmVsZXZhbnRUaGVtZUNvbG91cihwbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLmNvbG91cnMpKSxcblx0XHRcdHBvc2l0aW9uOiBcImxlZnQtbWlkZGxlXCIsXG5cdFx0XHRsb2NrT3BhY2l0eTogZmFsc2UsXG5cdFx0XHRjb21wb25lbnRzOiB7XG5cdFx0XHRcdHByZXZpZXc6IHRydWUsXG5cdFx0XHRcdGh1ZTogdHJ1ZSxcblx0XHRcdFx0b3BhY2l0eTogdHJ1ZSxcblx0XHRcdFx0aW50ZXJhY3Rpb246IHtcblx0XHRcdFx0XHRoZXg6IHRydWUsXG5cdFx0XHRcdFx0cmdiYTogdHJ1ZSxcblx0XHRcdFx0XHRoc2xhOiBmYWxzZSxcblx0XHRcdFx0XHRpbnB1dDogdHJ1ZSxcblx0XHRcdFx0XHRjYW5jZWw6IHRydWUsXG5cdFx0XHRcdFx0c2F2ZTogdHJ1ZSxcblx0XHRcdFx0fSxcblx0XHRcdH0sXG5cdFx0XHRpMThuOiB7XG5cdFx0XHRcdFwidWk6ZGlhbG9nXCI6IFwiQ29sb3VyIHBpY2tlciBkaWFsb2dcIixcblx0XHRcdFx0XCJidG46dG9nZ2xlXCI6ICh0eXBlb2YgdG9vbHRpcCAhPT0gXCJ1bmRlZmluZWRcIik/dG9vbHRpcDpcIlNlbGVjdCBjb2xvdXJcIixcblx0XHRcdFx0XCJidG46c3dhdGNoXCI6IFwiQ29sb3VyIHN3YXRjaFwiLFxuXHRcdFx0XHRcImJ0bjpsYXN0LWNvbG9yXCI6IFwiVXNlIHByZXZpb3VzIGNvbG91clwiLFxuXHRcdFx0fVxuXHRcdH07XG5cdFx0aWYgKGNvbnRhaW5lckVsLnBhcmVudEVsZW1lbnQgIT09IG51bGwpXG5cdFx0XHRzZXR0aW5ncy5jb250YWluZXIgPSBjb250YWluZXJFbC5wYXJlbnRFbGVtZW50O1xuXHRcdHN1cGVyKHNldHRpbmdzKTtcblx0XHR0aGlzLnNhdmVDb2xvdXIgPSAoc2F2ZUNvbG91cjogQ29sb3VyKSA9PiB7XG5cdFx0XHRzYXZlUmVsZXZhbnRUaGVtZUNvbG91cihwbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLmNvbG91cnMsc2F2ZUNvbG91cik7XG5cdFx0XHQoYXN5bmMgKCkgPT4ge2F3YWl0IHBsdWdpbi5zYXZlU2V0dGluZ3MoKTt9KSgpO1xuXHRcdH07XG5cdFx0dGhpcy5yZXNldENvbG91ciA9ICgpID0+IHtcblx0XHRcdGNvbnN0IHJlc2V0Q29sb3VyOiBDb2xvdXIgPSBnZXRSZWxldmFudFRoZW1lQ29sb3VyKHBsdWdpbi5zZXR0aW5ncy50aGVtZXNbcGx1Z2luLnNldHRpbmdzLnNlbGVjdGVkVGhlbWVdLmNvbG91cnMpO1xuXHRcdFx0dGhpcy5zZXRDb2xvcihnZXRDb2xvdXIocmVzZXRDb2xvdXIpKTtcblx0XHRcdHRoaXMuc2F2ZUNvbG91cihyZXNldENvbG91cik7XG5cdFx0fTtcblx0fVxufVxuXG4vLyBDb2xvdXIgTWFuYWdlbWVudFxuZnVuY3Rpb24gZ2V0UmFuZG9tQ29sb3VyKCk6IENvbG91ciB7XG5cdGNvbnN0IGxldHRlcnMgPSBcIjAxMjM0NTY3ODlBQkNERUZcIjtcblx0bGV0IGNvbG91ciA9IFwiXCI7XG5cdGZvciAobGV0IGkgPSAwOyBpIDwgNjsgaSsrKVxuXHRcdGNvbG91ciArPSBsZXR0ZXJzW01hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDE2KV07XG5cdHJldHVybiBgIyR7Y29sb3VyfUZGYDtcbn1cbmV4cG9ydCBmdW5jdGlvbiBnZXRDb2xvdXIodGhlbWVDb2xvdXI6IENvbG91cik6IENvbG91ciB7XG5cdHJldHVybiBpc0Nzcyh0aGVtZUNvbG91cik/Z2V0Q3NzVmFyaWFibGUodGhlbWVDb2xvdXIpOnRoZW1lQ29sb3VyO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGlzQ3NzKHBvc3NpYmxlQ3NzOiBzdHJpbmcpOiBwb3NzaWJsZUNzcyBpcyBDU1Mge1xuXHRyZXR1cm4gcG9zc2libGVDc3Muc3RhcnRzV2l0aChcIi0tXCIpICYmIHR5cGVvZiBwb3NzaWJsZUNzcyA9PT0gXCJzdHJpbmdcIjtcbn1cbmZ1bmN0aW9uIGdldENzc1ZhcmlhYmxlKGNzc1ZhcmlhYmxlOiBDU1MpOiBIRVgge1xuXHRjb25zdCB2YXJpYWJsZVZhbHVlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuYm9keSkuZ2V0UHJvcGVydHlWYWx1ZShjc3NWYXJpYWJsZSkudHJpbSgpO1xuXHRpZiAodHlwZW9mIHZhcmlhYmxlVmFsdWUgPT09IFwic3RyaW5nXCIgJiYgdmFyaWFibGVWYWx1ZS5zdGFydHNXaXRoKFwiI1wiKSlcblx0XHRyZXR1cm4gYCMke3ZhcmlhYmxlVmFsdWUudHJpbSgpLnN1YnN0cmluZygxKX1gO1xuXHRlbHNlIGlmICh2YXJpYWJsZVZhbHVlLnN0YXJ0c1dpdGgoXCJyZ2JcIikpXG5cdFx0cmV0dXJuIGAjJHtDb2xvclRyYW5zbGF0b3IudG9IRVhBKHZhcmlhYmxlVmFsdWUucmVwbGFjZSgvY2FsY1xcKCguKj8pXFwpL2csKG1hdGNoLGNhcHR1cmUpPT5jYWxjKGNhcHR1cmUpKSkuc3Vic3RyaW5nKDEpfWA7XG5cdGVsc2UgaWYgKHZhcmlhYmxlVmFsdWUuc3RhcnRzV2l0aChcImhzbFwiKSlcblx0XHRyZXR1cm4gYCMke0NvbG9yVHJhbnNsYXRvci50b0hFWEEodmFyaWFibGVWYWx1ZS5yZXBsYWNlKC9jYWxjXFwoKC4qPylcXCkvZywobWF0Y2gsY2FwdHVyZSk9PmNhbGMoY2FwdHVyZSkpKS5zdWJzdHJpbmcoMSl9YDtcblx0ZWxzZVxuXHRcdGNvbnNvbGUud2FybihgV2FybmluZzogQ291bGRuJ3QgZGV0ZXJtaW5lIGNvbG91ciBmb3JtYXQgLSAke3ZhcmlhYmxlVmFsdWV9YCk7XG5cdHJldHVybiBgIyR7Q29sb3JUcmFuc2xhdG9yLnRvSEVYQSh2YXJpYWJsZVZhbHVlKS5zdWJzdHJpbmcoMSl9YDtcbn1cbmZ1bmN0aW9uIGNhbGMoY2FsY1N0cmluZzogc3RyaW5nKTogc3RyaW5nIHtcblx0Y29uc3Qgc3BsaXRTdHJpbmcgPSBjYWxjU3RyaW5nLnRyaW0oKS5yZXBsYWNlKC8oXFxkKiklL2csXCIkMVwiKS5zcGxpdChcIiBcIik7XG5cdGNvbnN0IG9wZXJhdG9yczoge1trZXk6IHN0cmluZ106IChudW0xOm51bWJlciwgbnVtMjpudW1iZXIpID0+IG51bWJlcn0gPSB7XG5cdFx0XCIrXCI6IChudW0xOm51bWJlciwgbnVtMjpudW1iZXIpOm51bWJlciA9PiBNYXRoLm1heChudW0xK251bTIsMCksXG5cdFx0XCItXCI6IChudW0xOm51bWJlciAsbnVtMjpudW1iZXIpOm51bWJlciA9PiBNYXRoLm1heChudW0xLW51bTIsMCksXG5cdH07XG5cdGlmIChzcGxpdFN0cmluZy5sZW5ndGggPT09IDMpXG5cdFx0aWYgKHNwbGl0U3RyaW5nWzFdIGluIG9wZXJhdG9ycylcblx0XHRcdHJldHVybiBgJHtvcGVyYXRvcnNbc3BsaXRTdHJpbmdbMV1dKHBhcnNlRmxvYXQoc3BsaXRTdHJpbmdbMF0pLHBhcnNlRmxvYXQoc3BsaXRTdHJpbmdbMl0pKX0lYDtcblx0XG5cdGNvbnNvbGUud2FybihcIldhcm5pbmc6IENvdWxkbid0IHBhcnNlIGNhbGMgc3RyaW5nXCIpO1xuXHRyZXR1cm4gY2FsY1N0cmluZztcbn1cblxuZnVuY3Rpb24gZ2V0Q3VycmVudE1vZGUoKSB7XG5cdGNvbnN0IGJvZHkgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwiYm9keVwiKTtcblx0aWYgKGJvZHkgIT09IG51bGwpe1xuXHRcdGlmIChib2R5LmNsYXNzTGlzdC5jb250YWlucyhcInRoZW1lLWxpZ2h0XCIpKVxuXHRcdFx0cmV0dXJuIFwibGlnaHRcIjtcblx0XHRlbHNlIGlmIChib2R5LmNsYXNzTGlzdC5jb250YWlucyhcInRoZW1lLWRhcmtcIikpXG5cdFx0XHRyZXR1cm4gXCJkYXJrXCI7XG5cdH1cblx0Y29uc29sZS53YXJuKFwiV2FybmluZzogQ291bGRuJ3QgZ2V0IGN1cnJlbnQgdGhlbWVcIik7XG5cdHJldHVybiBcImxpZ2h0XCI7XG59XG4iLCAidmFyIHQ9ZnVuY3Rpb24oKXtyZXR1cm4gdD1PYmplY3QuYXNzaWdufHxmdW5jdGlvbih0KXtmb3IodmFyIGUsbj0xLHI9YXJndW1lbnRzLmxlbmd0aDtuPHI7bisrKWZvcih2YXIgaSBpbiBlPWFyZ3VtZW50c1tuXSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSxpKSYmKHRbaV09ZVtpXSk7cmV0dXJuIHR9LHQuYXBwbHkodGhpcyxhcmd1bWVudHMpfTtmdW5jdGlvbiBlKHQsZSxuKXtpZihufHwyPT09YXJndW1lbnRzLmxlbmd0aClmb3IodmFyIHIsaT0wLG89ZS5sZW5ndGg7aTxvO2krKykhciYmaSBpbiBlfHwocnx8KHI9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoZSwwLGkpKSxyW2ldPWVbaV0pO3JldHVybiB0LmNvbmNhdChyfHxBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChlKSl9dmFyIG4scixpLG87IWZ1bmN0aW9uKHQpe3QuSEVYPVwiSEVYXCIsdC5SR0I9XCJSR0JcIix0LkhTTD1cIkhTTFwiLHQuQ01ZSz1cIkNNWUtcIn0obnx8KG49e30pKSxmdW5jdGlvbih0KXt0LkFOQUxPR09VUz1cIkFOQUxPR09VU1wiLHQuQ09NUExFTUVOVEFSWT1cIkNPTVBMRU1FTlRBUllcIix0LlNQTElUX0NPTVBMRU1FTlRBUlk9XCJTUExJVF9DT01QTEVNRU5UQVJZXCIsdC5UUklBRElDPVwiVFJJQURJQ1wiLHQuVEVUUkFESUM9XCJURVRSQURJQ1wiLHQuU1FVQVJFPVwiU1FVQVJFXCJ9KHJ8fChyPXt9KSksZnVuY3Rpb24odCl7dC5BRERJVElWRT1cIkFERElUSVZFXCIsdC5TVUJUUkFDVElWRT1cIlNVQlRSQUNUSVZFXCJ9KGl8fChpPXt9KSksZnVuY3Rpb24odCl7dC5ibGFjaz1cIiMwMDAwMDBcIix0LnNpbHZlcj1cIiNDMEMwQzBcIix0LmdyYXk9XCIjODA4MDgwXCIsdC53aGl0ZT1cIiNGRkZGRkZcIix0Lm1hcm9vbj1cIiM4MDAwMDBcIix0LnJlZD1cIiNGRjAwMDBcIix0LnB1cnBsZT1cIiM4MDAwODBcIix0LmZ1Y2hzaWE9XCIjRkYwMEZGXCIsdC5ncmVlbj1cIiMwMDgwMDBcIix0LmxpbWU9XCIjMDBGRjAwXCIsdC5vbGl2ZT1cIiM4MDgwMDBcIix0LnllbGxvdz1cIiNGRkZGMDBcIix0Lm5hdnk9XCIjMDAwMDgwXCIsdC5ibHVlPVwiIzAwMDBGRlwiLHQudGVhbD1cIiMwMDgwODBcIix0LmFxdWE9XCIjMDBGRkZGXCIsdC5vcmFuZ2U9XCIjRkZBNTAwXCIsdC5hbGljZWJsdWU9XCIjRjBGOEZGXCIsdC5hbnRpcXVld2hpdGU9XCIjRkFFQkQ3XCIsdC5hcXVhbWFyaW5lPVwiIzdGRkZENFwiLHQuYXp1cmU9XCIjRjBGRkZGXCIsdC5iZWlnZT1cIiNGNUY1RENcIix0LmJpc3F1ZT1cIiNGRkU0QzRcIix0LmJsYW5jaGVkYWxtb25kPVwiI0ZGRUJDRFwiLHQuYmx1ZXZpb2xldD1cIiM4QTJCRTJcIix0LmJyb3duPVwiI0E1MkEyQVwiLHQuYnVybHl3b29kPVwiI0RFQjg4N1wiLHQuY2FkZXRibHVlPVwiIzVGOUVBMFwiLHQuY2hhcnRyZXVzZT1cIiM3RkZGMDBcIix0LmNob2NvbGF0ZT1cIiNEMjY5MUVcIix0LmNvcmFsPVwiI0ZGN0Y1MFwiLHQuY29ybmZsb3dlcmJsdWU9XCIjNjQ5NUVEXCIsdC5jb3Juc2lsaz1cIiNGRkY4RENcIix0LmNyaW1zb249XCIjREMxNDNDXCIsdC5jeWFuPVwiIzAwRkZGRlwiLHQuZGFya2JsdWU9XCIjMDAwMDhCXCIsdC5kYXJrY3lhbj1cIiMwMDhCOEJcIix0LmRhcmtnb2xkZW5yb2Q9XCIjQjg4NjBCXCIsdC5kYXJrZ3JheT1cIiNBOUE5QTlcIix0LmRhcmtncmVlbj1cIiMwMDY0MDBcIix0LmRhcmtncmV5PVwiI0E5QTlBOVwiLHQuZGFya2toYWtpPVwiI0JEQjc2QlwiLHQuZGFya21hZ2VudGE9XCIjOEIwMDhCXCIsdC5kYXJrb2xpdmVncmVlbj1cIiM1NTZCMkZcIix0LmRhcmtvcmFuZ2U9XCIjRkY4QzAwXCIsdC5kYXJrb3JjaGlkPVwiIzk5MzJDQ1wiLHQuZGFya3JlZD1cIiM4QjAwMDBcIix0LmRhcmtzYWxtb249XCIjRTk5NjdBXCIsdC5kYXJrc2VhZ3JlZW49XCIjOEZCQzhGXCIsdC5kYXJrc2xhdGVibHVlPVwiIzQ4M0Q4QlwiLHQuZGFya3NsYXRlZ3JheT1cIiMyRjRGNEZcIix0LmRhcmtzbGF0ZWdyZXk9XCIjMkY0RjRGXCIsdC5kYXJrdHVycXVvaXNlPVwiIzAwQ0VEMVwiLHQuZGFya3Zpb2xldD1cIiM5NDAwRDNcIix0LmRlZXBwaW5rPVwiI0ZGMTQ5M1wiLHQuZGVlcHNreWJsdWU9XCIjMDBCRkZGXCIsdC5kaW1ncmF5PVwiIzY5Njk2OVwiLHQuZGltZ3JleT1cIiM2OTY5NjlcIix0LmRvZGdlcmJsdWU9XCIjMUU5MEZGXCIsdC5maXJlYnJpY2s9XCIjQjIyMjIyXCIsdC5mbG9yYWx3aGl0ZT1cIiNGRkZBRjBcIix0LmZvcmVzdGdyZWVuPVwiIzIyOEIyMlwiLHQuZ2FpbnNib3JvPVwiI0RDRENEQ1wiLHQuZ2hvc3R3aGl0ZT1cIiNGOEY4RkZcIix0LmdvbGQ9XCIjRkZENzAwXCIsdC5nb2xkZW5yb2Q9XCIjREFBNTIwXCIsdC5ncmVlbnllbGxvdz1cIiNBREZGMkZcIix0LmdyZXk9XCIjODA4MDgwXCIsdC5ob25leWRldz1cIiNGMEZGRjBcIix0LmhvdHBpbms9XCIjRkY2OUI0XCIsdC5pbmRpYW5yZWQ9XCIjQ0Q1QzVDXCIsdC5pbmRpZ289XCIjNEIwMDgyXCIsdC5pdm9yeT1cIiNGRkZGRjBcIix0LmtoYWtpPVwiI0YwRTY4Q1wiLHQubGF2ZW5kZXI9XCIjRTZFNkZBXCIsdC5sYXZlbmRlcmJsdXNoPVwiI0ZGRjBGNVwiLHQubGF3bmdyZWVuPVwiIzdDRkMwMFwiLHQubGVtb25jaGlmZm9uPVwiI0ZGRkFDRFwiLHQubGlnaHRibHVlPVwiI0FERDhFNlwiLHQubGlnaHRjb3JhbD1cIiNGMDgwODBcIix0LmxpZ2h0Y3lhbj1cIiNFMEZGRkZcIix0LmxpZ2h0Z29sZGVucm9keWVsbG93PVwiI0ZBRkFEMlwiLHQubGlnaHRncmF5PVwiI0QzRDNEM1wiLHQubGlnaHRncmVlbj1cIiM5MEVFOTBcIix0LmxpZ2h0Z3JleT1cIiNEM0QzRDNcIix0LmxpZ2h0cGluaz1cIiNGRkI2QzFcIix0LmxpZ2h0c2FsbW9uPVwiI0ZGQTA3QVwiLHQubGlnaHRzZWFncmVlbj1cIiMyMEIyQUFcIix0LmxpZ2h0c2t5Ymx1ZT1cIiM4N0NFRkFcIix0LmxpZ2h0c2xhdGVncmF5PVwiIzc3ODg5OVwiLHQubGlnaHRzbGF0ZWdyZXk9XCIjNzc4ODk5XCIsdC5saWdodHN0ZWVsYmx1ZT1cIiNCMEM0REVcIix0LmxpZ2h0eWVsbG93PVwiI0ZGRkZFMFwiLHQubGltZWdyZWVuPVwiIzMyQ0QzMlwiLHQubGluZW49XCIjRkFGMEU2XCIsdC5tYWdlbnRhPVwiI0ZGMDBGRlwiLHQubWVkaXVtYXF1YW1hcmluZT1cIiM2NkNEQUFcIix0Lm1lZGl1bWJsdWU9XCIjMDAwMENEXCIsdC5tZWRpdW1vcmNoaWQ9XCIjQkE1NUQzXCIsdC5tZWRpdW1wdXJwbGU9XCIjOTM3MERCXCIsdC5tZWRpdW1zZWFncmVlbj1cIiMzQ0IzNzFcIix0Lm1lZGl1bXNsYXRlYmx1ZT1cIiM3QjY4RUVcIix0Lm1lZGl1bXNwcmluZ2dyZWVuPVwiIzAwRkE5QVwiLHQubWVkaXVtdHVycXVvaXNlPVwiIzQ4RDFDQ1wiLHQubWVkaXVtdmlvbGV0cmVkPVwiI0M3MTU4NVwiLHQubWlkbmlnaHRibHVlPVwiIzE5MTk3MFwiLHQubWludGNyZWFtPVwiI0Y1RkZGQVwiLHQubWlzdHlyb3NlPVwiI0ZGRTRFMVwiLHQubW9jY2FzaW49XCIjRkZFNEI1XCIsdC5uYXZham93aGl0ZT1cIiNGRkRFQURcIix0Lm9sZGxhY2U9XCIjRkRGNUU2XCIsdC5vbGl2ZWRyYWI9XCIjNkI4RTIzXCIsdC5vcmFuZ2VyZWQ9XCIjRkY0NTAwXCIsdC5vcmNoaWQ9XCIjREE3MEQ2XCIsdC5wYWxlZ29sZGVucm9kPVwiI0VFRThBQVwiLHQucGFsZWdyZWVuPVwiIzk4RkI5OFwiLHQucGFsZXR1cnF1b2lzZT1cIiNBRkVFRUVcIix0LnBhbGV2aW9sZXRyZWQ9XCIjREI3MDkzXCIsdC5wYXBheWF3aGlwPVwiI0ZGRUZENVwiLHQucGVhY2hwdWZmPVwiI0ZGREFCOVwiLHQucGVydT1cIiNDRDg1M0ZcIix0LnBpbms9XCIjRkZDMENCXCIsdC5wbHVtPVwiI0REQTBERFwiLHQucG93ZGVyYmx1ZT1cIiNCMEUwRTZcIix0LnJvc3licm93bj1cIiNCQzhGOEZcIix0LnJveWFsYmx1ZT1cIiM0MTY5RTFcIix0LnNhZGRsZWJyb3duPVwiIzhCNDUxM1wiLHQuc2FsbW9uPVwiI0ZBODA3MlwiLHQuc2FuZHlicm93bj1cIiNGNEE0NjBcIix0LnNlYWdyZWVuPVwiIzJFOEI1N1wiLHQuc2Vhc2hlbGw9XCIjRkZGNUVFXCIsdC5zaWVubmE9XCIjQTA1MjJEXCIsdC5za3libHVlPVwiIzg3Q0VFQlwiLHQuc2xhdGVibHVlPVwiIzZBNUFDRFwiLHQuc2xhdGVncmF5PVwiIzcwODA5MFwiLHQuc2xhdGVncmV5PVwiIzcwODA5MFwiLHQuc25vdz1cIiNGRkZBRkFcIix0LnNwcmluZ2dyZWVuPVwiIzAwRkY3RlwiLHQuc3RlZWxibHVlPVwiIzQ2ODJCNFwiLHQudGFuPVwiI0QyQjQ4Q1wiLHQudGhpc3RsZT1cIiNEOEJGRDhcIix0LnRvbWF0bz1cIiNGRjYzNDdcIix0LnR1cnF1b2lzZT1cIiM0MEUwRDBcIix0LnZpb2xldD1cIiNFRTgyRUVcIix0LndoZWF0PVwiI0Y1REVCM1wiLHQud2hpdGVzbW9rZT1cIiNGNUY1RjVcIix0LnllbGxvd2dyZWVuPVwiIzlBQ0QzMlwiLHQucmViZWNjYXB1cnBsZT1cIiM2NjMzOTlcIn0ob3x8KG89e30pKTt2YXIgYSxjLHU9T2JqZWN0LmtleXMobykscz17SEVYOltcInJcIixcImdcIixcImJcIixcImFcIl0sUkdCOltcInJcIixcImdcIixcImJcIixcImFcIl0sSFNMOltcImhcIixcInNcIixcImxcIixcImFcIl0sQ01ZSzpbXCJjXCIsXCJtXCIsXCJ5XCIsXCJrXCIsXCJhXCJdfSxkPXtCR1I6bi5SR0IsQUJHUjpuLlJHQixITFM6bi5IU0wsQUhMUzpuLkhTTCxDS01ZOm4uQ01ZSyxBQ0tNWTpuLkNNWUt9OyFmdW5jdGlvbih0KXt0Lk5VTUJFUj1cIm51bWJlclwiLHQuQk9PTEVBTj1cImJvb2xlYW5cIn0oYXx8KGE9e30pKTt2YXIgbCxmLGgscD0oKGM9e30pW24uSEVYXT0vXiMoPzooW2EtZlxcZF0pKFthLWZcXGRdKShbYS1mXFxkXSkoW2EtZlxcZF0pP3woW2EtZlxcZF17Mn0pKFthLWZcXGRdezJ9KShbYS1mXFxkXXsyfSkoW2EtZlxcZF17Mn0pPykkL2ksY1tuLlJHQl09L15yZ2JhP1xccypcXChcXHMqKD86KCg/OlxcZCpcXC4pP1xcZCslPylcXHMqLFxccyooKD86XFxkKlxcLik/XFxkKyU/KVxccyosXFxzKigoPzpcXGQqXFwuKT9cXGQrJT8pKD86XFxzKixcXHMqKCg/OlxcZCpcXC4pP1xcZCspKT98KCg/OlxcZCpcXC4pP1xcZCslPylcXHMqKCg/OlxcZCpcXC4pP1xcZCslPylcXHMqKCg/OlxcZCpcXC4pP1xcZCslPykoPzpcXHMqXFwvXFxzKigoPzpcXGQqXFwuKT9cXGQrJT8pKT8pXFxzKlxcKSQvLGNbbi5IU0xdPS9eaHNsYT9cXHMqXFwoXFxzKig/OigtPyg/OlxcZCpcXC4pP1xcZCsoPzpkZWd8Z3JhZHxyYWR8dHVybik/KVxccyosXFxzKigoPzpcXGQqXFwuKT9cXGQrKSVcXHMqLFxccyooKD86XFxkKlxcLik/XFxkKyklKD86XFxzKixcXHMqKCg/OlxcZCpcXC4pP1xcZCspKT98KC0/KD86XFxkKlxcLik/XFxkKyg/OmRlZ3xncmFkfHJhZHx0dXJuKT8pXFxzKigoPzpcXGQqXFwuKT9cXGQrKSVcXHMqKCg/OlxcZCpcXC4pP1xcZCspJSg/OlxccypcXC9cXHMqKCg/OlxcZCpcXC4pP1xcZCslPykpPylcXHMqXFwpJC8sY1tuLkNNWUtdPS9eKD86ZGV2aWNlLWNteWt8Y215aylcXHMqXFwoXFxzKig/OigoPzpcXGQqXFwuKT9cXGQrJT8pXFxzKixcXHMqKCg/OlxcZCpcXC4pP1xcZCslPylcXHMqLFxccyooKD86XFxkKlxcLik/XFxkKyU/KVxccyosXFxzKigoPzpcXGQqXFwuKT9cXGQrJT8pKD86XFxzKixcXHMqKCg/OlxcZCpcXC4pP1xcZCspKT98KCg/OlxcZCpcXC4pP1xcZCslPylcXHMqKCg/OlxcZCpcXC4pP1xcZCslPylcXHMqKCg/OlxcZCpcXC4pP1xcZCslPylcXHMqKCg/OlxcZCpcXC4pP1xcZCslPykoPzpcXHMqXFwvXFxzKigoPzpcXGQqXFwuKT9cXGQrJT8pKT8pXFxzKlxcKSQvLGMpLGc9L14oLT8oPzpcXGQqXFwuKT9cXGQrKSgoPzpkZWd8Z3JhZHxyYWR8dHVybik/KSQvLG09L14oXFxkKyg/OlxcLlxcZCspP3xcXC5cXGQrKSUkLyxiPS9eMHgoW2EtZlxcZF17MSwyfSkkL2ksQT0vXFx7KFxcZCspXFx9L2cseT0vLCggK3xcXGQrKS9nLEU9LyArLyxGPVwiVGhlIHByb3ZpZGVkIHN0cmluZyBjb2xvciBkb2Vzbid0IGhhdmUgYSBjb3JyZWN0IGZvcm1hdFwiLHY9XCJUaGUgcHJvdmlkZWQgY29sb3Igb2JqZWN0IGRvZXNuJ3QgaGF2ZSB0aGUgcHJvcGVyIGtleXMgb3IgZm9ybWF0XCI7IWZ1bmN0aW9uKHQpe3QuTk9ORT1cIm5vbmVcIix0LkRFR1JFRVM9XCJkZWdcIix0LkdSQURJQU5TPVwiZ3JhZFwiLHQuUkFESUFOUz1cInJhZFwiLHQuVFVSTlM9XCJ0dXJuXCJ9KGx8fChsPXt9KSksZnVuY3Rpb24odCl7dC5OT05FPVwibm9uZVwiLHQuUEVSQ0VOVD1cInBlcmNlbnRcIn0oZnx8KGY9e30pKSxmdW5jdGlvbih0KXt0LkRFVklDRV9DTVlLPVwiZGV2aWNlLWNteWtcIix0LkNNWUs9XCJjbXlrXCJ9KGh8fChoPXt9KSk7dmFyIEgsQixDLFMsUixNLEQ9e2RlY2ltYWxzOjYsbGVnYWN5Q1NTOiExLHNwYWNlc0FmdGVyQ29tbWFzOiExLGFuZ2xlc1VuaXQ6bC5OT05FLHJnYlVuaXQ6Zi5OT05FLGNteWtVbml0OmYuUEVSQ0VOVCxhbHBoYVVuaXQ6Zi5OT05FLGNteWtGdW5jdGlvbjpoLkRFVklDRV9DTVlLfSxPPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LGUpfSxMPWZ1bmN0aW9uKHQpe3JldHVybitcIlwiLmNvbmNhdCh0KS5yZXBsYWNlKG0sXCIkMVwiKX0sRz1mdW5jdGlvbih0KXtyZXR1cm4gbS50ZXN0KFwiXCIuY29uY2F0KHQpKT9MKHQpOk1hdGgubWluKCt0LDEwMCl9LGs9ZnVuY3Rpb24odCl7cmV0dXJuIDE9PT10Lmxlbmd0aCYmKHQrPXQpLHBhcnNlSW50KHQsMTYpfSxqPWZ1bmN0aW9uKHQpe3ZhciBlPUsodCwwKS50b1N0cmluZygxNikudG9VcHBlckNhc2UoKTtyZXR1cm4gMT09PWUubGVuZ3RoP1wiMHgwXCIuY29uY2F0KGUpOlwiMHhcIi5jb25jYXQoZSl9LFg9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdm9pZCAwPT09ZSYmKGU9ITEpLCFlJiZtLnRlc3QodCk/TWF0aC5taW4oMjU1KkwodCkvMTAwLDI1NSk6Yi50ZXN0KHQpPygzPT09dC5sZW5ndGgmJih0Kz10LnNsaWNlKC0xKSksZT9LKHQpLzI1NTpLKHQpKTpNYXRoLm1pbigrdCxlPzE6MjU1KX0sST1mdW5jdGlvbih0KXtyZXR1cm4gTWF0aC5taW4obS50ZXN0KHQpP0wodCkvMTAwOit0LDEpfSxZPWZ1bmN0aW9uKHQpe3JldHVybiBlKFtdLHQsITApLnNvcnQoKS5qb2luKFwiXCIpLnRvVXBwZXJDYXNlKCl9LEs9ZnVuY3Rpb24odCxlKXt2b2lkIDA9PT1lJiYoZT02KTt2YXIgbj1NYXRoLnBvdygxMCxlKTtyZXR1cm4gTWF0aC5yb3VuZCgrdCpuKS9ufSxOPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gTWF0aC5tYXgoZSxNYXRoLm1pbih0LG4pKX0sVD1mdW5jdGlvbih0KXtpZihcInN0cmluZ1wiPT10eXBlb2YgdCl7dmFyIGU9dC5tYXRjaChnKSxuPStlWzFdO3N3aXRjaChlWzJdKXtjYXNlIGwuUkFESUFOUzp0PUsoMTgwKm4vTWF0aC5QSSk7YnJlYWs7Y2FzZSBsLlRVUk5TOnQ9SygzNjAqbik7YnJlYWs7Y2FzZSBsLkdSQURJQU5TOnQ9SyguOSpuKTticmVhaztjYXNlIGwuREVHUkVFUzpkZWZhdWx0OnQ9bn19cmV0dXJuKHQ+MzYwfHx0PDApJiYodC09MzYwKk1hdGguZmxvb3IodC8zNjApKSx0fSxQPWZ1bmN0aW9uKHQsZSl7dmFyIG47c3dpdGNoKGUpe2Nhc2UgbC5SQURJQU5TOm49SyhmdW5jdGlvbih0KXtyZXR1cm4gdCpNYXRoLlBJLzE4MH0odCkpO2JyZWFrO2Nhc2UgbC5UVVJOUzpuPUsodC8zNjApO2JyZWFrO2Nhc2UgbC5HUkFESUFOUzpuPUsoMTAvOSp0KTticmVhaztjYXNlIGwuREVHUkVFUzpjYXNlIGwuTk9ORTpkZWZhdWx0Om49dH1yZXR1cm4gbn0sVT1mdW5jdGlvbih0KXtmb3IodmFyIGU9W10sbj0xO248YXJndW1lbnRzLmxlbmd0aDtuKyspZVtuLTFdPWFyZ3VtZW50c1tuXTtmb3IodmFyIHI9W10saT1bXSxvPVtdLGM9W10sdT1bXSxzPU9iamVjdC52YWx1ZXMobCksZD1PYmplY3QudmFsdWVzKGYpLGI9T2JqZWN0LnZhbHVlcyhoKSxBPXtsZWdhY3lDU1M6MCxzcGFjZXNBZnRlckNvbW1hczowLGNteWtGdW5jdGlvbjowfSxGPTAsdj1lO0Y8di5sZW5ndGg7RisrKXt2YXIgSD12W0ZdO2lmKFwic3RyaW5nXCI9PXR5cGVvZiBIKXtpZihyLnB1c2goSCksSC5pbmNsdWRlcyhcIixcIikpe0EubGVnYWN5Q1NTKys7dmFyIEI9SC5tYXRjaCh5KTsxPT09bmV3IFNldChCKS5zaXplJiZFLnRlc3QoQlswXS5zbGljZSgxKSkmJkEuc3BhY2VzQWZ0ZXJDb21tYXMrK31pZihILm1hdGNoKHAuSFNMKSl7dmFyIEM9KGs9SC5tYXRjaChwLkhTTCkpWzFdfHxrWzVdLFM9a1s4XSxSPUMubWF0Y2goZylbMl07aS5wdXNoKFwiXCI9PT1SP2wuTk9ORTpSKSx1LnB1c2gobS50ZXN0KFMpKTtjb250aW51ZX1pZihwLlJHQi50ZXN0KEgpKXt2YXIgTT0oaz1ILm1hdGNoKHAuUkdCKSlbMV18fGtbNV0sTz1rWzJdfHxrWzZdLEw9a1szXXx8a1s3XSxHPWtbOF07by5wdXNoKG0udGVzdChNKSYmbS50ZXN0KE8pJiZtLnRlc3QoTCkpLHUucHVzaChtLnRlc3QoRykpO2NvbnRpbnVlfWlmKEgubWF0Y2gocC5DTVlLKSl7dmFyIGssaj0oaz1ILm1hdGNoKHAuQ01ZSykpWzFdfHxrWzZdLFg9a1syXXx8a1s3XSxJPWtbM118fGtbOF0sWT1rWzRdfHxrWzldO0c9a1sxMF07Yy5wdXNoKG0udGVzdChqKSYmbS50ZXN0KFgpJiZtLnRlc3QoSSkmJm0udGVzdChZKSksSC5zdGFydHNXaXRoKFwiY215a1wiKSYmQS5jbXlrRnVuY3Rpb24rKyx1LnB1c2gobS50ZXN0KEcpKX19fXJldHVybntkZWNpbWFsczp0eXBlb2YgdC5kZWNpbWFscz09PWEuTlVNQkVSP3QuZGVjaW1hbHM6RC5kZWNpbWFscyxsZWdhY3lDU1M6dHlwZW9mIHQubGVnYWN5Q1NTPT09YS5CT09MRUFOP3QubGVnYWN5Q1NTOkJvb2xlYW4oci5sZW5ndGgmJkEubGVnYWN5Q1NTPT09ci5sZW5ndGgpfHxELmxlZ2FjeUNTUyxzcGFjZXNBZnRlckNvbW1hczp0eXBlb2YgdC5zcGFjZXNBZnRlckNvbW1hcz09PWEuQk9PTEVBTj90LnNwYWNlc0FmdGVyQ29tbWFzOkJvb2xlYW4oci5sZW5ndGgmJkEuc3BhY2VzQWZ0ZXJDb21tYXM9PT1yLmxlbmd0aCl8fEQuc3BhY2VzQWZ0ZXJDb21tYXMsYW5nbGVzVW5pdDp0LmFuZ2xlc1VuaXQmJnMuaW5jbHVkZXModC5hbmdsZXNVbml0KT90LmFuZ2xlc1VuaXQ6MT09PW5ldyBTZXQoaSkuc2l6ZT9pWzBdOkQuYW5nbGVzVW5pdCxyZ2JVbml0OnQucmdiVW5pdCYmZC5pbmNsdWRlcyh0LnJnYlVuaXQpP3QucmdiVW5pdDoxPT09bmV3IFNldChvKS5zaXplJiZvWzBdP2YuUEVSQ0VOVDpELnJnYlVuaXQsY215a1VuaXQ6dC5jbXlrVW5pdCYmZC5pbmNsdWRlcyh0LmNteWtVbml0KT90LmNteWtVbml0OjEhPT1uZXcgU2V0KGMpLnNpemV8fGNbMF0/RC5jbXlrVW5pdDpmLk5PTkUsYWxwaGFVbml0OnQuYWxwaGFVbml0JiZkLmluY2x1ZGVzKHQuYWxwaGFVbml0KT90LmFscGhhVW5pdDoxPT09bmV3IFNldCh1KS5zaXplJiZ1WzBdP2YuUEVSQ0VOVDpELmFscGhhVW5pdCxjbXlrRnVuY3Rpb246dC5jbXlrRnVuY3Rpb24mJmIuaW5jbHVkZXModC5jbXlrRnVuY3Rpb24pP3QuY215a0Z1bmN0aW9uOmMubGVuZ3RoJiZjLmxlbmd0aD09PUEuY215a0Z1bmN0aW9uP2guQ01ZSzpELmNteWtGdW5jdGlvbn19LHc9ZnVuY3Rpb24odCxlLG4pe3JldHVybiBuPDAmJihuKz02KSxuPj02JiYobi09NiksSyhuPDE/MjU1KigoZS10KSpuK3QpOm48Mz8yNTUqZTpuPDQ/MjU1KigoZS10KSooNC1uKSt0KToyNTUqdCl9LHg9ZnVuY3Rpb24odCxlLG4pe2UvPTEwMDt2YXIgcj0obi89MTAwKTw9LjU/biooZSsxKTpuK2UtbiplLGk9MipuLXI7cmV0dXJue3I6dyhpLHIsKHQvPTYwKSsyKSxnOncoaSxyLHQpLGI6dyhpLHIsdC0yKX19LFY9ZnVuY3Rpb24odCxlLG4scil7cmV0dXJue3I6SygyNTUqKDEtdCkqKHI9MS1yKSksZzpLKDI1NSooMS1lKSpyKSxiOksoMjU1KigxLW4pKnIpfX0scT1mdW5jdGlvbih0LGUsbil7dC89MjU1LGUvPTI1NSxuLz0yNTU7dmFyIHI9MS1NYXRoLm1heCh0LGUsbiksaT0xLXIsbz1pJiYoaS1lKS9pLGE9aSYmKGktbikvaTtyZXR1cm57YzpLKDEwMCooaSYmKGktdCkvaSkpLG06SygxMDAqbykseTpLKDEwMCphKSxrOksoMTAwKnIpfX0sXz1mdW5jdGlvbih0LGUsbixyKXt2b2lkIDA9PT1yJiYocj0xKSx0Lz0yNTUsZS89MjU1LG4vPTI1NSxyPU1hdGgubWluKHIsMSk7dmFyIGk9TWF0aC5tYXgodCxlLG4pLG89TWF0aC5taW4odCxlLG4pLGE9aS1vLGM9MCx1PTAscz0oaStvKS8yO2lmKDAhPT1hKXtzd2l0Y2goaSl7Y2FzZSB0OmM9KGUtbikvYSU2O2JyZWFrO2Nhc2UgZTpjPShuLXQpL2ErMjticmVhaztjYXNlIG46Yz0odC1lKS9hKzR9KGM9Syg2MCpjKSk8MCYmKGMrPTM2MCksdT1hLygxLU1hdGguYWJzKDIqcy0xKSl9cmV0dXJue2g6YyxzOksoMTAwKnUpLGw6SygxMDAqcyksYTpyfX0sJD1mdW5jdGlvbih0LGUpe2lmKHQ8MCYmKHQrPTM2MCksdD4zNjAmJih0LT0zNjApLDM2MD09PXR8fDA9PT10KXJldHVybiB0O3ZhciBuPVtbMCwxMjBdLFsxMjAsMTgwXSxbMTgwLDI0MF0sWzI0MCwzNjBdXSxyPVtbMCw2MF0sWzYwLDEyMF0sWzEyMCwyNDBdLFsyNDAsMzYwXV0saT1lP3I6bixvPTAsYT0wLGM9MCx1PTA7cmV0dXJuKGU/bjpyKS5maW5kKChmdW5jdGlvbihlLG4pe3JldHVybiB0Pj1lWzBdJiZ0PGVbMV0mJihvPWVbMF0sYT1lWzFdLGM9aVtuXVswXSx1PWlbbl1bMV0sITApfSkpLGMrKHUtYykvKGEtbykqKHQtbyl9LHo9ZnVuY3Rpb24odCl7cmV0dXJuIHQ/XCIsIFwiOlwiLFwifSxRPWZ1bmN0aW9uKHQsZSl7dmFyIG49WShPYmplY3Qua2V5cyh0KSk7cmV0dXJuIHNbZFtuXV0ucmVkdWNlKChmdW5jdGlvbihuLHIsaSl7dmFyIG89dFtyXTtyZXR1cm4gdm9pZCAwIT09byYmbi5wdXNoKGUobyxpKSksbn0pLFtdKX0sVz1mdW5jdGlvbih0LGUpe3JldHVybiB0LnJlcGxhY2UoQSwoZnVuY3Rpb24odCxuKXtyZXR1cm5cIlwiLmNvbmNhdChlWytuLTFdKX0pKX0sSj1mdW5jdGlvbih0LGUpe3ZhciBuPWUuYWxwaGFVbml0LHI9ZS5sZWdhY3lDU1MsaT1lLmRlY2ltYWxzO3JldHVybiBuIT09Zi5QRVJDRU5UfHxyP0sodCxpKTpcIlwiLmNvbmNhdChLKDEwMCp0LGkpLFwiJVwiKX0sWj0oKEg9e30pW24uSEVYXT1mdW5jdGlvbih0KXt2YXIgZT1RKHQsKGZ1bmN0aW9uKHQpe3JldHVybiBlPUsodCksMT09PShuPUsoZSwwKS50b1N0cmluZygxNikudG9VcHBlckNhc2UoKSkubGVuZ3RoJiYobj1cIjBcIi5jb25jYXQobikpLG47dmFyIGUsbn0pKSxuPTQ9PT1lLmxlbmd0aD9cIiN7MX17Mn17M317NH1cIjpcIiN7MX17Mn17M31cIjtyZXR1cm4gVyhuLGUpfSxIW24uUkdCXT1mdW5jdGlvbih0LGUpe3ZhciBuPWUuZGVjaW1hbHMscj1lLmxlZ2FjeUNTUyxpPWUuc3BhY2VzQWZ0ZXJDb21tYXMsbz1lLnJnYlVuaXQsYT16KGkpLGM9USh0LChmdW5jdGlvbih0LHIpe3JldHVybiBvPT09Zi5QRVJDRU5UJiZyPDM/XCJcIi5jb25jYXQoZnVuY3Rpb24odCxlKXtyZXR1cm4gSyh0LzI1NSoxMDAsZSl9KHQsbiksXCIlXCIpOjM9PT1yP0oodCxlKTpLKHQsbil9KSksdT1yPzQ9PT1jLmxlbmd0aD9cInJnYmEoezF9XCIuY29uY2F0KGEsXCJ7Mn1cIikuY29uY2F0KGEsXCJ7M31cIikuY29uY2F0KGEsXCJ7NH0pXCIpOlwicmdiKHsxfVwiLmNvbmNhdChhLFwiezJ9XCIpLmNvbmNhdChhLFwiezN9KVwiKTo0PT09Yy5sZW5ndGg/XCJyZ2IoezF9IHsyfSB7M30gLyB7NH0pXCI6XCJyZ2IoezF9IHsyfSB7M30pXCI7cmV0dXJuIFcodSxjKX0sSFtuLkhTTF09ZnVuY3Rpb24odCxlKXt2YXIgbj1lLmRlY2ltYWxzLHI9ZS5sZWdhY3lDU1MsaT1lLnNwYWNlc0FmdGVyQ29tbWFzLG89ZS5hbmdsZXNVbml0LGE9eihpKSxjPVEodCwoZnVuY3Rpb24odCxyKXtpZigwPT09ciYmbyE9PWwuTk9ORSl7dmFyIGk9SyhQKHQsbyksbik7cmV0dXJuXCJcIi5jb25jYXQoaSkuY29uY2F0KG8pfXJldHVybiAzPT09cj9KKHQsZSk6Syh0LG4pfSkpLHU9cj80PT09Yy5sZW5ndGg/XCJoc2xhKHsxfVwiLmNvbmNhdChhLFwiezJ9JVwiKS5jb25jYXQoYSxcInszfSVcIikuY29uY2F0KGEsXCJ7NH0pXCIpOlwiaHNsKHsxfVwiLmNvbmNhdChhLFwiezJ9JVwiKS5jb25jYXQoYSxcInszfSUpXCIpOjQ9PT1jLmxlbmd0aD9cImhzbCh7MX0gezJ9JSB7M30lIC8gezR9KVwiOlwiaHNsKHsxfSB7Mn0lIHszfSUpXCI7cmV0dXJuIFcodSxjKX0sSFtuLkNNWUtdPWZ1bmN0aW9uKHQsZSl7dmFyIG49ZS5kZWNpbWFscyxyPWUubGVnYWN5Q1NTLGk9ZS5zcGFjZXNBZnRlckNvbW1hcyxvPWUuY215a1VuaXQsYT1lLmNteWtGdW5jdGlvbixjPXooaSksdT1RKHQsKGZ1bmN0aW9uKHQscil7cmV0dXJuIG89PT1mLlBFUkNFTlQmJnI8ND9cIlwiLmNvbmNhdChLKHQsbiksXCIlXCIpOjQ9PT1yP0oodCxlKTpLKHQvMTAwLG4pfSkpLHM9cj81PT09dS5sZW5ndGg/XCJcIi5jb25jYXQoYSxcIih7MX1cIikuY29uY2F0KGMsXCJ7Mn1cIikuY29uY2F0KGMsXCJ7M31cIikuY29uY2F0KGMsXCJ7NH1cIikuY29uY2F0KGMsXCJ7NX0pXCIpOlwiXCIuY29uY2F0KGEsXCIoezF9XCIpLmNvbmNhdChjLFwiezJ9XCIpLmNvbmNhdChjLFwiezN9XCIpLmNvbmNhdChjLFwiezR9KVwiKTo1PT09dS5sZW5ndGg/XCJcIi5jb25jYXQoYSxcIih7MX0gezJ9IHszfSB7NH0gLyB7NX0pXCIpOlwiXCIuY29uY2F0KGEsXCIoezF9IHsyfSB7M30gezR9KVwiKTtyZXR1cm4gVyhzLHUpfSxIKSx0dD1mdW5jdGlvbih0KXtyZXR1cm5cInN0cmluZ1wiPT10eXBlb2YgdCYmKHQ9bS50ZXN0KHQpP0wodCkvMTAwOit0KSxpc05hTigrdCl8fHQ+MT8xOksodCl9LGV0PWZ1bmN0aW9uKG4scixvKXtyZXR1cm4gci5yZWR1Y2UoKGZ1bmN0aW9uKHIsYSl7cmV0dXJuIGUoZShbXSxyLCEwKSxbdCh0KHt9LG4pLHtoOm89PT1pLkFERElUSVZFP1Qobi5oK2EpOlQoJCgkKG4uaCwhMSkrYSwhMCkpfSldLCExKX0pLFt0KHt9LG4pXSl9LG50PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGV0KHQsWzMwLC0zMF0sZSl9LHJ0PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGV0KHQsWzE4MF0sZSl9LGl0PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGV0KHQsWzE1MCwtMTUwXSxlKX0sb3Q9ZnVuY3Rpb24odCxlKXtyZXR1cm4gZXQodCxbMTIwLC0xMjBdLGUpfSxhdD1mdW5jdGlvbih0LGUpe3JldHVybiBldCh0LFs2MCwtMTIwLDE4MF0sZSl9LGN0PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGV0KHQsWzkwLC05MCwxODBdLGUpfSx1dD1mdW5jdGlvbih0KXtyZXR1cm5cInN0cmluZ1wiPT10eXBlb2YgdD9mdW5jdGlvbih0KXt2YXIgZTtpZihPYmplY3Qua2V5cyhuKS5zb21lKChmdW5jdGlvbihuKXtpZihwW25dLnRlc3QodCkpcmV0dXJuIGU9biwhMH0pKSwhZSYmfnUuaW5kZXhPZih0KSYmKGU9bi5IRVgpLCFlKXRocm93IG5ldyBFcnJvcihGKTtyZXR1cm4gZX0odCk6ZnVuY3Rpb24odCl7dmFyIGUscj0hMSxpPVkoT2JqZWN0LmtleXModCkpO2lmKGRbaV0mJihlPWRbaV0pLGUmJmU9PT1uLlJHQil7dmFyIG89T2JqZWN0LmVudHJpZXModCkuc29tZSgoZnVuY3Rpb24odCl7cmV0dXJuIWIudGVzdChcIlwiLmNvbmNhdCh0WzFdKSl9KSksYT1PYmplY3QuZW50cmllcyh0KS5zb21lKChmdW5jdGlvbih0KXtyZXR1cm4hKG0udGVzdChcIlwiLmNvbmNhdCh0WzFdKSl8fCFiLnRlc3QoXCJcIi5jb25jYXQodFsxXSkpJiYhaXNOYU4oK3RbMV0pJiYrdFsxXTw9MjU1KX0pKTtvJiZhJiYocj0hMCksb3x8KGU9bi5IRVgpfWlmKCFlfHxyKXRocm93IG5ldyBFcnJvcih2KTtyZXR1cm4gZX0odCl9LHN0PSgoQj17fSlbbi5IRVhdPWZ1bmN0aW9uKHQpe3ZhciBlPSh+dS5pbmRleE9mKHQpP29bdF06dCkubWF0Y2gocC5IRVgpLG49e3I6ayhlWzFdfHxlWzVdKSxnOmsoZVsyXXx8ZVs2XSksYjprKGVbM118fGVbN10pfSxyPWVbNF18fGVbOF07cmV0dXJuIHZvaWQgMCE9PXImJihuLmE9ayhyKS8yNTUpLG59LEJbbi5SR0JdPWZ1bmN0aW9uKHQpe3ZhciBlPXQubWF0Y2gocC5SR0IpLG49WChlWzFdfHxlWzVdKSxyPVgoZVsyXXx8ZVs2XSksaT1YKGVbM118fGVbN10pLG89ZVs0XXx8ZVs4XSxhPXtyOk1hdGgubWluKG4sMjU1KSxnOk1hdGgubWluKHIsMjU1KSxiOk1hdGgubWluKGksMjU1KX07cmV0dXJuIHZvaWQgMCE9PW8mJihhLmE9dHQobykpLGF9LEJbbi5IU0xdPWZ1bmN0aW9uKHQpe3ZhciBlPXQubWF0Y2gocC5IU0wpLG49VChlWzFdfHxlWzVdKSxyPUcoZVsyXXx8ZVs2XSksaT1HKGVbM118fGVbN10pLG89ZVs0XXx8ZVs4XSxhPXgobixyLGkpO3JldHVybiB2b2lkIDAhPT1vJiYoYS5hPXR0KG8pKSxhfSxCW24uQ01ZS109ZnVuY3Rpb24odCl7dmFyIGU9dC5tYXRjaChwLkNNWUspLG49SShlWzFdfHxlWzZdKSxyPUkoZVsyXXx8ZVs3XSksaT1JKGVbM118fGVbOF0pLG89SShlWzRdfHxlWzldKSxhPWVbNV18fGVbMTBdLGM9VihuLHIsaSxvKTtyZXR1cm4gdm9pZCAwIT09YSYmKGMuYT10dChhKSksY30sQiksZHQ9KChDPXt9KVtuLkhFWF09ZnVuY3Rpb24odCl7dmFyIGU9e3I6WChcIlwiLmNvbmNhdCh0LnIpKSxnOlgoXCJcIi5jb25jYXQodC5nKSksYjpYKFwiXCIuY29uY2F0KHQuYikpfTtyZXR1cm4gTyh0LFwiYVwiKSYmKGUuYT1NYXRoLm1pbihYKFwiXCIuY29uY2F0KHQuYSksITApLDEpKSxlfSxDW24uUkdCXT1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5IRVgodCl9LENbbi5IU0xdPWZ1bmN0aW9uKHQpe3ZhciBlPUcoXCJcIi5jb25jYXQodC5zKSksbj1HKFwiXCIuY29uY2F0KHQubCkpLHI9eChUKHQuaCksZSxuKTtyZXR1cm4gTyh0LFwiYVwiKSYmKHIuYT10dCh0LmEpKSxyfSxDW24uQ01ZS109ZnVuY3Rpb24odCl7dmFyIGU9SShcIlwiLmNvbmNhdCh0LmMpKSxuPUkoXCJcIi5jb25jYXQodC5tKSkscj1JKFwiXCIuY29uY2F0KHQueSkpLGk9SShcIlwiLmNvbmNhdCh0LmspKSxvPVYoZSxuLHIsaSk7cmV0dXJuIE8odCxcImFcIikmJihvLmE9dHQodC5hKSksb30sQyksbHQ9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdm9pZCAwPT09ZSYmKGU9dXQodCkpLFwic3RyaW5nXCI9PXR5cGVvZiB0P3N0W2VdKHQpOmR0W2VdKHQpfSxmdD0oKFM9e30pW24uSEVYXT1mdW5jdGlvbih0KXtyZXR1cm57cjpqKHQuciksZzpqKHQuZyksYjpqKHQuYil9fSxTLkhFWEE9ZnVuY3Rpb24odCl7dmFyIGU9ZnQuSEVYKHQpO3JldHVybiBlLmE9Tyh0LFwiYVwiKT9qKDI1NSp0LmEpOlwiMHhGRlwiLGV9LFNbbi5SR0JdPWZ1bmN0aW9uKHQsZSl7dmFyIG49bXQodCxlKTtyZXR1cm4gTyhuLFwiYVwiKSYmZGVsZXRlIG4uYSxufSxTLlJHQkE9ZnVuY3Rpb24odCxlKXt2YXIgbj1mdC5SR0IodCxlKTtyZXR1cm4gbi5hPU8odCxcImFcIik/Syh0LmEpOjEsbn0sU1tuLkhTTF09ZnVuY3Rpb24odCxlKXt2YXIgbj1fKHQucix0LmcsdC5iKTtyZXR1cm4gZGVsZXRlIG4uYSxidChuLGUpfSxTLkhTTEE9ZnVuY3Rpb24odCxlKXt2YXIgbj1mdC5IU0wodCxlKTtyZXR1cm4gbi5hPU8odCxcImFcIik/Syh0LmEsZSk6MSxufSxTW24uQ01ZS109ZnVuY3Rpb24odCxlKXtyZXR1cm4gQXQocSh0LnIsdC5nLHQuYiksZSl9LFMuQ01ZS0E9ZnVuY3Rpb24odCxlKXt2YXIgbj1mdC5DTVlLKHQsZSk7cmV0dXJuIG4uYT1PKHQsXCJhXCIpP0sodC5hLGUpOjEsbn0sUyksaHQ9ZnVuY3Rpb24oZSxyLGksbyl7dmFyIGE9dXQoZSksYz1cInN0cmluZ1wiPT10eXBlb2YgZSx1PWx0KGUsYSkscz1cInN0cmluZ1wiPT10eXBlb2YgZSYmTyh1LFwiYVwiKXx8XCJzdHJpbmdcIiE9dHlwZW9mIGUmJk8oZSxcImFcIiksZD1fKHUucix1LmcsdS5iLHUuYSk7c3x8ZGVsZXRlIGQuYTt2YXIgbD1pP2QubC8ocisxKTooMTAwLWQubCkvKHIrMSksZj1BcnJheShyKS5maWxsKG51bGwpLm1hcCgoZnVuY3Rpb24oZSxuKXtyZXR1cm4gdCh0KHt9LGQpLHtsOmQubCtsKihuKzEpKigxLTIqK2kpfSl9KSk7c3dpdGNoKGEpe2Nhc2Ugbi5IRVg6ZGVmYXVsdDpyZXR1cm4gZi5tYXAoKGZ1bmN0aW9uKGUpe3ZhciBuPXgoZS5oLGUucyxlLmwpO3JldHVybiBzJiYobi5hPWUuYSksYz9zP1ouSEVYKHQodCh7fSxuKSx7YTpLKDI1NSpuLmEpfSkpOlouSEVYKG4pOnM/ZnQuSEVYQShuKTpmdC5IRVgobil9KSk7Y2FzZSBuLlJHQjpyZXR1cm4gZi5tYXAoKGZ1bmN0aW9uKHQpe3ZhciBlPXgodC5oLHQucyx0LmwpO3JldHVybiBzJiYoZS5hPXQuYSksYz9aLlJHQihlLG8pOnM/ZnQuUkdCQShlLG8uZGVjaW1hbHMpOmZ0LlJHQihlLG8uZGVjaW1hbHMpfSkpO2Nhc2Ugbi5IU0w6cmV0dXJuIGYubWFwKChmdW5jdGlvbihlKXtyZXR1cm4gYz9aLkhTTChlLG8pOnM/ZnQuSFNMQSh0KHQoe30seChlLmgsZS5zLGUubCkpLHthOmUuYX0pLG8uZGVjaW1hbHMpOmZ0LkhTTCh4KGUuaCxlLnMsZS5sKSxvLmRlY2ltYWxzKX0pKX19LHB0PSgoUj17YnVpbGRIYXJtb255OmZ1bmN0aW9uKHQsZSxyLGkpe3ZhciBvPXV0KHQpLGE9bHQodCxvKSxjPV8oYS5yLGEuZyxhLmIsYS5hKSx1PVwic3RyaW5nXCI9PXR5cGVvZiB0JiZPKGEsXCJhXCIpfHxcInN0cmluZ1wiIT10eXBlb2YgdCYmTyh0LFwiYVwiKSxzPVwic3RyaW5nXCI9PXR5cGVvZiB0O3N3aXRjaChvKXtjYXNlIG4uSEVYOmRlZmF1bHQ6cmV0dXJuIHU/dGhpcy5IRVhBKGJ0KGMsMCksZSxyLHMpOnRoaXMuSEVYKGJ0KGMsMCksZSxyLHMpO2Nhc2Ugbi5IU0w6cmV0dXJuIHU/dGhpcy5IU0xBKGMsZSxyLHMsaSk6dGhpcy5IU0woYyxlLHIscyxpKTtjYXNlIG4uUkdCOnJldHVybiB1P3RoaXMuUkdCQShjLGUscixzLGkpOnRoaXMuUkdCKGMsZSxyLHMsaSl9fX0pW24uSEVYXT1mdW5jdGlvbih0LGUsbixyKXtyZXR1cm4gZSh0LG4pLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHI/Wi5IRVgoeCh0LmgsdC5zLHQubCkpOmZ0LkhFWCh4KHQuaCx0LnMsdC5sKSl9KSl9LFIuSEVYQT1mdW5jdGlvbihlLG4scixpKXtyZXR1cm4gbihlLHIpLm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJuIGk/Wi5IRVgodCh0KHt9LHgoZS5oLGUucyxlLmwpKSx7YToyNTUqdHQoZS5hKX0pKTpmdC5IRVhBKHQodCh7fSx4KGUuaCxlLnMsZS5sKSkse2E6dHQoZS5hKX0pKX0pKX0sUltuLlJHQl09ZnVuY3Rpb24odCxlLG4scixpKXtyZXR1cm4gZSh0LG4pLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHI/Wi5SR0IoeCh0LmgsdC5zLHQubCksaSk6ZnQuUkdCKHgodC5oLHQucyx0LmwpLGkuZGVjaW1hbHMpfSkpfSxSLlJHQkE9ZnVuY3Rpb24oZSxuLHIsaSxvKXtyZXR1cm4gbihlLHIpLm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJuIGk/Wi5SR0IodCh0KHt9LHgoZS5oLGUucyxlLmwpKSx7YTp0dChlLmEpfSksbyk6ZnQuUkdCQSh0KHQoe30seChlLmgsZS5zLGUubCkpLHthOnR0KGUuYSl9KSxvLmRlY2ltYWxzKX0pKX0sUltuLkhTTF09ZnVuY3Rpb24odCxlLG4scixpKXtyZXR1cm4gZSh0LG4pLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHI/Wi5IU0woe2g6dC5oLHM6dC5zLGw6dC5sfSxpKTpmdC5IU0woeCh0LmgsdC5zLHQubCksaS5kZWNpbWFscyl9KSl9LFIuSFNMQT1mdW5jdGlvbihlLG4scixpLG8pe3JldHVybiBuKGUscikubWFwKChmdW5jdGlvbihlKXtyZXR1cm4gaT9aLkhTTCh0KHQoe30sZSkse2E6dHQoZS5hKX0pLG8pOmZ0LkhTTEEodCh0KHt9LHgoZS5oLGUucyxlLmwpKSx7YTp0dChlLmEpfSksby5kZWNpbWFscyl9KSl9LFIpLGd0PSgoTT17bWl4OmZ1bmN0aW9uKGUsbil7dmFyIHIsbyxhLGMsdSxzLGQsbCxmLGgscCxnLG0sYixBLHk9ZS5tYXAoKGZ1bmN0aW9uKHQpe3ZhciBlPXV0KHQpO3JldHVybiBsdCh0LGUpfSkpLEU9bj09PWkuU1VCVFJBQ1RJVkU/eS5tYXAoKGZ1bmN0aW9uKHQpe3ZhciBlLG4scixpLG8sYSxjLHUscyxkLGwsZixoLHAsZz0oZT10LnIsbj10Lmcscj10LmIsaT1NYXRoLm1pbihlLG4sciksbz1NYXRoLm1pbigyNTUtZSwyNTUtbiwyNTUtciksYT1lLWksYz1uLWksdT1yLWkscz1NYXRoLm1pbihhLGMpLGQ9YS1zLGw9KGMrcykvMixmPSh1K2MtcykvMixoPU1hdGgubWF4KGQsbCxmKS9NYXRoLm1heChhLGMsdSkscD1pc05hTihoKXx8aD09PTEvMHx8aDw9MD8xOmgse3I6ZC9wK28seTpsL3ArbyxiOmYvcCtvfSk7cmV0dXJuIE8odCxcImFcIikmJihnLmE9dC5hKSxnfSkpOm51bGw7ZnVuY3Rpb24gRihlKXt2YXIgcj1uPT09aS5BRERJVElWRT97cjowLGc6MCxiOjAsYTowfTp7cjowLHk6MCxiOjAsYTowfTtyZXR1cm4gZS5yZWR1Y2UoKGZ1bmN0aW9uKGUscil7dmFyIG89TyhyLFwiYVwiKT9yLmE6MSxhPXtyOk1hdGgubWluKGUucityLnIqbywyNTUpLGI6TWF0aC5taW4oZS5iK3IuYipvLDI1NSksYToxLSgxLW8pKigxLWUuYSl9LGM9XCJnXCJpbiBlP2UuZzplLnksdT1cImdcImluIHI/ci5nOnIueTtyZXR1cm4gdCh0KHt9LGEpLG49PT1pLkFERElUSVZFP3tnOk1hdGgubWluKGMrdSpvLDI1NSl9Ont5Ok1hdGgubWluKGMrdSpvLDI1NSl9KX0pLHIpfWlmKG49PT1pLkFERElUSVZFKXI9Rih5KTtlbHNle3ZhciB2PUYoRSk7bz12LnIsYT12LnksYz12LmIsdT1NYXRoLm1pbihvLGEsYykscz1NYXRoLm1pbigyNTUtbywyNTUtYSwyNTUtYyksZD1vLXUsbD1hLXUsZj1jLXUsaD1NYXRoLm1pbihsLGYpLHA9ZCtsLWgsZz1sK2gsbT0yKihmLWgpLGI9TWF0aC5tYXgocCxnLG0pL01hdGgubWF4KGQsbCxmKSxBPWlzTmFOKGIpfHxiPT09MS8wfHxiPD0wPzE6Yiwocj17cjpwL0ErcyxnOmcvQStzLGI6bS9BK3N9KS5hPXYuYX1yZXR1cm57cjpLKHIuciksZzpLKHIuZyksYjpLKHIuYiksYTpOKHIuYSwwLDEpfX19KVtuLkhFWF09ZnVuY3Rpb24odCxlLG4pe3ZhciByPXRoaXMubWl4KHQsZSk7cmV0dXJuIGRlbGV0ZSByLmEsbj9aLkhFWChyKTpmdC5IRVgocil9LE0uSEVYQT1mdW5jdGlvbih0LGUsbil7dmFyIHI9dGhpcy5taXgodCxlKTtyZXR1cm4gci5hPW4/MjU1KnR0KHIuYSk6dHQoci5hKSxuP1ouSEVYKHIpOmZ0LkhFWEEocil9LE1bbi5SR0JdPWZ1bmN0aW9uKHQsZSxuLHIpe3ZhciBpPXRoaXMubWl4KHQsZSk7cmV0dXJuIGRlbGV0ZSBpLmEsbj9aLlJHQihpLHIpOmZ0LlJHQihpLHIuZGVjaW1hbHMpfSxNLlJHQkE9ZnVuY3Rpb24odCxlLG4scil7dmFyIGk9dGhpcy5taXgodCxlKTtyZXR1cm4gbj9aLlJHQihpLHIpOmZ0LlJHQkEoaSxyLmRlY2ltYWxzKX0sTVtuLkhTTF09ZnVuY3Rpb24odCxlLG4scil7dmFyIGk9dGhpcy5taXgodCxlKSxvPV8oaS5yLGkuZyxpLmIpO3JldHVybiBkZWxldGUgaS5hLGRlbGV0ZSBvLmEsbj9aLkhTTChvLHIpOmZ0LkhTTChpLHIuZGVjaW1hbHMpfSxNLkhTTEE9ZnVuY3Rpb24odCxlLG4scil7dmFyIGk9dGhpcy5taXgodCxlKSxvPV8oaS5yLGkuZyxpLmIsaS5hKTtyZXR1cm4gbj9aLkhTTChvLHIpOmZ0LkhTTEEoaSxyLmRlY2ltYWxzKX0sTSksbXQ9ZnVuY3Rpb24oZSxuKXt2YXIgcj1LKGUucixuKSxpPUsoZS5nLG4pLG89SyhlLmIsbik7cmV0dXJuIHQoe3I6cixnOmksYjpvfSxPKGUsXCJhXCIpP3thOksoZS5hLG4pfTp7fSl9LGJ0PWZ1bmN0aW9uKGUsbil7cmV0dXJuIHQoe2g6SyhlLmgsbiksczpLKGUucyxuKSxsOksoZS5sLG4pfSxPKGUsXCJhXCIpP3thOksoZS5hLG4pfTp7fSl9LEF0PWZ1bmN0aW9uKHQsZSl7cmV0dXJue2M6Syh0LmMsZSksbTpLKHQubSxlKSx5OksodC55LGUpLGs6Syh0LmssZSl9fSx5dD1mdW5jdGlvbih0LGUsbixyKXtyZXR1cm4gcihsdCh0LGUpLG4pfSxFdD1mdW5jdGlvbih0LGUsbixyLGkpe248MSYmKG49NSk7dmFyIG89ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4tMSxpPShlLnItdC5yKS9yLG89KGUuZy10LmcpL3IsYT0oZS5iLXQuYikvcixjPXR0KHQuYSksdT0odHQoZS5hKS1jKS9yO3JldHVybiBBcnJheShuKS5maWxsKG51bGwpLm1hcCgoZnVuY3Rpb24obixzKXtyZXR1cm4gMD09PXM/dDpzPT09cj9lOntyOksodC5yK2kqcyksZzpLKHQuZytvKnMpLGI6Syh0LmIrYSpzKSxhOksoYyt1KnMpfX0pKX0obHQodCksbHQoZSksbik7cmV0dXJuIG8ubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gaSh0LHIpfSkpfSxGdD1mdW5jdGlvbigpe2Z1bmN0aW9uIG4odCxlKXt2b2lkIDA9PT1lJiYoZT17fSksdGhpcy5fb3B0aW9ucz1VKGUsdCksdGhpcy5yZ2I9bHQodCksdGhpcy51cGRhdGVIU0woKSx0aGlzLnVwZGF0ZUNNWUsoKX1yZXR1cm4gbi5wcm90b3R5cGUudXBkYXRlUkdCPWZ1bmN0aW9uKCl7dGhpcy5yZ2I9dCh0KHt9LHgodGhpcy5oc2wuaCx0aGlzLmhzbC5zLHRoaXMuaHNsLmwpKSx7YTp0aGlzLmhzbC5hfSl9LG4ucHJvdG90eXBlLnVwZGF0ZVJHQkZyb21DTVlLPWZ1bmN0aW9uKCl7dGhpcy5yZ2I9dCh0KHt9LFYodGhpcy5jbXlrLmMsdGhpcy5jbXlrLm0sdGhpcy5jbXlrLnksdGhpcy5jbXlrLmspKSx7YTp0aGlzLnJnYi5hfSl9LG4ucHJvdG90eXBlLnVwZGF0ZUhTTD1mdW5jdGlvbigpe3RoaXMuaHNsPV8odGhpcy5yZ2Iucix0aGlzLnJnYi5nLHRoaXMucmdiLmIsdGhpcy5yZ2IuYSl9LG4ucHJvdG90eXBlLnVwZGF0ZUNNWUs9ZnVuY3Rpb24oKXt0aGlzLmNteWs9cSh0aGlzLnJnYi5yLHRoaXMucmdiLmcsdGhpcy5yZ2IuYil9LG4ucHJvdG90eXBlLnVwZGF0ZVJHQkFuZENNWUs9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy51cGRhdGVSR0IoKSx0aGlzLnVwZGF0ZUNNWUsoKSx0aGlzfSxuLnByb3RvdHlwZS51cGRhdGVIU0xBbmRDTVlLPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudXBkYXRlSFNMKCksdGhpcy51cGRhdGVDTVlLKCksdGhpc30sbi5wcm90b3R5cGUudXBkYXRlUkdCQW5kSFNMPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudXBkYXRlUkdCRnJvbUNNWUsoKSx0aGlzLnVwZGF0ZUhTTCgpLHRoaXN9LG4ucHJvdG90eXBlLnNldE9wdGlvbnM9ZnVuY3Rpb24oZSl7cmV0dXJuIHZvaWQgMD09PWUmJihlPXt9KSx0aGlzLl9vcHRpb25zPXQodCh7fSx0aGlzLl9vcHRpb25zKSxlKSx0aGlzfSxuLnByb3RvdHlwZS5zZXRIPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmhzbC5oPVQodCksdGhpcy51cGRhdGVSR0JBbmRDTVlLKCl9LG4ucHJvdG90eXBlLnNldFM9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuaHNsLnM9Tih0LDAsMTAwKSx0aGlzLnVwZGF0ZVJHQkFuZENNWUsoKX0sbi5wcm90b3R5cGUuc2V0TD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5oc2wubD1OKHQsMCwxMDApLHRoaXMudXBkYXRlUkdCQW5kQ01ZSygpfSxuLnByb3RvdHlwZS5zZXRSPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnJnYi5yPU4odCwwLDI1NSksdGhpcy51cGRhdGVIU0xBbmRDTVlLKCl9LG4ucHJvdG90eXBlLnNldEc9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMucmdiLmc9Tih0LDAsMjU1KSx0aGlzLnVwZGF0ZUhTTEFuZENNWUsoKX0sbi5wcm90b3R5cGUuc2V0Qj1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5yZ2IuYj1OKHQsMCwyNTUpLHRoaXMudXBkYXRlSFNMQW5kQ01ZSygpfSxuLnByb3RvdHlwZS5zZXRBPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmhzbC5hPXRoaXMucmdiLmE9Tih0LDAsMSksdGhpc30sbi5wcm90b3R5cGUuc2V0Qz1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5jbXlrLmM9Tih0LDAsMTAwKSx0aGlzLnVwZGF0ZVJHQkFuZEhTTCgpfSxuLnByb3RvdHlwZS5zZXRNPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmNteWsubT1OKHQsMCwxMDApLHRoaXMudXBkYXRlUkdCQW5kSFNMKCl9LG4ucHJvdG90eXBlLnNldFk9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuY215ay55PU4odCwwLDEwMCksdGhpcy51cGRhdGVSR0JBbmRIU0woKX0sbi5wcm90b3R5cGUuc2V0Sz1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5jbXlrLms9Tih0LDAsMTAwKSx0aGlzLnVwZGF0ZVJHQkFuZEhTTCgpfSxPYmplY3QuZGVmaW5lUHJvcGVydHkobi5wcm90b3R5cGUsXCJvcHRpb25zXCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9vcHRpb25zfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLnByb3RvdHlwZSxcIkhcIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIEsodGhpcy5oc2wuaCx0aGlzLm9wdGlvbnMuZGVjaW1hbHMpfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLnByb3RvdHlwZSxcIlNcIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIEsodGhpcy5oc2wucyx0aGlzLm9wdGlvbnMuZGVjaW1hbHMpfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLnByb3RvdHlwZSxcIkxcIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIEsodGhpcy5oc2wubCx0aGlzLm9wdGlvbnMuZGVjaW1hbHMpfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLnByb3RvdHlwZSxcIlJcIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIEsodGhpcy5yZ2Iucix0aGlzLm9wdGlvbnMuZGVjaW1hbHMpfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLnByb3RvdHlwZSxcIkdcIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIEsodGhpcy5yZ2IuZyx0aGlzLm9wdGlvbnMuZGVjaW1hbHMpfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLnByb3RvdHlwZSxcIkJcIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIEsodGhpcy5yZ2IuYix0aGlzLm9wdGlvbnMuZGVjaW1hbHMpfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLnByb3RvdHlwZSxcIkFcIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIEsodGhpcy5oc2wuYSx0aGlzLm9wdGlvbnMuZGVjaW1hbHMpfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLnByb3RvdHlwZSxcIkNcIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIEsodGhpcy5jbXlrLmMsdGhpcy5vcHRpb25zLmRlY2ltYWxzKX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkobi5wcm90b3R5cGUsXCJNXCIse2dldDpmdW5jdGlvbigpe3JldHVybiBLKHRoaXMuY215ay5tLHRoaXMub3B0aW9ucy5kZWNpbWFscyl9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KG4ucHJvdG90eXBlLFwiWVwiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gSyh0aGlzLmNteWsueSx0aGlzLm9wdGlvbnMuZGVjaW1hbHMpfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLnByb3RvdHlwZSxcIktcIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIEsodGhpcy5jbXlrLmssdGhpcy5vcHRpb25zLmRlY2ltYWxzKX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkobi5wcm90b3R5cGUsXCJIRVhPYmplY3RcIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGZ0LkhFWCh0aGlzLnJnYil9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KG4ucHJvdG90eXBlLFwiSEVYQU9iamVjdFwiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gZnQuSEVYQSh0aGlzLnJnYil9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KG4ucHJvdG90eXBlLFwiUkdCT2JqZWN0XCIse2dldDpmdW5jdGlvbigpe3JldHVybntyOnRoaXMuUixnOnRoaXMuRyxiOnRoaXMuQn19LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KG4ucHJvdG90eXBlLFwiUkdCQU9iamVjdFwiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdCh0KHt9LHRoaXMuUkdCT2JqZWN0KSx7YTp0aGlzLkF9KX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkobi5wcm90b3R5cGUsXCJIU0xPYmplY3RcIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJue2g6dGhpcy5ILHM6dGhpcy5TLGw6dGhpcy5MfX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkobi5wcm90b3R5cGUsXCJIU0xBT2JqZWN0XCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0KHQoe30sdGhpcy5IU0xPYmplY3QpLHthOnRoaXMuQX0pfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLnByb3RvdHlwZSxcIkNNWUtPYmplY3RcIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJue2M6dGhpcy5DLG06dGhpcy5NLHk6dGhpcy5ZLGs6dGhpcy5LfX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkobi5wcm90b3R5cGUsXCJDTVlLQU9iamVjdFwiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdCh0KHt9LHRoaXMuQ01ZS09iamVjdCkse2E6dGhpcy5BfSl9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KG4ucHJvdG90eXBlLFwiSEVYXCIse2dldDpmdW5jdGlvbigpe3JldHVybiBaLkhFWCh7cjp0aGlzLlIsZzp0aGlzLkcsYjp0aGlzLkJ9KX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkobi5wcm90b3R5cGUsXCJIRVhBXCIse2dldDpmdW5jdGlvbigpe3JldHVybiBaLkhFWCh7cjp0aGlzLlIsZzp0aGlzLkcsYjp0aGlzLkIsYToyNTUqdGhpcy5BfSl9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KG4ucHJvdG90eXBlLFwiUkdCXCIse2dldDpmdW5jdGlvbigpe3JldHVybiBaLlJHQih7cjp0aGlzLlIsZzp0aGlzLkcsYjp0aGlzLkJ9LHRoaXMub3B0aW9ucyl9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KG4ucHJvdG90eXBlLFwiUkdCQVwiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gWi5SR0Ioe3I6dGhpcy5SLGc6dGhpcy5HLGI6dGhpcy5CLGE6dGhpcy5BfSx0aGlzLm9wdGlvbnMpfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLnByb3RvdHlwZSxcIkhTTFwiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gWi5IU0woe2g6dGhpcy5ILHM6dGhpcy5TLGw6dGhpcy5MfSx0aGlzLm9wdGlvbnMpfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLnByb3RvdHlwZSxcIkhTTEFcIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFouSFNMKHtoOnRoaXMuSCxzOnRoaXMuUyxsOnRoaXMuTCxhOnRoaXMuQX0sdGhpcy5vcHRpb25zKX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkobi5wcm90b3R5cGUsXCJDTVlLXCIse2dldDpmdW5jdGlvbigpe3JldHVybiBaLkNNWUsoe2M6dGhpcy5DLG06dGhpcy5NLHk6dGhpcy5ZLGs6dGhpcy5LfSx0aGlzLm9wdGlvbnMpfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLnByb3RvdHlwZSxcIkNNWUtBXCIse2dldDpmdW5jdGlvbigpe3JldHVybiBaLkNNWUsoe2M6dGhpcy5DLG06dGhpcy5NLHk6dGhpcy5ZLGs6dGhpcy5LLGE6dGhpcy5BfSx0aGlzLm9wdGlvbnMpfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLG4udG9IRVhPYmplY3Q9ZnVuY3Rpb24odCl7dmFyIGU9dXQodCk7cmV0dXJuIHl0KHQsZSwwLGZ0LkhFWCl9LG4udG9IRVg9ZnVuY3Rpb24odCl7cmV0dXJuIFouSEVYKG4udG9IRVhPYmplY3QodCkpfSxuLnRvSEVYQU9iamVjdD1mdW5jdGlvbih0KXt2YXIgZT11dCh0KTtyZXR1cm4geXQodCxlLDAsZnQuSEVYQSl9LG4udG9IRVhBPWZ1bmN0aW9uKHQpe3JldHVybiBaLkhFWChuLnRvSEVYQU9iamVjdCh0KSl9LG4udG9SR0JPYmplY3Q9ZnVuY3Rpb24odCxlKXt2b2lkIDA9PT1lJiYoZT17fSk7dmFyIG49dXQodCk7cmV0dXJuIHl0KHQsbixlLmRlY2ltYWxzLGZ0LlJHQil9LG4udG9SR0I9ZnVuY3Rpb24odCxlKXt2b2lkIDA9PT1lJiYoZT17fSk7dmFyIG49dXQodCkscj1VKGUsdCksaT15dCh0LG4sNixmdC5SR0IpO3JldHVybiBaLlJHQihpLHIpfSxuLnRvUkdCQU9iamVjdD1mdW5jdGlvbih0LGUpe3ZvaWQgMD09PWUmJihlPXt9KTt2YXIgbj11dCh0KTtyZXR1cm4geXQodCxuLGUuZGVjaW1hbHMsZnQuUkdCQSl9LG4udG9SR0JBPWZ1bmN0aW9uKHQsZSl7dm9pZCAwPT09ZSYmKGU9e30pO3ZhciBuPXV0KHQpLHI9VShlLHQpLGk9eXQodCxuLDYsZnQuUkdCQSk7cmV0dXJuIFouUkdCKGkscil9LG4udG9IU0xPYmplY3Q9ZnVuY3Rpb24odCxlKXt2b2lkIDA9PT1lJiYoZT17fSk7dmFyIG49dXQodCk7cmV0dXJuIHl0KHQsbixlLmRlY2ltYWxzLGZ0LkhTTCl9LG4udG9IU0w9ZnVuY3Rpb24odCxlKXt2b2lkIDA9PT1lJiYoZT17fSk7dmFyIG49dXQodCkscj1VKGUsdCksaT15dCh0LG4sNixmdC5IU0wpO3JldHVybiBaLkhTTChpLHIpfSxuLnRvSFNMQU9iamVjdD1mdW5jdGlvbih0LGUpe3ZvaWQgMD09PWUmJihlPXt9KTt2YXIgbj11dCh0KTtyZXR1cm4geXQodCxuLGUuZGVjaW1hbHMsZnQuSFNMQSl9LG4udG9IU0xBPWZ1bmN0aW9uKHQsZSl7dm9pZCAwPT09ZSYmKGU9e30pO3ZhciBuPXV0KHQpLHI9VShlLHQpLGk9eXQodCxuLDYsZnQuSFNMQSk7cmV0dXJuIFouSFNMKGkscil9LG4udG9DTVlLT2JqZWN0PWZ1bmN0aW9uKHQsZSl7dm9pZCAwPT09ZSYmKGU9e30pO3ZhciBuPXV0KHQpO3JldHVybiB5dCh0LG4sZS5kZWNpbWFscyxmdC5DTVlLKX0sbi50b0NNWUs9ZnVuY3Rpb24odCxlKXt2b2lkIDA9PT1lJiYoZT17fSk7dmFyIG49dXQodCkscj1VKGUsdCksaT15dCh0LG4sNixmdC5DTVlLKTtyZXR1cm4gWi5DTVlLKGkscil9LG4udG9DTVlLQU9iamVjdD1mdW5jdGlvbih0LGUpe3ZvaWQgMD09PWUmJihlPXt9KTt2YXIgbj11dCh0KTtyZXR1cm4geXQodCxuLGUuZGVjaW1hbHMsZnQuQ01ZS0EpfSxuLnRvQ01ZS0E9ZnVuY3Rpb24odCxlKXt2b2lkIDA9PT1lJiYoZT17fSk7dmFyIG49dXQodCkscj1VKGUsdCksaT15dCh0LG4sNixmdC5DTVlLQSk7cmV0dXJuIFouQ01ZSyhpLHIpfSxuLmdldEJsZW5kSEVYT2JqZWN0PWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gdm9pZCAwPT09biYmKG49NSksRXQodCxlLG4sMCxmdC5IRVgpfSxuLmdldEJsZW5kSEVYPWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gdm9pZCAwPT09ciYmKHI9NSksbi5nZXRCbGVuZEhFWE9iamVjdCh0LGUscikubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gWi5IRVgodCl9KSl9LG4uZ2V0QmxlbmRIRVhBT2JqZWN0PWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gdm9pZCAwPT09biYmKG49NSksRXQodCxlLG4sMCxmdC5IRVhBKX0sbi5nZXRCbGVuZEhFWEE9ZnVuY3Rpb24odCxlLHIpe3JldHVybiB2b2lkIDA9PT1yJiYocj01KSxuLmdldEJsZW5kSEVYQU9iamVjdCh0LGUscikubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gWi5IRVgodCl9KSl9LG4uZ2V0QmxlbmRSR0JPYmplY3Q9ZnVuY3Rpb24odCxlLG4scil7cmV0dXJuIHZvaWQgMD09PW4mJihuPTUpLHZvaWQgMD09PXImJihyPXt9KSxFdCh0LGUsbixyLmRlY2ltYWxzLGZ0LlJHQil9LG4uZ2V0QmxlbmRSR0I9ZnVuY3Rpb24odCxlLG4scil7cmV0dXJuIHZvaWQgMD09PW4mJihuPTUpLHZvaWQgMD09PXImJihyPXt9KSxFdCh0LGUsbiw2LGZ0LlJHQikubWFwKChmdW5jdGlvbihuKXtyZXR1cm4gWi5SR0IobixVKHIsdCxlKSl9KSl9LG4uZ2V0QmxlbmRSR0JBT2JqZWN0PWZ1bmN0aW9uKHQsZSxuLHIpe3JldHVybiB2b2lkIDA9PT1uJiYobj01KSx2b2lkIDA9PT1yJiYocj17fSksRXQodCxlLG4sci5kZWNpbWFscyxmdC5SR0JBKX0sbi5nZXRCbGVuZFJHQkE9ZnVuY3Rpb24odCxlLG4scil7cmV0dXJuIHZvaWQgMD09PW4mJihuPTUpLHZvaWQgMD09PXImJihyPXt9KSxFdCh0LGUsbiw2LGZ0LlJHQkEpLm1hcCgoZnVuY3Rpb24obil7cmV0dXJuIFouUkdCKG4sVShyLHQsZSkpfSkpfSxuLmdldEJsZW5kSFNMT2JqZWN0PWZ1bmN0aW9uKHQsZSxuLHIpe3JldHVybiB2b2lkIDA9PT1uJiYobj01KSx2b2lkIDA9PT1yJiYocj17fSksRXQodCxlLG4sci5kZWNpbWFscyxmdC5IU0wpfSxuLmdldEJsZW5kSFNMPWZ1bmN0aW9uKHQsZSxuLHIpe3ZvaWQgMD09PW4mJihuPTUpLHZvaWQgMD09PXImJihyPXt9KTt2YXIgaT1VKHIsdCxlKTtyZXR1cm4gRXQodCxlLG4sNixmdC5IU0wpLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIFouSFNMKHQsaSl9KSl9LG4uZ2V0QmxlbmRIU0xBT2JqZWN0PWZ1bmN0aW9uKHQsZSxuLHIpe3JldHVybiB2b2lkIDA9PT1uJiYobj01KSx2b2lkIDA9PT1yJiYocj17fSksRXQodCxlLG4sci5kZWNpbWFscyxmdC5IU0xBKX0sbi5nZXRCbGVuZEhTTEE9ZnVuY3Rpb24odCxlLG4scil7dm9pZCAwPT09biYmKG49NSksdm9pZCAwPT09ciYmKHI9e30pO3ZhciBpPVUocix0LGUpO3JldHVybiBFdCh0LGUsbiw2LGZ0LkhTTEEpLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIFouSFNMKHQsaSl9KSl9LG4uZ2V0TWl4SEVYT2JqZWN0PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHZvaWQgMD09PWUmJihlPWkuQURESVRJVkUpLGd0LkhFWCh0LGUsITEpfSxuLmdldE1peEhFWD1mdW5jdGlvbih0LGUpe3JldHVybiB2b2lkIDA9PT1lJiYoZT1pLkFERElUSVZFKSxndC5IRVgodCxlLCEwKX0sbi5nZXRNaXhIRVhBT2JqZWN0PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHZvaWQgMD09PWUmJihlPWkuQURESVRJVkUpLGd0LkhFWEEodCxlLCExKX0sbi5nZXRNaXhIRVhBPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHZvaWQgMD09PWUmJihlPWkuQURESVRJVkUpLGd0LkhFWEEodCxlLCEwKX0sbi5nZXRNaXhSR0JPYmplY3Q9ZnVuY3Rpb24odCxuLHIpe3JldHVybiB2b2lkIDA9PT1uJiYobj1pLkFERElUSVZFKSx2b2lkIDA9PT1yJiYocj17fSksZ3QuUkdCKHQsbiwhMSxVLmFwcGx5KHZvaWQgMCxlKFtyXSx0LCExKSkpfSxuLmdldE1peFJHQj1mdW5jdGlvbih0LG4scil7cmV0dXJuIHZvaWQgMD09PW4mJihuPWkuQURESVRJVkUpLHZvaWQgMD09PXImJihyPXt9KSxndC5SR0IodCxuLCEwLFUuYXBwbHkodm9pZCAwLGUoW3JdLHQsITEpKSl9LG4uZ2V0TWl4UkdCQU9iamVjdD1mdW5jdGlvbih0LG4scil7cmV0dXJuIHZvaWQgMD09PW4mJihuPWkuQURESVRJVkUpLHZvaWQgMD09PXImJihyPXt9KSxndC5SR0JBKHQsbiwhMSxVLmFwcGx5KHZvaWQgMCxlKFtyXSx0LCExKSkpfSxuLmdldE1peFJHQkE9ZnVuY3Rpb24odCxuLHIpe3JldHVybiB2b2lkIDA9PT1uJiYobj1pLkFERElUSVZFKSx2b2lkIDA9PT1yJiYocj17fSksZ3QuUkdCQSh0LG4sITAsVS5hcHBseSh2b2lkIDAsZShbcl0sdCwhMSkpKX0sbi5nZXRNaXhIU0xPYmplY3Q9ZnVuY3Rpb24odCxuLHIpe3JldHVybiB2b2lkIDA9PT1uJiYobj1pLkFERElUSVZFKSx2b2lkIDA9PT1yJiYocj17fSksZ3QuSFNMKHQsbiwhMSxVLmFwcGx5KHZvaWQgMCxlKFtyXSx0LCExKSkpfSxuLmdldE1peEhTTD1mdW5jdGlvbih0LG4scil7cmV0dXJuIHZvaWQgMD09PW4mJihuPWkuQURESVRJVkUpLHZvaWQgMD09PXImJihyPXt9KSxndC5IU0wodCxuLCEwLFUuYXBwbHkodm9pZCAwLGUoW3JdLHQsITEpKSl9LG4uZ2V0TWl4SFNMQU9iamVjdD1mdW5jdGlvbih0LG4scil7cmV0dXJuIHZvaWQgMD09PW4mJihuPWkuQURESVRJVkUpLHZvaWQgMD09PXImJihyPXt9KSxndC5IU0xBKHQsbiwhMSxVLmFwcGx5KHZvaWQgMCxlKFtyXSx0LCExKSkpfSxuLmdldE1peEhTTEE9ZnVuY3Rpb24odCxuLHIpe3JldHVybiB2b2lkIDA9PT1uJiYobj1pLkFERElUSVZFKSx2b2lkIDA9PT1yJiYocj17fSksZ3QuSFNMQSh0LG4sITAsVS5hcHBseSh2b2lkIDAsZShbcl0sdCwhMSkpKX0sbi5nZXRTaGFkZXM9ZnVuY3Rpb24odCxlLG4pe3JldHVybiB2b2lkIDA9PT1uJiYobj17fSksaHQodCxlLCEwLFUobix0KSl9LG4uZ2V0VGludHM9ZnVuY3Rpb24odCxlLG4pe3JldHVybiB2b2lkIDA9PT1uJiYobj17fSksaHQodCxlLCExLFUobix0KSl9LG4uZ2V0SGFybW9ueT1mdW5jdGlvbih0LGUsbixvKXtyZXR1cm4gdm9pZCAwPT09ZSYmKGU9ci5DT01QTEVNRU5UQVJZKSx2b2lkIDA9PT1uJiYobj1pLkFERElUSVZFKSx2b2lkIDA9PT1vJiYobz17fSksZnVuY3Rpb24odCxlLG4saSl7dmFyIG87cmV0dXJuKG89e30sb1tyLkFOQUxPR09VU109cHQuYnVpbGRIYXJtb255KGUsbnQsbixpKSxvW3IuQ09NUExFTUVOVEFSWV09cHQuYnVpbGRIYXJtb255KGUscnQsbixpKSxvW3IuU1BMSVRfQ09NUExFTUVOVEFSWV09cHQuYnVpbGRIYXJtb255KGUsaXQsbixpKSxvW3IuVFJJQURJQ109cHQuYnVpbGRIYXJtb255KGUsb3QsbixpKSxvW3IuVEVUUkFESUNdPXB0LmJ1aWxkSGFybW9ueShlLGF0LG4saSksb1tyLlNRVUFSRV09cHQuYnVpbGRIYXJtb255KGUsY3QsbixpKSxvKVt0XX0oZSx0LG4sVShvLHQpKX0sbn0oKTtleHBvcnR7RnQgYXMgQ29sb3JUcmFuc2xhdG9yLHIgYXMgSGFybW9ueSxpIGFzIE1peH07XG4iLCAiaW1wb3J0IHsgQXBwIH0gZnJvbSBcIm9ic2lkaWFuXCI7XG5cbmltcG9ydCB7IENvZGVTdHlsZXJTZXR0aW5ncywgQ29kZVN0eWxlclRoZW1lQ29sb3VycywgQ29kZVN0eWxlclRoZW1lTW9kZUNvbG91cnMsIENvZGVTdHlsZXJUaGVtZVNldHRpbmdzLCBDb2xvdXIsIExBTkdVQUdFX05BTUVTLCBMQU5HVUFHRV9DT0xPVVJTIH0gZnJvbSBcIi4vU2V0dGluZ3NcIjtcbmltcG9ydCB7IGlzQ3NzIH0gZnJvbSBcIi4vU2V0dGluZ3NUYWJcIjtcblxuaW50ZXJmYWNlIFRoZW1lU3R5bGUge1xuXHRib3JkZXI/OiB7XG5cdFx0c2l6ZTogbnVtYmVyO1xuXHRcdHN0eWxlOiBzdHJpbmc7XG5cdH0sXG5cdHNjcm9sbGJhcj86IGJvb2xlYW47XG5cdGV4dHJhPzogc3RyaW5nO1xufVxuXG5jb25zdCBTVFlMRV9JRCA9IFwiY29kZS1zdHlsZXItc3R5bGVzXCI7XG5jb25zdCBUSEVNRV9TVFlMRVM6IFJlY29yZDxzdHJpbmcsVGhlbWVTdHlsZT4gPSB7XG5cdFwiUHJpc21cIjoge1xuXHRcdGJvcmRlcjoge1xuXHRcdFx0c2l6ZTogMSxcblx0XHRcdHN0eWxlOiBcIjFweCBzb2xpZCB2YXIoLS13aW5kb3ctYm9yZGVyLWNvbG9yKVwiLFxuXHRcdH0sXG5cdH0sXG5cdFwiU2hpbW1lcmluZyBGb2N1c1wiOiB7XG5cdFx0Ym9yZGVyOiB7XG5cdFx0XHRzaXplOiAxLFxuXHRcdFx0c3R5bGU6IFwidmFyKC0tdGhpbi1tdXRlZC1ib3JkZXIpXCIsXG5cdFx0fSxcblx0fSxcblx0XCJNaW5pbWFsXCI6IHtcblx0XHRleHRyYTogYFxuXHRcdFx0Lm1hcmtkb3duLXNvdXJjZS12aWV3Lm1vZC1jbTYuaXMtcmVhZGFibGUtbGluZS13aWR0aCA6bm90KHByZS5jb2RlLXN0eWxlci1wcmUpID4gLmNvZGUtc3R5bGVyLWhlYWRlci1jb250YWluZXIge1xuXHRcdFx0XHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXHRcdFx0fVxuXHRcdGAsXG5cdH0sXG5cdFwiT2JzaWRpYW5pdGVcIjoge1xuXHRcdHNjcm9sbGJhcjogdHJ1ZSxcblx0fVxufTtcblxuZXhwb3J0IGZ1bmN0aW9uIHVwZGF0ZVN0eWxpbmcoc2V0dGluZ3M6IENvZGVTdHlsZXJTZXR0aW5ncywgYXBwOiBBcHApOiB2b2lkIHtcblx0Y29uc3QgY3VycmVudFRoZW1lID0gZ2V0Q3VycmVudFRoZW1lKGFwcCk7XG5cdGxldCBzdHlsZVRhZyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFNUWUxFX0lEKTtcblx0aWYgKCFzdHlsZVRhZykge1xuXHRcdHN0eWxlVGFnID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcInN0eWxlXCIpO1xuXHRcdHN0eWxlVGFnLmlkID0gU1RZTEVfSUQ7XG5cdFx0ZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoXCJoZWFkXCIpWzBdLmFwcGVuZENoaWxkKHN0eWxlVGFnKTtcblx0fVxuXHRzdHlsZVRhZy5pbm5lclRleHQgPSAoc3R5bGVUaGVtZUNvbG91cnMoc2V0dGluZ3MuY3VycmVudFRoZW1lLmNvbG91cnMpK3N0eWxlVGhlbWVTZXR0aW5ncyhzZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MsY3VycmVudFRoZW1lKStzdHlsZUxhbmd1YWdlQ29sb3VycyhzZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3Msc2V0dGluZ3MucmVkaXJlY3RMYW5ndWFnZXMsY3VycmVudFRoZW1lKSkudHJpbSgpLnJlcGxhY2UoL1xccysvZyxcIiBcIik7XG5cdGFkZFRoZW1lU2V0dGluZ3NDbGFzc2VzKHNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncyk7XG59XG5cbmZ1bmN0aW9uIHN0eWxlVGhlbWVDb2xvdXJzICh0aGVtZUNvbG91cnM6IENvZGVTdHlsZXJUaGVtZUNvbG91cnMpOiBzdHJpbmcge1xuXHRyZXR1cm4gT2JqZWN0LmtleXModGhlbWVDb2xvdXJzLmxpZ2h0LmhpZ2hsaWdodHMuYWx0ZXJuYXRpdmVIaWdobGlnaHRzKS5yZWR1Y2UoKHJlc3VsdDogc3RyaW5nLCBhbHRlcm5hdGl2ZUhpZ2hsaWdodDogc3RyaW5nKSA9PiB7XG5cdFx0cmV0dXJuIHJlc3VsdCArIGBcblx0XHRcdGJvZHkuY29kZS1zdHlsZXIgLmNvZGUtc3R5bGVyLWxpbmUtaGlnaGxpZ2h0ZWQtJHthbHRlcm5hdGl2ZUhpZ2hsaWdodC5yZXBsYWNlKC9cXHMrL2csXCItXCIpLnRvTG93ZXJDYXNlKCl9IHtcblx0XHRcdFx0LS1ncmFkaWVudC1iYWNrZ3JvdW5kLWNvbG91cjogdmFyKC0tY29kZS1zdHlsZXItJHthbHRlcm5hdGl2ZUhpZ2hsaWdodC5yZXBsYWNlKC9cXHMrL2csXCItXCIpLnRvTG93ZXJDYXNlKCl9LWhpZ2hsaWdodC1jb2xvdXIpICFpbXBvcnRhbnQ7XG5cdFx0XHR9XG5cdFx0YDtcblx0fSxgXG5cdFx0Ym9keS5jb2RlLXN0eWxlci50aGVtZS1saWdodCB7XG5cdFx0XHQke2dldFRoZW1lQ29sb3Vycyh0aGVtZUNvbG91cnMubGlnaHQpfVxuXHRcdH1cblx0XHRib2R5LmNvZGUtc3R5bGVyLnRoZW1lLWRhcmsge1xuXHRcdFx0JHtnZXRUaGVtZUNvbG91cnModGhlbWVDb2xvdXJzLmRhcmspfVxuXHRcdH1cblx0YCk7XG59XG5cbmZ1bmN0aW9uIGdldFRoZW1lQ29sb3VycyAodGhlbWVNb2RlQ29sb3VyczogQ29kZVN0eWxlclRoZW1lTW9kZUNvbG91cnMpOiBzdHJpbmcge1xuXHRyZXR1cm4gT2JqZWN0LmVudHJpZXMoe1xuXHRcdFwiY29kZWJsb2NrLWJhY2tncm91bmQtY29sb3VyXCI6IHRoZW1lTW9kZUNvbG91cnMuY29kZWJsb2NrLmJhY2tncm91bmRDb2xvdXIsXG5cdFx0XCJjb2RlYmxvY2stdGV4dC1jb2xvdXJcIjogdGhlbWVNb2RlQ29sb3Vycy5jb2RlYmxvY2sudGV4dENvbG91cixcblx0XHRcImd1dHRlci1iYWNrZ3JvdW5kLWNvbG91clwiOiB0aGVtZU1vZGVDb2xvdXJzLmd1dHRlci5iYWNrZ3JvdW5kQ29sb3VyLFxuXHRcdFwiZ3V0dGVyLXRleHQtY29sb3VyXCI6IHRoZW1lTW9kZUNvbG91cnMuZ3V0dGVyLnRleHRDb2xvdXIsXG5cdFx0XCJndXR0ZXItYWN0aXZlLXRleHQtY29sb3VyXCI6IHRoZW1lTW9kZUNvbG91cnMuZ3V0dGVyLmFjdGl2ZVRleHRDb2xvdXIsXG5cdFx0XCJoZWFkZXItYmFja2dyb3VuZC1jb2xvdXJcIjogdGhlbWVNb2RlQ29sb3Vycy5oZWFkZXIuYmFja2dyb3VuZENvbG91cixcblx0XHRcImhlYWRlci10aXRsZS10ZXh0LWNvbG91clwiOiB0aGVtZU1vZGVDb2xvdXJzLmhlYWRlci50aXRsZS50ZXh0Q29sb3VyLFxuXHRcdFwiaGVhZGVyLWxhbmd1YWdlLXRhZy1iYWNrZ3JvdW5kLWNvbG91clwiOiB0aGVtZU1vZGVDb2xvdXJzLmhlYWRlci5sYW5ndWFnZVRhZy5iYWNrZ3JvdW5kQ29sb3VyLFxuXHRcdFwiaGVhZGVyLWxhbmd1YWdlLXRhZy10ZXh0LWNvbG91clwiOiB0aGVtZU1vZGVDb2xvdXJzLmhlYWRlci5sYW5ndWFnZVRhZy50ZXh0Q29sb3VyLFxuXHRcdFwiaGVhZGVyLXNlcGFyYXRvci1jb2xvdXJcIjogdGhlbWVNb2RlQ29sb3Vycy5oZWFkZXIubGluZUNvbG91cixcblx0XHRcImFjdGl2ZS1jb2RlYmxvY2stbGluZS1jb2xvdXJcIjogdGhlbWVNb2RlQ29sb3Vycy5oaWdobGlnaHRzLmFjdGl2ZUNvZGVibG9ja0xpbmVDb2xvdXIsXG5cdFx0XCJhY3RpdmUtZWRpdG9yLWxpbmUtY29sb3VyXCI6IHRoZW1lTW9kZUNvbG91cnMuaGlnaGxpZ2h0cy5hY3RpdmVFZGl0b3JMaW5lQ29sb3VyLFxuXHRcdFwiZGVmYXVsdC1oaWdobGlnaHQtY29sb3VyXCI6IHRoZW1lTW9kZUNvbG91cnMuaGlnaGxpZ2h0cy5kZWZhdWx0Q29sb3VyLFxuXHRcdFwiYnV0dG9uLWNvbG91clwiOiB0aGVtZU1vZGVDb2xvdXJzLmFkdmFuY2VkLmJ1dHRvbkNvbG91cixcblx0XHRcImJ1dHRvbi1hY3RpdmUtY29sb3VyXCI6IHRoZW1lTW9kZUNvbG91cnMuYWR2YW5jZWQuYnV0dG9uQWN0aXZlQ29sb3VyLFxuXHRcdFwiaW5saW5lLWNvbG91clwiOiB0aGVtZU1vZGVDb2xvdXJzLmlubGluZS50ZXh0Q29sb3VyLFxuXHRcdFwiaW5saW5lLWNvbG91ci1hY3RpdmVcIjogdGhlbWVNb2RlQ29sb3Vycy5pbmxpbmUuYWN0aXZlVGV4dENvbG91cixcblx0XHRcImlubGluZS1iYWNrZ3JvdW5kLWNvbG91clwiOiB0aGVtZU1vZGVDb2xvdXJzLmlubGluZS5iYWNrZ3JvdW5kQ29sb3VyLFxuXHRcdFwiaW5saW5lLXRpdGxlLWNvbG91clwiOiB0aGVtZU1vZGVDb2xvdXJzLmlubGluZS50aXRsZVRleHRDb2xvdXIsXG5cdFx0Li4uT2JqZWN0LmVudHJpZXModGhlbWVNb2RlQ29sb3Vycy5oaWdobGlnaHRzLmFsdGVybmF0aXZlSGlnaGxpZ2h0cykucmVkdWNlKChyZXN1bHQ6IFJlY29yZDxzdHJpbmcsQ29sb3VyPixbYWx0ZXJuYXRpdmVIaWdobGlnaHQsY29sb3VyXTogW3N0cmluZyxDb2xvdXJdKTogUmVjb3JkPHN0cmluZyxDb2xvdXI+ID0+IHtcblx0XHRcdHJlc3VsdFtgJHthbHRlcm5hdGl2ZUhpZ2hsaWdodC5yZXBsYWNlKC9cXHMrL2csXCItXCIpLnRvTG93ZXJDYXNlKCl9LWhpZ2hsaWdodC1jb2xvdXJgXSA9IGNvbG91cjtcblx0XHRcdHJldHVybiByZXN1bHQ7XG5cdFx0fSx7fSlcblx0fSkucmVkdWNlKChyZXN1bHQ6IHN0cmluZywgW2Nzc1ZhcmlhYmxlLGNvbG91cl06IFtzdHJpbmcsQ29sb3VyXSk6IHN0cmluZyA9PiB7XG5cdFx0Y29uc3Qgc3R5bGVDb2xvdXIgPSBpc0Nzcyhjb2xvdXIpP2B2YXIoJHtjb2xvdXJ9KWA6Y29sb3VyO1xuXHRcdHJldHVybiByZXN1bHQgKyBgLS1jb2RlLXN0eWxlci0ke2Nzc1ZhcmlhYmxlfTogJHtzdHlsZUNvbG91cn07YDtcblx0fSxcIlwiKTtcbn1cblxuZnVuY3Rpb24gc3R5bGVUaGVtZVNldHRpbmdzICh0aGVtZVNldHRpbmdzOiBDb2RlU3R5bGVyVGhlbWVTZXR0aW5ncywgY3VycmVudFRoZW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuXHRyZXR1cm4gYFxuXHRcdGJvZHkuY29kZS1zdHlsZXIgLmNvZGUtc3R5bGVyLWhlYWRlci1sYW5ndWFnZS10YWcge1xuXHRcdFx0LS1jb2RlLXN0eWxlci1oZWFkZXItbGFuZ3VhZ2UtdGFnLXRleHQtYm9sZDogJHt0aGVtZVNldHRpbmdzLmhlYWRlci5sYW5ndWFnZVRhZy50ZXh0Qm9sZD9cImJvbGRcIjpcIm5vcm1hbFwifTtcblx0XHRcdC0tY29kZS1zdHlsZXItaGVhZGVyLWxhbmd1YWdlLXRhZy10ZXh0LWl0YWxpYzogJHt0aGVtZVNldHRpbmdzLmhlYWRlci5sYW5ndWFnZVRhZy50ZXh0SXRhbGljP1wiaXRhbGljXCI6XCJub3JtYWxcIn07XG5cdFx0XHRmb250LWZhbWlseTogJHt0aGVtZVNldHRpbmdzLmhlYWRlci5sYW5ndWFnZVRhZy50ZXh0Rm9udCE9PVwiXCI/dGhlbWVTZXR0aW5ncy5oZWFkZXIubGFuZ3VhZ2VUYWcudGV4dEZvbnQ6XCJ2YXIoLS1mb250LXRleHQpXCJ9O1xuXHRcdH1cblx0XHRib2R5LmNvZGUtc3R5bGVyIC5jb2RlLXN0eWxlci1oZWFkZXItdGV4dCB7XG5cdFx0XHQtLWNvZGUtc3R5bGVyLWhlYWRlci10aXRsZS10ZXh0LWJvbGQ6ICR7dGhlbWVTZXR0aW5ncy5oZWFkZXIudGl0bGUudGV4dEJvbGQ/XCJib2xkXCI6XCJub3JtYWxcIn07XG5cdFx0XHQtLWNvZGUtc3R5bGVyLWhlYWRlci10aXRsZS10ZXh0LWl0YWxpYzogJHt0aGVtZVNldHRpbmdzLmhlYWRlci50aXRsZS50ZXh0SXRhbGljP1wiaXRhbGljXCI6XCJub3JtYWxcIn07XG5cdFx0XHRmb250LWZhbWlseTogJHt0aGVtZVNldHRpbmdzLmhlYWRlci5sYW5ndWFnZVRhZy50ZXh0Rm9udCE9PVwiXCI/dGhlbWVTZXR0aW5ncy5oZWFkZXIubGFuZ3VhZ2VUYWcudGV4dEZvbnQ6XCJ2YXIoLS1mb250LXRleHQpXCJ9O1xuXHRcdH1cblx0XHRib2R5LmNvZGUtc3R5bGVyIHtcblx0XHRcdC0tYm9yZGVyLXJhZGl1czogJHt0aGVtZVNldHRpbmdzLmNvZGVibG9jay5jdXJ2YXR1cmV9cHg7XG5cdFx0XHQtLWxhbmd1YWdlLWljb24tc2l6ZTogJHt0aGVtZVNldHRpbmdzLmFkdmFuY2VkLmljb25TaXplfXB4O1xuXHRcdFx0LS1ncmFkaWVudC1oaWdobGlnaHRzLWNvbG91ci1zdG9wOiAke3RoZW1lU2V0dGluZ3MuYWR2YW5jZWQuZ3JhZGllbnRIaWdobGlnaHRzP3RoZW1lU2V0dGluZ3MuYWR2YW5jZWQuZ3JhZGllbnRIaWdobGlnaHRzQ29sb3VyU3RvcDpcIjEwMCVcIn07XG5cdFx0XHQtLWhlYWRlci1mb250LXNpemU6ICR7dGhlbWVTZXR0aW5ncy5oZWFkZXIuZm9udFNpemV9cHg7XG5cdFx0XHQtLWxpbmUtd3JhcHBpbmc6ICR7dGhlbWVTZXR0aW5ncy5jb2RlYmxvY2sudW53cmFwTGluZXM/XCJwcmVcIjpcInByZS13cmFwXCJ9O1xuXHRcdFx0LS1jb2RlLXN0eWxlci1pbmxpbmUtZm9udC13ZWlnaHQ6ICR7dGhlbWVTZXR0aW5ncy5pbmxpbmUuZm9udFdlaWdodH0wMDtcblx0XHRcdC0tY29kZS1zdHlsZXItaW5saW5lLWJvcmRlci1yYWRpdXM6ICR7dGhlbWVTZXR0aW5ncy5pbmxpbmUuY3VydmF0dXJlfXB4O1xuXHRcdFx0LS1jb2RlLXN0eWxlci1pbmxpbmUtcGFkZGluZy12ZXJ0aWNhbDogJHt0aGVtZVNldHRpbmdzLmlubGluZS5wYWRkaW5nVmVydGljYWx9cHg7XG5cdFx0XHQtLWNvZGUtc3R5bGVyLWlubGluZS1wYWRkaW5nLWhvcml6b250YWw6ICR7dGhlbWVTZXR0aW5ncy5pbmxpbmUucGFkZGluZ0hvcml6b250YWx9cHg7XG5cdFx0XHQtLWNvZGUtc3R5bGVyLWlubGluZS1tYXJnaW4taG9yaXpvbnRhbDogJHt0aGVtZVNldHRpbmdzLmlubGluZS5tYXJnaW5Ib3Jpem9udGFsfXB4O1xuXHRcdFx0LS1jb2RlLXN0eWxlci1pbmxpbmUtdGl0bGUtZm9udC13ZWlnaHQ6ICR7dGhlbWVTZXR0aW5ncy5pbmxpbmUudGl0bGVGb250V2VpZ2h0fTAwO1xuXHRcdFx0JHshdGhlbWVTZXR0aW5ncy5jb2RlYmxvY2sud3JhcExpbmVzQWN0aXZlP1wiXCI6XCItLWxpbmUtYWN0aXZlLXdyYXBwaW5nOiBwcmUtd3JhcDtcIn1cblx0XHRcdCR7dGhlbWVTZXR0aW5ncy5oZWFkZXIubGFuZ3VhZ2VJY29uLmRpc3BsYXlDb2xvdXI/XCJcIjpcIi0taWNvbi1maWx0ZXI6IGdyYXlzY2FsZSgxKTtcIn1cblx0XHR9XG5cdFx0JHtUSEVNRV9TVFlMRVM/LltjdXJyZW50VGhlbWVdPy5ib3JkZXI/YFxuXHRcdFx0Lm1hcmtkb3duLXNvdXJjZS12aWV3IDpub3QocHJlLmNvZGUtc3R5bGVyLXByZSkgPiAuY29kZS1zdHlsZXItaGVhZGVyLWNvbnRhaW5lciB7XG5cdFx0XHRcdC0tY29kZS1zdHlsZXItaGVhZGVyLWJvcmRlcjpgKyAvL0B0cy1leHBlY3QtZXJyb3IgRG9lcyBFeGlzdFxuXHRcdFx0XHRcdFRIRU1FX1NUWUxFU1tjdXJyZW50VGhlbWVdLmJvcmRlci5zdHlsZStgO1xuXHRcdFx0XHQtLWhlYWRlci1zZXBhcmF0b3Itd2lkdGgtcGFkZGluZzogY2FsYyh2YXIoLS1oZWFkZXItc2VwYXJhdG9yLXdpZHRoKSAtIGArIC8vQHRzLWV4cGVjdC1lcnJvciBEb2VzIEV4aXN0XG5cdFx0XHRcdFx0VEhFTUVfU1RZTEVTW2N1cnJlbnRUaGVtZV0uYm9yZGVyLnNpemUrYHB4KTtcblx0XHRcdFx0LS1mb2xkZWQtYm90dG9tLWJvcmRlcjogdmFyKC0tY29kZS1zdHlsZXItaGVhZGVyLWJvcmRlcik7XG5cdFx0XHR9XG5cdFx0YDpcIlwifVxuXHRcdCR7VEhFTUVfU1RZTEVTPy5bY3VycmVudFRoZW1lXT8uc2Nyb2xsYmFyP2Bcblx0XHRcdHByZS5jb2RlLXN0eWxlci1wcmU6Oi13ZWJraXQtc2Nyb2xsYmFyLFxuXHRcdFx0cHJlLmNvZGUtc3R5bGVyLXByZSA+IGNvZGU6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcblx0XHRcdFx0d2lkdGg6IHZhcigtLWNvZGUtcGFkZGluZyk7XG5cdFx0XHRcdGhlaWdodDogdmFyKC0tY29kZS1wYWRkaW5nKTtcblx0XHRcdFx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29kZS1zdHlsZXItY29kZWJsb2NrLWJhY2tncm91bmQtY29sb3VyKTtcblx0XHRcdH1cblx0XHRgOlwiXCJ9XG5cdFx0JHtUSEVNRV9TVFlMRVM/LltjdXJyZW50VGhlbWVdPy5leHRyYT9USEVNRV9TVFlMRVNbY3VycmVudFRoZW1lXS5leHRyYTpcIlwifVxuXHRgO1xufVxuXG5mdW5jdGlvbiBzdHlsZUxhbmd1YWdlQ29sb3VycyAodGhlbWVTZXR0aW5nczogQ29kZVN0eWxlclRoZW1lU2V0dGluZ3MsIHJlZGlyZWN0TGFuZ3VhZ2VzOiBSZWNvcmQ8c3RyaW5nLHtjb2xvdXI/OiBDb2xvdXIsIGljb24/OiBzdHJpbmd9PiwgY3VycmVudFRoZW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuXHRyZXR1cm4gT2JqZWN0LmVudHJpZXMoTEFOR1VBR0VfTkFNRVMpLnJlZHVjZSgocmVzdWx0OiBzdHJpbmcsW2xhbmd1YWdlTmFtZSwgbGFuZ3VhZ2VEaXNwbGF5TmFtZV06IFtzdHJpbmcsc3RyaW5nXSk6IHN0cmluZyA9PiB7XG5cdFx0aWYgKGxhbmd1YWdlRGlzcGxheU5hbWUgaW4gTEFOR1VBR0VfQ09MT1VSUyB8fCAobGFuZ3VhZ2VOYW1lIGluIHJlZGlyZWN0TGFuZ3VhZ2VzICYmIFwiY29sb3VyXCIgaW4gcmVkaXJlY3RMYW5ndWFnZXNbbGFuZ3VhZ2VOYW1lXSkpIHtcblx0XHRcdHJlc3VsdCArPSBgXG5cdFx0XHRcdC5sYW5ndWFnZS0ke2xhbmd1YWdlTmFtZX0ge1xuXHRcdFx0XHRcdC0tbGFuZ3VhZ2UtYm9yZGVyLWNvbG91cjogJHtyZWRpcmVjdExhbmd1YWdlcz8uW2xhbmd1YWdlTmFtZV0/LltcImNvbG91clwiXSA/PyBMQU5HVUFHRV9DT0xPVVJTW2xhbmd1YWdlRGlzcGxheU5hbWVdfTtcblx0XHRcdFx0XHQtLWxhbmd1YWdlLWJvcmRlci13aWR0aDogJHt0aGVtZVNldHRpbmdzLmFkdmFuY2VkLmxhbmd1YWdlQm9yZGVyQ29sb3VyP3RoZW1lU2V0dGluZ3MuYWR2YW5jZWQubGFuZ3VhZ2VCb3JkZXJXaWR0aDowfXB4O1xuXHRcdFx0XHR9XG5cdFx0XHRgO1xuXHRcdFx0aWYgKFRIRU1FX1NUWUxFUz8uW2N1cnJlbnRUaGVtZV0/LmJvcmRlcikge1xuXHRcdFx0XHRyZXN1bHQgKz0gYFxuXHRcdFx0XHRcdC5tYXJrZG93bi1zb3VyY2UtdmlldyA6bm90KHByZS5jb2RlLXN0eWxlci1wcmUpID4gLmNvZGUtc3R5bGVyLWhlYWRlci1jb250YWluZXIubGFuZ3VhZ2UtJHtsYW5ndWFnZU5hbWV9ICB7XG5cdFx0XHRcdFx0XHQtLWxhbmd1YWdlLWJvcmRlci13aWR0aDogJHsgLy9AdHMtZXhwZWN0LWVycm9yIERvZXMgZXhpc3Rcblx0dGhlbWVTZXR0aW5ncy5hZHZhbmNlZC5sYW5ndWFnZUJvcmRlckNvbG91cj90aGVtZVNldHRpbmdzLmFkdmFuY2VkLmxhbmd1YWdlQm9yZGVyV2lkdGgrVEhFTUVfU1RZTEVTW2N1cnJlbnRUaGVtZV0uYm9yZGVyLnNpemU6MH1weDtcblx0XHRcdFx0XHR9YDtcblx0XHRcdH1cblx0XHR9XG5cdFx0cmV0dXJuIHJlc3VsdDtcblx0fSxcIlwiKTtcbn1cblxuZnVuY3Rpb24gYWRkVGhlbWVTZXR0aW5nc0NsYXNzZXMgKHRoZW1lU2V0dGluZ3M6IENvZGVTdHlsZXJUaGVtZVNldHRpbmdzKTogdm9pZCB7XG5cdHRoZW1lU2V0dGluZ3MuY29kZWJsb2NrLmxpbmVOdW1iZXJzID8gZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QuYWRkKFwiY29kZS1zdHlsZXItc2hvdy1saW5lLW51bWJlcnNcIikgOiBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5yZW1vdmUoXCJjb2RlLXN0eWxlci1zaG93LWxpbmUtbnVtYmVyc1wiKTtcblx0dGhlbWVTZXR0aW5ncy5ndXR0ZXIuaGlnaGxpZ2h0ID8gZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QuYWRkKFwiY29kZS1zdHlsZXItZ3V0dGVyLWhpZ2hsaWdodFwiKSA6IGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LnJlbW92ZShcImNvZGUtc3R5bGVyLWd1dHRlci1oaWdobGlnaHRcIik7XG5cdHRoZW1lU2V0dGluZ3MuZ3V0dGVyLmFjdGl2ZUxpbmUgPyBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5hZGQoXCJjb2RlLXN0eWxlci1ndXR0ZXItYWN0aXZlLWxpbmVcIikgOiBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5yZW1vdmUoXCJjb2RlLXN0eWxlci1ndXR0ZXItYWN0aXZlLWxpbmVcIik7XG5cdFxuXHRkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5yZW1vdmUoXCJjb2RlLXN0eWxlci1hY3RpdmUtbGluZS1oaWdobGlnaHRcIixcImNvZGUtc3R5bGVyLWFjdGl2ZS1saW5lLWhpZ2hsaWdodC1jb2RlYmxvY2tcIixcImNvZGUtc3R5bGVyLWFjdGl2ZS1saW5lLWhpZ2hsaWdodC1lZGl0b3JcIik7IC8vVE9ETyAoQG1heXVyYW5rdikgSXMgdGhpcyBzZWN0aW9uIG5lY2Vzc2FyeT8gSXMgdGhpcyBmdW5jdGlvbiBuZWNlc3Nhcnk/XG5cdGlmICh0aGVtZVNldHRpbmdzLmhpZ2hsaWdodHMuYWN0aXZlRWRpdG9yTGluZSAmJiB0aGVtZVNldHRpbmdzLmhpZ2hsaWdodHMuYWN0aXZlQ29kZWJsb2NrTGluZSkgLy8gSW5zaWRlIGFuZCBvdXRzaWRlIG9mIGNvZGVibG9ja3Mgd2l0aCBkaWZmZXJlbnQgY29sb3Vyc1xuXHRcdGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LmFkZChcImNvZGUtc3R5bGVyLWFjdGl2ZS1saW5lLWhpZ2hsaWdodFwiKTtcblx0ZWxzZSBpZiAodGhlbWVTZXR0aW5ncy5oaWdobGlnaHRzLmFjdGl2ZUVkaXRvckxpbmUgJiYgIXRoZW1lU2V0dGluZ3MuaGlnaGxpZ2h0cy5hY3RpdmVDb2RlYmxvY2tMaW5lKSAvLyBPbmx5IG91dHNpZGUgY29kZWJsb2Nrc1xuXHRcdGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LmFkZChcImNvZGUtc3R5bGVyLWFjdGl2ZS1saW5lLWhpZ2hsaWdodC1lZGl0b3JcIik7XG5cdGVsc2UgaWYgKCF0aGVtZVNldHRpbmdzLmhpZ2hsaWdodHMuYWN0aXZlRWRpdG9yTGluZSAmJiB0aGVtZVNldHRpbmdzLmhpZ2hsaWdodHMuYWN0aXZlQ29kZWJsb2NrTGluZSkgLy8gT25seSBpbnNpZGUgY29kZWJsb2Nrc1xuXHRcdGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LmFkZChcImNvZGUtc3R5bGVyLWFjdGl2ZS1saW5lLWhpZ2hsaWdodC1jb2RlYmxvY2tcIik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZW1vdmVTdHlsZXNBbmRDbGFzc2VzKCk6IHZvaWQge1xuXHRkb2N1bWVudC5nZXRFbGVtZW50QnlJZChTVFlMRV9JRCk/LnJlbW92ZSgpO1xuXHRkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5yZW1vdmUoXG5cdFx0XCJjb2RlLXN0eWxlclwiLFxuXHRcdFwiY29kZS1zdHlsZXItc2hvdy1saW5lLW51bWJlcnNcIixcblx0XHRcImNvZGUtc3R5bGVyLWd1dHRlci1oaWdobGlnaHRcIixcblx0XHRcImNvZGUtc3R5bGVyLWd1dHRlci1hY3RpdmUtbGluZVwiLFxuXHQpO1xufVxuXG5mdW5jdGlvbiBnZXRDdXJyZW50VGhlbWUoYXBwOiBBcHApOiBzdHJpbmcge1xuXHQvL0B0cy1leHBlY3QtZXJyb3IgVW5kb2N1bWVudGVkIE9ic2lkaWFuIEFQSVxuXHRyZXR1cm4gYXBwLnZhdWx0LmdldENvbmZpZyhcImNzc1RoZW1lXCIpO1xufVxuIiwgImltcG9ydCB7IGVkaXRvckVkaXRvckZpZWxkLCBlZGl0b3JJbmZvRmllbGQsIGVkaXRvckxpdmVQcmV2aWV3RmllbGQgfSBmcm9tIFwib2JzaWRpYW5cIjtcbmltcG9ydCB7IFZpZXdQbHVnaW4sIEVkaXRvclZpZXcsIFZpZXdVcGRhdGUsIERlY29yYXRpb24sIERlY29yYXRpb25TZXQsIFdpZGdldFR5cGUgfSBmcm9tIFwiQGNvZGVtaXJyb3Ivdmlld1wiO1xuaW1wb3J0IHsgRXh0ZW5zaW9uLCBFZGl0b3JTdGF0ZSwgU3RhdGVGaWVsZCwgU3RhdGVFZmZlY3QsIFN0YXRlRWZmZWN0VHlwZSwgUmFuZ2UsIFJhbmdlU2V0QnVpbGRlciwgVHJhbnNhY3Rpb24sIExpbmUsIFNlbGVjdGlvblJhbmdlIH0gZnJvbSBcIkBjb2RlbWlycm9yL3N0YXRlXCI7XG5pbXBvcnQgeyBzeW50YXhUcmVlLCB0b2tlbkNsYXNzTm9kZVByb3AgfSBmcm9tIFwiQGNvZGVtaXJyb3IvbGFuZ3VhZ2VcIjtcbmltcG9ydCB7IFN5bnRheE5vZGVSZWYgfSBmcm9tIFwiQGxlemVyL2NvbW1vblwiO1xuXG5pbXBvcnQgeyBDb2RlU3R5bGVyU2V0dGluZ3MsIENvZGVTdHlsZXJUaGVtZVNldHRpbmdzIH0gZnJvbSBcIi4vU2V0dGluZ3NcIjtcbmltcG9ydCB7IENvZGVibG9ja1BhcmFtZXRlcnMsIHBhcnNlQ29kZWJsb2NrUGFyYW1ldGVycywgdGVzdE9wZW5pbmdMaW5lLCBpc0V4Y2x1ZGVkLCBhcnJheXNFcXVhbCwgdHJpbVBhcmFtZXRlckxpbmUsIElubGluZUNvZGVQYXJhbWV0ZXJzLCBwYXJzZUlubGluZUNvZGUgfSBmcm9tIFwiLi9Db2RlYmxvY2tQYXJzaW5nXCI7XG5pbXBvcnQgeyBjcmVhdGVIZWFkZXIsIGNyZWF0ZUlubGluZU9wZW5lciwgZ2V0TGFuZ3VhZ2VJY29uLCBnZXRMaW5lQ2xhc3MsIGdldExpbmVOdW1iZXJEaXNwbGF5LCBpc0hlYWRlckhpZGRlbiB9IGZyb20gXCIuL0NvZGVibG9ja0RlY29yYXRpbmdcIjtcblxuaW50ZXJmYWNlIFNldHRpbmdzU3RhdGUge1xuXHRleGNsdWRlZENvZGVibG9ja3M6IHN0cmluZztcblx0ZXhjbHVkZWRMYW5ndWFnZXM6IHN0cmluZztcblx0YWx0ZXJuYXRpdmVIaWdobGlnaHRzOiBBcnJheTxzdHJpbmc+O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlQ29kZWJsb2NrQ29kZU1pcnJvckV4dGVuc2lvbnMoc2V0dGluZ3M6IENvZGVTdHlsZXJTZXR0aW5ncywgbGFuZ3VhZ2VJY29uczogUmVjb3JkPHN0cmluZyxzdHJpbmc+KSB7XG5cdGNvbnN0IGNvZGVibG9ja0xpbmVzID0gVmlld1BsdWdpbi5mcm9tQ2xhc3MoIC8vVE9ETyAoQG1heXVyYW5rdikgVXBkYXRlXG5cdFx0Y2xhc3MgQ29kZWJsb2NrTGluZXMge1xuXHRcdFx0c2V0dGluZ3M6IENvZGVTdHlsZXJTZXR0aW5ncztcblx0XHRcdGRlY29yYXRpb25zOiBEZWNvcmF0aW9uU2V0O1xuXHRcdFx0bXV0YXRpb25PYnNlcnZlcjogTXV0YXRpb25PYnNlcnZlcjtcblx0XHRcblx0XHRcdGNvbnN0cnVjdG9yKHZpZXc6IEVkaXRvclZpZXcpIHtcblx0XHRcdFx0dGhpcy5zZXR0aW5ncyA9IHNldHRpbmdzO1xuXHRcdFx0XHR0aGlzLmRlY29yYXRpb25zID0gRGVjb3JhdGlvbi5ub25lO1xuXHRcdFx0XHR0aGlzLmJ1aWxkRGVjb3JhdGlvbnModmlldyk7XG5cdFx0XHRcdHRoaXMubXV0YXRpb25PYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKChtdXRhdGlvbnMpID0+IHttdXRhdGlvbnMuZm9yRWFjaCgobXV0YXRpb246IE11dGF0aW9uUmVjb3JkKSA9PiB7XG5cdFx0XHRcdFx0aWYgKG11dGF0aW9uLnR5cGUgPT09IFwiYXR0cmlidXRlc1wiICYmIG11dGF0aW9uLmF0dHJpYnV0ZU5hbWUgPT09IFwiY2xhc3NcIiAmJiAoXG5cdFx0XHRcdFx0XHQobXV0YXRpb24udGFyZ2V0IGFzIEhUTUxFbGVtZW50KS5jbGFzc0xpc3QuY29udGFpbnMoXCJIeXBlck1ELWNvZGVibG9jay1iZWdpblwiKSB8fFxuXHRcdFx0XHRcdFx0XHQobXV0YXRpb24udGFyZ2V0IGFzIEhUTUxFbGVtZW50KS5jbGFzc0xpc3QuY29udGFpbnMoXCJIeXBlck1ELWNvZGVibG9ja19IeXBlck1ELWNvZGVibG9jay1iZ1wiKSB8fFxuXHRcdFx0XHRcdFx0XHQobXV0YXRpb24udGFyZ2V0IGFzIEhUTUxFbGVtZW50KS5jbGFzc0xpc3QuY29udGFpbnMoXCJIeXBlck1ELWNvZGVibG9jay1lbmRcIilcblx0XHRcdFx0XHQpKSB7XG5cdFx0XHRcdFx0XHR0aGlzLmJ1aWxkRGVjb3JhdGlvbnModmlldyk7XG5cdFx0XHRcdFx0XHR2aWV3LnJlcXVlc3RNZWFzdXJlKCk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9KTtcblx0XHRcdFx0fSk7XG5cdFx0XHRcdHRoaXMubXV0YXRpb25PYnNlcnZlci5vYnNlcnZlKHZpZXcuY29udGVudERPTSwgIHtcblx0XHRcdFx0XHRhdHRyaWJ1dGVzOiB0cnVlLFxuXHRcdFx0XHRcdGNoaWxkTGlzdDogdHJ1ZSxcblx0XHRcdFx0XHRzdWJ0cmVlOiB0cnVlLFxuXHRcdFx0XHRcdGF0dHJpYnV0ZUZpbHRlcjogW1wiY2xhc3NcIl0sXG5cdFx0XHRcdH0pO1xuXHRcdFx0fVxuXHRcdFxuXHRcdFx0dXBkYXRlKHVwZGF0ZTogVmlld1VwZGF0ZSkge1xuXHRcdFx0XHRpZiAodXBkYXRlLmRvY0NoYW5nZWQgfHwgXG5cdFx0XHRcdFx0dXBkYXRlLnZpZXdwb3J0Q2hhbmdlZCB8fCBcblx0XHRcdFx0XHR1cGRhdGUuc3RhdGUuZmllbGQoZWRpdG9yTGl2ZVByZXZpZXdGaWVsZCkgIT09IHVwZGF0ZS5zdGFydFN0YXRlLmZpZWxkKGVkaXRvckxpdmVQcmV2aWV3RmllbGQpIHx8XG5cdFx0XHRcdFx0IXNldHRpbmdzRXF1YWwodXBkYXRlLnN0YXRlLmZpZWxkKHNldHRpbmdzU3RhdGUpLHVwZGF0ZS5zdGFydFN0YXRlLmZpZWxkKHNldHRpbmdzU3RhdGUpKVxuXHRcdFx0XHQpIHtcblx0XHRcdFx0XHR0aGlzLmJ1aWxkRGVjb3JhdGlvbnModXBkYXRlLnZpZXcpO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XG5cdFx0XHRidWlsZERlY29yYXRpb25zKHZpZXc6IEVkaXRvclZpZXcpIHtcblx0XHRcdFx0aWYgKCF2aWV3Py52aXNpYmxlUmFuZ2VzPy5sZW5ndGggfHwgZWRpdGluZ1ZpZXdJZ25vcmUodmlldy5zdGF0ZSkpIHtcblx0XHRcdFx0XHR0aGlzLmRlY29yYXRpb25zID0gRGVjb3JhdGlvbi5ub25lO1xuXHRcdFx0XHRcdHJldHVybjtcblx0XHRcdFx0fVxuXHRcdFx0XHRjb25zdCBidWlsZGVyID0gbmV3IFJhbmdlU2V0QnVpbGRlcjxEZWNvcmF0aW9uPigpO1xuXHRcdFx0XHRjb25zdCBjb2RlYmxvY2tzID0gZmluZFVuZHVwbGljYXRlZENvZGVibG9ja3Modmlldyk7XG5cdFx0XHRcdGZvciAoY29uc3QgY29kZWJsb2NrIG9mIGNvZGVibG9ja3MpIHtcblx0XHRcdFx0XHRsZXQgY29kZWJsb2NrUGFyYW1ldGVyczogQ29kZWJsb2NrUGFyYW1ldGVycztcblx0XHRcdFx0XHRsZXQgZXhjbHVkZWRDb2RlYmxvY2sgPSBmYWxzZTtcblx0XHRcdFx0XHRsZXQgbGluZU51bWJlciA9IDA7XG5cdFx0XHRcdFx0bGV0IG1heExpbmVOdW0gPSAwO1xuXHRcdFx0XHRcdGxldCBsaW5lTnVtYmVyTWFyZ2luOiBudW1iZXIgfCB1bmRlZmluZWQgPSAwO1xuXHRcdFx0XHRcdHN5bnRheFRyZWUodmlldy5zdGF0ZSkuaXRlcmF0ZSh7ZnJvbTogY29kZWJsb2NrLmZyb20sIHRvOiBjb2RlYmxvY2sudG8sXG5cdFx0XHRcdFx0XHRlbnRlcjogKHN5bnRheE5vZGUpPT57XG5cdFx0XHRcdFx0XHRcdGNvbnN0IGxpbmUgPSB2aWV3LnN0YXRlLmRvYy5saW5lQXQoc3ludGF4Tm9kZS5mcm9tKTtcblx0XHRcdFx0XHRcdFx0Y29uc3QgbGluZVRleHQgPSB2aWV3LnN0YXRlLnNsaWNlRG9jKGxpbmUuZnJvbSxsaW5lLnRvKTtcblx0XHRcdFx0XHRcdFx0Y29uc3Qgc3RhcnRMaW5lID0gc3ludGF4Tm9kZS50eXBlLm5hbWUuaW5jbHVkZXMoXCJIeXBlck1ELWNvZGVibG9jay1iZWdpblwiKTtcblx0XHRcdFx0XHRcdFx0Y29uc3QgZW5kTGluZSA9IHN5bnRheE5vZGUudHlwZS5uYW1lLmluY2x1ZGVzKFwiSHlwZXJNRC1jb2RlYmxvY2stZW5kXCIpO1xuXHRcdFx0XHRcdFx0XHRpZiAoc3RhcnRMaW5lKSB7XG5cdFx0XHRcdFx0XHRcdFx0Y29kZWJsb2NrUGFyYW1ldGVycyA9IHBhcnNlQ29kZWJsb2NrUGFyYW1ldGVycyh0cmltUGFyYW1ldGVyTGluZShsaW5lVGV4dCksdGhpcy5zZXR0aW5ncy5jdXJyZW50VGhlbWUpO1xuXHRcdFx0XHRcdFx0XHRcdGV4Y2x1ZGVkQ29kZWJsb2NrID0gaXNFeGNsdWRlZChjb2RlYmxvY2tQYXJhbWV0ZXJzLmxhbmd1YWdlLFt0aGlzLnNldHRpbmdzLmV4Y2x1ZGVkQ29kZWJsb2Nrcyx0aGlzLnNldHRpbmdzLmV4Y2x1ZGVkTGFuZ3VhZ2VzXS5qb2luKFwiLFwiKSkgfHwgY29kZWJsb2NrUGFyYW1ldGVycy5pZ25vcmU7XG5cdFx0XHRcdFx0XHRcdFx0bGluZU51bWJlciA9IDA7XG5cdFx0XHRcdFx0XHRcdFx0bGV0IGxpbmVOdW1iZXJDb3VudCA9IGxpbmUubnVtYmVyICsgMTtcblx0XHRcdFx0XHRcdFx0XHRjb25zdCBzdGFydERlbGltaXRlciA9IHRlc3RPcGVuaW5nTGluZShsaW5lVGV4dCk7XG5cdFx0XHRcdFx0XHRcdFx0d2hpbGUgKHN0YXJ0RGVsaW1pdGVyICE9PSB0ZXN0T3BlbmluZ0xpbmUodmlldy5zdGF0ZS5kb2MubGluZShsaW5lTnVtYmVyQ291bnQpLnRleHQpKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRsaW5lTnVtYmVyQ291bnQgKz0gMTtcblx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0bWF4TGluZU51bSA9IGxpbmVOdW1iZXJDb3VudCAtIGxpbmUubnVtYmVyIC0gMSArIGNvZGVibG9ja1BhcmFtZXRlcnMubGluZU51bWJlcnMub2Zmc2V0O1xuXHRcdFx0XHRcdFx0XHRcdGlmIChtYXhMaW5lTnVtLnRvU3RyaW5nKCkubGVuZ3RoID4gMilcblx0XHRcdFx0XHRcdFx0XHRcdGxpbmVOdW1iZXJNYXJnaW4gPSBtYXhMaW5lTnVtLnRvU3RyaW5nKCkubGVuZ3RoICogdmlldy5zdGF0ZS5maWVsZChjaGFyV2lkdGhTdGF0ZSk7XG5cdFx0XHRcdFx0XHRcdFx0ZWxzZVxuXHRcdFx0XHRcdFx0XHRcdFx0bGluZU51bWJlck1hcmdpbiA9IHVuZGVmaW5lZDtcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRpZiAoZXhjbHVkZWRDb2RlYmxvY2spXG5cdFx0XHRcdFx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0XHRcdFx0XHRpZiAoc3ludGF4Tm9kZS50eXBlLm5hbWUuaW5jbHVkZXMoXCJIeXBlck1ELWNvZGVibG9ja1wiKSkge1xuXHRcdFx0XHRcdFx0XHRcdGJ1aWxkZXIuYWRkKHN5bnRheE5vZGUuZnJvbSxzeW50YXhOb2RlLmZyb20sRGVjb3JhdGlvbi5saW5lKHthdHRyaWJ1dGVzOiB7c3R5bGU6IGAtLWxpbmUtbnVtYmVyLWd1dHRlci13aWR0aDogJHtsaW5lTnVtYmVyTWFyZ2luP2xpbmVOdW1iZXJNYXJnaW4rXCJweFwiOlwiY2FsYyh2YXIoLS1saW5lLW51bWJlci1ndXR0ZXItbWluLXdpZHRoKSAtIDEycHgpXCJ9YCwgY2xhc3M6ICgodGhpcy5zZXR0aW5ncy5zcGVjaWFsTGFuZ3VhZ2VzLnNvbWUocmVnRXhwID0+IG5ldyBSZWdFeHAocmVnRXhwKS50ZXN0KGNvZGVibG9ja1BhcmFtZXRlcnMubGFuZ3VhZ2UpKXx8c3RhcnRMaW5lfHxlbmRMaW5lKT9cImNvZGUtc3R5bGVyLWxpbmVcIjpnZXRMaW5lQ2xhc3MoY29kZWJsb2NrUGFyYW1ldGVycyxsaW5lTnVtYmVyLGxpbmUudGV4dCkuam9pbihcIiBcIikpKyhbXCJeJFwiXS5jb25jYXQodGhpcy5zZXR0aW5ncy5zcGVjaWFsTGFuZ3VhZ2VzKS5zb21lKHJlZ0V4cCA9PiBuZXcgUmVnRXhwKHJlZ0V4cCkudGVzdChjb2RlYmxvY2tQYXJhbWV0ZXJzLmxhbmd1YWdlKSk/XCJcIjpgIGxhbmd1YWdlLSR7Y29kZWJsb2NrUGFyYW1ldGVycy5sYW5ndWFnZX1gKX19KSk7XG5cdFx0XHRcdFx0XHRcdFx0YnVpbGRlci5hZGQoc3ludGF4Tm9kZS5mcm9tLHN5bnRheE5vZGUuZnJvbSxEZWNvcmF0aW9uLmxpbmUoe30pKTtcblx0XHRcdFx0XHRcdFx0XHRidWlsZGVyLmFkZChzeW50YXhOb2RlLmZyb20sc3ludGF4Tm9kZS5mcm9tLERlY29yYXRpb24ud2lkZ2V0KHt3aWRnZXQ6IG5ldyBMaW5lTnVtYmVyV2lkZ2V0KGxpbmVOdW1iZXIsY29kZWJsb2NrUGFyYW1ldGVycyxtYXhMaW5lTnVtLHN0YXJ0TGluZXx8ZW5kTGluZSl9KSk7XG5cdFx0XHRcdFx0XHRcdFx0bGluZU51bWJlcisrO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdH1cblx0XHRcdFx0dGhpcy5kZWNvcmF0aW9ucyA9IGJ1aWxkZXIuZmluaXNoKCk7XG5cdFx0XHR9XG5cdFx0XG5cdFx0XHRkZXN0cm95KCkge1xuXHRcdFx0XHR0aGlzLm11dGF0aW9uT2JzZXJ2ZXIuZGlzY29ubmVjdCgpO1xuXHRcdFx0fVxuXHRcdH0sXG5cdFx0e1xuXHRcdFx0ZGVjb3JhdGlvbnM6ICh2YWx1ZSkgPT4gdmFsdWUuZGVjb3JhdGlvbnMsXG5cdFx0XHRwcm92aWRlOiAocGx1Z2luKSA9PiBFZGl0b3JWaWV3LmF0b21pY1Jhbmdlcy5vZigodmlldyk9PnZpZXcuc3RhdGUuZmllbGQoZm9sZERlY29yYXRpb25zKSB8fCBEZWNvcmF0aW9uLm5vbmUpLCAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuXHRcdH1cblx0KTtcblx0Y29uc3QgaW5saW5lQ29kZURlY29yYXRvciA9IFZpZXdQbHVnaW4uZnJvbUNsYXNzKCAvL1RPRE8gKEBtYXl1cmFua3YpIFVwZGF0ZVxuXHRcdGNsYXNzIElubGluZUNvZGVEZWNvcmF0aW9uIHtcblx0XHRcdGRlY29yYXRpb25zOiBEZWNvcmF0aW9uU2V0O1xuXHRcdFx0c2V0dGluZ3M6IENvZGVTdHlsZXJTZXR0aW5ncztcblx0XHRcdHN5bnRheEhpZ2hsaWdodDogYm9vbGVhbjtcblx0XHRcdC8vTk9TT05BUlxuXHRcdFx0Ly8gbG9hZGVkTGFuZ3VhZ2VzOiBSZWNvcmQ8c3RyaW5nLExhbmd1YWdlU3VwcG9ydD47IC8vTk9URTogRm9yIGZ1dHVyZSBDTTYgQ29tcGF0aWJpbGl0eVxuXG5cdFx0XHRjb25zdHJ1Y3Rvcih2aWV3OiBFZGl0b3JWaWV3KSB7XG5cdFx0XHRcdHRoaXMuZGVjb3JhdGlvbnMgPSBEZWNvcmF0aW9uLm5vbmU7XG5cdFx0XHRcdHRoaXMuc2V0dGluZ3MgPSBzZXR0aW5ncztcblx0XHRcdFx0dGhpcy5zeW50YXhIaWdobGlnaHQgPSBzZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaW5saW5lLnN5bnRheEhpZ2hsaWdodDtcblx0XHRcdFx0dGhpcy5idWlsZERlY29yYXRpb25zKHZpZXcpO1xuXHRcdFx0XHQvL05PU09OQVJcblx0XHRcdFx0Ly8gdGhpcy5sb2FkZWRMYW5ndWFnZXMgPSB7fTsgLy9OT1RFOiBGb3IgZnV0dXJlIENNNiBDb21wYXRpYmlsaXR5XG5cdFx0XHR9XG5cblx0XHRcdHVwZGF0ZSh1cGRhdGU6IFZpZXdVcGRhdGUpIHtcblx0XHRcdFx0aWYgKHVwZGF0ZS5kb2NDaGFuZ2VkIHx8IHVwZGF0ZS52aWV3cG9ydENoYW5nZWQgfHwgdXBkYXRlLnNlbGVjdGlvblNldCB8fCB1cGRhdGUuc3RhdGUuZmllbGQoZWRpdG9yTGl2ZVByZXZpZXdGaWVsZCkhPT11cGRhdGUuc3RhcnRTdGF0ZS5maWVsZChlZGl0b3JMaXZlUHJldmlld0ZpZWxkKSB8fCB0aGlzLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5pbmxpbmUuc3ludGF4SGlnaGxpZ2h0ICE9PSB0aGlzLnN5bnRheEhpZ2hsaWdodCkge1xuXHRcdFx0XHRcdHRoaXMuc3ludGF4SGlnaGxpZ2h0ID0gdGhpcy5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MuaW5saW5lLnN5bnRheEhpZ2hsaWdodDtcblx0XHRcdFx0XHRpZiAodXBkYXRlLmRvY0NoYW5nZWQpIFxuXHRcdFx0XHRcdFx0dGhpcy5kZWNvcmF0aW9ucyA9IHRoaXMuZGVjb3JhdGlvbnMubWFwKHVwZGF0ZS5jaGFuZ2VzKTtcblx0XHRcdFx0XHR0aGlzLmJ1aWxkRGVjb3JhdGlvbnModXBkYXRlLnZpZXcpO1xuXHRcdFx0XHQvL05PU09OQVJcblx0XHRcdFx0Ly9OT1RFOiBGb3IgZnV0dXJlIENNNiBDb21wYXRpYmlsaXR5XG5cdFx0XHRcdC8vIFx0Y29uc3QgdG9IaWdobGlnaHQgPSB0aGlzLmJ1aWxkRGVjb3JhdGlvbnModXBkYXRlLnZpZXcpO1xuXHRcdFx0XHQvLyBcdHRvSGlnaGxpZ2h0LmZvckVhY2goKGhpZ2hsaWdodFNldCk9Pntcblx0XHRcdFx0Ly8gXHRcdGlmICghaGlnaGxpZ2h0U2V0Py5sYW5ndWFnZSlcblx0XHRcdFx0Ly8gXHRcdFx0cmV0dXJuO1xuXHRcdFx0XHQvLyBcdFx0aWYgKGhpZ2hsaWdodFNldC5sYW5ndWFnZSBpbiB0aGlzLmxvYWRlZExhbmd1YWdlcykge1xuXHRcdFx0XHQvLyBcdFx0XHR0aGlzLmRlY29yYXRpb25zID0gdGhpcy5kZWNvcmF0aW9ucy51cGRhdGUoe2FkZDogbGFuZ3VhZ2VIaWdobGlnaHQoaGlnaGxpZ2h0U2V0KX0pO1xuXHRcdFx0XHQvLyBcdFx0fSBlbHNlIHtcblx0XHRcdFx0Ly8gXHRcdFx0Y29uc3QgbGFuZ3VhZ2VEZXNjcmlwdGlvbiA9IExhbmd1YWdlRGVzY3JpcHRpb24ubWF0Y2hMYW5ndWFnZU5hbWUobGFuZ3VhZ2VzLGhpZ2hsaWdodFNldC5sYW5ndWFnZSk7XG5cdFx0XHRcdC8vIFx0XHRcdGlmICghbGFuZ3VhZ2VEZXNjcmlwdGlvbilcblx0XHRcdFx0Ly8gXHRcdFx0XHRyZXR1cm47XG5cdFx0XHRcdC8vIFx0XHRcdGxhbmd1YWdlRGVzY3JpcHRpb24ubG9hZCgpLnRoZW4oKGxhbmd1YWdlU3VwcG9ydCk9Pntcblx0XHRcdFx0Ly8gXHRcdFx0XHR0aGlzLmxvYWRlZExhbmd1YWdlc1toaWdobGlnaHRTZXQubGFuZ3VhZ2VdID0gbGFuZ3VhZ2VTdXBwb3J0O1xuXHRcdFx0XHQvLyBcdFx0XHRcdHVwZGF0ZS52aWV3LmRpc3BhdGNoKHt9KTtcblx0XHRcdFx0Ly8gXHRcdFx0XHR1cGRhdGUudmlldy5kaXNwYXRjaCh7YW5ub3RhdGlvbnM6IHN5bnRheEhpZ2hsaWdodERlY29yYXRpb25zLm9mKG1hcmtEZWNvcmF0aW9ucyl9KVxuXHRcdFx0XHQvLyBcdFx0XHR9KTtcblx0XHRcdFx0Ly8gXHRcdH1cblx0XHRcdFx0Ly8gXHR9KTtcblx0XHRcdFx0Ly8gfSBlbHNlIHtcblx0XHRcdFx0Ly8gXHR1cGRhdGUudHJhbnNhY3Rpb25zLmZvckVhY2goKHRyYW5zYWN0aW9uKT0+e1xuXHRcdFx0XHQvLyBcdFx0Y29uc3QgbWFya0RlY29yYXRpb25zID0gdHJhbnNhY3Rpb24uYW5ub3RhdGlvbihzeW50YXhIaWdobGlnaHREZWNvcmF0aW9ucyk7XG5cdFx0XHRcdC8vIFx0XHRpZiAobWFya0RlY29yYXRpb25zKVxuXHRcdFx0XHQvLyBcdFx0XHR0aGlzLmRlY29yYXRpb25zID0gdGhpcy5kZWNvcmF0aW9ucy51cGRhdGUoe2FkZDogbWFya0RlY29yYXRpb25zfSlcblx0XHRcdFx0Ly8gXHR9KTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHRidWlsZERlY29yYXRpb25zKHZpZXc6IEVkaXRvclZpZXcpOiB2b2lkIHsgLy9BcnJheTx7c3RhcnQ6IG51bWJlciwgdGV4dDogc3RyaW5nLCBsYW5ndWFnZTogc3RyaW5nfT4gLy9OT1RFOiBGb3IgZnV0dXJlIENNNiBDb21wYXRpYmlsaXR5IC8vTk9TT05BUlxuXHRcdFx0XHRpZiAoIXZpZXc/LnZpc2libGVSYW5nZXM/Lmxlbmd0aCkge1xuXHRcdFx0XHRcdHRoaXMuZGVjb3JhdGlvbnMgPSBEZWNvcmF0aW9uLm5vbmU7XG5cdFx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0XHRcdC8vTk9TT05BUlxuXHRcdFx0XHRcdC8vIHJldHVybiBbXTsvL05PVEU6IEZvciBmdXR1cmUgQ002IENvbXBhdGliaWxpdHlcblx0XHRcdFx0fVxuXHRcdFx0XHQvL05PU09OQVJcblx0XHRcdFx0Ly8gbGV0IHRvSGlnaGxpZ2h0OiBBcnJheTx7c3RhcnQ6IG51bWJlciwgdGV4dDogc3RyaW5nLCBsYW5ndWFnZTogc3RyaW5nfT4gPSBbXTsgLy9OT1RFOiBGb3IgZnV0dXJlIENNNiBDb21wYXRpYmlsaXR5XG5cdFx0XHRcdGNvbnN0IHNvdXJjZU1vZGUgPSBlZGl0aW5nVmlld0lnbm9yZSh2aWV3LnN0YXRlKTtcblx0XHRcdFx0Zm9yIChjb25zdCB7ZnJvbSx0b30gb2Ygdmlldy52aXNpYmxlUmFuZ2VzKSB7XG5cdFx0XHRcdFx0c3ludGF4VHJlZSh2aWV3LnN0YXRlKS5pdGVyYXRlKHtmcm9tOiBmcm9tLCB0bzogdG8sXG5cdFx0XHRcdFx0XHRlbnRlcjogKHN5bnRheE5vZGUpPT57XG5cdFx0XHRcdFx0XHRcdGNvbnN0IHByb3BlcnRpZXMgPSBuZXcgU2V0KHN5bnRheE5vZGUubm9kZS50eXBlLnByb3A8c3RyaW5nPih0b2tlbkNsYXNzTm9kZVByb3ApPy5zcGxpdChcIiBcIikpO1xuXHRcdFx0XHRcdFx0XHRpZiAoIShwcm9wZXJ0aWVzLmhhcyhcImlubGluZS1jb2RlXCIpICYmICFwcm9wZXJ0aWVzLmhhcyhcImZvcm1hdHRpbmdcIikpKVxuXHRcdFx0XHRcdFx0XHRcdHJldHVybjtcblx0XHRcdFx0XHRcdFx0Y29uc3QgcHJldmlvdXNTaWJsaW5nID0gc3ludGF4Tm9kZS5ub2RlLnByZXZTaWJsaW5nO1xuXHRcdFx0XHRcdFx0XHRpZiAoIXByZXZpb3VzU2libGluZylcblx0XHRcdFx0XHRcdFx0XHRyZXR1cm47XG5cdFx0XHRcdFx0XHRcdGNvbnN0IGRlbGltaXRlclNpemUgPSBwcmV2aW91c1NpYmxpbmcudG8tcHJldmlvdXNTaWJsaW5nLmZyb207XG5cdFx0XHRcdFx0XHRcdGNvbnN0IGlubGluZUNvZGVUZXh0ID0gdmlldy5zdGF0ZS5kb2Muc2xpY2VTdHJpbmcoc3ludGF4Tm9kZS5mcm9tLCBzeW50YXhOb2RlLnRvKTtcblx0XHRcdFx0XHRcdFx0Y29uc3Qge3BhcmFtZXRlcnMsdGV4dH0gPSBwYXJzZUlubGluZUNvZGUoaW5saW5lQ29kZVRleHQpO1xuXHRcdFx0XHRcdFx0XHRjb25zdCBlbmRPZlBhcmFtZXRlcnMgPSBpbmxpbmVDb2RlVGV4dC5sYXN0SW5kZXhPZih0ZXh0KTtcblx0XHRcdFx0XHRcdFx0aWYgKCFwYXJhbWV0ZXJzKSB7XG5cdFx0XHRcdFx0XHRcdFx0aWYgKHRleHQpIHtcblx0XHRcdFx0XHRcdFx0XHRcdGlmICh2aWV3LnN0YXRlLnNlbGVjdGlvbi5yYW5nZXMuc29tZSgocmFuZ2U6IFNlbGVjdGlvblJhbmdlKT0+cmFuZ2UudG8gPj0gc3ludGF4Tm9kZS5mcm9tLWRlbGltaXRlclNpemUgJiYgcmFuZ2UuZnJvbSA8PSBzeW50YXhOb2RlLnRvK2RlbGltaXRlclNpemUpIHx8IGVkaXRpbmdWaWV3SWdub3JlKHZpZXcuc3RhdGUpKVxuXHRcdFx0XHRcdFx0XHRcdFx0XHR0aGlzLmRlY29yYXRpb25zID0gdGhpcy5kZWNvcmF0aW9ucy51cGRhdGUoe2ZpbHRlckZyb206IHN5bnRheE5vZGUuZnJvbSwgZmlsdGVyVG86IHN5bnRheE5vZGUuZnJvbSwgZmlsdGVyOiAoKT0+ZmFsc2V9KTtcblx0XHRcdFx0XHRcdFx0XHRcdGVsc2Vcblx0XHRcdFx0XHRcdFx0XHRcdFx0dGhpcy5kZWNvcmF0aW9ucyA9IHRoaXMuZGVjb3JhdGlvbnMudXBkYXRlKHthZGQ6IFt7ZnJvbTogc3ludGF4Tm9kZS5mcm9tLCB0bzogc3ludGF4Tm9kZS5mcm9tICsgZW5kT2ZQYXJhbWV0ZXJzLCB2YWx1ZTogRGVjb3JhdGlvbi5yZXBsYWNlKHt9KX1dfSk7XG5cdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0XHRcdGlmICh2aWV3LnN0YXRlLnNlbGVjdGlvbi5yYW5nZXMuc29tZSgocmFuZ2U6IFNlbGVjdGlvblJhbmdlKT0+cmFuZ2UudG8gPj0gc3ludGF4Tm9kZS5mcm9tLWRlbGltaXRlclNpemUgJiYgcmFuZ2UuZnJvbSA8PSBzeW50YXhOb2RlLnRvK2RlbGltaXRlclNpemUpKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHR0aGlzLmRlY29yYXRpb25zLmJldHdlZW4oc3ludGF4Tm9kZS5mcm9tLCBzeW50YXhOb2RlLmZyb20sIChmcm9tOiBudW1iZXIsIHRvOiBudW1iZXIpPT57XG5cdFx0XHRcdFx0XHRcdFx0XHRcdHRoaXMuZGVjb3JhdGlvbnMgPSB0aGlzLmRlY29yYXRpb25zLnVwZGF0ZSh7ZmlsdGVyRnJvbTogZnJvbSwgZmlsdGVyVG86IHRvLCBmaWx0ZXI6ICgpPT5mYWxzZX0pO1xuXHRcdFx0XHRcdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0XHRcdFx0XHR0aGlzLmRlY29yYXRpb25zID0gdGhpcy5kZWNvcmF0aW9ucy51cGRhdGUoe2FkZDogW3tmcm9tOiBzeW50YXhOb2RlLmZyb20sIHRvOiBzeW50YXhOb2RlLmZyb20gKyBlbmRPZlBhcmFtZXRlcnMsIHZhbHVlOiBEZWNvcmF0aW9uLm1hcmsoe2NsYXNzOiBcImNvZGUtc3R5bGVyLWlubGluZS1wYXJhbWV0ZXJzXCJ9KX1dfSk7XG5cdFx0XHRcdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdFx0XHRcdGxldCBkZWNvcmF0ZWQgPSBmYWxzZTtcblx0XHRcdFx0XHRcdFx0XHRcdHRoaXMuZGVjb3JhdGlvbnMuYmV0d2VlbihzeW50YXhOb2RlLmZyb20sIHN5bnRheE5vZGUuZnJvbSwgKGZyb206IG51bWJlciwgdG86IG51bWJlciwgZGVjb3JhdGlvblZhbHVlOiBEZWNvcmF0aW9uKT0+e1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRpZiAoIWRlY29yYXRpb25WYWx1ZS5zcGVjPy5jbGFzcylcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRkZWNvcmF0ZWQgPSB0cnVlO1xuXHRcdFx0XHRcdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0XHRcdFx0XHRpZiAoIWRlY29yYXRlZCAmJiAhc291cmNlTW9kZSkge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHR0aGlzLmRlY29yYXRpb25zID0gdGhpcy5kZWNvcmF0aW9ucy51cGRhdGUoe2FkZDogW3tmcm9tOiBzeW50YXhOb2RlLmZyb20sIHRvOiBzeW50YXhOb2RlLmZyb20gKyBlbmRPZlBhcmFtZXRlcnMsIHZhbHVlOiBEZWNvcmF0aW9uLnJlcGxhY2Uoe30pfV19KTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0aWYgKHBhcmFtZXRlcnM/LnRpdGxlIHx8IChwYXJhbWV0ZXJzPy5pY29uICYmIGdldExhbmd1YWdlSWNvbihwYXJhbWV0ZXJzLmxhbmd1YWdlLGxhbmd1YWdlSWNvbnMpKSlcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHR0aGlzLmRlY29yYXRpb25zID0gdGhpcy5kZWNvcmF0aW9ucy51cGRhdGUoe2FkZDogW3tmcm9tOiBzeW50YXhOb2RlLmZyb20sIHRvOiBzeW50YXhOb2RlLmZyb20sIHZhbHVlOiBEZWNvcmF0aW9uLnJlcGxhY2Uoe3dpZGdldDogbmV3IE9wZW5lcldpZGdldChwYXJhbWV0ZXJzLGxhbmd1YWdlSWNvbnMpfSl9XX0pO1xuXHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHR0aGlzLmRlY29yYXRpb25zID0gdGhpcy5kZWNvcmF0aW9ucy51cGRhdGUoe2ZpbHRlckZyb206IHN5bnRheE5vZGUuZnJvbSArIGVuZE9mUGFyYW1ldGVycysxLCBmaWx0ZXJUbzogc3ludGF4Tm9kZS50bywgZmlsdGVyOiAoKT0+ZmFsc2V9KTtcblx0XHRcdFx0XHRcdFx0XHRpZiAoc291cmNlTW9kZSlcblx0XHRcdFx0XHRcdFx0XHRcdHRoaXMuZGVjb3JhdGlvbnMgPSB0aGlzLmRlY29yYXRpb25zLnVwZGF0ZSh7ZmlsdGVyRnJvbTogc3ludGF4Tm9kZS5mcm9tLCBmaWx0ZXJUbzogc3ludGF4Tm9kZS5mcm9tICsgZW5kT2ZQYXJhbWV0ZXJzLCBmaWx0ZXI6IChmcm9tOiBudW1iZXIsIHRvOiBudW1iZXIsIHZhbHVlOiBEZWNvcmF0aW9uKT0+XCJjbGFzc1wiIGluIHZhbHVlLnNwZWN9KTsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcblx0XHRcdFx0XHRcdFx0XHRpZiAoIXNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5pbmxpbmUuc3ludGF4SGlnaGxpZ2h0KVxuXHRcdFx0XHRcdFx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0XHRcdFx0XHRcdHRoaXMuZGVjb3JhdGlvbnMgPSB0aGlzLmRlY29yYXRpb25zLnVwZGF0ZSh7YWRkOiBtb2RlSGlnaGxpZ2h0KHtzdGFydDogc3ludGF4Tm9kZS5mcm9tICsgZW5kT2ZQYXJhbWV0ZXJzLCB0ZXh0OiB0ZXh0LCBsYW5ndWFnZTogcGFyYW1ldGVycy5sYW5ndWFnZX0pfSk7XG5cdFx0XHRcdFx0XHRcdFx0Ly9OT1NPTkFSXG5cdFx0XHRcdFx0XHRcdFx0Ly8gdG9IaWdobGlnaHQucHVzaCh7c3RhcnQ6IHN5bnRheE5vZGUuZnJvbSArIGVuZE9mUGFyYW1ldGVycywgdGV4dDogdGV4dCwgbGFuZ3VhZ2U6IHBhcmFtZXRlcnMubGFuZ3VhZ2V9KTsgLy9OT1RFOiBGb3IgZnV0dXJlIENNNiBDb21wYXRpYmlsaXR5XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdH1cblx0XHRcdFx0Ly8gcmV0dXJuIHRvSGlnaGxpZ2h0OyAvL05PVEU6IEZvciBmdXR1cmUgQ002IENvbXBhdGliaWxpdHlcblx0XHRcdH1cblx0XHR9LFxuXHRcdHtcblx0XHRcdGRlY29yYXRpb25zOiAodmFsdWUpID0+IHZhbHVlLmRlY29yYXRpb25zLFxuXHRcdH1cblx0KTtcblx0XG5cdGNvbnN0IHNldHRpbmdzU3RhdGUgPSBTdGF0ZUZpZWxkLmRlZmluZTxTZXR0aW5nc1N0YXRlPih7XG5cdFx0Y3JlYXRlKCk6IFNldHRpbmdzU3RhdGUge1xuXHRcdFx0cmV0dXJuIHtcblx0XHRcdFx0ZXhjbHVkZWRDb2RlYmxvY2tzOiBzZXR0aW5ncy5leGNsdWRlZENvZGVibG9ja3MsXG5cdFx0XHRcdGV4Y2x1ZGVkTGFuZ3VhZ2VzOiBzZXR0aW5ncy5leGNsdWRlZExhbmd1YWdlcyxcblx0XHRcdFx0YWx0ZXJuYXRpdmVIaWdobGlnaHRzOiBPYmplY3Qua2V5cyhzZXR0aW5ncy5jdXJyZW50VGhlbWUuY29sb3Vycy5saWdodC5oaWdobGlnaHRzLmFsdGVybmF0aXZlSGlnaGxpZ2h0cyksXG5cdFx0XHR9O1xuXHRcdH0sXG5cdFx0dXBkYXRlKHZhbHVlOiBTZXR0aW5nc1N0YXRlKTogU2V0dGluZ3NTdGF0ZSB7XG5cdFx0XHRpZiAoc2V0dGluZ3NDaGFuZ2VzKHZhbHVlLHNldHRpbmdzKSkge1xuXHRcdFx0XHRyZXR1cm4ge1xuXHRcdFx0XHRcdGV4Y2x1ZGVkQ29kZWJsb2Nrczogc2V0dGluZ3MuZXhjbHVkZWRDb2RlYmxvY2tzLFxuXHRcdFx0XHRcdGV4Y2x1ZGVkTGFuZ3VhZ2VzOiBzZXR0aW5ncy5leGNsdWRlZExhbmd1YWdlcyxcblx0XHRcdFx0XHRhbHRlcm5hdGl2ZUhpZ2hsaWdodHM6IE9iamVjdC5rZXlzKHNldHRpbmdzLmN1cnJlbnRUaGVtZS5jb2xvdXJzLmxpZ2h0LmhpZ2hsaWdodHMuYWx0ZXJuYXRpdmVIaWdobGlnaHRzKSxcblx0XHRcdFx0fTtcblx0XHRcdH1cblx0XHRcdHJldHVybiB2YWx1ZTtcblx0XHR9XG5cdH0pO1xuXHRjb25zdCBjaGFyV2lkdGhTdGF0ZSA9IFN0YXRlRmllbGQuZGVmaW5lPG51bWJlcj4oe1xuXHRcdGNyZWF0ZShzdGF0ZTogRWRpdG9yU3RhdGUpOiBudW1iZXIge1xuXHRcdFx0cmV0dXJuIGdldENoYXJXaWR0aChzdGF0ZSxzdGF0ZS5maWVsZChlZGl0b3JFZGl0b3JGaWVsZCkuZGVmYXVsdENoYXJhY3RlcldpZHRoKTtcblx0XHR9LFxuXHRcdHVwZGF0ZSh2YWx1ZTogbnVtYmVyLCB0cmFuc2FjdGlvbjogVHJhbnNhY3Rpb24pOiBudW1iZXIge1xuXHRcdFx0cmV0dXJuIGdldENoYXJXaWR0aCh0cmFuc2FjdGlvbi5zdGF0ZSx2YWx1ZSk7XG5cdFx0fVxuXHR9KTtcblx0Y29uc3QgaGVhZGVyRGVjb3JhdGlvbnMgPSBTdGF0ZUZpZWxkLmRlZmluZTxEZWNvcmF0aW9uU2V0Pih7IC8vVE9ETyAoQG1heXVyYW5rdikgVXBkYXRlIChkb2VzIHRoaXMgbmVlZCB0byBiZSB1cGRhdGVkIGluIHRoaXMgbWFubmVyPylcblx0XHRjcmVhdGUoc3RhdGU6IEVkaXRvclN0YXRlKTogRGVjb3JhdGlvblNldCB7XG5cdFx0XHRpZiAoZWRpdGluZ1ZpZXdJZ25vcmUoc3RhdGUpKVxuXHRcdFx0XHRyZXR1cm4gRGVjb3JhdGlvbi5ub25lO1xuXHRcdFx0cmV0dXJuIGJ1aWxkSGVhZGVycyhzdGF0ZSk7XG5cdFx0fSxcblx0XHR1cGRhdGUodmFsdWU6IERlY29yYXRpb25TZXQsIHRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbik6IERlY29yYXRpb25TZXQge1xuXHRcdFx0aWYgKGVkaXRpbmdWaWV3SWdub3JlKHRyYW5zYWN0aW9uLnN0YXRlKSlcblx0XHRcdFx0cmV0dXJuIERlY29yYXRpb24ubm9uZTtcblx0XHRcdHJldHVybiBidWlsZEhlYWRlcnModHJhbnNhY3Rpb24uc3RhdGUsKHBvc2l0aW9uKT0+aXNGb2xkZWQodHJhbnNhY3Rpb24uc3RhdGUscG9zaXRpb24pKTtcblx0XHR9LFxuXHRcdHByb3ZpZGUoZmllbGQ6IFN0YXRlRmllbGQ8RGVjb3JhdGlvblNldD4pOiBFeHRlbnNpb24ge1xuXHRcdFx0cmV0dXJuIEVkaXRvclZpZXcuZGVjb3JhdGlvbnMuZnJvbShmaWVsZCk7XG5cdFx0fVxuXHR9KTtcblx0Y29uc3QgZm9sZERlY29yYXRpb25zID0gU3RhdGVGaWVsZC5kZWZpbmU8RGVjb3JhdGlvblNldD4oe1xuXHRcdGNyZWF0ZShzdGF0ZTogRWRpdG9yU3RhdGUpOiBEZWNvcmF0aW9uU2V0IHtcblx0XHRcdGlmIChlZGl0aW5nVmlld0lnbm9yZShzdGF0ZSkpXG5cdFx0XHRcdHJldHVybiBEZWNvcmF0aW9uLm5vbmU7XG5cdFx0XHRjb25zdCBidWlsZGVyID0gbmV3IFJhbmdlU2V0QnVpbGRlcjxEZWNvcmF0aW9uPigpO1xuXHRcdFx0Y29uc3QgaGVhZGVyRGVjb3JhdGlvbnNTdGF0ZSA9IHN0YXRlLmZpZWxkKGhlYWRlckRlY29yYXRpb25zLGZhbHNlKSA/PyBEZWNvcmF0aW9uLm5vbmU7XG5cdFx0XHRmb3IgKGxldCBpdGVyID0gaGVhZGVyRGVjb3JhdGlvbnNTdGF0ZS5pdGVyKCk7IGl0ZXIudmFsdWUgIT09IG51bGw7IGl0ZXIubmV4dCgpKSB7XG5cdFx0XHRcdGlmICghaXRlci52YWx1ZS5zcGVjLndpZGdldC5jb2RlYmxvY2tQYXJhbWV0ZXJzLmZvbGQuZW5hYmxlZClcblx0XHRcdFx0XHRjb250aW51ZTtcblx0XHRcdFx0Y29kZWJsb2NrRm9sZENhbGxiYWNrKGl0ZXIuZnJvbSxzdGF0ZSwoZm9sZFN0YXJ0LGZvbGRFbmQpPT57XG5cdFx0XHRcdFx0YnVpbGRlci5hZGQoZm9sZFN0YXJ0LmZyb20sZm9sZEVuZC50byxmb2xkRGVjb3JhdGlvbigoaXRlci52YWx1ZSBhcyBEZWNvcmF0aW9uKS5zcGVjLndpZGdldC5jb2RlYmxvY2tQYXJhbWV0ZXJzLmxhbmd1YWdlKSk7XG5cdFx0XHRcdH0pO1xuXHRcdFx0fVxuXHRcdFx0cmV0dXJuIGJ1aWxkZXIuZmluaXNoKCk7XG5cdFx0fSxcblx0XHR1cGRhdGUodmFsdWU6IERlY29yYXRpb25TZXQsIHRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbik6IERlY29yYXRpb25TZXQge1xuXHRcdFx0dmFsdWUgPSB2YWx1ZS5tYXAodHJhbnNhY3Rpb24uY2hhbmdlcyk7XG5cdFx0XHR2YWx1ZSA9IHZhbHVlLnVwZGF0ZSh7YWRkOiB0cmFuc2FjdGlvbi5lZmZlY3RzLmZpbHRlcihlZmZlY3Q9PihlZmZlY3QuaXMoZm9sZCl8fGVmZmVjdC5pcyh1bmhpZGVGb2xkKSkpLm1hcChlZmZlY3Q9PmZvbGRSZWdpb24oZWZmZWN0LnZhbHVlKSl9KTsgLy9UT0RPIChAbWF5dXJhbmt2KSBDYW4gSSByZW1vdmUgYCwgc29ydDogdHJ1ZWBcblx0XHRcdHRyYW5zYWN0aW9uLmVmZmVjdHMuZmlsdGVyKGVmZmVjdD0+KGVmZmVjdC5pcyh1bmZvbGQpfHxlZmZlY3QuaXMoaGlkZUZvbGQpKSkuZm9yRWFjaChlZmZlY3Q9PnZhbHVlPXZhbHVlLnVwZGF0ZSh1bmZvbGRSZWdpb24oZWZmZWN0LnZhbHVlKSkpO1xuXHRcdFx0dHJhbnNhY3Rpb24uZWZmZWN0cy5maWx0ZXIoZWZmZWN0PT5lZmZlY3QuaXMocmVtb3ZlRm9sZCkpLmZvckVhY2goZWZmZWN0PT52YWx1ZT12YWx1ZS51cGRhdGUocmVtb3ZlRm9sZExhbmd1YWdlKGVmZmVjdC52YWx1ZSkpKTtcblx0XHRcdHJldHVybiB2YWx1ZTtcblx0XHR9LFxuXHRcdHByb3ZpZGUoZmllbGQ6IFN0YXRlRmllbGQ8RGVjb3JhdGlvblNldD4pOiBFeHRlbnNpb24ge1xuXHRcdFx0cmV0dXJuIEVkaXRvclZpZXcuZGVjb3JhdGlvbnMuZnJvbShmaWVsZCk7XG5cdFx0fSxcblx0fSk7XG5cdGNvbnN0IGhpZGRlbkRlY29yYXRpb25zID0gU3RhdGVGaWVsZC5kZWZpbmU8RGVjb3JhdGlvblNldD4oe1xuXHRcdGNyZWF0ZSgpOiBEZWNvcmF0aW9uU2V0IHtcblx0XHRcdHJldHVybiBEZWNvcmF0aW9uLm5vbmU7XG5cdFx0fSxcblx0XHR1cGRhdGUodmFsdWU6IERlY29yYXRpb25TZXQsIHRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbik6IERlY29yYXRpb25TZXQge1xuXHRcdFx0aWYgKHRyYW5zYWN0aW9uLmVmZmVjdHMuc29tZShlZmZlY3Q9PmVmZmVjdC5pcyhmb2xkQWxsKSkpXG5cdFx0XHRcdHJldHVybiBEZWNvcmF0aW9uLm5vbmU7XG5cdFx0XHR2YWx1ZSA9IHZhbHVlLm1hcCh0cmFuc2FjdGlvbi5jaGFuZ2VzKTtcblx0XHRcdHZhbHVlID0gdmFsdWUudXBkYXRlKHthZGQ6IHRyYW5zYWN0aW9uLmVmZmVjdHMuZmlsdGVyKGVmZmVjdD0+ZWZmZWN0LmlzKGhpZGVGb2xkKSkubWFwKGVmZmVjdD0+ZWZmZWN0LnZhbHVlKX0pOyAvL1RPRE8gKEBtYXl1cmFua3YpIENhbiBJIHJlbW92ZSBgLCBzb3J0OiB0cnVlYFxuXHRcdFx0dHJhbnNhY3Rpb24uZWZmZWN0cy5maWx0ZXIoZWZmZWN0PT5lZmZlY3QuaXModW5oaWRlRm9sZCkpLmZvckVhY2goZWZmZWN0PT52YWx1ZT12YWx1ZS51cGRhdGUodW5oaWRlRm9sZFVwZGF0ZShlZmZlY3QudmFsdWUpKSk7XG5cdFx0XHR0cmFuc2FjdGlvbi5lZmZlY3RzLmZpbHRlcihlZmZlY3Q9PmVmZmVjdC5pcyhyZW1vdmVGb2xkKSkuZm9yRWFjaChlZmZlY3Q9PnZhbHVlPXZhbHVlLnVwZGF0ZShyZW1vdmVGb2xkTGFuZ3VhZ2UoZWZmZWN0LnZhbHVlKSkpO1xuXHRcdFx0cmV0dXJuIHZhbHVlO1xuXHRcdH1cblx0fSk7XG5cblx0ZnVuY3Rpb24gY3Vyc29yRm9sZEV4dGVuZGVyKCkge1xuXHRcdHJldHVybiBFZGl0b3JTdGF0ZS50cmFuc2FjdGlvbkV4dGVuZGVyLm9mKCh0cmFuc2FjdGlvbjogVHJhbnNhY3Rpb24pID0+IHtcblx0XHRcdGNvbnN0IGFkZEVmZmVjdHM6IEFycmF5PFN0YXRlRWZmZWN0PHVua25vd24+PiA9IFtdO1xuXHRcdFx0Y29uc3QgZm9sZERlY29yYXRpb25zU3RhdGUgPSB0cmFuc2FjdGlvbi5zdGFydFN0YXRlLmZpZWxkKGZvbGREZWNvcmF0aW9ucyxmYWxzZSk/Lm1hcCh0cmFuc2FjdGlvbi5jaGFuZ2VzKSA/PyBEZWNvcmF0aW9uLm5vbmU7XG5cdFx0XHRjb25zdCBoaWRkZW5EZWNvcmF0aW9uc1N0YXRlID0gdHJhbnNhY3Rpb24uc3RhcnRTdGF0ZS5maWVsZChoaWRkZW5EZWNvcmF0aW9ucyxmYWxzZSk/Lm1hcCh0cmFuc2FjdGlvbi5jaGFuZ2VzKSA/PyBEZWNvcmF0aW9uLm5vbmU7XG5cdFx0XHR0cmFuc2FjdGlvbi5uZXdTZWxlY3Rpb24ucmFuZ2VzLmZvckVhY2goKHJhbmdlOiBTZWxlY3Rpb25SYW5nZSk9Pntcblx0XHRcdFx0Zm9sZERlY29yYXRpb25zU3RhdGUuYmV0d2VlbihyYW5nZS5mcm9tLCByYW5nZS50bywgKGZvbGRGcm9tLCBmb2xkVG8sIGRlY29yYXRpb25WYWx1ZSkgPT4ge1xuXHRcdFx0XHRcdGlmIChmb2xkRnJvbSA8PSByYW5nZS5oZWFkICYmIHJhbmdlLmhlYWQgPD0gZm9sZFRvKVxuXHRcdFx0XHRcdFx0YWRkRWZmZWN0cy5wdXNoKGhpZGVGb2xkLm9mKHtmcm9tOiBmb2xkRnJvbSwgdG86IGZvbGRUbywgdmFsdWU6IGRlY29yYXRpb25WYWx1ZX0pKTtcblx0XHRcdFx0fSk7XG5cdFx0XHRcdGZvciAobGV0IGl0ZXIgPSBoaWRkZW5EZWNvcmF0aW9uc1N0YXRlLml0ZXIoKTsgaXRlci52YWx1ZSAhPT0gbnVsbDsgaXRlci5uZXh0KCkpIHtcblx0XHRcdFx0XHRpZiAoIShpdGVyLmZyb20gPD0gcmFuZ2UuaGVhZCAmJiByYW5nZS5oZWFkIDw9IGl0ZXIudG8pKVxuXHRcdFx0XHRcdFx0YWRkRWZmZWN0cy5wdXNoKHVuaGlkZUZvbGQub2Yoe2Zyb206IGl0ZXIuZnJvbSwgdG86IGl0ZXIudG8sIHZhbHVlOiBpdGVyLnZhbHVlfSkpO1xuXHRcdFx0XHR9XG5cdFx0XHR9KTtcblx0XHRcdHJldHVybiAoYWRkRWZmZWN0cy5sZW5ndGggIT09IDApP3tlZmZlY3RzOiBhZGRFZmZlY3RzfTpudWxsO1xuXHRcdH0pO1xuXHR9XG5cdGZ1bmN0aW9uIGRvY3VtZW50Rm9sZEV4dGVuZGVyKCkge1xuXHRcdHJldHVybiBFZGl0b3JTdGF0ZS50cmFuc2FjdGlvbkV4dGVuZGVyLm9mKCh0cmFuc2FjdGlvbikgPT4ge1xuXHRcdFx0bGV0IGFkZEVmZmVjdHM6IEFycmF5PFN0YXRlRWZmZWN0PHVua25vd24+PiA9IFtdO1xuXHRcdFx0dHJhbnNhY3Rpb24uZWZmZWN0cy5maWx0ZXIoZWZmZWN0PT5lZmZlY3QuaXMoZm9sZEFsbCkpLmZvckVhY2goZWZmZWN0PT57XG5cdFx0XHRcdGlmICh0eXBlb2YgZWZmZWN0LnZhbHVlPy50b0ZvbGQgIT09IFwidW5kZWZpbmVkXCIpXG5cdFx0XHRcdFx0YWRkRWZmZWN0cyA9IGFkZEVmZmVjdHMuY29uY2F0KGRvY3VtZW50Rm9sZCh0cmFuc2FjdGlvbi5zdGFydFN0YXRlLGVmZmVjdC52YWx1ZS50b0ZvbGQpKTsgLy9UT0RPIChAbWF5dXJhbmt2KSBEb2VzIHRoaXMgbmVlZCB0byBiZSBzdGF0ZVxuXHRcdFx0XHRlbHNlXG5cdFx0XHRcdFx0YWRkRWZmZWN0cyA9IGFkZEVmZmVjdHMuY29uY2F0KGRvY3VtZW50Rm9sZCh0cmFuc2FjdGlvbi5zdGFydFN0YXRlKSk7XG5cdFx0XHR9KTtcblx0XHRcdHJldHVybiAoYWRkRWZmZWN0cy5sZW5ndGggIT09IDApP3tlZmZlY3RzOiBhZGRFZmZlY3RzfTpudWxsO1xuXHRcdH0pO1xuXHR9XG5cdGZ1bmN0aW9uIHNldHRpbmdzQ2hhbmdlRXh0ZW5kZXIoKSB7XG5cdFx0cmV0dXJuIEVkaXRvclN0YXRlLnRyYW5zYWN0aW9uRXh0ZW5kZXIub2YoKHRyYW5zYWN0aW9uKSA9PiB7XG5cdFx0XHRsZXQgYWRkRWZmZWN0czogQXJyYXk8U3RhdGVFZmZlY3Q8dW5rbm93bj4+ID0gW107XG5cdFx0XHRjb25zdCBpbml0aWFsU2V0dGluZ3MgPSB0cmFuc2FjdGlvbi5zdGFydFN0YXRlLmZpZWxkKHNldHRpbmdzU3RhdGUpO1xuXHRcdFx0bGV0IHJlYWRkRm9sZExhbmd1YWdlczogQXJyYXk8c3RyaW5nPiA9IFtdO1xuXHRcdFx0bGV0IHJlbW92ZUZvbGRMYW5ndWFnZXM6IEFycmF5PHN0cmluZz4gPSBbXTtcblx0XHRcdGlmIChpbml0aWFsU2V0dGluZ3MuZXhjbHVkZWRDb2RlYmxvY2tzICE9PSBzZXR0aW5ncy5leGNsdWRlZENvZGVibG9ja3MpIHtcblx0XHRcdFx0Y29uc3QgaW5pdGlhbEV4Y2x1ZGVkQ29kZWJsb2NrcyA9IGluaXRpYWxTZXR0aW5ncy5leGNsdWRlZENvZGVibG9ja3Muc3BsaXQoXCIsXCIpLm1hcChsYW5nPT5sYW5nLnRyaW0oKSk7XG5cdFx0XHRcdGNvbnN0IGN1cnJlbnRFeGNsdWRlZENvZGVibG9ja3MgPSBzZXR0aW5ncy5leGNsdWRlZENvZGVibG9ja3Muc3BsaXQoXCIsXCIpLm1hcChsYW5nPT5sYW5nLnRyaW0oKSk7XG5cdFx0XHRcdHJlbW92ZUZvbGRMYW5ndWFnZXMgPSByZW1vdmVGb2xkTGFuZ3VhZ2VzLmNvbmNhdChzZXREaWZmZXJlbmNlKGN1cnJlbnRFeGNsdWRlZENvZGVibG9ja3MsaW5pdGlhbEV4Y2x1ZGVkQ29kZWJsb2NrcykgYXMgQXJyYXk8c3RyaW5nPik7XG5cdFx0XHRcdHJlYWRkRm9sZExhbmd1YWdlcyA9IHJlYWRkRm9sZExhbmd1YWdlcy5jb25jYXQoc2V0RGlmZmVyZW5jZShpbml0aWFsRXhjbHVkZWRDb2RlYmxvY2tzLGN1cnJlbnRFeGNsdWRlZENvZGVibG9ja3MpIGFzIEFycmF5PHN0cmluZz4pO1xuXHRcdFx0fVxuXHRcdFx0aWYgKGluaXRpYWxTZXR0aW5ncy5leGNsdWRlZExhbmd1YWdlcyAhPT0gc2V0dGluZ3MuZXhjbHVkZWRMYW5ndWFnZXMpIHtcblx0XHRcdFx0Y29uc3QgaW5pdGlhbEV4Y2x1ZGVkTGFuZ3VhZ2VzID0gaW5pdGlhbFNldHRpbmdzLmV4Y2x1ZGVkTGFuZ3VhZ2VzLnNwbGl0KFwiLFwiKS5tYXAobGFuZz0+bGFuZy50cmltKCkpO1xuXHRcdFx0XHRjb25zdCBjdXJyZW50RXhjbHVkZWRMYW5ndWFnZXMgPSBzZXR0aW5ncy5leGNsdWRlZExhbmd1YWdlcy5zcGxpdChcIixcIikubWFwKGxhbmc9PmxhbmcudHJpbSgpKTtcblx0XHRcdFx0cmVtb3ZlRm9sZExhbmd1YWdlcyA9IHJlbW92ZUZvbGRMYW5ndWFnZXMuY29uY2F0KHNldERpZmZlcmVuY2UoY3VycmVudEV4Y2x1ZGVkTGFuZ3VhZ2VzLGluaXRpYWxFeGNsdWRlZExhbmd1YWdlcykgYXMgQXJyYXk8c3RyaW5nPik7XG5cdFx0XHRcdHJlYWRkRm9sZExhbmd1YWdlcyA9IHJlYWRkRm9sZExhbmd1YWdlcy5jb25jYXQoc2V0RGlmZmVyZW5jZShpbml0aWFsRXhjbHVkZWRMYW5ndWFnZXMsY3VycmVudEV4Y2x1ZGVkTGFuZ3VhZ2VzKSBhcyBBcnJheTxzdHJpbmc+KTtcblx0XHRcdH1cblx0XHRcdGlmIChyZW1vdmVGb2xkTGFuZ3VhZ2VzLmxlbmd0aCAhPT0gMClcblx0XHRcdFx0YWRkRWZmZWN0cy5wdXNoKHJlbW92ZUZvbGQub2YocmVtb3ZlRm9sZExhbmd1YWdlcykpO1xuXHRcdFx0aWYgKHJlYWRkRm9sZExhbmd1YWdlcy5sZW5ndGggIT09IDApXG5cdFx0XHRcdGFkZEVmZmVjdHMgPSBhZGRFZmZlY3RzLmNvbmNhdChjb252ZXJ0UmVhZGRGb2xkKHRyYW5zYWN0aW9uLHJlYWRkRm9sZExhbmd1YWdlcykpO1xuXHRcdFx0cmV0dXJuIChhZGRFZmZlY3RzLmxlbmd0aCAhPT0gMCk/e2VmZmVjdHM6IGFkZEVmZmVjdHN9Om51bGw7XG5cdFx0fSk7XG5cdH1cblx0Ly9UT0RPIChAbWF5dXJhbmt2KSBVcmdlbnQ6IEF1dG8gYWRkIHRlbXAgdW5mb2xkIG9uIHR5cGUgb2YgZm9sZCBhbmQgcmVtb3ZlIGJvdGggZm9sZCBhbmQgdGVtcCB1bmZvbGQgZm9yIHJlbW92YWxcblxuXHRjbGFzcyBMaW5lTnVtYmVyV2lkZ2V0IGV4dGVuZHMgV2lkZ2V0VHlwZSB7XG5cdFx0bGluZU51bWJlcjogbnVtYmVyO1xuXHRcdGNvZGVibG9ja1BhcmFtZXRlcnM6IENvZGVibG9ja1BhcmFtZXRlcnM7XG5cdFx0bWF4TGluZU51bTogbnVtYmVyO1xuXHRcdGVtcHR5OiBib29sZWFuO1xuXHRcblx0XHRjb25zdHJ1Y3RvcihsaW5lTnVtYmVyOiBudW1iZXIsIGNvZGVibG9ja1BhcmFtZXRlcnM6IENvZGVibG9ja1BhcmFtZXRlcnMsIG1heExpbmVOdW06IG51bWJlciwgZW1wdHk6IGJvb2xlYW4pIHtcblx0XHRcdHN1cGVyKCk7XG5cdFx0XHR0aGlzLmxpbmVOdW1iZXIgPSBsaW5lTnVtYmVyO1xuXHRcdFx0dGhpcy5jb2RlYmxvY2tQYXJhbWV0ZXJzID0gY29kZWJsb2NrUGFyYW1ldGVycztcblx0XHRcdHRoaXMubWF4TGluZU51bSA9IG1heExpbmVOdW07XG5cdFx0XHR0aGlzLmVtcHR5ID0gZW1wdHk7XG5cdFx0fVxuXHRcblx0XHRlcShvdGhlcjogTGluZU51bWJlcldpZGdldCk6IGJvb2xlYW4ge1xuXHRcdFx0cmV0dXJuIHRoaXMubGluZU51bWJlciA9PT0gb3RoZXIubGluZU51bWJlciAmJiB0aGlzLmNvZGVibG9ja1BhcmFtZXRlcnMubGluZU51bWJlcnMuYWx3YXlzRW5hYmxlZCA9PT0gb3RoZXIuY29kZWJsb2NrUGFyYW1ldGVycy5saW5lTnVtYmVycy5hbHdheXNFbmFibGVkICYmIHRoaXMuY29kZWJsb2NrUGFyYW1ldGVycy5saW5lTnVtYmVycy5hbHdheXNEaXNhYmxlZCA9PT0gb3RoZXIuY29kZWJsb2NrUGFyYW1ldGVycy5saW5lTnVtYmVycy5hbHdheXNEaXNhYmxlZCAmJiB0aGlzLmNvZGVibG9ja1BhcmFtZXRlcnMubGluZU51bWJlcnMub2Zmc2V0ID09PSBvdGhlci5jb2RlYmxvY2tQYXJhbWV0ZXJzLmxpbmVOdW1iZXJzLm9mZnNldCAmJiB0aGlzLm1heExpbmVOdW0gPT09IG90aGVyLm1heExpbmVOdW0gJiYgdGhpcy5lbXB0eSA9PT0gb3RoZXIuZW1wdHk7XG5cdFx0fVxuXHRcblx0XHR0b0RPTSh2aWV3OiBFZGl0b3JWaWV3KTogSFRNTEVsZW1lbnQgeyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuXHRcdFx0cmV0dXJuIGNyZWF0ZVNwYW4oe2F0dHI6IHtzdHlsZTogdGhpcy5tYXhMaW5lTnVtLnRvU3RyaW5nKCkubGVuZ3RoID4gKHRoaXMubGluZU51bWJlciArIHRoaXMuY29kZWJsb2NrUGFyYW1ldGVycy5saW5lTnVtYmVycy5vZmZzZXQpLnRvU3RyaW5nKCkubGVuZ3RoP1wid2lkdGg6IHZhcigtLWxpbmUtbnVtYmVyLWd1dHRlci13aWR0aCk7XCI6XCJcIn0sIGNsczogYGNvZGUtc3R5bGVyLWxpbmUtbnVtYmVyJHtnZXRMaW5lTnVtYmVyRGlzcGxheSh0aGlzLmNvZGVibG9ja1BhcmFtZXRlcnMpfWAsIHRleHQ6IHRoaXMuZW1wdHk/XCJcIjoodGhpcy5saW5lTnVtYmVyICsgdGhpcy5jb2RlYmxvY2tQYXJhbWV0ZXJzLmxpbmVOdW1iZXJzLm9mZnNldCkudG9TdHJpbmcoKX0pO1xuXHRcdH1cblx0fVxuXHRjbGFzcyBIZWFkZXJXaWRnZXQgZXh0ZW5kcyBXaWRnZXRUeXBlIHtcblx0XHRjb2RlYmxvY2tQYXJhbWV0ZXJzOiBDb2RlYmxvY2tQYXJhbWV0ZXJzO1xuXHRcdHRoZW1lU2V0dGluZ3M6IENvZGVTdHlsZXJUaGVtZVNldHRpbmdzO1xuXHRcdGxhbmd1YWdlSWNvbnM6IFJlY29yZDxzdHJpbmcsc3RyaW5nPjtcblx0XHRpY29uVVJMOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cdFx0Zm9sZGVkOiBib29sZWFuO1xuXHRcdGhpZGRlbjogYm9vbGVhbjtcblx0XG5cdFx0Y29uc3RydWN0b3IoY29kZWJsb2NrUGFyYW1ldGVyczogQ29kZWJsb2NrUGFyYW1ldGVycywgZm9sZGVkOiBib29sZWFuLCB0aGVtZVNldHRpbmdzOiBDb2RlU3R5bGVyVGhlbWVTZXR0aW5ncywgbGFuZ3VhZ2VJY29uczogUmVjb3JkPHN0cmluZyxzdHJpbmc+KSB7XG5cdFx0XHRzdXBlcigpO1xuXHRcdFx0dGhpcy5jb2RlYmxvY2tQYXJhbWV0ZXJzID0gc3RydWN0dXJlZENsb25lKGNvZGVibG9ja1BhcmFtZXRlcnMpO1xuXHRcdFx0dGhpcy50aGVtZVNldHRpbmdzID0gc3RydWN0dXJlZENsb25lKHRoZW1lU2V0dGluZ3MpO1xuXHRcdFx0dGhpcy5sYW5ndWFnZUljb25zID0gbGFuZ3VhZ2VJY29ucztcblx0XHRcdHRoaXMuaWNvblVSTCA9IGdldExhbmd1YWdlSWNvbih0aGlzLmNvZGVibG9ja1BhcmFtZXRlcnMubGFuZ3VhZ2UsbGFuZ3VhZ2VJY29ucyk7XG5cdFx0XHR0aGlzLmZvbGRlZCA9IGZvbGRlZDtcblx0XHRcdHRoaXMuaGlkZGVuID0gaXNIZWFkZXJIaWRkZW4odGhpcy5jb2RlYmxvY2tQYXJhbWV0ZXJzLHRoaXMudGhlbWVTZXR0aW5ncyx0aGlzLmljb25VUkwpO1xuXHRcdH1cblx0XHRcdFxuXHRcdGVxKG90aGVyOiBIZWFkZXJXaWRnZXQpOiBib29sZWFuIHtcblx0XHRcdHJldHVybiAoXG5cdFx0XHRcdHRoaXMuY29kZWJsb2NrUGFyYW1ldGVycy5sYW5ndWFnZSA9PT0gb3RoZXIuY29kZWJsb2NrUGFyYW1ldGVycy5sYW5ndWFnZSAmJlxuXHRcdFx0XHR0aGlzLmNvZGVibG9ja1BhcmFtZXRlcnMudGl0bGUgPT09IG90aGVyLmNvZGVibG9ja1BhcmFtZXRlcnMudGl0bGUgJiZcblx0XHRcdFx0dGhpcy5jb2RlYmxvY2tQYXJhbWV0ZXJzLmZvbGQuZW5hYmxlZCA9PT0gb3RoZXIuY29kZWJsb2NrUGFyYW1ldGVycy5mb2xkLmVuYWJsZWQgJiZcblx0XHRcdFx0dGhpcy5jb2RlYmxvY2tQYXJhbWV0ZXJzLmZvbGQucGxhY2Vob2xkZXIgPT09IG90aGVyLmNvZGVibG9ja1BhcmFtZXRlcnMuZm9sZC5wbGFjZWhvbGRlciAmJlxuXHRcdFx0XHR0aGlzLnRoZW1lU2V0dGluZ3MuaGVhZGVyLmZvbGRQbGFjZWhvbGRlciA9PT0gb3RoZXIudGhlbWVTZXR0aW5ncy5oZWFkZXIuZm9sZFBsYWNlaG9sZGVyICYmXG5cdFx0XHRcdHRoaXMudGhlbWVTZXR0aW5ncy5oZWFkZXIubGFuZ3VhZ2VJY29uLmRpc3BsYXkgPT09IG90aGVyLnRoZW1lU2V0dGluZ3MuaGVhZGVyLmxhbmd1YWdlSWNvbi5kaXNwbGF5ICYmXG5cdFx0XHRcdHRoaXMudGhlbWVTZXR0aW5ncy5oZWFkZXIubGFuZ3VhZ2VUYWcuZGlzcGxheSA9PT0gb3RoZXIudGhlbWVTZXR0aW5ncy5oZWFkZXIubGFuZ3VhZ2VUYWcuZGlzcGxheSAmJlxuXHRcdFx0XHR0aGlzLmZvbGRlZCA9PT0gb3RoZXIuZm9sZGVkICYmXG5cdFx0XHRcdHRoaXMuaWNvblVSTCA9PT0gb3RoZXIuaWNvblVSTFxuXHRcdFx0KTtcblx0XHR9XG5cdFx0XHRcblx0XHR0b0RPTSh2aWV3OiBFZGl0b3JWaWV3KTogSFRNTEVsZW1lbnQge1xuXHRcdFx0Y29uc3QgaGVhZGVyQ29udGFpbmVyID0gY3JlYXRlSGVhZGVyKHRoaXMuY29kZWJsb2NrUGFyYW1ldGVycyx0aGlzLnRoZW1lU2V0dGluZ3MsdGhpcy5sYW5ndWFnZUljb25zKTtcblx0XHRcdGlmICh0aGlzLmNvZGVibG9ja1BhcmFtZXRlcnMubGFuZ3VhZ2UhPT1cIlwiKVxuXHRcdFx0XHRoZWFkZXJDb250YWluZXIuY2xhc3NMaXN0LmFkZChgbGFuZ3VhZ2UtJHt0aGlzLmNvZGVibG9ja1BhcmFtZXRlcnMubGFuZ3VhZ2V9YCk7XG5cdFx0XHRpZiAodGhpcy5mb2xkZWQpXG5cdFx0XHRcdGhlYWRlckNvbnRhaW5lci5jbGFzc0xpc3QuYWRkKFwiY29kZS1zdHlsZXItaGVhZGVyLWZvbGRlZFwiKTtcblx0XHRcdGhlYWRlckNvbnRhaW5lci5vbmNsaWNrID0gZXZlbnQgPT4ge2ZvbGRPbkNsaWNrKHZpZXcsaGVhZGVyQ29udGFpbmVyLHRoaXMuZm9sZGVkLHRoaXMuY29kZWJsb2NrUGFyYW1ldGVycy5sYW5ndWFnZSk7fTsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcblx0XHRcdHJldHVybiBoZWFkZXJDb250YWluZXI7XG5cdFx0fVxuXHRcblx0XHQvLyBpZ25vcmVFdmVudCgpIHsgLy9UT0RPIChAbWF5dXJhbmt2KSBDYW4gSSByZW1vdmUgdGhpcz9cblx0XHQvLyBcdHJldHVybiBmYWxzZTtcblx0XHQvLyB9XG5cdH1cblx0Y2xhc3MgT3BlbmVyV2lkZ2V0IGV4dGVuZHMgV2lkZ2V0VHlwZSB7XG5cdFx0aW5saW5lQ29kZVBhcmFtZXRlcnM6IElubGluZUNvZGVQYXJhbWV0ZXJzO1xuXHRcdGxhbmd1YWdlSWNvbnM6IFJlY29yZDxzdHJpbmcsc3RyaW5nPjtcblxuXHRcdGNvbnN0cnVjdG9yIChpbmxpbmVDb2RlUGFyYW1ldGVyczogSW5saW5lQ29kZVBhcmFtZXRlcnMsIGxhbmd1YWdlSWNvbnM6IFJlY29yZDxzdHJpbmcsc3RyaW5nPikge1xuXHRcdFx0c3VwZXIoKTtcblx0XHRcdHRoaXMuaW5saW5lQ29kZVBhcmFtZXRlcnMgPSBpbmxpbmVDb2RlUGFyYW1ldGVycztcblx0XHRcdHRoaXMubGFuZ3VhZ2VJY29ucyA9IGxhbmd1YWdlSWNvbnM7XG5cdFx0fVxuXG5cdFx0ZXEob3RoZXI6IE9wZW5lcldpZGdldCk6IGJvb2xlYW4ge1xuXHRcdFx0cmV0dXJuIChcblx0XHRcdFx0dGhpcy5pbmxpbmVDb2RlUGFyYW1ldGVycy5sYW5ndWFnZSA9PSBvdGhlci5pbmxpbmVDb2RlUGFyYW1ldGVycy5sYW5ndWFnZSAmJlxuXHRcdFx0XHR0aGlzLmlubGluZUNvZGVQYXJhbWV0ZXJzLnRpdGxlID09IG90aGVyLmlubGluZUNvZGVQYXJhbWV0ZXJzLnRpdGxlICYmXG5cdFx0XHRcdHRoaXMuaW5saW5lQ29kZVBhcmFtZXRlcnMuaWNvbiA9PSBvdGhlci5pbmxpbmVDb2RlUGFyYW1ldGVycy5pY29uICYmXG5cdFx0XHRcdGdldExhbmd1YWdlSWNvbih0aGlzLmlubGluZUNvZGVQYXJhbWV0ZXJzLmxhbmd1YWdlLHRoaXMubGFuZ3VhZ2VJY29ucykgPT0gZ2V0TGFuZ3VhZ2VJY29uKG90aGVyLmlubGluZUNvZGVQYXJhbWV0ZXJzLmxhbmd1YWdlLG90aGVyLmxhbmd1YWdlSWNvbnMpXG5cdFx0XHQpO1xuXHRcdH1cblxuXHRcdHRvRE9NKHZpZXc6IEVkaXRvclZpZXcpOiBIVE1MRWxlbWVudCB7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG5cdFx0XHRyZXR1cm4gY3JlYXRlSW5saW5lT3BlbmVyKHRoaXMuaW5saW5lQ29kZVBhcmFtZXRlcnMsdGhpcy5sYW5ndWFnZUljb25zLFtcImNvZGUtc3R5bGVyLWlubGluZS1vcGVuZXJcIixcImNtLWlubGluZS1jb2RlXCJdKTtcblx0XHR9XG5cdH1cblxuXHRmdW5jdGlvbiBidWlsZEhlYWRlcnMoc3RhdGU6IEVkaXRvclN0YXRlLCBmb2xkVmFsdWU6IChwb3NpdGlvbjogbnVtYmVyLCBkZWZhdWx0Rm9sZDogYm9vbGVhbik9PmJvb2xlYW4gPSAocG9zaXRpb24sZGVmYXVsdEZvbGQpPT5kZWZhdWx0Rm9sZCk6IERlY29yYXRpb25TZXQge1xuXHRcdGNvbnN0IGJ1aWxkZXIgPSBuZXcgUmFuZ2VTZXRCdWlsZGVyPERlY29yYXRpb24+KCk7XG5cdFx0bGV0IHN0YXJ0TGluZTogYm9vbGVhbiA9IHRydWU7XG5cdFx0bGV0IHN0YXJ0RGVsaW1pdGVyOiBzdHJpbmcgPSBcImBgYFwiO1xuXHRcdGxldCBjb2RlYmxvY2tQYXJhbWV0ZXJzOiBDb2RlYmxvY2tQYXJhbWV0ZXJzO1xuXHRcdGZvciAobGV0IGkgPSAxOyBpIDwgc3RhdGUuZG9jLmxpbmVzOyBpKyspIHtcblx0XHRcdGNvbnN0IGxpbmUgPSBzdGF0ZS5kb2MubGluZShpKTtcblx0XHRcdGNvbnN0IGxpbmVUZXh0ID0gbGluZS50ZXh0LnRvU3RyaW5nKCk7XG5cdFx0XHRjb25zdCBjdXJyZW50RGVsaW1pdGVyID0gdGVzdE9wZW5pbmdMaW5lKGxpbmVUZXh0KTtcblx0XHRcdGlmIChjdXJyZW50RGVsaW1pdGVyKSB7XG5cdFx0XHRcdGlmIChzdGFydExpbmUpIHtcblx0XHRcdFx0XHRzdGFydExpbmUgPSBmYWxzZTtcblx0XHRcdFx0XHRzdGFydERlbGltaXRlciA9IGN1cnJlbnREZWxpbWl0ZXI7XG5cdFx0XHRcdFx0Y29kZWJsb2NrUGFyYW1ldGVycyA9IHBhcnNlQ29kZWJsb2NrUGFyYW1ldGVycyh0cmltUGFyYW1ldGVyTGluZShsaW5lVGV4dCksc2V0dGluZ3MuY3VycmVudFRoZW1lKTtcblx0XHRcdFx0XHRpZiAoIWlzRXhjbHVkZWQoY29kZWJsb2NrUGFyYW1ldGVycy5sYW5ndWFnZSxbc2V0dGluZ3MuZXhjbHVkZWRDb2RlYmxvY2tzLHNldHRpbmdzLmV4Y2x1ZGVkTGFuZ3VhZ2VzXS5qb2luKFwiLFwiKSkgJiYgIWNvZGVibG9ja1BhcmFtZXRlcnMuaWdub3JlKSB7XG5cdFx0XHRcdFx0XHRpZiAoIXNldHRpbmdzLnNwZWNpYWxMYW5ndWFnZXMuc29tZShyZWdFeHAgPT4gbmV3IFJlZ0V4cChyZWdFeHApLnRlc3QoY29kZWJsb2NrUGFyYW1ldGVycy5sYW5ndWFnZSkpKVxuXHRcdFx0XHRcdFx0XHRidWlsZGVyLmFkZChsaW5lLmZyb20sbGluZS5mcm9tLERlY29yYXRpb24ud2lkZ2V0KHt3aWRnZXQ6IG5ldyBIZWFkZXJXaWRnZXQoY29kZWJsb2NrUGFyYW1ldGVycyxmb2xkVmFsdWUobGluZS5mcm9tLGNvZGVibG9ja1BhcmFtZXRlcnMuZm9sZC5lbmFibGVkKSxzZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MsbGFuZ3VhZ2VJY29ucyksIGJsb2NrOiB0cnVlLCBzaWRlOiAtMX0pKTtcblx0XHRcdFx0XHRcdGVsc2Vcblx0XHRcdFx0XHRcdFx0Y29udGludWU7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdGlmIChjdXJyZW50RGVsaW1pdGVyID09PSBzdGFydERlbGltaXRlcilcblx0XHRcdFx0XHRcdHN0YXJ0TGluZSA9IHRydWU7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdFx0cmV0dXJuIGJ1aWxkZXIuZmluaXNoKCk7XG5cdH1cblx0ZnVuY3Rpb24gY29udmVydFJlYWRkRm9sZCh0cmFuc2FjdGlvbjogVHJhbnNhY3Rpb24sIHJlYWRkTGFuZ3VhZ2VzOiBBcnJheTxzdHJpbmc+KSB7XG5cdFx0Y29uc3QgYWRkRWZmZWN0czogQXJyYXk8U3RhdGVFZmZlY3Q8dW5rbm93bj4+ID0gW107XG5cdFx0Y29uc3QgaGVhZGVyRGVjb3JhdGlvbnNTdGF0ZSA9IHRyYW5zYWN0aW9uLnN0YXRlLmZpZWxkKGhlYWRlckRlY29yYXRpb25zLGZhbHNlKSA/PyBEZWNvcmF0aW9uLm5vbmU7IC8vVE9ETyAoQG1heXVyYW5rdikgUmVmYWN0b3I6IFRyeSBhbmQgbWFrZSB0aGlzIHN0YXJ0U3RhdGVcblx0XHRmb3IgKGxldCBpdGVyID0gaGVhZGVyRGVjb3JhdGlvbnNTdGF0ZS5pdGVyKCk7IGl0ZXIudmFsdWUgIT09IG51bGw7IGl0ZXIubmV4dCgpKSB7XG5cdFx0XHRpZiAoIWl0ZXIudmFsdWUuc3BlYy53aWRnZXQuY29kZWJsb2NrUGFyYW1ldGVycy5mb2xkLmVuYWJsZWQgfHwgIXJlYWRkTGFuZ3VhZ2VzLmluY2x1ZGVzKGl0ZXIudmFsdWUuc3BlYy53aWRnZXQuY29kZWJsb2NrUGFyYW1ldGVycy5sYW5ndWFnZSkpXG5cdFx0XHRcdGNvbnRpbnVlO1xuXHRcdFx0Y29kZWJsb2NrRm9sZENhbGxiYWNrKGl0ZXIuZnJvbSx0cmFuc2FjdGlvbi5zdGF0ZSwoZm9sZFN0YXJ0LGZvbGRFbmQpPT57XG5cdFx0XHRcdGFkZEVmZmVjdHMucHVzaChmb2xkLm9mKHtmcm9tOiBmb2xkU3RhcnQuZnJvbSx0bzogZm9sZEVuZC50byx2YWx1ZToge3NwZWM6IHtsYW5ndWFnZTogKGl0ZXIudmFsdWUgYXMgRGVjb3JhdGlvbikuc3BlYy53aWRnZXQuY29kZWJsb2NrUGFyYW1ldGVycy5sYW5ndWFnZX19fSkpO1xuXHRcdFx0fSk7XG5cdFx0fVxuXHRcdHJldHVybiBhZGRFZmZlY3RzO1xuXHR9XG5cdGZ1bmN0aW9uIGlzRm9sZGVkKHN0YXRlOiBFZGl0b3JTdGF0ZSwgcG9zaXRpb246IG51bWJlcik6IGJvb2xlYW4ge1xuXHRcdGxldCBmb2xkZWQgPSBmYWxzZTtcblx0XHRzdGF0ZS5maWVsZChmb2xkRGVjb3JhdGlvbnMsZmFsc2UpPy5iZXR3ZWVuKHBvc2l0aW9uLHBvc2l0aW9uLCgpPT57XG5cdFx0XHRmb2xkZWQgPSB0cnVlO1xuXHRcdH0pO1xuXHRcdHJldHVybiBmb2xkZWQ7XG5cdH1cblx0ZnVuY3Rpb24gZG9jdW1lbnRGb2xkKHN0YXRlOiBFZGl0b3JTdGF0ZSwgdG9Gb2xkPzogYm9vbGVhbik6IEFycmF5PFN0YXRlRWZmZWN0PHVua25vd24+PiB7XG5cdFx0Y29uc3QgYWRkRWZmZWN0czogQXJyYXk8U3RhdGVFZmZlY3Q8dW5rbm93bj4+ID0gW107XG5cdFx0Y29uc3QgcmVzZXQgPSAodHlwZW9mIHRvRm9sZCA9PT0gXCJ1bmRlZmluZWRcIik7XG5cdFx0Y29uc3QgaGVhZGVyRGVjb3JhdGlvbnNTdGF0ZSA9IHN0YXRlLmZpZWxkKGhlYWRlckRlY29yYXRpb25zLGZhbHNlKSA/PyBEZWNvcmF0aW9uLm5vbmU7XG5cdFx0Zm9yIChsZXQgaXRlciA9IGhlYWRlckRlY29yYXRpb25zU3RhdGUuaXRlcigpOyBpdGVyLnZhbHVlICE9PSBudWxsOyBpdGVyLm5leHQoKSkge1xuXHRcdFx0aWYgKGl0ZXIudmFsdWUuc3BlYy53aWRnZXQuaGlkZGVuKVxuXHRcdFx0XHRjb250aW51ZTtcblx0XHRcdGNvbnN0IGZvbGRlZCA9IGl0ZXIudmFsdWUuc3BlYy53aWRnZXQuZm9sZGVkO1xuXHRcdFx0Y29uc3QgZGVmYXVsdEZvbGQgPSBpdGVyLnZhbHVlLnNwZWMud2lkZ2V0LmNvZGVibG9ja1BhcmFtZXRlcnMuZm9sZC5lbmFibGVkO1xuXHRcdFx0Y29kZWJsb2NrRm9sZENhbGxiYWNrKGl0ZXIuZnJvbSxzdGF0ZSwoZm9sZFN0YXJ0LGZvbGRFbmQpPT57XG5cdFx0XHRcdGlmICgoIXJlc2V0ICYmIHRvRm9sZCAmJiAhZm9sZGVkKSB8fCAocmVzZXQgJiYgIWZvbGRlZCAmJiBkZWZhdWx0Rm9sZCkpXG5cdFx0XHRcdFx0YWRkRWZmZWN0cy5wdXNoKGZvbGQub2Yoe2Zyb206IGZvbGRTdGFydC5mcm9tLCB0bzogZm9sZEVuZC50bywgdmFsdWU6IHtzcGVjOiB7bGFuZ3VhZ2U6IChpdGVyLnZhbHVlIGFzIERlY29yYXRpb24pLnNwZWMud2lkZ2V0LmNvZGVibG9ja1BhcmFtZXRlcnMubGFuZ3VhZ2V9fX0pKTtcblx0XHRcdFx0ZWxzZSBpZiAoKCFyZXNldCAmJiAhdG9Gb2xkICYmIGZvbGRlZCkgfHwgKHJlc2V0ICYmIGZvbGRlZCAmJiAhZGVmYXVsdEZvbGQpKVxuXHRcdFx0XHRcdGFkZEVmZmVjdHMucHVzaCh1bmZvbGQub2Yoe2Zyb206IGZvbGRTdGFydC5mcm9tLCB0bzogZm9sZEVuZC50b30pKTtcblx0XHRcdH0pO1xuXHRcdH1cblx0XHRyZXR1cm4gYWRkRWZmZWN0cztcblx0fVxuXG5cdHJldHVybiBbXG5cdFx0c2V0dGluZ3NTdGF0ZSxjaGFyV2lkdGhTdGF0ZSxoZWFkZXJEZWNvcmF0aW9ucyxmb2xkRGVjb3JhdGlvbnMsaGlkZGVuRGVjb3JhdGlvbnMsXG5cdFx0Y29kZWJsb2NrTGluZXMsaW5saW5lQ29kZURlY29yYXRvcixcblx0XHRjdXJzb3JGb2xkRXh0ZW5kZXIoKSxkb2N1bWVudEZvbGRFeHRlbmRlcigpLHNldHRpbmdzQ2hhbmdlRXh0ZW5kZXIoKVxuXHRcdC8vICxyZWFkZENvbnZlcnNpb25FeHRlbmRlcigpXG5cdF07XG59XG5cbmNvbnN0IGZvbGQ6IFN0YXRlRWZmZWN0VHlwZTx7ZnJvbTogbnVtYmVyLCB0bzogbnVtYmVyLCB2YWx1ZToge3NwZWM6IHtsYW5ndWFnZTogc3RyaW5nfX19PiA9IFN0YXRlRWZmZWN0LmRlZmluZSgpO1xuY29uc3QgdW5mb2xkOiBTdGF0ZUVmZmVjdFR5cGU8e2Zyb206IG51bWJlciwgdG86IG51bWJlcn0+ID0gU3RhdGVFZmZlY3QuZGVmaW5lKCk7XG5jb25zdCBoaWRlRm9sZDogU3RhdGVFZmZlY3RUeXBlPFJhbmdlPERlY29yYXRpb24+PiA9IFN0YXRlRWZmZWN0LmRlZmluZSgpO1xuY29uc3QgdW5oaWRlRm9sZDogU3RhdGVFZmZlY3RUeXBlPFJhbmdlPERlY29yYXRpb24+PiA9IFN0YXRlRWZmZWN0LmRlZmluZSgpO1xuY29uc3QgcmVtb3ZlRm9sZDogU3RhdGVFZmZlY3RUeXBlPEFycmF5PHN0cmluZz4+ID0gU3RhdGVFZmZlY3QuZGVmaW5lKCk7XG5jb25zdCBmb2xkQWxsOiBTdGF0ZUVmZmVjdFR5cGU8e3RvRm9sZD86IGJvb2xlYW59PiA9IFN0YXRlRWZmZWN0LmRlZmluZSgpO1xuXG5mdW5jdGlvbiBtb2RlSGlnaGxpZ2h0ICh7c3RhcnQsdGV4dCxsYW5ndWFnZX06IHtzdGFydDogbnVtYmVyLCB0ZXh0OiBzdHJpbmcsIGxhbmd1YWdlOiBzdHJpbmd9KTogQXJyYXk8UmFuZ2U8RGVjb3JhdGlvbj4+IHtcblx0Y29uc3QgbWFya0RlY29yYXRpb25zOiBBcnJheTxSYW5nZTxEZWNvcmF0aW9uPj4gPSBbXTtcblx0Ly9AdHMtZXhwZWN0LWVycm9yIFVuZG9jdW1lbnRlZCBPYnNpZGlhbiBBUElcblx0Y29uc3QgbW9kZSA9IHdpbmRvdy5Db2RlTWlycm9yLmdldE1vZGUod2luZG93LkNvZGVNaXJyb3IuZGVmYXVsdHMsd2luZG93LkNvZGVNaXJyb3IuZmluZE1vZGVCeU5hbWUobGFuZ3VhZ2UpPy5taW1lKTsgLy8gQWx0ZXJuYXRpdmVzOiBgdGV4dC94LSR7cGFyYW1ldGVycy5sYW5ndWFnZX1gLCB3aW5kb3cuQ29kZU1pcnJvci5maW5kTW9kZUJ5TmFtZSgnanMnKS5taW1lXG5cdGNvbnN0IHN0YXRlID0gd2luZG93LkNvZGVNaXJyb3Iuc3RhcnRTdGF0ZShtb2RlKTtcblx0aWYgKG1vZGU/LnRva2VuKSB7XG5cdFx0Y29uc3Qgc3RyZWFtID0gbmV3IHdpbmRvdy5Db2RlTWlycm9yLlN0cmluZ1N0cmVhbSh0ZXh0KTtcblx0XHR3aGlsZSAoIXN0cmVhbS5lb2woKSkge1xuXHRcdFx0Y29uc3Qgc3R5bGUgPSBtb2RlLnRva2VuKHN0cmVhbSxzdGF0ZSk7XG5cdFx0XHRpZiAoc3R5bGUpXG5cdFx0XHRcdG1hcmtEZWNvcmF0aW9ucy5wdXNoKHtmcm9tOiBzdGFydCtzdHJlYW0uc3RhcnQsIHRvOiBzdGFydCtzdHJlYW0ucG9zLCB2YWx1ZTogRGVjb3JhdGlvbi5tYXJrKHtjbGFzczogYGNtLSR7c3R5bGV9YH0pfSk7XG5cdFx0XHRzdHJlYW0uc3RhcnQgPSBzdHJlYW0ucG9zO1xuXHRcdH1cblx0fVxuXHRyZXR1cm4gbWFya0RlY29yYXRpb25zO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZWRpdGluZ0RvY3VtZW50Rm9sZCh2aWV3OiBFZGl0b3JWaWV3LCB0b0ZvbGQ/OiBib29sZWFuKSB7XG5cdHZpZXcuZGlzcGF0Y2goe2VmZmVjdHM6IGZvbGRBbGwub2YoKHR5cGVvZiB0b0ZvbGQgIT09IFwidW5kZWZpbmVkXCIpP3t0b0ZvbGQ6IHRvRm9sZH06e30pfSk7XG5cdHZpZXcucmVxdWVzdE1lYXN1cmUoKTtcbn1cbmZ1bmN0aW9uIGZvbGRPbkNsaWNrKHZpZXc6IEVkaXRvclZpZXcsIHRhcmdldDogSFRNTEVsZW1lbnQsIGZvbGRlZDogYm9vbGVhbiwgbGFuZ3VhZ2U6IHN0cmluZykge1xuXHRjb2RlYmxvY2tGb2xkQ2FsbGJhY2sodmlldy5wb3NBdERPTSh0YXJnZXQpLHZpZXcuc3RhdGUsKGZvbGRTdGFydCxmb2xkRW5kKT0+e1xuXHRcdHZpZXcuZGlzcGF0Y2goe2VmZmVjdHM6IGZvbGRMaW5lcyghZm9sZGVkLHtmcm9tOiBmb2xkU3RhcnQuZnJvbSwgdG86IGZvbGRFbmQudG8sIHZhbHVlOiB7c3BlYzoge2xhbmd1YWdlOiBsYW5ndWFnZX19fSl9KTtcblx0XHR2aWV3LnJlcXVlc3RNZWFzdXJlKCk7XG5cdH0pO1xufVxuZnVuY3Rpb24gZm9sZExpbmVzKHRvRm9sZDogYm9vbGVhbiwgZm9sZEluZm86IHtmcm9tOiBudW1iZXIsIHRvOiBudW1iZXIsdmFsdWU6IHtzcGVjOiB7bGFuZ3VhZ2U6IHN0cmluZ319fSk6IFN0YXRlRWZmZWN0PHVua25vd24+IHtcblx0cmV0dXJuIHRvRm9sZD9mb2xkLm9mKGZvbGRJbmZvKTp1bmZvbGQub2Yoe2Zyb206IGZvbGRJbmZvLmZyb20sIHRvOiBmb2xkSW5mby50b30pO1xufVxuZnVuY3Rpb24gZm9sZFJlZ2lvbih7ZnJvbTogZm9sZEZyb20sIHRvOiBmb2xkVG8sIHZhbHVlOiB7c3BlYzoge2xhbmd1YWdlfX19OiB7ZnJvbTogbnVtYmVyLCB0bzogbnVtYmVyLHZhbHVlOiB7c3BlYzoge2xhbmd1YWdlOiBzdHJpbmd9fX0pOiBSYW5nZTxEZWNvcmF0aW9uPiB7XG5cdHJldHVybiBmb2xkRGVjb3JhdGlvbihsYW5ndWFnZSkucmFuZ2UoZm9sZEZyb20sZm9sZFRvKTtcbn1cbmZ1bmN0aW9uIHVuZm9sZFJlZ2lvbih7ZnJvbTogZm9sZEZyb20sIHRvOiBmb2xkVG99OiB7ZnJvbTogbnVtYmVyLCB0bzogbnVtYmVyfSkge1xuXHRyZXR1cm4ge2ZpbHRlcjogKGZyb206IG51bWJlciwgdG86IG51bWJlcikgPT4gKHRvIDw9IGZvbGRGcm9tIHx8IGZyb20gPj0gZm9sZFRvKSwgZmlsdGVyRnJvbTogZm9sZEZyb20sIGZpbHRlclRvOiBmb2xkVG99O1xufVxuZnVuY3Rpb24gcmVtb3ZlRm9sZExhbmd1YWdlKGxhbmd1YWdlczogQXJyYXk8c3RyaW5nPikge1xuXHRyZXR1cm4ge2ZpbHRlcjogKGZyb206IG51bWJlciwgdG86IG51bWJlciwgdmFsdWU6IERlY29yYXRpb24pID0+ICFsYW5ndWFnZXMuaW5jbHVkZXModmFsdWU/LnNwZWM/Lmxhbmd1YWdlKX07XG59XG5mdW5jdGlvbiB1bmhpZGVGb2xkVXBkYXRlKHJhbmdlOiBSYW5nZTxEZWNvcmF0aW9uPikge1xuXHRyZXR1cm4ge2ZpbHRlckZyb206IHJhbmdlLmZyb20sIGZpbHRlclRvOiByYW5nZS50bywgZmlsdGVyOiAoZnJvbTogbnVtYmVyLCB0bzogbnVtYmVyKT0+IShmcm9tID09PSByYW5nZS5mcm9tICYmIHRvID09PSByYW5nZS50byl9O1xufVxuZnVuY3Rpb24gZm9sZERlY29yYXRpb24obGFuZ3VhZ2U6IHN0cmluZyk6IERlY29yYXRpb24ge1xuXHRyZXR1cm4gRGVjb3JhdGlvbi5yZXBsYWNlKHtibG9jazogdHJ1ZSwgbGFuZ3VhZ2U6IGxhbmd1YWdlfSk7XG59XG5cbmZ1bmN0aW9uIGNvZGVibG9ja0ZvbGRDYWxsYmFjayhzdGFydFBvc2l0aW9uOiBudW1iZXIsIHN0YXRlOiBFZGl0b3JTdGF0ZSwgZm9sZENhbGxiYWNrOiAoZm9sZFN0YXJ0OiBMaW5lLCBmb2xkRW5kOiBMaW5lKT0+dm9pZCkge1xuXHRjb25zdCBmb2xkU3RhcnQgPSBzdGF0ZS5kb2MubGluZUF0KHN0YXJ0UG9zaXRpb24pO1xuXHRjb25zdCBzdGFydERlbGltaXRlciA9IHRlc3RPcGVuaW5nTGluZShmb2xkU3RhcnQudGV4dC50b1N0cmluZygpKTtcblx0bGV0IGZvbGRFbmQ6IExpbmUgfCBudWxsID0gbnVsbDtcblx0Zm9yIChsZXQgaSA9IGZvbGRTdGFydC5udW1iZXIrMTsgaSA8IHN0YXRlLmRvYy5saW5lczsgaSsrKSB7XG5cdFx0Y29uc3QgbGluZSA9IHN0YXRlLmRvYy5saW5lKGkpO1xuXHRcdGNvbnN0IGxpbmVUZXh0ID0gbGluZS50ZXh0LnRvU3RyaW5nKCk7XG5cdFx0aWYgKHRlc3RPcGVuaW5nTGluZShsaW5lVGV4dCkgPT09IHN0YXJ0RGVsaW1pdGVyKSB7XG5cdFx0XHRmb2xkRW5kID0gbGluZTtcblx0XHRcdGJyZWFrO1xuXHRcdH1cblx0fVxuXHRpZiAoZm9sZEVuZCAhPT0gbnVsbClcblx0XHRmb2xkQ2FsbGJhY2soZm9sZFN0YXJ0LGZvbGRFbmQpO1xufVxuZnVuY3Rpb24gZmluZFVuZHVwbGljYXRlZENvZGVibG9ja3ModmlldzogRWRpdG9yVmlldyk6IEFycmF5PFN5bnRheE5vZGVSZWY+IHsgLy9UT0RPIChAbWF5dXJhbmt2KSBDYW4gSSBnZXQgYXJvdW5kIHRoaXM/XG5cdGNvbnN0IGNvZGVibG9ja3MgPSBmaW5kVmlzaWJsZUNvZGVibG9ja3Modmlldyk7XG5cdGNvbnN0IHVuZHVwbGljYXRlZENvZGVibG9ja3M6IEFycmF5PFN5bnRheE5vZGVSZWY+ID0gW107XG5cdGZvciAobGV0IGkgPSAwOyBpIDwgY29kZWJsb2Nrcy5sZW5ndGg7IGkrKylcblx0XHRpZiAoaSA9PT0gMCB8fCBjb2RlYmxvY2tzW2ldLmZyb20gIT09IGNvZGVibG9ja3NbaSAtIDFdLmZyb20pXG5cdFx0XHR1bmR1cGxpY2F0ZWRDb2RlYmxvY2tzLnB1c2goY29kZWJsb2Nrc1tpXSk7XG5cdHJldHVybiB1bmR1cGxpY2F0ZWRDb2RlYmxvY2tzO1xufVxuZnVuY3Rpb24gZmluZFZpc2libGVDb2RlYmxvY2tzKHZpZXc6IEVkaXRvclZpZXcpOiBBcnJheTxTeW50YXhOb2RlUmVmPiB7XG5cdHJldHVybiBmaW5kQ29kZWJsb2Nrcyh2aWV3KS5maWx0ZXIoKGNvZGVibG9jaykgPT4ge1xuXHRcdHJldHVybiB2aWV3LnZpc2libGVSYW5nZXMuc29tZSgodmlzaWJsZVJhbmdlKSA9PiBjb2RlYmxvY2suZnJvbSA8IHZpc2libGVSYW5nZS50byAmJiBjb2RlYmxvY2sudG8gPiB2aXNpYmxlUmFuZ2UuZnJvbSk7XG5cdH0pO1xufVxuZnVuY3Rpb24gZmluZENvZGVibG9ja3ModmlldzogRWRpdG9yVmlldyk6IEFycmF5PFN5bnRheE5vZGVSZWY+IHtcblx0Y29uc3QgY29kZWJsb2NrczogQXJyYXk8U3ludGF4Tm9kZVJlZj4gPSBbXTtcblx0c3ludGF4VHJlZSh2aWV3LnN0YXRlKS5pdGVyYXRlKHtcblx0XHRlbnRlcjogKHN5bnRheE5vZGUpID0+IHtcblx0XHRcdGlmIChzeW50YXhOb2RlLnR5cGUubmFtZS5pbmNsdWRlcyhcIkh5cGVyTUQtY29kZWJsb2NrLWJlZ2luXCIpIHx8IHN5bnRheE5vZGUudHlwZS5uYW1lID09PSBcIkh5cGVyTUQtY29kZWJsb2NrX0h5cGVyTUQtY29kZWJsb2NrLWJnXCIgfHwgc3ludGF4Tm9kZS50eXBlLm5hbWUuaW5jbHVkZXMoXCJIeXBlck1ELWNvZGVibG9jay1lbmRcIikpXG5cdFx0XHRcdGNvZGVibG9ja3MucHVzaChzeW50YXhOb2RlKTtcblx0XHR9XG5cdH0pO1xuXHRyZXR1cm4gY29kZWJsb2Nrcztcbn1cblxuZnVuY3Rpb24gZWRpdGluZ1ZpZXdJZ25vcmUoc3RhdGU6IEVkaXRvclN0YXRlKTogYm9vbGVhbiB7XG5cdGlmICghc3RhdGUuZmllbGQoZWRpdG9yTGl2ZVByZXZpZXdGaWVsZCkpXG5cdFx0cmV0dXJuIHRydWU7XG5cdGNvbnN0IGZpbGVQYXRoID0gc3RhdGUuZmllbGQoZWRpdG9ySW5mb0ZpZWxkKT8uZmlsZT8ucGF0aDtcblx0aWYgKHR5cGVvZiBmaWxlUGF0aCAhPT0gXCJ1bmRlZmluZWRcIilcblx0XHRyZXR1cm4gdGhpcy5hcHAubWV0YWRhdGFDYWNoZS5nZXRDYWNoZShmaWxlUGF0aCk/LmZyb250bWF0dGVyPy5bXCJjb2RlLXN0eWxlci1pZ25vcmVcIl0gPT09IHRydWU7XG5cdHJldHVybiBmYWxzZTtcbn1cbmZ1bmN0aW9uIGdldENoYXJXaWR0aChzdGF0ZTogRWRpdG9yU3RhdGUsIGRlZmF1bHRfdmFsdWU6IG51bWJlcik6IG51bWJlciB7XG5cdGNvbnN0IGNoYXJXaWR0aHMgPSBBcnJheS5mcm9tKHN0YXRlLmZpZWxkKGVkaXRvckVkaXRvckZpZWxkKS5jb250ZW50RE9NLnF1ZXJ5U2VsZWN0b3JBbGwoXCIuSHlwZXJNRC1jb2RlYmxvY2stZW5kXCIpKS5yZWR1Y2UoKHJlc3VsdDogQXJyYXk8bnVtYmVyPixiZWdpbm5pbmdFbGVtZW50OiBIVE1MRWxlbWVudCk6IEFycmF5PG51bWJlcj4gPT4ge1xuXHRcdGNvbnN0IG5leHRFbGVtZW50ID0gYmVnaW5uaW5nRWxlbWVudC5wcmV2aW91c0VsZW1lbnRTaWJsaW5nIGFzIEhUTUxFbGVtZW50O1xuXHRcdGlmICghbmV4dEVsZW1lbnQpXG5cdFx0XHRyZXR1cm4gcmVzdWx0O1xuXHRcdGNvbnN0IGxpbmVOdW1iZXJFbGVtZW50ID0gbmV4dEVsZW1lbnQucXVlcnlTZWxlY3RvcihcIltjbGFzc149J2NvZGUtc3R5bGVyLWxpbmUtbnVtYmVyJ11cIikgYXMgSFRNTEVsZW1lbnQ7XG5cdFx0aWYgKCFsaW5lTnVtYmVyRWxlbWVudCB8fCBsaW5lTnVtYmVyRWxlbWVudC5pbm5lclRleHQubGVuZ3RoIDw9IDIpXG5cdFx0XHRyZXR1cm4gcmVzdWx0O1xuXHRcdGNvbnN0IGNvbXB1dGVkU3R5bGVzID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUobGluZU51bWJlckVsZW1lbnQsIG51bGwpO1xuXHRcdHJlc3VsdC5wdXNoKChsaW5lTnVtYmVyRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aCAtIHBhcnNlRmxvYXQoY29tcHV0ZWRTdHlsZXMucGFkZGluZ0xlZnQpIC0gcGFyc2VGbG9hdChjb21wdXRlZFN0eWxlcy5wYWRkaW5nUmlnaHQpKSAvIGxpbmVOdW1iZXJFbGVtZW50LmlubmVyVGV4dC5sZW5ndGgpO1xuXHRcdHJldHVybiByZXN1bHQ7XG5cdH0sW10pO1xuXHRpZiAoY2hhcldpZHRocy5sZW5ndGggPT09IDApXG5cdFx0cmV0dXJuIGRlZmF1bHRfdmFsdWU7XG5cdHJldHVybiBjaGFyV2lkdGhzLnJlZHVjZSgocmVzdWx0LHZhbHVlKT0+cmVzdWx0K3ZhbHVlLDApIC8gY2hhcldpZHRocy5sZW5ndGg7XG59XG5mdW5jdGlvbiBzZXR0aW5nc0NoYW5nZXMoc2V0dGluZ3NTdGF0ZTogU2V0dGluZ3NTdGF0ZSxzZXR0aW5nczogQ29kZVN0eWxlclNldHRpbmdzKSB7XG5cdHJldHVybiAhc2V0dGluZ3NFcXVhbChzZXR0aW5nc1N0YXRlLHtleGNsdWRlZENvZGVibG9ja3M6IHNldHRpbmdzLmV4Y2x1ZGVkQ29kZWJsb2NrcywgZXhjbHVkZWRMYW5ndWFnZXM6IHNldHRpbmdzLmV4Y2x1ZGVkTGFuZ3VhZ2VzLCBhbHRlcm5hdGl2ZUhpZ2hsaWdodHM6IE9iamVjdC5rZXlzKHNldHRpbmdzLmN1cnJlbnRUaGVtZS5jb2xvdXJzLmxpZ2h0LmhpZ2hsaWdodHMuYWx0ZXJuYXRpdmVIaWdobGlnaHRzKX0pO1xufVxuZnVuY3Rpb24gc2V0dGluZ3NFcXVhbChpbml0aWFsU2V0dGluZ3NTdGF0ZTogU2V0dGluZ3NTdGF0ZSwgbmV3U2V0dGluZ3NTdGF0ZTogU2V0dGluZ3NTdGF0ZSkge1xuXHRyZXR1cm4gaW5pdGlhbFNldHRpbmdzU3RhdGUuZXhjbHVkZWRDb2RlYmxvY2tzID09PSBuZXdTZXR0aW5nc1N0YXRlLmV4Y2x1ZGVkQ29kZWJsb2NrcyAmJiBpbml0aWFsU2V0dGluZ3NTdGF0ZS5leGNsdWRlZExhbmd1YWdlcyA9PT0gbmV3U2V0dGluZ3NTdGF0ZS5leGNsdWRlZExhbmd1YWdlcyAmJiBhcnJheXNFcXVhbChpbml0aWFsU2V0dGluZ3NTdGF0ZS5hbHRlcm5hdGl2ZUhpZ2hsaWdodHMsbmV3U2V0dGluZ3NTdGF0ZS5hbHRlcm5hdGl2ZUhpZ2hsaWdodHMpO1xufVxuZnVuY3Rpb24gc2V0RGlmZmVyZW5jZShhcnJheTE6IEFycmF5PHVua25vd24+LCBhcnJheTI6IEFycmF5PHVua25vd24+KSB7XG5cdHJldHVybiBhcnJheTEuZmlsdGVyKGVsZW1lbnQgPT4gIWFycmF5Mi5pbmNsdWRlcyhlbGVtZW50KSk7XG59XG4iLCAiaW1wb3J0IHsgUGx1Z2luLCBURmlsZSB9IGZyb20gXCJvYnNpZGlhblwiO1xuXG5pbXBvcnQgQ29kZVN0eWxlclBsdWdpbiBmcm9tIFwiLi9tYWluXCI7XG5pbXBvcnQgeyBDb2RlU3R5bGVyVGhlbWUsIEVYRUNVVEVfQ09ERV9TVVBQT1JURURfTEFOR1VBR0VTIH0gZnJvbSBcIi4vU2V0dGluZ3NcIjtcblxuZXhwb3J0IGludGVyZmFjZSBDb2RlYmxvY2tQYXJhbWV0ZXJzIHtcblx0bGFuZ3VhZ2U6IHN0cmluZztcblx0dGl0bGU6IHN0cmluZztcblx0Zm9sZDoge1xuXHRcdGVuYWJsZWQ6IGJvb2xlYW47XG5cdFx0cGxhY2Vob2xkZXI6IHN0cmluZztcblx0fVxuXHRsaW5lTnVtYmVyczoge1xuXHRcdGFsd2F5c0VuYWJsZWQ6IGJvb2xlYW47XG5cdFx0YWx3YXlzRGlzYWJsZWQ6IGJvb2xlYW47XG5cdFx0b2Zmc2V0OiBudW1iZXI7XG5cdH0sXG5cdGxpbmVVbndyYXA6IHtcblx0XHRhbHdheXNFbmFibGVkOiBib29sZWFuO1xuXHRcdGFsd2F5c0Rpc2FibGVkOiBib29sZWFuO1xuXHRcdGFjdGl2ZVdyYXA6IGJvb2xlYW47XG5cdH0sXG5cdGhpZ2hsaWdodHM6IHtcblx0XHRkZWZhdWx0OiBIaWdobGlnaHRzO1xuXHRcdGFsdGVybmF0aXZlOiBSZWNvcmQ8c3RyaW5nLEhpZ2hsaWdodHM+XG5cdH0sXG5cdGlnbm9yZTogYm9vbGVhbjtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgSW5saW5lQ29kZVBhcmFtZXRlcnMge1xuXHRsYW5ndWFnZTogc3RyaW5nO1xuXHR0aXRsZTogc3RyaW5nO1xuXHRpY29uOiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEhpZ2hsaWdodHMge1xuXHRsaW5lTnVtYmVyczogQXJyYXk8bnVtYmVyPjtcblx0cGxhaW5UZXh0OiBBcnJheTxzdHJpbmc+O1xuXHRyZWd1bGFyRXhwcmVzc2lvbnM6IEFycmF5PFJlZ0V4cD47XG59XG5cbmludGVyZmFjZSBFeHRlcm5hbFBsdWdpbiBleHRlbmRzIFBsdWdpbiB7XG5cdHN1cHBvcnRlZExhbmd1YWdlcz86IEFycmF5PHN0cmluZz47XG5cdGNvZGU/OiAoc291cmNlOiBzdHJpbmcsIHNvdXJjZVBhdGg6IHN0cmluZyk9PlByb21pc2U8e1xuXHRcdHN0YXJ0OiBudW1iZXI7XG5cdFx0Y29kZTogc3RyaW5nO1xuXHRcdGxhbmd1YWdlOiBzdHJpbmc7XG5cdFx0aGlnaGxpZ2h0OiBzdHJpbmc7XG5cdFx0bGluZXM6IEFycmF5PHN0cmluZz47XG5cdFx0ZmlsZVBhdGg6IHN0cmluZztcblx0XHRsaW5lbnVtYmVyOiBudW1iZXI7XG5cdH0+O1xuXHRhbmFseXplSGlnaExpZ2h0TGluZXM/OiAobGluZXM6IHN0cmluZ1tdLCBzb3VyY2U6IHN0cmluZyB8IHN0cmluZ1tdKT0+TWFwPG51bWJlcixib29sZWFuPjtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHBhcnNlQ29kZWJsb2NrU291cmNlKGNvZGVTZWN0aW9uOiBBcnJheTxzdHJpbmc+LCBzb3VyY2VQYXRoOiBzdHJpbmcsIHBsdWdpbjogQ29kZVN0eWxlclBsdWdpbik6IFByb21pc2U8e2NvZGVibG9ja3NQYXJhbWV0ZXJzOiBBcnJheTxDb2RlYmxvY2tQYXJhbWV0ZXJzPiwgbmVzdGVkOiBib29sZWFufT4ge1xuXHQvL0B0cy1leHBlY3QtZXJyb3IgVW5kb2N1bWVudGVkIE9ic2lkaWFuIEFQSVxuXHRjb25zdCBwbHVnaW5zOiBSZWNvcmQ8c3RyaW5nLEV4dGVybmFsUGx1Z2luPiA9IHBsdWdpbi5hcHAucGx1Z2lucy5wbHVnaW5zO1xuXHRjb25zdCBhZG1vbml0aW9uczogYm9vbGVhbiA9IFwib2JzaWRpYW4tYWRtb25pdGlvblwiIGluIHBsdWdpbnM7XG5cdGNvbnN0IGNvZGVibG9ja3M6IEFycmF5PEFycmF5PHN0cmluZz4+ID0gW107XG5cdGNvbnN0IGNvZGVibG9ja3NQYXJhbWV0ZXJzOiBBcnJheTxDb2RlYmxvY2tQYXJhbWV0ZXJzPiA9IFtdO1xuXHRmdW5jdGlvbiBwYXJzZUNvZGVibG9ja1NlY3Rpb24oY29kZVNlY3Rpb246IEFycmF5PHN0cmluZz4pOiB2b2lkIHtcblx0XHRpZiAoY29kZVNlY3Rpb24ubGVuZ3RoID09PSAwKVxuXHRcdFx0cmV0dXJuO1xuXHRcdFxuXHRcdGNvbnN0IG9wZW5pbmdDb2RlYmxvY2tMaW5lID0gZ2V0T3BlbmluZ0xpbmUoY29kZVNlY3Rpb24pO1xuXHRcdGlmICghb3BlbmluZ0NvZGVibG9ja0xpbmUpXG5cdFx0XHRyZXR1cm47XG5cdFx0XG5cdFx0Y29uc3Qgb3BlbkRlbGltaXRlciA9IC9eXFxzKig/Oj5cXHMqKSooKD86YGBgK3x+fn4rKSkuKiQvLmV4ZWMob3BlbmluZ0NvZGVibG9ja0xpbmUpPy5bMV07XG5cdFx0aWYgKCFvcGVuRGVsaW1pdGVyKVxuXHRcdFx0cmV0dXJuO1xuXG5cdFx0Y29uc3Qgb3BlbkRlbGltaXRlckluZGV4ID0gY29kZVNlY3Rpb24uaW5kZXhPZihvcGVuaW5nQ29kZWJsb2NrTGluZSk7XG5cdFx0Y29uc3QgY2xvc2VEZWxpbWl0ZXJJbmRleCA9IGNvZGVTZWN0aW9uLnNsaWNlKG9wZW5EZWxpbWl0ZXJJbmRleCsxKS5maW5kSW5kZXgoKGxpbmUpPT5uZXcgUmVnRXhwKGBeXFxcXHMqKD86PlxcXFxzKikqJHtvcGVuRGVsaW1pdGVyfSg/ISR7b3BlbkRlbGltaXRlclswXX0pJGApLnRlc3QobGluZSkpO1xuXHRcdGlmICghYWRtb25pdGlvbnMgfHwgIS9eXFxzKig/Oj5cXHMqKSooPzpgYGArfH5+fispICphZC0uKiQvLnRlc3Qob3BlbmluZ0NvZGVibG9ja0xpbmUpKVxuXHRcdFx0Y29kZWJsb2Nrcy5wdXNoKGNvZGVTZWN0aW9uLnNsaWNlKDAsb3BlbkRlbGltaXRlckluZGV4KzIrY2xvc2VEZWxpbWl0ZXJJbmRleCkpO1xuXHRcdGVsc2Vcblx0XHRcdHBhcnNlQ29kZWJsb2NrU2VjdGlvbihjb2RlU2VjdGlvbi5zbGljZShvcGVuRGVsaW1pdGVySW5kZXgrMSxvcGVuRGVsaW1pdGVySW5kZXgrMStjbG9zZURlbGltaXRlckluZGV4KSk7XG4gICAgICAgIFxuXHRcdHBhcnNlQ29kZWJsb2NrU2VjdGlvbihjb2RlU2VjdGlvbi5zbGljZShvcGVuRGVsaW1pdGVySW5kZXgrMStjbG9zZURlbGltaXRlckluZGV4KzEpKTtcblx0fVxuXHRwYXJzZUNvZGVibG9ja1NlY3Rpb24oY29kZVNlY3Rpb24pO1xuXHRmb3IgKGNvbnN0IGNvZGVibG9ja0xpbmVzIG9mIGNvZGVibG9ja3MpIHtcblx0XHRjb25zdCBwYXJhbWV0ZXJMaW5lID0gZ2V0UGFyYW1ldGVyTGluZShjb2RlYmxvY2tMaW5lcyk7XG5cdFx0aWYgKCFwYXJhbWV0ZXJMaW5lKVxuXHRcdFx0Y29udGludWU7XG5cdFx0bGV0IGNvZGVibG9ja1BhcmFtZXRlcnMgPSBwYXJzZUNvZGVibG9ja1BhcmFtZXRlcnMocGFyYW1ldGVyTGluZSxwbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lKTtcblx0XHRcdFxuXHRcdGlmIChpc0V4Y2x1ZGVkKGNvZGVibG9ja1BhcmFtZXRlcnMubGFuZ3VhZ2UscGx1Z2luLnNldHRpbmdzLmV4Y2x1ZGVkQ29kZWJsb2NrcykpXG5cdFx0XHRjb250aW51ZTtcblx0XHRcblx0XHRjb2RlYmxvY2tQYXJhbWV0ZXJzID0gYXdhaXQgcGx1Z2luQWRqdXN0UGFyYW1ldGVycyhjb2RlYmxvY2tQYXJhbWV0ZXJzLHBsdWdpbnMsY29kZWJsb2NrTGluZXMsc291cmNlUGF0aCk7XG5cdFx0Y29kZWJsb2Nrc1BhcmFtZXRlcnMucHVzaChjb2RlYmxvY2tQYXJhbWV0ZXJzKTtcblx0fVxuXHRyZXR1cm4ge2NvZGVibG9ja3NQYXJhbWV0ZXJzOiBjb2RlYmxvY2tzUGFyYW1ldGVycywgbmVzdGVkOiBjb2RlYmxvY2tzWzBdPyFhcnJheXNFcXVhbChjb2RlU2VjdGlvbixjb2RlYmxvY2tzWzBdKTp0cnVlfTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZUlubGluZUNvZGUoY29kZVRleHQ6IHN0cmluZyk6IHtwYXJhbWV0ZXJzOiBJbmxpbmVDb2RlUGFyYW1ldGVycyB8IG51bGwsIHRleHQ6IHN0cmluZ30ge1xuXHRcblx0Y29uc3QgbWF0Y2ggPSAvXih7fSA/KT97KFtefV0qKX0gPyguKikkLy5leGVjKGNvZGVUZXh0KTtcblx0XG5cdGlmICghbWF0Y2g/LlsxXSAmJiAhKG1hdGNoPy5bMl0gJiYgbWF0Y2g/LlszXSkpXG5cdFx0cmV0dXJuIHtwYXJhbWV0ZXJzOiBudWxsLCB0ZXh0OiBcIlwifTtcblx0ZWxzZSBpZiAobWF0Y2g/LlsxXSlcblx0XHRyZXR1cm4ge3BhcmFtZXRlcnM6IG51bGwsIHRleHQ6IG1hdGNoWzBdLnN1YnN0cmluZyhtYXRjaFsxXS5sZW5ndGgpfTtcblx0ZWxzZVxuXHRcdHJldHVybiB7cGFyYW1ldGVyczogcGFyc2VJbmxpbmVDb2RlUGFyYW1ldGVycyhtYXRjaFsyXSksIHRleHQ6IG1hdGNoWzNdfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlQ29kZWJsb2NrUGFyYW1ldGVycyhwYXJhbWV0ZXJMaW5lOiBzdHJpbmcsIHRoZW1lOiBDb2RlU3R5bGVyVGhlbWUpOiBDb2RlYmxvY2tQYXJhbWV0ZXJzIHtcblx0Y29uc3QgY29kZWJsb2NrUGFyYW1ldGVyczogQ29kZWJsb2NrUGFyYW1ldGVycyA9IHtcblx0XHRsYW5ndWFnZTogXCJcIixcblx0XHR0aXRsZTogXCJcIixcblx0XHRmb2xkOiB7XG5cdFx0XHRlbmFibGVkOiBmYWxzZSxcblx0XHRcdHBsYWNlaG9sZGVyOiBcIlwiLFxuXHRcdH0sXG5cdFx0bGluZU51bWJlcnM6IHtcblx0XHRcdGFsd2F5c0VuYWJsZWQ6IGZhbHNlLFxuXHRcdFx0YWx3YXlzRGlzYWJsZWQ6IGZhbHNlLFxuXHRcdFx0b2Zmc2V0OiAwLFxuXHRcdH0sXG5cdFx0bGluZVVud3JhcDoge1xuXHRcdFx0YWx3YXlzRW5hYmxlZDogZmFsc2UsXG5cdFx0XHRhbHdheXNEaXNhYmxlZDogZmFsc2UsXG5cdFx0XHRhY3RpdmVXcmFwOiBmYWxzZSxcblx0XHR9LFxuXHRcdGhpZ2hsaWdodHM6IHtcblx0XHRcdGRlZmF1bHQ6IHtcblx0XHRcdFx0bGluZU51bWJlcnM6IFtdLFxuXHRcdFx0XHRwbGFpblRleHQ6IFtdLFxuXHRcdFx0XHRyZWd1bGFyRXhwcmVzc2lvbnM6IFtdLFxuXHRcdFx0fSxcblx0XHRcdGFsdGVybmF0aXZlOiB7fSxcblx0XHR9LFxuXHRcdGlnbm9yZTogZmFsc2UsXG5cdH07XG5cdGlmIChwYXJhbWV0ZXJMaW5lLnN0YXJ0c1dpdGgoXCJgYGBcIikpIHtcblx0XHRwYXJhbWV0ZXJMaW5lID0gcGFyYW1ldGVyTGluZS5yZXBsYWNlKC9eYGBgKyg/PVteYF18JCkvLFwiXCIpO1xuXHR9IGVsc2UgaWYgKHBhcmFtZXRlckxpbmUuc3RhcnRzV2l0aChcIn5+flwiKSkge1xuXHRcdHBhcmFtZXRlckxpbmUgPSBwYXJhbWV0ZXJMaW5lLnJlcGxhY2UoL15+fn4rKD89W15+XXwkKS8sXCJcIik7XG5cdH0gZWxzZSB7XG5cdFx0cmV0dXJuIGNvZGVibG9ja1BhcmFtZXRlcnM7XG5cdH1cblx0Y29uc3QgbGFuZ3VhZ2VCcmVhayA9IHBhcmFtZXRlckxpbmUuaW5kZXhPZihcIiBcIik7XG5cdGNvZGVibG9ja1BhcmFtZXRlcnMubGFuZ3VhZ2UgPSBwYXJhbWV0ZXJMaW5lLnNsaWNlKDAsbGFuZ3VhZ2VCcmVhayAhPT0gLTE/bGFuZ3VhZ2VCcmVhazpwYXJhbWV0ZXJMaW5lLmxlbmd0aCkudG9Mb3dlckNhc2UoKTtcblx0aWYgKGxhbmd1YWdlQnJlYWsgPT09IC0xKVxuXHRcdHJldHVybiBjb2RlYmxvY2tQYXJhbWV0ZXJzO1xuXHRjb25zdCBwYXJhbWV0ZXJTdHJpbmdzID0gcGFyYW1ldGVyTGluZS5zbGljZShsYW5ndWFnZUJyZWFrKzEpLm1hdGNoKC8oPzpbXlxcc1wiJ10rfFwiW15cIl0qXCJ8J1teJ10qJykrL2cpO1xuXHRpZiAoIXBhcmFtZXRlclN0cmluZ3MpXG5cdFx0cmV0dXJuIGNvZGVibG9ja1BhcmFtZXRlcnM7XG5cdHBhcmFtZXRlclN0cmluZ3MuZm9yRWFjaCgocGFyYW1ldGVyU3RyaW5nKSA9PiBwYXJzZUNvZGVibG9ja1BhcmFtZXRlclN0cmluZyhwYXJhbWV0ZXJTdHJpbmcsY29kZWJsb2NrUGFyYW1ldGVycyx0aGVtZSkpO1xuXHRyZXR1cm4gY29kZWJsb2NrUGFyYW1ldGVycztcbn1cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBwbHVnaW5BZGp1c3RQYXJhbWV0ZXJzKGNvZGVibG9ja1BhcmFtZXRlcnM6IENvZGVibG9ja1BhcmFtZXRlcnMsIHBsdWdpbnM6IFJlY29yZDxzdHJpbmcsRXh0ZXJuYWxQbHVnaW4+LCBjb2RlYmxvY2tMaW5lczogQXJyYXk8c3RyaW5nPiwgc291cmNlUGF0aDogc3RyaW5nKTogUHJvbWlzZTxDb2RlYmxvY2tQYXJhbWV0ZXJzPiB7XG5cdGlmIChjb2RlYmxvY2tQYXJhbWV0ZXJzLmxhbmd1YWdlID09PSBcInByZXZpZXdcIikge1xuXHRcdGlmIChwbHVnaW5zPy5bXCJvYnNpZGlhbi1jb2RlLXByZXZpZXdcIl0/LmNvZGUgJiYgcGx1Z2lucz8uW1wib2JzaWRpYW4tY29kZS1wcmV2aWV3XCJdPy5hbmFseXplSGlnaExpZ2h0TGluZXMpIHtcblx0XHRcdGNvbnN0IGNvZGVQcmV2aWV3UGFyYW1zID0gYXdhaXQgcGx1Z2luc1tcIm9ic2lkaWFuLWNvZGUtcHJldmlld1wiXS5jb2RlKGNvZGVibG9ja0xpbmVzLnNsaWNlKDEsLTEpLmpvaW4oXCJcXG5cIiksc291cmNlUGF0aCk7XG5cdFx0XHRpZiAoIWNvZGVibG9ja1BhcmFtZXRlcnMubGluZU51bWJlcnMuYWx3YXlzRGlzYWJsZWQgJiYgIWNvZGVibG9ja1BhcmFtZXRlcnMubGluZU51bWJlcnMuYWx3YXlzRW5hYmxlZCkge1xuXHRcdFx0XHRpZiAodHlwZW9mIGNvZGVQcmV2aWV3UGFyYW1zLnN0YXJ0ID09PSBcIm51bWJlclwiKVxuXHRcdFx0XHRcdGNvZGVibG9ja1BhcmFtZXRlcnMubGluZU51bWJlcnMub2Zmc2V0ID0gY29kZVByZXZpZXdQYXJhbXMuc3RhcnQgLSAxO1xuXHRcdFx0XHRjb2RlYmxvY2tQYXJhbWV0ZXJzLmxpbmVOdW1iZXJzLmFsd2F5c0VuYWJsZWQgPSBCb29sZWFuKGNvZGVQcmV2aWV3UGFyYW1zLmxpbmVudW1iZXIpO1xuXHRcdFx0fVxuXHRcdFx0Y29kZWJsb2NrUGFyYW1ldGVycy5oaWdobGlnaHRzLmRlZmF1bHQubGluZU51bWJlcnMgPSBbLi4ubmV3IFNldChjb2RlYmxvY2tQYXJhbWV0ZXJzLmhpZ2hsaWdodHMuZGVmYXVsdC5saW5lTnVtYmVycy5jb25jYXQoQXJyYXkuZnJvbShwbHVnaW5zW1wib2JzaWRpYW4tY29kZS1wcmV2aWV3XCJdLmFuYWx5emVIaWdoTGlnaHRMaW5lcyhjb2RlUHJldmlld1BhcmFtcy5saW5lcyxjb2RlUHJldmlld1BhcmFtcy5oaWdobGlnaHQpLChbbnVtLF9dOiBbbnVtYmVyLGJvb2xlYW5dKT0+KG51bSkpKSldOyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuXHRcdFx0aWYgKGNvZGVibG9ja1BhcmFtZXRlcnMudGl0bGUgPT09IFwiXCIpXG5cdFx0XHRcdGNvZGVibG9ja1BhcmFtZXRlcnMudGl0bGUgPSBjb2RlUHJldmlld1BhcmFtcy5maWxlUGF0aC5zcGxpdChcIlxcXFxcIikucG9wKCk/LnNwbGl0KFwiL1wiKS5wb3AoKSA/PyBcIlwiO1xuXHRcdFx0Y29kZWJsb2NrUGFyYW1ldGVycy5sYW5ndWFnZSA9IGNvZGVQcmV2aWV3UGFyYW1zLmxhbmd1YWdlO1xuXHRcdH1cblx0fSBlbHNlIGlmIChjb2RlYmxvY2tQYXJhbWV0ZXJzLmxhbmd1YWdlID09PSBcImluY2x1ZGVcIikge1xuXHRcdGlmIChcImZpbGUtaW5jbHVkZVwiIGluIHBsdWdpbnMpIHtcblx0XHRcdGNvbnN0IGZpbGVJbmNsdWRlTGFuZ3VhZ2UgPSBjb2RlYmxvY2tMaW5lc1swXS5tYXRjaCgvaW5jbHVkZSg/Ols6XFxzXSsoPzxsYW5nPlxcdyspKT8vKT8uZ3JvdXBzPy5sYW5nO1xuXHRcdFx0aWYgKHR5cGVvZiBmaWxlSW5jbHVkZUxhbmd1YWdlICE9PSBcInVuZGVmaW5lZFwiKVxuXHRcdFx0XHRjb2RlYmxvY2tQYXJhbWV0ZXJzLmxhbmd1YWdlID0gZmlsZUluY2x1ZGVMYW5ndWFnZTtcblx0XHR9XG5cdH0gZWxzZSBpZiAoL3J1bi1cXHcqLy50ZXN0KGNvZGVibG9ja1BhcmFtZXRlcnMubGFuZ3VhZ2UpKSB7XG5cdFx0Y29uc29sZS5sb2coXCJmb29cIik7XG5cdFx0aWYgKFwiZXhlY3V0ZS1jb2RlXCIgaW4gcGx1Z2lucykge1xuXHRcdFx0aWYgKEVYRUNVVEVfQ09ERV9TVVBQT1JURURfTEFOR1VBR0VTLmluY2x1ZGVzKGNvZGVibG9ja1BhcmFtZXRlcnMubGFuZ3VhZ2Uuc2xpY2UoNCkpKVxuXHRcdFx0XHRjb2RlYmxvY2tQYXJhbWV0ZXJzLmxhbmd1YWdlID0gY29kZWJsb2NrUGFyYW1ldGVycy5sYW5ndWFnZS5zbGljZSg0KTtcblx0XHR9XG5cdH1cblx0cmV0dXJuIGNvZGVibG9ja1BhcmFtZXRlcnM7XG59XG5mdW5jdGlvbiBwYXJzZUlubGluZUNvZGVQYXJhbWV0ZXJzKHBhcmFtZXRlckxpbmU6IHN0cmluZyk6IElubGluZUNvZGVQYXJhbWV0ZXJzIHtcblx0Y29uc3QgaW5saW5lQ29kZVBhcmFtZXRlcnM6IElubGluZUNvZGVQYXJhbWV0ZXJzID0ge1xuXHRcdGxhbmd1YWdlOiBcIlwiLFxuXHRcdHRpdGxlOiBcIlwiLFxuXHRcdGljb246IGZhbHNlLFxuXHR9O1xuXHRjb25zdCBsYW5ndWFnZUJyZWFrID0gcGFyYW1ldGVyTGluZS5pbmRleE9mKFwiIFwiKTtcblx0aW5saW5lQ29kZVBhcmFtZXRlcnMubGFuZ3VhZ2UgPSBwYXJhbWV0ZXJMaW5lLnNsaWNlKDAsbGFuZ3VhZ2VCcmVhayAhPT0gLTE/bGFuZ3VhZ2VCcmVhazpwYXJhbWV0ZXJMaW5lLmxlbmd0aCkudG9Mb3dlckNhc2UoKTtcblx0aWYgKGxhbmd1YWdlQnJlYWsgPT09IC0xKVxuXHRcdHJldHVybiBpbmxpbmVDb2RlUGFyYW1ldGVycztcblx0Y29uc3QgcGFyYW1ldGVyU3RyaW5ncyA9IHBhcmFtZXRlckxpbmUuc2xpY2UobGFuZ3VhZ2VCcmVhaysxKS5tYXRjaCgvKD86W15cXHNcIiddK3xcIlteXCJdKlwifCdbXiddKicpKy9nKTtcblx0aWYgKCFwYXJhbWV0ZXJTdHJpbmdzKVxuXHRcdHJldHVybiBpbmxpbmVDb2RlUGFyYW1ldGVycztcblx0cGFyYW1ldGVyU3RyaW5ncy5mb3JFYWNoKChwYXJhbWV0ZXJTdHJpbmcpID0+IHBhcnNlSW5saW5lQ29kZVBhcmFtZXRlclN0cmluZyhwYXJhbWV0ZXJTdHJpbmcsaW5saW5lQ29kZVBhcmFtZXRlcnMpKTtcblx0cmV0dXJuIGlubGluZUNvZGVQYXJhbWV0ZXJzO1xufVxuXG5mdW5jdGlvbiBwYXJzZUNvZGVibG9ja1BhcmFtZXRlclN0cmluZyhwYXJhbWV0ZXJTdHJpbmc6IHN0cmluZywgY29kZWJsb2NrUGFyYW1ldGVyczogQ29kZWJsb2NrUGFyYW1ldGVycywgdGhlbWU6IENvZGVTdHlsZXJUaGVtZSk6IHZvaWQge1xuXHRpZiAocGFyYW1ldGVyU3RyaW5nLnN0YXJ0c1dpdGgoXCJ0aXRsZTpcIikpIHtcblx0XHRjb25zdCB0aXRsZU1hdGNoID0gLyhbXCInXT8pKFteXFwxXSspXFwxLy5leGVjKHBhcmFtZXRlclN0cmluZy5zbGljZShcInRpdGxlOlwiLmxlbmd0aCkpO1xuXHRcdGlmICh0aXRsZU1hdGNoKVxuXHRcdFx0Y29kZWJsb2NrUGFyYW1ldGVycy50aXRsZSA9IHRpdGxlTWF0Y2hbMl0udHJpbSgpO1xuXHR9IGVsc2UgaWYgKHBhcmFtZXRlclN0cmluZy5zdGFydHNXaXRoKFwiZm9sZDpcIikpIHtcblx0XHRjb25zdCBmb2xkUGxhY2Vob2xkZXJNYXRjaCA9IC8oW1wiJ10/KShbXlxcMV0rKVxcMS8uZXhlYyhwYXJhbWV0ZXJTdHJpbmcuc2xpY2UoXCJmb2xkOlwiLmxlbmd0aCkpO1xuXHRcdGlmIChmb2xkUGxhY2Vob2xkZXJNYXRjaCkge1xuXHRcdFx0Y29kZWJsb2NrUGFyYW1ldGVycy5mb2xkID0ge1xuXHRcdFx0XHRlbmFibGVkOiB0cnVlLFxuXHRcdFx0XHRwbGFjZWhvbGRlcjogZm9sZFBsYWNlaG9sZGVyTWF0Y2hbMl0udHJpbSgpLFxuXHRcdFx0fTtcblx0XHR9XG5cdH0gZWxzZSBpZiAocGFyYW1ldGVyU3RyaW5nID09PSBcImZvbGRcIikge1xuXHRcdGNvZGVibG9ja1BhcmFtZXRlcnMuZm9sZCA9IHtcblx0XHRcdGVuYWJsZWQ6IHRydWUsXG5cdFx0XHRwbGFjZWhvbGRlcjogXCJcIixcblx0XHR9O1xuXHR9IGVsc2UgaWYgKHBhcmFtZXRlclN0cmluZyA9PT0gXCJpZ25vcmVcIikge1xuXHRcdGNvZGVibG9ja1BhcmFtZXRlcnMuaWdub3JlID0gdHJ1ZTtcblx0fSBlbHNlIGlmIChwYXJhbWV0ZXJTdHJpbmcuc3RhcnRzV2l0aChcImxuOlwiKSkge1xuXHRcdHBhcmFtZXRlclN0cmluZyA9IHBhcmFtZXRlclN0cmluZy5zbGljZShcImxuOlwiLmxlbmd0aCk7XG5cdFx0aWYgKC9eXFxkKyQvLnRlc3QocGFyYW1ldGVyU3RyaW5nKSkge1xuXHRcdFx0Y29kZWJsb2NrUGFyYW1ldGVycy5saW5lTnVtYmVycyA9IHtcblx0XHRcdFx0YWx3YXlzRW5hYmxlZDogdHJ1ZSxcblx0XHRcdFx0YWx3YXlzRGlzYWJsZWQ6IGZhbHNlLFxuXHRcdFx0XHRvZmZzZXQ6IHBhcnNlSW50KHBhcmFtZXRlclN0cmluZyktMSxcblx0XHRcdH07XG5cdFx0fSBlbHNlIGlmIChwYXJhbWV0ZXJTdHJpbmcudG9Mb3dlckNhc2UoKSA9PT0gXCJ0cnVlXCIpIHtcblx0XHRcdGNvZGVibG9ja1BhcmFtZXRlcnMubGluZU51bWJlcnMgPSB7XG5cdFx0XHRcdGFsd2F5c0VuYWJsZWQ6IHRydWUsXG5cdFx0XHRcdGFsd2F5c0Rpc2FibGVkOiBmYWxzZSxcblx0XHRcdFx0b2Zmc2V0OiAwLFxuXHRcdFx0fTtcblx0XHR9IGVsc2UgaWYgKHBhcmFtZXRlclN0cmluZy50b0xvd2VyQ2FzZSgpID09PSBcImZhbHNlXCIpIHtcblx0XHRcdGNvZGVibG9ja1BhcmFtZXRlcnMubGluZU51bWJlcnMgPSB7XG5cdFx0XHRcdGFsd2F5c0VuYWJsZWQ6IGZhbHNlLFxuXHRcdFx0XHRhbHdheXNEaXNhYmxlZDogdHJ1ZSxcblx0XHRcdFx0b2Zmc2V0OiAwLFxuXHRcdFx0fTtcblx0XHR9XG5cdH0gZWxzZSBpZiAocGFyYW1ldGVyU3RyaW5nID09PSBcIndyYXBcIikge1xuXHRcdGNvZGVibG9ja1BhcmFtZXRlcnMubGluZVVud3JhcCA9IHtcblx0XHRcdGFsd2F5c0VuYWJsZWQ6IGZhbHNlLFxuXHRcdFx0YWx3YXlzRGlzYWJsZWQ6IHRydWUsXG5cdFx0XHRhY3RpdmVXcmFwOiBmYWxzZSxcblx0XHR9O1xuXHR9IGVsc2UgaWYgKHBhcmFtZXRlclN0cmluZyA9PT0gXCJ1bndyYXBcIikge1xuXHRcdGNvZGVibG9ja1BhcmFtZXRlcnMubGluZVVud3JhcCA9IHtcblx0XHRcdGFsd2F5c0VuYWJsZWQ6IHRydWUsXG5cdFx0XHRhbHdheXNEaXNhYmxlZDogZmFsc2UsXG5cdFx0XHRhY3RpdmVXcmFwOiBmYWxzZSxcblx0XHR9O1xuXHR9IGVsc2UgaWYgKHBhcmFtZXRlclN0cmluZy5zdGFydHNXaXRoKFwidW53cmFwOlwiKSkge1xuXHRcdHBhcmFtZXRlclN0cmluZyA9IHBhcmFtZXRlclN0cmluZy5zbGljZShcInVud3JhcDpcIi5sZW5ndGgpO1xuXHRcdGlmIChwYXJhbWV0ZXJTdHJpbmcudG9Mb3dlckNhc2UoKSA9PT0gXCJpbmFjdGl2ZVwiKSB7XG5cdFx0XHRjb2RlYmxvY2tQYXJhbWV0ZXJzLmxpbmVVbndyYXAgPSB7XG5cdFx0XHRcdGFsd2F5c0VuYWJsZWQ6IHRydWUsXG5cdFx0XHRcdGFsd2F5c0Rpc2FibGVkOiBmYWxzZSxcblx0XHRcdFx0YWN0aXZlV3JhcDogdHJ1ZSxcblx0XHRcdH07XG5cdFx0fSBlbHNlIGlmIChwYXJhbWV0ZXJTdHJpbmcudG9Mb3dlckNhc2UoKSA9PT0gXCJ0cnVlXCIpIHtcblx0XHRcdGNvZGVibG9ja1BhcmFtZXRlcnMubGluZVVud3JhcCA9IHtcblx0XHRcdFx0YWx3YXlzRW5hYmxlZDogdHJ1ZSxcblx0XHRcdFx0YWx3YXlzRGlzYWJsZWQ6IGZhbHNlLFxuXHRcdFx0XHRhY3RpdmVXcmFwOiBmYWxzZSxcblx0XHRcdH07XG5cdFx0fSBlbHNlIGlmIChwYXJhbWV0ZXJTdHJpbmcudG9Mb3dlckNhc2UoKSA9PT0gXCJmYWxzZVwiKSB7XG5cdFx0XHRjb2RlYmxvY2tQYXJhbWV0ZXJzLmxpbmVVbndyYXAgPSB7XG5cdFx0XHRcdGFsd2F5c0VuYWJsZWQ6IGZhbHNlLFxuXHRcdFx0XHRhbHdheXNEaXNhYmxlZDogdHJ1ZSxcblx0XHRcdFx0YWN0aXZlV3JhcDogZmFsc2UsXG5cdFx0XHR9O1xuXHRcdH1cblx0fSBlbHNlIHtcblx0XHRjb25zdCBoaWdobGlnaHRNYXRjaCA9IC9eKFxcdyspOiguKykkLy5leGVjKHBhcmFtZXRlclN0cmluZyk7XG5cdFx0aWYgKGhpZ2hsaWdodE1hdGNoKSB7XG5cdFx0XHRjb25zdCBoaWdobGlnaHRzID0gcGFyc2VIaWdobGlnaHRlZExpbmVzKGhpZ2hsaWdodE1hdGNoWzJdKTtcblx0XHRcdGlmIChoaWdobGlnaHRNYXRjaFsxXSA9PT0gXCJobFwiKVxuXHRcdFx0XHRjb2RlYmxvY2tQYXJhbWV0ZXJzLmhpZ2hsaWdodHMuZGVmYXVsdCA9IGhpZ2hsaWdodHM7XG5cdFx0XHRlbHNlIHtcblx0XHRcdFx0aWYgKGhpZ2hsaWdodE1hdGNoWzFdIGluIHRoZW1lLmNvbG91cnMubGlnaHQuaGlnaGxpZ2h0cy5hbHRlcm5hdGl2ZUhpZ2hsaWdodHMpXG5cdFx0XHRcdFx0Y29kZWJsb2NrUGFyYW1ldGVycy5oaWdobGlnaHRzLmFsdGVybmF0aXZlW2hpZ2hsaWdodE1hdGNoWzFdXSA9IGhpZ2hsaWdodHM7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG5mdW5jdGlvbiBwYXJzZUhpZ2hsaWdodGVkTGluZXMoaGlnaGxpZ2h0ZWRMaW5lc1N0cmluZzogc3RyaW5nKTogSGlnaGxpZ2h0cyB7XG5cdGNvbnN0IGhpZ2hsaWdodFJ1bGVzID0gaGlnaGxpZ2h0ZWRMaW5lc1N0cmluZy5zcGxpdChcIixcIik7XG5cdGNvbnN0IGxpbmVOdW1iZXJzOiBTZXQ8bnVtYmVyPiA9IG5ldyBTZXQoKTtcblx0Y29uc3QgcGxhaW5UZXh0OiBTZXQ8c3RyaW5nPiA9IG5ldyBTZXQoKTtcblx0Y29uc3QgcmVndWxhckV4cHJlc3Npb25zOiBTZXQ8UmVnRXhwPiA9IG5ldyBTZXQoKTtcblx0aGlnaGxpZ2h0UnVsZXMuZm9yRWFjaChoaWdobGlnaHRSdWxlID0+IHtcblx0XHRpZiAoL1xcZCstXFxkKy8udGVzdChoaWdobGlnaHRSdWxlKSkgeyAvLyBOdW1iZXIgUmFuZ2Vcblx0XHRcdGNvbnN0IFtzdGFydCxlbmRdID0gaGlnaGxpZ2h0UnVsZS5zcGxpdChcIi1cIikubWFwKG51bSA9PiBwYXJzZUludChudW0pKTtcblx0XHRcdGlmIChzdGFydCAmJiBlbmQgJiYgc3RhcnQgPD0gZW5kKVxuXHRcdFx0XHRBcnJheS5mcm9tKHtsZW5ndGg6ZW5kLXN0YXJ0KzF9LCAoXyxudW0pID0+IG51bSArIHN0YXJ0KS5mb3JFYWNoKGxpbmVOdW1iZXIgPT4gbGluZU51bWJlcnMuYWRkKGxpbmVOdW1iZXIpKTtcblx0XHR9IGVsc2UgaWYgKC9eXFwvKC4qKVxcLyQvLnRlc3QoaGlnaGxpZ2h0UnVsZSkpIHsgLy8gUmVnZXhcblx0XHRcdHRyeSB7XG5cdFx0XHRcdHJlZ3VsYXJFeHByZXNzaW9ucy5hZGQobmV3IFJlZ0V4cChoaWdobGlnaHRSdWxlLnJlcGxhY2UoL15cXC8oLiopXFwvJC8sXCIkMVwiKSkpO1xuXHRcdFx0fSBjYXRjaCB7XG5cdFx0XHRcdC8vcGFzc1xuXHRcdFx0fVxuXHRcdH0gZWxzZSBpZiAoL1wiLipcIi8udGVzdChoaWdobGlnaHRSdWxlKSkgeyAvLyBQbGFpbiBUZXh0XG5cdFx0XHRwbGFpblRleHQuYWRkKGhpZ2hsaWdodFJ1bGUuc3Vic3RyaW5nKDEsaGlnaGxpZ2h0UnVsZS5sZW5ndGgtMSkpO1xuXHRcdH0gZWxzZSBpZiAoLycuKicvLnRlc3QoaGlnaGxpZ2h0UnVsZSkpIHsgLy8gUGxhaW4gVGV4dFxuXHRcdFx0cGxhaW5UZXh0LmFkZChoaWdobGlnaHRSdWxlLnN1YnN0cmluZygxLGhpZ2hsaWdodFJ1bGUubGVuZ3RoLTEpKTtcblx0XHR9IGVsc2UgaWYgKC9cXEQvLnRlc3QoaGlnaGxpZ2h0UnVsZSkpIHsgLy8gUGxhaW4gVGV4dFxuXHRcdFx0cGxhaW5UZXh0LmFkZChoaWdobGlnaHRSdWxlKTtcblx0XHR9IGVsc2UgaWYgKC9cXGQrLy50ZXN0KGhpZ2hsaWdodFJ1bGUpKSB7IC8vIFBsYWluIE51bWJlclxuXHRcdFx0bGluZU51bWJlcnMuYWRkKHBhcnNlSW50KGhpZ2hsaWdodFJ1bGUpKTtcblx0XHR9XG5cdH0pO1xuXHRyZXR1cm4ge1xuXHRcdGxpbmVOdW1iZXJzOiBbLi4ubGluZU51bWJlcnNdLFxuXHRcdHBsYWluVGV4dDogWy4uLnBsYWluVGV4dF0sXG5cdFx0cmVndWxhckV4cHJlc3Npb25zOiBbLi4ucmVndWxhckV4cHJlc3Npb25zXSxcblx0fTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBpc0V4Y2x1ZGVkKGxhbmd1YWdlOiBzdHJpbmcsIGV4Y2x1ZGVkTGFuZ3VhZ2VzU3RyaW5nOiBzdHJpbmcpOiBib29sZWFuIHtcblx0cmV0dXJuIHBhcnNlUmVnZXhFeGNsdWRlZExhbmd1YWdlcyhleGNsdWRlZExhbmd1YWdlc1N0cmluZykuc29tZShyZWdleEV4Y2x1ZGVkTGFuZ3VhZ2U9PnJlZ2V4RXhjbHVkZWRMYW5ndWFnZS50ZXN0KGxhbmd1YWdlKSk7XG59XG5mdW5jdGlvbiBwYXJzZVJlZ2V4RXhjbHVkZWRMYW5ndWFnZXMoZXhjbHVkZWRMYW5ndWFnZXNTdHJpbmc6IHN0cmluZyk6IEFycmF5PFJlZ0V4cD4ge1xuXHRyZXR1cm4gZXhjbHVkZWRMYW5ndWFnZXNTdHJpbmcuc3BsaXQoXCIsXCIpLm1hcChyZWdleExhbmd1YWdlID0+IG5ldyBSZWdFeHAoYF4ke3JlZ2V4TGFuZ3VhZ2UudHJpbSgpLnJlcGxhY2UoL1xcKi9nLFwiLitcIil9JGAsXCJpXCIpKTtcbn1cbmZ1bmN0aW9uIHBhcnNlSW5saW5lQ29kZVBhcmFtZXRlclN0cmluZyhwYXJhbWV0ZXJTdHJpbmc6IHN0cmluZywgaW5saW5lQ29kZVBhcmFtZXRlcnM6IElubGluZUNvZGVQYXJhbWV0ZXJzKTogdm9pZCB7XG5cdGlmIChwYXJhbWV0ZXJTdHJpbmcuc3RhcnRzV2l0aChcInRpdGxlOlwiKSkge1xuXHRcdGNvbnN0IHRpdGxlTWF0Y2ggPSAvKFtcIiddPykoW15cXDFdKylcXDEvLmV4ZWMocGFyYW1ldGVyU3RyaW5nLnNsaWNlKFwidGl0bGU6XCIubGVuZ3RoKSk7XG5cdFx0aWYgKHRpdGxlTWF0Y2gpXG5cdFx0XHRpbmxpbmVDb2RlUGFyYW1ldGVycy50aXRsZSA9IHRpdGxlTWF0Y2hbMl0udHJpbSgpO1xuXHR9IGVsc2UgaWYgKHBhcmFtZXRlclN0cmluZyA9PT0gXCJpY29uXCIgfHwgKHBhcmFtZXRlclN0cmluZy5zdGFydHNXaXRoKFwiaWNvbjpcIikgJiYgcGFyYW1ldGVyU3RyaW5nLnRvTG93ZXJDYXNlKCkgPT09IFwiaWNvbjp0cnVlXCIpKVxuXHRcdGlubGluZUNvZGVQYXJhbWV0ZXJzLmljb24gPSB0cnVlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0UGFyYW1ldGVyTGluZShjb2RlYmxvY2tMaW5lczogQXJyYXk8c3RyaW5nPik6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG5cdGxldCBvcGVuaW5nQ29kZWJsb2NrTGluZSA9IGdldE9wZW5pbmdMaW5lKGNvZGVibG9ja0xpbmVzKTtcblx0aWYgKG9wZW5pbmdDb2RlYmxvY2tMaW5lICYmIChvcGVuaW5nQ29kZWJsb2NrTGluZSAhPT0gY29kZWJsb2NrTGluZXNbMF0gfHwgLz5cXHMqKD86W2B+XSkvLnRlc3Qob3BlbmluZ0NvZGVibG9ja0xpbmUpKSlcblx0XHRvcGVuaW5nQ29kZWJsb2NrTGluZSA9IGNsZWFuUGFyYW1ldGVyTGluZShvcGVuaW5nQ29kZWJsb2NrTGluZSk7XG5cdHJldHVybiBvcGVuaW5nQ29kZWJsb2NrTGluZTtcbn1cbmZ1bmN0aW9uIGdldE9wZW5pbmdMaW5lKGNvZGVibG9ja0xpbmVzOiBBcnJheTxzdHJpbmc+KTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcblx0cmV0dXJuIGNvZGVibG9ja0xpbmVzLmZpbmQoKGxpbmU6IHN0cmluZyk9PkJvb2xlYW4odGVzdE9wZW5pbmdMaW5lKGxpbmUpKSk7XG59XG5leHBvcnQgZnVuY3Rpb24gdGVzdE9wZW5pbmdMaW5lKGNvZGVibG9ja0xpbmU6IHN0cmluZyk6IHN0cmluZyB7XG5cdGNvbnN0IGxpbmVNYXRjaCA9IC9eKFxccyooPzo+XFxzKikqKShgYGArfH5+fispLy5leGVjKGNvZGVibG9ja0xpbmUpO1xuXHRpZiAoIWxpbmVNYXRjaClcblx0XHRyZXR1cm4gXCJcIjtcblx0aWYgKGNvZGVibG9ja0xpbmUuaW5kZXhPZihsaW5lTWF0Y2hbMl0sbGluZU1hdGNoWzFdLmxlbmd0aCtsaW5lTWF0Y2hbMl0ubGVuZ3RoKzEpPT09LTEpXG5cdFx0cmV0dXJuIGxpbmVNYXRjaFsyXTtcblx0cmV0dXJuIFwiXCI7XG59XG5mdW5jdGlvbiBjbGVhblBhcmFtZXRlckxpbmUocGFyYW1ldGVyTGluZTogc3RyaW5nKTogc3RyaW5nIHtcblx0cmV0dXJuIHRyaW1QYXJhbWV0ZXJMaW5lKHBhcmFtZXRlckxpbmUpLnJlcGxhY2UoL14oPzo+XFxzKikqKGBgYCt8fn5+KykvLFwiJDFcIik7XG59XG5leHBvcnQgZnVuY3Rpb24gdHJpbVBhcmFtZXRlckxpbmUocGFyYW1ldGVyTGluZTogc3RyaW5nKTogc3RyaW5nIHtcblx0cmV0dXJuIHBhcmFtZXRlckxpbmUudHJpbSgpO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0RmlsZUNvbnRlbnRMaW5lcyhzb3VyY2VQYXRoOiBzdHJpbmcsIHBsdWdpbjogQ29kZVN0eWxlclBsdWdpbik6IFByb21pc2U8QXJyYXk8c3RyaW5nPiB8IHVuZGVmaW5lZD4ge1xuXHRjb25zdCBmaWxlID0gcGx1Z2luLmFwcC52YXVsdC5nZXRBYnN0cmFjdEZpbGVCeVBhdGgoc291cmNlUGF0aCk7XG5cdGlmICghZmlsZSkge1xuXHRcdGNvbnNvbGUuZXJyb3IoYEZpbGUgbm90IGZvdW5kOiAke3NvdXJjZVBhdGh9YCk7XG5cdFx0cmV0dXJuO1xuXHR9XG5cdGNvbnN0IGZpbGVDb250ZW50ID0gYXdhaXQgcGx1Z2luLmFwcC52YXVsdC5jYWNoZWRSZWFkKDxURmlsZT4gZmlsZSkuY2F0Y2goKGVycm9yKSA9PiB7XG5cdFx0Y29uc29sZS5lcnJvcihgRXJyb3IgcmVhZGluZyBmaWxlOiAke2Vycm9yLm1lc3NhZ2V9YCk7XG5cdFx0cmV0dXJuIFwiXCI7XG5cdH0pO1xuXHRpZiAoIWZpbGVDb250ZW50KVxuXHRcdHJldHVybjtcblx0cmV0dXJuIGZpbGVDb250ZW50LnNwbGl0KC9cXG4vZyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhcnJheXNFcXVhbChhcnJheTE6IEFycmF5PHVua25vd24+LGFycmF5MjogQXJyYXk8dW5rbm93bj4pOiBib29sZWFuIHtcblx0cmV0dXJuIGFycmF5MS5sZW5ndGggPT09IGFycmF5Mi5sZW5ndGggJiYgYXJyYXkxLmV2ZXJ5KChlbCkgPT4gYXJyYXkyLmluY2x1ZGVzKGVsKSk7XG59XG4iLCAiaW1wb3J0IHsgTEFOR1VBR0VfTkFNRVMsIENvZGVTdHlsZXJUaGVtZVNldHRpbmdzLCBGT0xEX1BMQUNFSE9MREVSIH0gZnJvbSBcIi4vU2V0dGluZ3NcIjtcbmltcG9ydCB7IENvZGVibG9ja1BhcmFtZXRlcnMsIEhpZ2hsaWdodHMsIElubGluZUNvZGVQYXJhbWV0ZXJzIH0gZnJvbSBcIi4vQ29kZWJsb2NrUGFyc2luZ1wiO1xuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlSGVhZGVyKGNvZGVibG9ja1BhcmFtZXRlcnM6IENvZGVibG9ja1BhcmFtZXRlcnMsIHRoZW1lU2V0dGluZ3M6IENvZGVTdHlsZXJUaGVtZVNldHRpbmdzLCBsYW5ndWFnZUljb25zOiBSZWNvcmQ8c3RyaW5nLHN0cmluZz4pOiBIVE1MRWxlbWVudCB7XG5cdGNvbnN0IGhlYWRlckNvbnRhaW5lciA9IGNyZWF0ZURpdigpO1xuXHRjb25zdCBpY29uVVJMID0gY29kZWJsb2NrUGFyYW1ldGVycy5sYW5ndWFnZT9nZXRMYW5ndWFnZUljb24oY29kZWJsb2NrUGFyYW1ldGVycy5sYW5ndWFnZSxsYW5ndWFnZUljb25zKTp1bmRlZmluZWQ7XG5cdGlmICghaXNIZWFkZXJIaWRkZW4oY29kZWJsb2NrUGFyYW1ldGVycyx0aGVtZVNldHRpbmdzLGljb25VUkwpKSB7XG5cdFx0aGVhZGVyQ29udGFpbmVyLmNsYXNzTGlzdC5hZGQoXCJjb2RlLXN0eWxlci1oZWFkZXItY29udGFpbmVyXCIpO1xuXHRcdGlmIChjb2RlYmxvY2tQYXJhbWV0ZXJzLmxhbmd1YWdlICE9PSBcIlwiKSB7XG5cdFx0XHRpZiAoaXNMYW5ndWFnZUljb25TaG93bihjb2RlYmxvY2tQYXJhbWV0ZXJzLHRoZW1lU2V0dGluZ3MsaWNvblVSTCkpXG5cdFx0XHRcdGhlYWRlckNvbnRhaW5lci5hcHBlbmRDaGlsZChjcmVhdGVJbWFnZVdyYXBwZXIoaWNvblVSTCBhcyBzdHJpbmcsY3JlYXRlRGl2KCkpKTtcblx0XHRcdGlmIChpc0xhbmd1YWdlVGFnU2hvd24oY29kZWJsb2NrUGFyYW1ldGVycyx0aGVtZVNldHRpbmdzKSlcblx0XHRcdFx0aGVhZGVyQ29udGFpbmVyLmFwcGVuZENoaWxkKGNyZWF0ZURpdih7Y2xzOiBcImNvZGUtc3R5bGVyLWhlYWRlci1sYW5ndWFnZS10YWdcIiwgdGV4dDogZ2V0TGFuZ3VhZ2VUYWcoY29kZWJsb2NrUGFyYW1ldGVycy5sYW5ndWFnZSl9KSk7IC8vVE9ETyAoQG1heXVyYW5rdikgQ2FuIEkgcmVtb3ZlIHRoZSBsYW5ndWFnZT8gSXMgdGhpcyBpbmZvIGVsc2V3aGVyZT9cblx0XHR9XG5cdFx0aGVhZGVyQ29udGFpbmVyLmFwcGVuZENoaWxkKGNyZWF0ZURpdih7Y2xzOiBcImNvZGUtc3R5bGVyLWhlYWRlci10ZXh0XCIsIHRleHQ6IGNvZGVibG9ja1BhcmFtZXRlcnMudGl0bGUgfHwgKGNvZGVibG9ja1BhcmFtZXRlcnMuZm9sZC5lbmFibGVkPyhjb2RlYmxvY2tQYXJhbWV0ZXJzLmZvbGQucGxhY2Vob2xkZXIgfHwgdGhlbWVTZXR0aW5ncy5oZWFkZXIuZm9sZFBsYWNlaG9sZGVyIHx8IEZPTERfUExBQ0VIT0xERVIpOlwiXCIpfSkpOyAgIFxuXHR9IGVsc2Vcblx0XHRoZWFkZXJDb250YWluZXIuY2xhc3NMaXN0LmFkZChcImNvZGUtc3R5bGVyLWhlYWRlci1jb250YWluZXItaGlkZGVuXCIpO1xuXHRyZXR1cm4gaGVhZGVyQ29udGFpbmVyO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUlubGluZU9wZW5lcihpbmxpbmVDb2RlUGFyYW1ldGVyczogSW5saW5lQ29kZVBhcmFtZXRlcnMsIGxhbmd1YWdlSWNvbnM6IFJlY29yZDxzdHJpbmcsc3RyaW5nPiwgY29udGFpbmVyQ2xhc3NlczogQXJyYXk8c3RyaW5nPiA9IFtcImNvZGUtc3R5bGVyLWlubGluZS1vcGVuZXJcIl0pOiBIVE1MRWxlbWVudCB7XG5cdGNvbnN0IG9wZW5lckNvbnRhaW5lciA9IGNyZWF0ZVNwYW4oe2NsczogY29udGFpbmVyQ2xhc3Nlcy5qb2luKFwiIFwiKX0pO1xuXHRpZiAoaW5saW5lQ29kZVBhcmFtZXRlcnMuaWNvbikge1xuXHRcdGNvbnN0IGljb25VUkwgPSBnZXRMYW5ndWFnZUljb24oaW5saW5lQ29kZVBhcmFtZXRlcnMubGFuZ3VhZ2UsbGFuZ3VhZ2VJY29ucyk7XG5cdFx0aWYgKHR5cGVvZiBpY29uVVJMICE9PSBcInVuZGVmaW5lZFwiKVxuXHRcdFx0b3BlbmVyQ29udGFpbmVyLmFwcGVuZENoaWxkKGNyZWF0ZUltYWdlV3JhcHBlcihpY29uVVJMLGNyZWF0ZVNwYW4oKSxcImNvZGUtc3R5bGVyLWlubGluZS1pY29uXCIpKTtcblx0fVxuXHRpZiAoaW5saW5lQ29kZVBhcmFtZXRlcnMudGl0bGUpXG5cdFx0b3BlbmVyQ29udGFpbmVyLmFwcGVuZENoaWxkKGNyZWF0ZVNwYW4oe2NsczogXCJjb2RlLXN0eWxlci1pbmxpbmUtdGl0bGVcIiwgdGV4dDogaW5saW5lQ29kZVBhcmFtZXRlcnMudGl0bGV9KSk7XG5cdHJldHVybiBvcGVuZXJDb250YWluZXI7XG59XG5mdW5jdGlvbiBjcmVhdGVJbWFnZVdyYXBwZXIoaWNvblVSTDogc3RyaW5nLCBpbWFnZVdyYXBwZXI6IEhUTUxFbGVtZW50LCBpbWdDbGFzcyA9IFwiY29kZS1zdHlsZXItaWNvblwiKTogSFRNTEVsZW1lbnQge1xuXHRjb25zdCBpbWcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiaW1nXCIpO1xuXHRpbWcuY2xhc3NMaXN0LmFkZChpbWdDbGFzcyk7XG5cdGltZy5zcmMgPSBpY29uVVJMO1xuXHRpbWFnZVdyYXBwZXIuYXBwZW5kQ2hpbGQoaW1nKTtcblx0cmV0dXJuIGltYWdlV3JhcHBlcjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldExhbmd1YWdlSWNvbihsYW5ndWFnZTogc3RyaW5nLCBsYW5ndWFnZUljb25zOiBSZWNvcmQ8c3RyaW5nLHN0cmluZz4pOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuXHRyZXR1cm4gbGFuZ3VhZ2VJY29ucz8uW2dldExhbmd1YWdlVGFnKGxhbmd1YWdlKV07XG59XG5mdW5jdGlvbiBnZXRMYW5ndWFnZVRhZyhsYW5ndWFnZTogc3RyaW5nKSB7XG5cdHJldHVybiBMQU5HVUFHRV9OQU1FUz8uW2xhbmd1YWdlXSA/PyAobGFuZ3VhZ2UuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyBsYW5ndWFnZS5zbGljZSgxKSB8fCBcIlwiKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBpc0hlYWRlckhpZGRlbihjb2RlYmxvY2tQYXJhbWV0ZXJzOiBDb2RlYmxvY2tQYXJhbWV0ZXJzLCB0aGVtZVNldHRpbmdzOiBDb2RlU3R5bGVyVGhlbWVTZXR0aW5ncywgaWNvblVSTDogc3RyaW5nIHwgdW5kZWZpbmVkKTogYm9vbGVhbiB7XG5cdHJldHVybiAhaXNIZWFkZXJSZXF1aXJlZChjb2RlYmxvY2tQYXJhbWV0ZXJzKSAmJiAoY29kZWJsb2NrUGFyYW1ldGVycy5sYW5ndWFnZSA9PT0gXCJcIiB8fCAodGhlbWVTZXR0aW5ncy5oZWFkZXIubGFuZ3VhZ2VUYWcuZGlzcGxheSAhPT0gXCJhbHdheXNcIiAmJiAodGhlbWVTZXR0aW5ncy5oZWFkZXIubGFuZ3VhZ2VJY29uLmRpc3BsYXkgIT09IFwiYWx3YXlzXCIgfHwgKHR5cGVvZiBpY29uVVJMID09IFwidW5kZWZpbmVkXCIpKSkpO1xufVxuZnVuY3Rpb24gaXNMYW5ndWFnZUljb25TaG93bihjb2RlYmxvY2tQYXJhbWV0ZXJzOiBDb2RlYmxvY2tQYXJhbWV0ZXJzLCB0aGVtZVNldHRpbmdzOiBDb2RlU3R5bGVyVGhlbWVTZXR0aW5ncywgaWNvblVSTDogc3RyaW5nIHwgdW5kZWZpbmVkKTogYm9vbGVhbiB7XG5cdHJldHVybiAodHlwZW9mIGljb25VUkwgIT09IFwidW5kZWZpbmVkXCIpICYmICh0aGVtZVNldHRpbmdzLmhlYWRlci5sYW5ndWFnZUljb24uZGlzcGxheSA9PT0gXCJhbHdheXNcIiB8fCAoaXNIZWFkZXJSZXF1aXJlZChjb2RlYmxvY2tQYXJhbWV0ZXJzKSAmJiB0aGVtZVNldHRpbmdzLmhlYWRlci5sYW5ndWFnZUljb24uZGlzcGxheSA9PT0gXCJpZl9oZWFkZXJfc2hvd25cIikpO1xufVxuZnVuY3Rpb24gaXNMYW5ndWFnZVRhZ1Nob3duKGNvZGVibG9ja1BhcmFtZXRlcnM6IENvZGVibG9ja1BhcmFtZXRlcnMsIHRoZW1lU2V0dGluZ3M6IENvZGVTdHlsZXJUaGVtZVNldHRpbmdzKTogYm9vbGVhbiB7XG5cdHJldHVybiB0aGVtZVNldHRpbmdzLmhlYWRlci5sYW5ndWFnZVRhZy5kaXNwbGF5ID09PSBcImFsd2F5c1wiIHx8IChpc0hlYWRlclJlcXVpcmVkKGNvZGVibG9ja1BhcmFtZXRlcnMpICYmIHRoZW1lU2V0dGluZ3MuaGVhZGVyLmxhbmd1YWdlVGFnLmRpc3BsYXkgPT09IFwiaWZfaGVhZGVyX3Nob3duXCIpO1xufVxuZnVuY3Rpb24gaXNIZWFkZXJSZXF1aXJlZChjb2RlYmxvY2tQYXJhbWV0ZXJzOiBDb2RlYmxvY2tQYXJhbWV0ZXJzKTogYm9vbGVhbiB7XG5cdHJldHVybiBjb2RlYmxvY2tQYXJhbWV0ZXJzLmZvbGQuZW5hYmxlZCB8fCBjb2RlYmxvY2tQYXJhbWV0ZXJzLnRpdGxlICE9PSBcIlwiO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0TGluZUNsYXNzKGNvZGVibG9ja1BhcmFtZXRlcnM6IENvZGVibG9ja1BhcmFtZXRlcnMsIGxpbmVOdW1iZXI6IG51bWJlciwgbGluZTogc3RyaW5nKTogQXJyYXk8c3RyaW5nPiB7XG5cdGxldCBjbGFzc0xpc3Q6IEFycmF5PHN0cmluZz4gPSBbXTtcblx0aWYgKGNvZGVibG9ja1BhcmFtZXRlcnMuaGlnaGxpZ2h0cy5kZWZhdWx0LmxpbmVOdW1iZXJzLmluY2x1ZGVzKGxpbmVOdW1iZXIrY29kZWJsb2NrUGFyYW1ldGVycy5saW5lTnVtYmVycy5vZmZzZXQpIHx8IGNvZGVibG9ja1BhcmFtZXRlcnMuaGlnaGxpZ2h0cy5kZWZhdWx0LnBsYWluVGV4dC5zb21lKHRleHQgPT4gbGluZS5pbmRleE9mKHRleHQpID4gLTEpIHx8IGNvZGVibG9ja1BhcmFtZXRlcnMuaGlnaGxpZ2h0cy5kZWZhdWx0LnJlZ3VsYXJFeHByZXNzaW9ucy5zb21lKHJlZ0V4cCA9PiByZWdFeHAudGVzdChsaW5lKSkpXG5cdFx0Y2xhc3NMaXN0LnB1c2goXCJjb2RlLXN0eWxlci1saW5lLWhpZ2hsaWdodGVkXCIpO1xuXHRPYmplY3QuZW50cmllcyhjb2RlYmxvY2tQYXJhbWV0ZXJzLmhpZ2hsaWdodHMuYWx0ZXJuYXRpdmUpLmZvckVhY2goKFthbHRlcm5hdGl2ZUhpZ2hsaWdodCxoaWdobGlnaHRlZExpbmVzXTogW3N0cmluZyxIaWdobGlnaHRzXSkgPT4ge1xuXHRcdGlmIChoaWdobGlnaHRlZExpbmVzLmxpbmVOdW1iZXJzLmluY2x1ZGVzKGxpbmVOdW1iZXIrY29kZWJsb2NrUGFyYW1ldGVycy5saW5lTnVtYmVycy5vZmZzZXQpIHx8IGhpZ2hsaWdodGVkTGluZXMucGxhaW5UZXh0LnNvbWUodGV4dCA9PiBsaW5lLmluZGV4T2YodGV4dCkgPiAtMSkgfHwgaGlnaGxpZ2h0ZWRMaW5lcy5yZWd1bGFyRXhwcmVzc2lvbnMuc29tZShyZWdFeHAgPT4gcmVnRXhwLnRlc3QobGluZSkpKVxuXHRcdFx0Y2xhc3NMaXN0LnB1c2goYGNvZGUtc3R5bGVyLWxpbmUtaGlnaGxpZ2h0ZWQtJHthbHRlcm5hdGl2ZUhpZ2hsaWdodC5yZXBsYWNlKC9cXHMrL2csIFwiLVwiKS50b0xvd2VyQ2FzZSgpfWApO1xuXHR9KTtcblx0aWYgKGNsYXNzTGlzdC5sZW5ndGggPT09IDApXG5cdFx0Y2xhc3NMaXN0ID0gW1wiY29kZS1zdHlsZXItbGluZVwiXTtcblx0cmV0dXJuIGNsYXNzTGlzdDtcbn1cbmV4cG9ydCBmdW5jdGlvbiBnZXRMaW5lTnVtYmVyRGlzcGxheShjb2RlYmxvY2tQYXJhbWV0ZXJzOiBDb2RlYmxvY2tQYXJhbWV0ZXJzKTogc3RyaW5nIHtcblx0bGV0IGxpbmVOdW1iZXJEaXNwbGF5ID0gXCJcIjtcblx0aWYgKCFjb2RlYmxvY2tQYXJhbWV0ZXJzLmxpbmVOdW1iZXJzLmFsd2F5c0VuYWJsZWQgJiYgY29kZWJsb2NrUGFyYW1ldGVycy5saW5lTnVtYmVycy5hbHdheXNEaXNhYmxlZClcblx0XHRsaW5lTnVtYmVyRGlzcGxheSA9IFwiLWhpZGVcIjtcblx0ZWxzZSBpZiAoY29kZWJsb2NrUGFyYW1ldGVycy5saW5lTnVtYmVycy5hbHdheXNFbmFibGVkICYmICFjb2RlYmxvY2tQYXJhbWV0ZXJzLmxpbmVOdW1iZXJzLmFsd2F5c0Rpc2FibGVkKVxuXHRcdGxpbmVOdW1iZXJEaXNwbGF5ID0gXCItc3BlY2lmaWNcIjtcblx0cmV0dXJuIGxpbmVOdW1iZXJEaXNwbGF5O1xufVxuIiwgImltcG9ydCB7IE1hcmtkb3duU2VjdGlvbkluZm9ybWF0aW9uLCBDYWNoZWRNZXRhZGF0YSwgc2FuaXRpemVIVE1MVG9Eb20sIEZyb250TWF0dGVyQ2FjaGUsIE1hcmtkb3duUmVuZGVyZXIsIENvbXBvbmVudCB9IGZyb20gXCJvYnNpZGlhblwiO1xuaW1wb3J0IHsgdmlzaXRQYXJlbnRzIH0gZnJvbSBcInVuaXN0LXV0aWwtdmlzaXQtcGFyZW50c1wiO1xuaW1wb3J0IHsgZnJvbUh0bWwgfSBmcm9tIFwiaGFzdC11dGlsLWZyb20taHRtbFwiO1xuaW1wb3J0IHsgdG9IdG1sIH0gZnJvbSBcImhhc3QtdXRpbC10by1odG1sXCI7XG5cbmltcG9ydCBDb2RlU3R5bGVyUGx1Z2luIGZyb20gXCIuL21haW5cIjtcbmltcG9ydCB7IFRSQU5TSVRJT05fTEVOR1RIIH0gZnJvbSBcIi4vU2V0dGluZ3NcIjtcbmltcG9ydCB7IENvZGVibG9ja1BhcmFtZXRlcnMsIElubGluZUNvZGVQYXJhbWV0ZXJzLCBnZXRGaWxlQ29udGVudExpbmVzLCBpc0V4Y2x1ZGVkLCBwYXJzZUNvZGVibG9ja1NvdXJjZSwgcGFyc2VJbmxpbmVDb2RlIH0gZnJvbSBcIi4vQ29kZWJsb2NrUGFyc2luZ1wiO1xuaW1wb3J0IHsgY3JlYXRlSGVhZGVyLCBjcmVhdGVJbmxpbmVPcGVuZXIsIGdldExpbmVDbGFzcyBhcyBnZXRMaW5lQ2xhc3NlcywgZ2V0TGluZU51bWJlckRpc3BsYXkgfSBmcm9tIFwiLi9Db2RlYmxvY2tEZWNvcmF0aW5nXCI7XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiByZWFkaW5nVmlld0NvZGVibG9ja0RlY29yYXRpbmdQb3N0UHJvY2Vzc29yKGVsZW1lbnQ6IEhUTUxFbGVtZW50LCB7c291cmNlUGF0aCxnZXRTZWN0aW9uSW5mbyxmcm9udG1hdHRlcn06IHtzb3VyY2VQYXRoOiBzdHJpbmcsIGdldFNlY3Rpb25JbmZvOiAoZWxlbWVudDogSFRNTEVsZW1lbnQpID0+IE1hcmtkb3duU2VjdGlvbkluZm9ybWF0aW9uIHwgbnVsbCwgZnJvbnRtYXR0ZXI6IEZyb250TWF0dGVyQ2FjaGUgfCB1bmRlZmluZWR9LCBwbHVnaW46IENvZGVTdHlsZXJQbHVnaW4sIGVkaXRpbmdFbWJlZHMgPSBmYWxzZSkge1xuXHRjb25zdCBjYWNoZTogQ2FjaGVkTWV0YWRhdGEgfCBudWxsID0gcGx1Z2luLmFwcC5tZXRhZGF0YUNhY2hlLmdldENhY2hlKHNvdXJjZVBhdGgpO1xuXHRpZiAoIXNvdXJjZVBhdGggfHwgIWVsZW1lbnQgfHwgKGZyb250bWF0dGVyID8/IGNhY2hlPy5mcm9udG1hdHRlcik/LltcImNvZGUtc3R5bGVyLWlnbm9yZVwiXSA9PT0gdHJ1ZSlcblx0XHRyZXR1cm47XG5cblx0ZWRpdGluZ0VtYmVkcyA9IGVkaXRpbmdFbWJlZHMgfHwgQm9vbGVhbihlbGVtZW50Lm1hdGNoUGFyZW50KFwiLmNtLWVtYmVkLWJsb2NrXCIpKTtcblx0Y29uc3Qgc3BlY2lmaWMgPSAhZWxlbWVudC5xdWVyeVNlbGVjdG9yKFwiLnZpZXctY29udGVudCA+ICpcIik7XG5cdGNvbnN0IHByaW50aW5nID0gQm9vbGVhbihlbGVtZW50LnF1ZXJ5U2VsZWN0b3IoXCJkaXYucHJpbnQgPiAqXCIpKTtcblx0aWYgKHByaW50aW5nICYmICFwbHVnaW4uc2V0dGluZ3MuZGVjb3JhdGVQcmludClcblx0XHRyZXR1cm47XG5cblx0Y29uc3QgY29kZWJsb2NrUHJlRWxlbWVudHM6IEFycmF5PEhUTUxFbGVtZW50PiA9IGF3YWl0IGdldENvZGVibG9ja1ByZUVsZW1lbnRzKGVsZW1lbnQsc3BlY2lmaWMsZWRpdGluZ0VtYmVkcyk7XG5cdGlmIChjb2RlYmxvY2tQcmVFbGVtZW50cy5sZW5ndGggPT09IDAgJiYgIShlZGl0aW5nRW1iZWRzICYmIHNwZWNpZmljKSlcblx0XHRyZXR1cm47XG5cblx0Y29uc3QgY29kZWJsb2NrU2VjdGlvbkluZm86IE1hcmtkb3duU2VjdGlvbkluZm9ybWF0aW9uIHwgbnVsbCA9IGdldFNlY3Rpb25JbmZvKGNvZGVibG9ja1ByZUVsZW1lbnRzWzBdKTtcblx0aWYgKGNvZGVibG9ja1NlY3Rpb25JbmZvICYmIHNwZWNpZmljICYmICFlZGl0aW5nRW1iZWRzKVxuXHRcdGF3YWl0IHJlbmRlclNwZWNpZmljUmVhZGluZ1NlY3Rpb24oY29kZWJsb2NrUHJlRWxlbWVudHMsc291cmNlUGF0aCxjb2RlYmxvY2tTZWN0aW9uSW5mbyxwbHVnaW4pO1xuXHRlbHNlIGlmIChzcGVjaWZpYyAmJiAhcHJpbnRpbmcpXG5cdFx0YXdhaXQgcmV0cmlnZ2VyUHJvY2Vzc29yKGVsZW1lbnQse3NvdXJjZVBhdGgsZ2V0U2VjdGlvbkluZm8sZnJvbnRtYXR0ZXJ9LHBsdWdpbixlZGl0aW5nRW1iZWRzKTtcblx0ZWxzZVxuXHRcdGF3YWl0IHJlbmRlckRvY3VtZW50KGNvZGVibG9ja1ByZUVsZW1lbnRzLHNvdXJjZVBhdGgsY2FjaGUsZWRpdGluZ0VtYmVkcyxwcmludGluZyxwbHVnaW4pO1xufVxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlYWRpbmdWaWV3SW5saW5lRGVjb3JhdGluZ1Bvc3RQcm9jZXNzb3IoZWxlbWVudDogSFRNTEVsZW1lbnQsIHtzb3VyY2VQYXRofToge3NvdXJjZVBhdGg6IHN0cmluZywgZ2V0U2VjdGlvbkluZm86IChlbGVtZW50OiBIVE1MRWxlbWVudCkgPT4gTWFya2Rvd25TZWN0aW9uSW5mb3JtYXRpb24gfCBudWxsLCBmcm9udG1hdHRlcjogRnJvbnRNYXR0ZXJDYWNoZSB8IHVuZGVmaW5lZH0sIHBsdWdpbjogQ29kZVN0eWxlclBsdWdpbikge1xuXHRpZiAoIXNvdXJjZVBhdGggfHwgIWVsZW1lbnQpXG5cdFx0cmV0dXJuO1xuXHRmb3IgKGNvbnN0IGlubGluZUNvZGVFbGVtZW50IG9mIEFycmF5LmZyb20oZWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKFwiOm5vdChwcmUpID4gY29kZVwiKSkpIHtcblx0XHRhd2FpdCByZW1ha2VJbmxpbmVDb2RlKGlubGluZUNvZGVFbGVtZW50IGFzIEhUTUxFbGVtZW50LHBsdWdpbik7XG5cdH1cbn1cbmV4cG9ydCBmdW5jdGlvbiBkZXN0cm95UmVhZGluZ01vZGVFbGVtZW50cygpOiB2b2lkIHtcblx0ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChcIi5jb2RlLXN0eWxlci1wcmUtcGFyZW50XCIpLmZvckVhY2goY29kZWJsb2NrUHJlUGFyZW50ID0+IHtcblx0XHRjb2RlYmxvY2tQcmVQYXJlbnQuY2xhc3NMaXN0LnJlbW92ZShcImNvZGUtc3R5bGVyLXByZS1wYXJlbnRcIik7XG5cdH0pO1xuXHRbXG5cdFx0Li4uQXJyYXkuZnJvbShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKFwicHJlLmNvZGUtc3R5bGVyLXByZSBkaXZbY2xhc3NePSdjb2RlLXN0eWxlci1oZWFkZXItY29udGFpbmVyJ11cIikpLFxuXHRcdC4uLkFycmF5LmZyb20oZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChcInByZS5jb2RlLXN0eWxlci1wcmUgZGl2W2NsYXNzXj0nY29kZS1zdHlsZXItbGluZS1udW1iZXInXVwiKSksXG5cdFx0Li4uQXJyYXkuZnJvbShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKFwiOm5vdChwcmUpID4gY29kZSBzcGFuLmNvZGUtc3R5bGVyLWlubGluZS1vcGVuZXJcIikpLFxuXHRdLmZvckVhY2goZWxlbWVudCA9PiBlbGVtZW50LnJlbW92ZSgpKTtcblx0ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChcInByZS5jb2RlLXN0eWxlci1wcmVcIikuZm9yRWFjaCgoY29kZWJsb2NrUHJlRWxlbWVudDogSFRNTEVsZW1lbnQpID0+IHtcblx0XHRjb2RlYmxvY2tQcmVFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoXCJjb2RlLXN0eWxlci1wcmVcIik7XG5cdFx0Y29kZWJsb2NrUHJlRWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKFwiY29kZS1zdHlsZXItZm9sZGVkXCIpO1xuXHRcdGNvZGVibG9ja1ByZUVsZW1lbnQuc3R5bGUucmVtb3ZlUHJvcGVydHkoXCItLXRydWUtaGVpZ2h0XCIpO1xuXHRcdGNvZGVibG9ja1ByZUVsZW1lbnQuc3R5bGUucmVtb3ZlUHJvcGVydHkoXCItLWxpbmUtbnVtYmVyLW1hcmdpblwiKTtcblx0XHRjb2RlYmxvY2tQcmVFbGVtZW50LnN0eWxlLnJlbW92ZVByb3BlcnR5KFwibWF4LWhlaWdodFwiKTtcblx0XHRjb2RlYmxvY2tQcmVFbGVtZW50LnN0eWxlLnJlbW92ZVByb3BlcnR5KFwid2hpdGUtc3BhY2VcIik7XG5cdH0pO1xuXHRkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKFwicHJlID4gY29kZSB+IGNvZGUubGFuZ3VhZ2Utb3V0cHV0XCIpLmZvckVhY2goKGV4ZWN1dGVDb2RlT3V0cHV0OiBIVE1MRWxlbWVudCkgPT4ge1xuXHRcdGV4ZWN1dGVDb2RlT3V0cHV0LmNsYXNzTGlzdC5yZW1vdmUoXCJleGVjdXRlLWNvZGUtb3V0cHV0XCIpO1xuXHRcdGV4ZWN1dGVDb2RlT3V0cHV0LnN0eWxlLnJlbW92ZVByb3BlcnR5KFwiLS10cnVlLWhlaWdodFwiKTtcblx0XHRleGVjdXRlQ29kZU91dHB1dC5zdHlsZS5yZW1vdmVQcm9wZXJ0eShcIm1heC1oZWlnaHRcIik7XG5cdH0pO1xuXHRkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKFwicHJlID4gY29kZTpudGgtb2YtdHlwZSgxKVwiKS5mb3JFYWNoKChjb2RlYmxvY2tDb2RlRWxlbWVudDogSFRNTEVsZW1lbnQpID0+IHtcblx0XHRjb2RlYmxvY2tDb2RlRWxlbWVudC5zdHlsZS5yZW1vdmVQcm9wZXJ0eShcIi0tdHJ1ZS1oZWlnaHRcIik7XG5cdFx0Y29kZWJsb2NrQ29kZUVsZW1lbnQuc3R5bGUucmVtb3ZlUHJvcGVydHkoXCItLWxpbmUtd3JhcHBpbmdcIik7XG5cdFx0Y29kZWJsb2NrQ29kZUVsZW1lbnQuc3R5bGUucmVtb3ZlUHJvcGVydHkoXCItLWxpbmUtYWN0aXZlLXdyYXBwaW5nXCIpO1xuXHRcdGNvZGVibG9ja0NvZGVFbGVtZW50LnN0eWxlLnJlbW92ZVByb3BlcnR5KFwibWF4LWhlaWdodFwiKTtcblx0XHRjb2RlYmxvY2tDb2RlRWxlbWVudC5zdHlsZS5yZW1vdmVQcm9wZXJ0eShcIndoaXRlLXNwYWNlXCIpO1xuXHRcdGNvZGVibG9ja0NvZGVFbGVtZW50LmlubmVySFRNTCA9IEFycmF5LmZyb20oY29kZWJsb2NrQ29kZUVsZW1lbnQucXVlcnlTZWxlY3RvckFsbChcImNvZGUgPiBbY2xhc3MqPVxcXCJjb2RlLXN0eWxlci1saW5lXFxcIl1cIikpLnJlZHVjZSgocmVjb25zdHJ1Y3RlZENvZGVibG9ja0xpbmVzOiBBcnJheTxzdHJpbmc+LCBjb2RlYmxvY2tMaW5lOiBIVE1MRWxlbWVudCk6IEFycmF5PHN0cmluZz4gPT4ge1xuXHRcdFx0Y29uc3QgY29kZWJsb2NrTGluZVRleHQgPSAoY29kZWJsb2NrTGluZS5maXJzdENoaWxkIGFzIEhUTUxFbGVtZW50KTtcblx0XHRcdGlmIChjb2RlYmxvY2tMaW5lVGV4dClcblx0XHRcdFx0cmVjb25zdHJ1Y3RlZENvZGVibG9ja0xpbmVzLnB1c2goY29kZWJsb2NrTGluZVRleHQuaW5uZXJIVE1MKTtcblx0XHRcdHJldHVybiByZWNvbnN0cnVjdGVkQ29kZWJsb2NrTGluZXM7XG5cdFx0fSxbXSkuam9pbihcIlxcblwiKStcIlxcblwiO1xuXHR9KTtcblx0ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChcIjpub3QocHJlKSA+IGNvZGVcIikuZm9yRWFjaCgoaW5saW5lQ29kZUVsZW1lbnQ6IEhUTUxFbGVtZW50KSA9PiB7XG5cdFx0aW5saW5lQ29kZUVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZShcImNvZGUtc3R5bGVyLWhpZ2hsaWdodGVkXCIpO1xuXHRcdGlubGluZUNvZGVFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoXCJjb2RlLXN0eWxlci1oaWdobGlnaHQtaWdub3JlXCIpO1xuXHRcdGlubGluZUNvZGVFbGVtZW50LmlubmVyVGV4dCA9IGlubGluZUNvZGVFbGVtZW50LmdldEF0dHJpYnV0ZShcInBhcmFtZXRlcnNcIikgKyBpbmxpbmVDb2RlRWxlbWVudC5pbm5lclRleHQ7XG5cdH0pO1xufVxuXG5hc3luYyBmdW5jdGlvbiByZW5kZXJTcGVjaWZpY1JlYWRpbmdTZWN0aW9uKGNvZGVibG9ja1ByZUVsZW1lbnRzOiBBcnJheTxIVE1MRWxlbWVudD4sIHNvdXJjZVBhdGg6IHN0cmluZywgY29kZWJsb2NrU2VjdGlvbkluZm86IE1hcmtkb3duU2VjdGlvbkluZm9ybWF0aW9uLCBwbHVnaW46IENvZGVTdHlsZXJQbHVnaW4pOiBQcm9taXNlPHZvaWQ+IHtcblx0Y29uc3QgY29kZWJsb2Nrc1BhcmFtZXRlcnMgPSAoYXdhaXQgcGFyc2VDb2RlYmxvY2tTb3VyY2UoQXJyYXkuZnJvbSh7bGVuZ3RoOiBjb2RlYmxvY2tTZWN0aW9uSW5mby5saW5lRW5kLWNvZGVibG9ja1NlY3Rpb25JbmZvLmxpbmVTdGFydCsxfSwgKF8sbnVtKSA9PiBudW0gKyBjb2RlYmxvY2tTZWN0aW9uSW5mby5saW5lU3RhcnQpLm1hcCgobGluZU51bWJlcik9PmNvZGVibG9ja1NlY3Rpb25JbmZvLnRleHQuc3BsaXQoXCJcXG5cIilbbGluZU51bWJlcl0pLHNvdXJjZVBhdGgscGx1Z2luKSkuY29kZWJsb2Nrc1BhcmFtZXRlcnM7XG5cdGlmIChjb2RlYmxvY2tQcmVFbGVtZW50cy5sZW5ndGggIT09IGNvZGVibG9ja3NQYXJhbWV0ZXJzLmxlbmd0aClcblx0XHRyZXR1cm47XG5cdGZvciAoY29uc3QgW2tleSxjb2RlYmxvY2tQcmVFbGVtZW50XSBvZiBjb2RlYmxvY2tQcmVFbGVtZW50cy5lbnRyaWVzKCkpIHtcblx0XHRjb25zdCBjb2RlYmxvY2tQYXJhbWV0ZXJzID0gY29kZWJsb2Nrc1BhcmFtZXRlcnNba2V5XTtcblx0XHRjb25zdCBjb2RlYmxvY2tDb2RlRWxlbWVudCA9IGNvZGVibG9ja1ByZUVsZW1lbnQucXVlcnlTZWxlY3RvcihcInByZSA+IGNvZGVcIik7XG5cdFx0aWYgKCFjb2RlYmxvY2tDb2RlRWxlbWVudClcblx0XHRcdHJldHVybjtcblx0XHRpZiAoQXJyYXkuZnJvbShjb2RlYmxvY2tDb2RlRWxlbWVudC5jbGFzc0xpc3QpLnNvbWUoY2xhc3NOYW1lID0+IC9ebGFuZ3VhZ2UtXFxTKy8udGVzdChjbGFzc05hbWUpKSlcblx0XHRcdHdoaWxlKCFjb2RlYmxvY2tDb2RlRWxlbWVudC5jbGFzc0xpc3QuY29udGFpbnMoXCJpcy1sb2FkZWRcIikpXG5cdFx0XHRcdGF3YWl0IHNsZWVwKDIpO1xuXHRcdGlmIChpc0V4Y2x1ZGVkKGNvZGVibG9ja1BhcmFtZXRlcnMubGFuZ3VhZ2UscGx1Z2luLnNldHRpbmdzLmV4Y2x1ZGVkTGFuZ3VhZ2VzKSB8fCBjb2RlYmxvY2tQYXJhbWV0ZXJzLmlnbm9yZSlcblx0XHRcdGNvbnRpbnVlO1xuXHRcdGF3YWl0IHJlbWFrZUNvZGVibG9jayhjb2RlYmxvY2tDb2RlRWxlbWVudCBhcyBIVE1MRWxlbWVudCxjb2RlYmxvY2tQcmVFbGVtZW50LGNvZGVibG9ja1BhcmFtZXRlcnMsdHJ1ZSxwbHVnaW4pO1xuXHR9XG59XG5hc3luYyBmdW5jdGlvbiByZXRyaWdnZXJQcm9jZXNzb3IoZWxlbWVudDogSFRNTEVsZW1lbnQsIGNvbnRleHQ6IHtzb3VyY2VQYXRoOiBzdHJpbmcsIGdldFNlY3Rpb25JbmZvOiAoZWxlbWVudDogSFRNTEVsZW1lbnQpID0+IE1hcmtkb3duU2VjdGlvbkluZm9ybWF0aW9uIHwgbnVsbCwgZnJvbnRtYXR0ZXI6IEZyb250TWF0dGVyQ2FjaGUgfCB1bmRlZmluZWR9LCBwbHVnaW46IENvZGVTdHlsZXJQbHVnaW4sIGVkaXRpbmdFbWJlZHM6IGJvb2xlYW4pIHtcblx0aWYgKGVsZW1lbnQubWF0Y2hQYXJlbnQoXCJkaXYuYmxvY2stbGFuZ3VhZ2UtZGF0YXZpZXdqc1wiKSAmJiAvZGF0YXZpZXdqcyg/PSB8LHwkKS8udGVzdChwbHVnaW4uc2V0dGluZ3MuZXhjbHVkZWRDb2RlYmxvY2tzKSlcblx0XHRyZXR1cm47XG5cdGF3YWl0IHNsZWVwKDUwKTtcblx0ZWRpdGluZ0VtYmVkcyA9IGVkaXRpbmdFbWJlZHMgfHwgQm9vbGVhbihlbGVtZW50Lm1hdGNoUGFyZW50KFwiLmNtLWVtYmVkLWJsb2NrXCIpKTtcblx0aWYgKGVkaXRpbmdFbWJlZHMgfHwgIWVsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKFwiYWRtb25pdGlvbi1jb250ZW50XCIpKSB7XG5cdFx0Y29uc3QgY29udGVudEVsID0gZWxlbWVudC5tYXRjaFBhcmVudChcIi52aWV3LWNvbnRlbnRcIikgYXMgSFRNTEVsZW1lbnQ7XG5cdFx0YXdhaXQgcmVhZGluZ1ZpZXdDb2RlYmxvY2tEZWNvcmF0aW5nUG9zdFByb2Nlc3Nvcihjb250ZW50RWwgfHwgKGVsZW1lbnQubWF0Y2hQYXJlbnQoXCJkaXYucHJpbnRcIikgYXMgSFRNTEVsZW1lbnQpLGNvbnRleHQscGx1Z2luLGVkaXRpbmdFbWJlZHMpOyAvLyBSZS1yZW5kZXIgd2hvbGUgZG9jdW1lbnRcblx0fVxufVxuYXN5bmMgZnVuY3Rpb24gcmVuZGVyRG9jdW1lbnQoY29kZWJsb2NrUHJlRWxlbWVudHM6IEFycmF5PEhUTUxFbGVtZW50Piwgc291cmNlUGF0aDogc3RyaW5nLCBjYWNoZTogQ2FjaGVkTWV0YWRhdGEgfCBudWxsLCBlZGl0aW5nRW1iZWRzOiBib29sZWFuLCBwcmludGluZzogYm9vbGVhbiwgcGx1Z2luOiBDb2RlU3R5bGVyUGx1Z2luKSB7XG5cdGNvbnN0IGNvZGVibG9ja3NQYXJhbWV0ZXJzOiBBcnJheTxDb2RlYmxvY2tQYXJhbWV0ZXJzPiA9IGF3YWl0IGdldENvZGVibG9ja3NQYXJhbWV0ZXJzKHNvdXJjZVBhdGgsY2FjaGUscGx1Z2luLGVkaXRpbmdFbWJlZHMpO1xuXHRpZiAoY29kZWJsb2Nrc1BhcmFtZXRlcnMubGVuZ3RoICE9PSBjb2RlYmxvY2tQcmVFbGVtZW50cy5sZW5ndGgpXG5cdFx0cmV0dXJuO1xuXG5cdHRyeSB7XG5cdFx0Zm9yIChjb25zdCBba2V5LGNvZGVibG9ja1ByZUVsZW1lbnRdIG9mIEFycmF5LmZyb20oY29kZWJsb2NrUHJlRWxlbWVudHMpLmVudHJpZXMoKSkge1xuXHRcdFx0Y29uc3QgY29kZWJsb2NrUGFyYW1ldGVycyA9IGNvZGVibG9ja3NQYXJhbWV0ZXJzW2tleV07XG5cdFx0XHRjb25zdCBjb2RlYmxvY2tDb2RlRWxlbWVudDogSFRNTFByZUVsZW1lbnQgfCBudWxsID0gY29kZWJsb2NrUHJlRWxlbWVudC5xdWVyeVNlbGVjdG9yKFwicHJlID4gY29kZVwiKTtcblx0XHRcdGlmICghY29kZWJsb2NrQ29kZUVsZW1lbnQpXG5cdFx0XHRcdHJldHVybjtcblx0XHRcdGlmIChBcnJheS5mcm9tKGNvZGVibG9ja0NvZGVFbGVtZW50LmNsYXNzTGlzdCkuc29tZShjbGFzc05hbWUgPT4gL15sYW5ndWFnZS1cXFMrLy50ZXN0KGNsYXNzTmFtZSkpKVxuXHRcdFx0XHR3aGlsZSghY29kZWJsb2NrQ29kZUVsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKFwiaXMtbG9hZGVkXCIpKVxuXHRcdFx0XHRcdGF3YWl0IHNsZWVwKDIpO1xuXHRcdFx0aWYgKGNvZGVibG9ja0NvZGVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoXCJjb2RlIFtjbGFzcyo9J2NvZGUtc3R5bGVyLWxpbmUnXVwiKSlcblx0XHRcdFx0Y29udGludWU7XG5cdFx0XHRpZiAoaXNFeGNsdWRlZChjb2RlYmxvY2tQYXJhbWV0ZXJzLmxhbmd1YWdlLHBsdWdpbi5zZXR0aW5ncy5leGNsdWRlZExhbmd1YWdlcykgfHwgY29kZWJsb2NrUGFyYW1ldGVycy5pZ25vcmUpXG5cdFx0XHRcdGNvbnRpbnVlO1xuXHRcdFx0YXdhaXQgcmVtYWtlQ29kZWJsb2NrKGNvZGVibG9ja0NvZGVFbGVtZW50LGNvZGVibG9ja1ByZUVsZW1lbnQsY29kZWJsb2NrUGFyYW1ldGVycywhcHJpbnRpbmcscGx1Z2luKTtcblx0XHR9XG5cdH0gY2F0Y2ggKGVycm9yKSB7XG5cdFx0Y29uc29sZS5lcnJvcihgRXJyb3IgcmVuZGVyaW5nIGRvY3VtZW50OiAke2Vycm9yLm1lc3NhZ2V9YCk7XG5cdFx0cmV0dXJuO1xuXHR9XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHJlbWFrZUNvZGVibG9jayhjb2RlYmxvY2tDb2RlRWxlbWVudDogSFRNTEVsZW1lbnQsIGNvZGVibG9ja1ByZUVsZW1lbnQ6IEhUTUxFbGVtZW50LCBjb2RlYmxvY2tQYXJhbWV0ZXJzOiBDb2RlYmxvY2tQYXJhbWV0ZXJzLCBkeW5hbWljOiBib29sZWFuLCBwbHVnaW46IENvZGVTdHlsZXJQbHVnaW4pIHtcblx0aWYgKGR5bmFtaWMpXG5cdFx0cGx1Z2luLmV4ZWN1dGVDb2RlTXV0YXRpb25PYnNlcnZlci5vYnNlcnZlKGNvZGVibG9ja1ByZUVsZW1lbnQse2NoaWxkTGlzdDogdHJ1ZSxzdWJ0cmVlOiB0cnVlLGF0dHJpYnV0ZXM6IHRydWUsY2hhcmFjdGVyRGF0YTogdHJ1ZX0pOyAvLyBBZGQgRXhlY3V0ZSBDb2RlIE9ic2VydmVyXG5cdFxuXHRpbnNlcnRIZWFkZXIoY29kZWJsb2NrUHJlRWxlbWVudCxjb2RlYmxvY2tQYXJhbWV0ZXJzLHBsdWdpbixkeW5hbWljKTtcblx0XG5cdGNvZGVibG9ja1ByZUVsZW1lbnQuY2xhc3NMaXN0LmFkZCguLi5nZXRQcmVDbGFzc2VzKGNvZGVibG9ja1BhcmFtZXRlcnMsZHluYW1pYykpO1xuXHRjb2RlYmxvY2tQcmVFbGVtZW50LnNldEF0dHJpYnV0ZShcImRlZmF1bHRGb2xkXCIsY29kZWJsb2NrUGFyYW1ldGVycy5mb2xkLmVuYWJsZWQudG9TdHJpbmcoKSk7XG5cdGlmIChjb2RlYmxvY2tQcmVFbGVtZW50LnBhcmVudEVsZW1lbnQpXG5cdFx0Y29kZWJsb2NrUHJlRWxlbWVudC5wYXJlbnRFbGVtZW50LmNsYXNzTGlzdC5hZGQoXCJjb2RlLXN0eWxlci1wcmUtcGFyZW50XCIpO1xuXHRcblx0aWYgKCFjb2RlYmxvY2tDb2RlRWxlbWVudC5xdWVyeVNlbGVjdG9yKFwiY29kZSBbY2xhc3MqPSdjb2RlLXN0eWxlci1saW5lJ11cIikpIC8vIElnbm9yZSBzdHlsZWQgbGluZXNcblx0XHRkZWNvcmF0ZUNvZGVibG9ja0xpbmVzKGNvZGVibG9ja0NvZGVFbGVtZW50LGNvZGVibG9ja1BhcmFtZXRlcnMpO1xufVxuYXN5bmMgZnVuY3Rpb24gcmVtYWtlSW5saW5lQ29kZShpbmxpbmVDb2RlRWxlbWVudDogSFRNTEVsZW1lbnQsIHBsdWdpbjogQ29kZVN0eWxlclBsdWdpbik6IFByb21pc2U8dm9pZD4ge1xuXHRpZiAoaW5saW5lQ29kZUVsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKFwiY29kZS1zdHlsZXItaW5saW5lXCIpKVxuXHRcdHJldHVybjtcblx0Y29uc3QgaW5saW5lQ29kZVRleHQgPSBpbmxpbmVDb2RlRWxlbWVudC5pbm5lclRleHQ7XG5cdGNvbnN0IHtwYXJhbWV0ZXJzLHRleHR9ID0gcGFyc2VJbmxpbmVDb2RlKGlubGluZUNvZGVUZXh0KTtcblx0aWYgKHBhcmFtZXRlcnMgJiYgcGx1Z2luLnNldHRpbmdzLmN1cnJlbnRUaGVtZS5zZXR0aW5ncy5pbmxpbmUuc3ludGF4SGlnaGxpZ2h0KVxuXHRcdGlubGluZUNvZGVFbGVtZW50LmlubmVySFRNTCA9IGF3YWl0IGdldEhpZ2hsaWdodGVkSFRNTChwYXJhbWV0ZXJzLHRleHQscGx1Z2luKTtcblx0ZWxzZSBpZiAoKCFwYXJhbWV0ZXJzICYmIHRleHQpIHx8IChwYXJhbWV0ZXJzICYmICFwbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmlubGluZS5zeW50YXhIaWdobGlnaHQpKVxuXHRcdGlubGluZUNvZGVFbGVtZW50LmlubmVySFRNTCA9IHRleHQ7XG5cdGVsc2Vcblx0XHRyZXR1cm47XG5cdFxuXHRpbmxpbmVDb2RlRWxlbWVudC5jbGFzc0xpc3QuYWRkKFwiY29kZS1zdHlsZXItaW5saW5lXCIpO1xuXHRpZiAocGFyYW1ldGVycykge1xuXHRcdGNvbnN0IHBhcmFtZXRlclN0cmluZyA9IGlubGluZUNvZGVUZXh0LnN1YnN0cmluZygwLGlubGluZUNvZGVUZXh0Lmxhc3RJbmRleE9mKHRleHQpKTtcblx0XHRpbmxpbmVDb2RlRWxlbWVudC5zZXRBdHRyaWJ1dGUoXCJwYXJhbWV0ZXJzXCIscGFyYW1ldGVyU3RyaW5nKTsgLy8gU3RvcmUgcGFyYW1ldGVyIHN0cmluZyBhcyBhdHRyaWJ1dGUgc28gb3JpZ2luYWwgdGV4dCBjYW4gYmUgcmVzdG9yZWQgb24gcGx1Z2luIHJlbW92YWxcblx0XHRpZiAocGFyYW1ldGVycy5pY29uIHx8IHBhcmFtZXRlcnMudGl0bGUpXG5cdFx0XHRpbmxpbmVDb2RlRWxlbWVudC5pbnNlcnRCZWZvcmUoY3JlYXRlSW5saW5lT3BlbmVyKHBhcmFtZXRlcnMscGx1Z2luLmxhbmd1YWdlSWNvbnMpLGlubGluZUNvZGVFbGVtZW50LmNoaWxkTm9kZXNbMF0pO1xuXHR9XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGdldENvZGVibG9ja1ByZUVsZW1lbnRzKGVsZW1lbnQ6IEhUTUxFbGVtZW50LCBzcGVjaWZpYzogYm9vbGVhbixlZGl0aW5nRW1iZWRzOiBib29sZWFuKTogUHJvbWlzZTxBcnJheTxIVE1MRWxlbWVudD4+IHtcblx0bGV0IGNvZGVibG9ja1ByZUVsZW1lbnRzOiBBcnJheTxIVE1MRWxlbWVudD47XG5cdGlmICghZWRpdGluZ0VtYmVkcyAmJiAhc3BlY2lmaWMpXG5cdFx0Y29kZWJsb2NrUHJlRWxlbWVudHMgPSBBcnJheS5mcm9tKGVsZW1lbnQucXVlcnlTZWxlY3RvckFsbChcIi5tYXJrZG93bi1yZWFkaW5nLXZpZXcgcHJlOm5vdCguZnJvbnRtYXR0ZXIpXCIpKTtcblx0ZWxzZSBpZiAoZWRpdGluZ0VtYmVkcyAmJiAhc3BlY2lmaWMpXG5cdFx0Y29kZWJsb2NrUHJlRWxlbWVudHMgPSBBcnJheS5mcm9tKGVsZW1lbnQucXVlcnlTZWxlY3RvckFsbChcIi5tYXJrZG93bi1zb3VyY2UtdmlldyAuY20tZW1iZWQtYmxvY2sgcHJlOm5vdCguZnJvbnRtYXR0ZXIpXCIpKTtcblx0ZWxzZSBpZiAoIWVkaXRpbmdFbWJlZHMgJiYgc3BlY2lmaWMpIHtcblx0XHRjb2RlYmxvY2tQcmVFbGVtZW50cyA9IEFycmF5LmZyb20oZWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKFwicHJlOm5vdCguZnJvbnRtYXR0ZXIpXCIpKTtcblx0XHRjb25zdCBhZG1vbml0aW9uQ29kZUVsZW1lbnQgPSBjb2RlYmxvY2tQcmVFbGVtZW50cz8uWzBdPy5xdWVyeVNlbGVjdG9yKFwicHJlOm5vdChbY2xhc3NdKSA+IGNvZGVbY2xhc3MqPVxcXCJsYW5ndWFnZS1hZC1cXFwiXVwiKTtcblx0XHRpZiAoYWRtb25pdGlvbkNvZGVFbGVtZW50KSB7XG5cdFx0XHRhd2FpdCBzbGVlcCg1MCk7IC8vVE9ET1xuXHRcdFx0Y29kZWJsb2NrUHJlRWxlbWVudHMgPSBBcnJheS5mcm9tKGVsZW1lbnQucXVlcnlTZWxlY3RvckFsbChcInByZTpub3QoLmZyb250bWF0dGVyKVwiKSk7XG5cdFx0fVxuXHR9IGVsc2Vcblx0XHRjb2RlYmxvY2tQcmVFbGVtZW50cyA9IFtdO1xuXHRyZXR1cm4gY29kZWJsb2NrUHJlRWxlbWVudHM7XG59XG5hc3luYyBmdW5jdGlvbiBnZXRDb2RlYmxvY2tzUGFyYW1ldGVycyhzb3VyY2VQYXRoOiBzdHJpbmcsIGNhY2hlOiBDYWNoZWRNZXRhZGF0YSB8IG51bGwsIHBsdWdpbjogQ29kZVN0eWxlclBsdWdpbiwgZWRpdGluZ0VtYmVkczogYm9vbGVhbik6IFByb21pc2U8QXJyYXk8Q29kZWJsb2NrUGFyYW1ldGVycz4+IHtcblx0bGV0IGNvZGVibG9ja3NQYXJhbWV0ZXJzOiBBcnJheTxDb2RlYmxvY2tQYXJhbWV0ZXJzPiA9IFtdO1xuXHRjb25zdCBmaWxlQ29udGVudExpbmVzID0gYXdhaXQgZ2V0RmlsZUNvbnRlbnRMaW5lcyhzb3VyY2VQYXRoLHBsdWdpbik7XG5cdGlmICghZmlsZUNvbnRlbnRMaW5lcylcblx0XHRyZXR1cm4gW107XG5cblx0aWYgKHR5cGVvZiBjYWNoZT8uc2VjdGlvbnMgIT09IFwidW5kZWZpbmVkXCIpIHtcblx0XHRmb3IgKGNvbnN0IHNlY3Rpb24gb2YgY2FjaGUuc2VjdGlvbnMpIHtcblx0XHRcdGlmICghZWRpdGluZ0VtYmVkcyB8fCBzZWN0aW9uLnR5cGUgPT09IFwiY29kZVwiIHx8IHNlY3Rpb24udHlwZSA9PT0gXCJjYWxsb3V0XCIpIHtcblx0XHRcdFx0Y29uc3QgcGFyc2VkQ29kZWJsb2Nrc1BhcmFtZXRlcnMgPSBhd2FpdCBwYXJzZUNvZGVibG9ja1NvdXJjZShmaWxlQ29udGVudExpbmVzLnNsaWNlKHNlY3Rpb24ucG9zaXRpb24uc3RhcnQubGluZSxzZWN0aW9uLnBvc2l0aW9uLmVuZC5saW5lKzEpLHNvdXJjZVBhdGgscGx1Z2luKTtcblx0XHRcdFx0aWYgKCFlZGl0aW5nRW1iZWRzIHx8IHBhcnNlZENvZGVibG9ja3NQYXJhbWV0ZXJzLm5lc3RlZClcblx0XHRcdFx0XHRjb2RlYmxvY2tzUGFyYW1ldGVycyA9IGNvZGVibG9ja3NQYXJhbWV0ZXJzLmNvbmNhdChwYXJzZWRDb2RlYmxvY2tzUGFyYW1ldGVycy5jb2RlYmxvY2tzUGFyYW1ldGVycyk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9IGVsc2Vcblx0XHRjb25zb2xlLmVycm9yKGBNZXRhZGF0YSBjYWNoZSBub3QgZm91bmQgZm9yIGZpbGU6ICR7c291cmNlUGF0aH1gKTtcblx0cmV0dXJuIGNvZGVibG9ja3NQYXJhbWV0ZXJzO1xufVxuZnVuY3Rpb24gaW5zZXJ0SGVhZGVyKGNvZGVibG9ja1ByZUVsZW1lbnQ6IEhUTUxFbGVtZW50LCBjb2RlYmxvY2tQYXJhbWV0ZXJzOiBDb2RlYmxvY2tQYXJhbWV0ZXJzLCBwbHVnaW46IENvZGVTdHlsZXJQbHVnaW4sIGR5bmFtaWM6IGJvb2xlYW4pOiB2b2lkIHtcblx0Y29uc3QgaGVhZGVyQ29udGFpbmVyID0gY3JlYXRlSGVhZGVyKGNvZGVibG9ja1BhcmFtZXRlcnMsIHBsdWdpbi5zZXR0aW5ncy5jdXJyZW50VGhlbWUuc2V0dGluZ3MscGx1Z2luLmxhbmd1YWdlSWNvbnMpO1xuXHRpZiAoZHluYW1pYylcblx0XHRoZWFkZXJDb250YWluZXIuYWRkRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsKCk9Pnt0b2dnbGVGb2xkKGNvZGVibG9ja1ByZUVsZW1lbnQpO30pOyAvLyBBZGQgbGlzdGVuZXIgZm9yIGhlYWRlciBmb2xkaW5nIG9uIGNsaWNrXG5cdGNvZGVibG9ja1ByZUVsZW1lbnQuaW5zZXJ0QmVmb3JlKGhlYWRlckNvbnRhaW5lcixjb2RlYmxvY2tQcmVFbGVtZW50LmNoaWxkTm9kZXNbMF0pO1xufVxuZXhwb3J0IGZ1bmN0aW9uIHJlYWRpbmdEb2N1bWVudEZvbGQoY29udGVudEVsOiBIVE1MRWxlbWVudCwgZm9sZD86IGJvb2xlYW4pIHtcblx0Y29uc3QgY29kZWJsb2NrUHJlRWxlbWVudHMgPSBjb250ZW50RWwucXVlcnlTZWxlY3RvckFsbChcInByZS5jb2RlLXN0eWxlci1wcmVcIik7XG5cdGlmICh0eXBlb2YgZm9sZCA9PT0gXCJ1bmRlZmluZWRcIikgLy9SZXR1cm4gYWxsIGJsb2NrcyB0byBvcmlnaW5hbCBzdGF0ZVxuXHRcdGNvZGVibG9ja1ByZUVsZW1lbnRzLmZvckVhY2goKGNvZGVibG9ja1ByZUVsZW1lbnQ6IEhUTUxFbGVtZW50KT0+e3RvZ2dsZUZvbGQoY29kZWJsb2NrUHJlRWxlbWVudCwoY29kZWJsb2NrUHJlRWxlbWVudC5nZXRBdHRyaWJ1dGUoXCJkZWZhdWx0Rm9sZFwiKT8/XCJmYWxzZVwiKT09PVwidHJ1ZVwiKTt9KTtcblx0ZWxzZSAvL0ZvbGQgb3IgdW5mb2xkIGFsbCBibG9ja3Ncblx0XHRjb2RlYmxvY2tQcmVFbGVtZW50cy5mb3JFYWNoKChjb2RlYmxvY2tQcmVFbGVtZW50OiBIVE1MRWxlbWVudCk9Pnt0b2dnbGVGb2xkKGNvZGVibG9ja1ByZUVsZW1lbnQsZm9sZCk7fSk7XG59XG5hc3luYyBmdW5jdGlvbiB0b2dnbGVGb2xkKGNvZGVibG9ja1ByZUVsZW1lbnQ6IEhUTUxFbGVtZW50LCBmb2xkPzogYm9vbGVhbik6IFByb21pc2U8dm9pZD4ge1xuXHRpZiAoY29kZWJsb2NrUHJlRWxlbWVudC5maXJzdEVsZW1lbnRDaGlsZD8uY2xhc3NMaXN0Py5jb250YWlucyhcImNvZGUtc3R5bGVyLWhlYWRlci1jb250YWluZXItaGlkZGVuXCIpKVxuXHRcdHJldHVybjtcblx0Y29kZWJsb2NrUHJlRWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKFwicHJlID4gY29kZVwiKS5mb3JFYWNoKChjb2RlYmxvY2tDb2RlRWxlbWVudDogSFRNTEVsZW1lbnQpPT5jb2RlYmxvY2tDb2RlRWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eShcIm1heC1oZWlnaHRcIixgY2FsYygke01hdGguY2VpbChjb2RlYmxvY2tDb2RlRWxlbWVudC5zY3JvbGxIZWlnaHQrMC4wMSl9cHggKyB2YXIoLS1jb2RlLXBhZGRpbmcpICogJHtjb2RlYmxvY2tDb2RlRWxlbWVudC5jbGFzc0xpc3QuY29udGFpbnMoXCJleGVjdXRlLWNvZGUtb3V0cHV0XCIpP1wiMy41ICsgdmFyKC0taGVhZGVyLXNlcGFyYXRvci13aWR0aClcIjpcIjJcIn0pYCkpO1xuXHRjb2RlYmxvY2tQcmVFbGVtZW50LmNsYXNzTGlzdC5hZGQoXCJoaWRlLXNjcm9sbFwiKTtcblx0YXdhaXQgc2xlZXAoMSk7XG5cdGlmICh0eXBlb2YgZm9sZCA9PT0gXCJ1bmRlZmluZWRcIilcblx0XHRjb2RlYmxvY2tQcmVFbGVtZW50LmNsYXNzTGlzdC50b2dnbGUoXCJjb2RlLXN0eWxlci1mb2xkZWRcIik7XG5cdGVsc2Vcblx0XHRmb2xkP2NvZGVibG9ja1ByZUVsZW1lbnQuY2xhc3NMaXN0LmFkZChcImNvZGUtc3R5bGVyLWZvbGRlZFwiKTpjb2RlYmxvY2tQcmVFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoXCJjb2RlLXN0eWxlci1mb2xkZWRcIik7XG5cdGF3YWl0IHNsZWVwKFRSQU5TSVRJT05fTEVOR1RIKTtcblx0Y29kZWJsb2NrUHJlRWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKFwicHJlID4gY29kZVwiKS5mb3JFYWNoKChjb2RlYmxvY2tDb2RlRWxlbWVudDogSFRNTEVsZW1lbnQpPT5jb2RlYmxvY2tDb2RlRWxlbWVudC5zdHlsZS5yZW1vdmVQcm9wZXJ0eShcIm1heC1oZWlnaHRcIikpO1xuXHRjb2RlYmxvY2tQcmVFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoXCJoaWRlLXNjcm9sbFwiKTtcbn1cbmZ1bmN0aW9uIGdldFByZUNsYXNzZXMoY29kZWJsb2NrUGFyYW1ldGVyczogQ29kZWJsb2NrUGFyYW1ldGVycywgZHluYW1pYzogYm9vbGVhbik6IEFycmF5PHN0cmluZz4ge1xuXHRjb25zdCBwcmVDbGFzc0xpc3QgPSBbXCJjb2RlLXN0eWxlci1wcmVcIl07XG5cdGlmIChjb2RlYmxvY2tQYXJhbWV0ZXJzLmxhbmd1YWdlKVxuXHRcdHByZUNsYXNzTGlzdC5wdXNoKGBsYW5ndWFnZS0ke2NvZGVibG9ja1BhcmFtZXRlcnMubGFuZ3VhZ2V9YCk7XG5cdGlmIChkeW5hbWljKSB7XG5cdFx0aWYgKGNvZGVibG9ja1BhcmFtZXRlcnMuZm9sZC5lbmFibGVkKVxuXHRcdFx0cHJlQ2xhc3NMaXN0LnB1c2goXCJjb2RlLXN0eWxlci1mb2xkZWRcIik7XG5cdFx0aWYgKGNvZGVibG9ja1BhcmFtZXRlcnMubGluZVVud3JhcC5hbHdheXNFbmFibGVkKVxuXHRcdFx0cHJlQ2xhc3NMaXN0LnB1c2goY29kZWJsb2NrUGFyYW1ldGVycy5saW5lVW53cmFwLmFjdGl2ZVdyYXA/XCJ1bndyYXBwZWQtaW5hY3RpdmVcIjpcInVud3JhcHBlZFwiKTtcblx0XHRlbHNlIGlmIChjb2RlYmxvY2tQYXJhbWV0ZXJzLmxpbmVVbndyYXAuYWx3YXlzRGlzYWJsZWQpXG5cdFx0XHRwcmVDbGFzc0xpc3QucHVzaChcIndyYXBwZWRcIik7XG5cdH1cblx0cmV0dXJuIHByZUNsYXNzTGlzdDtcbn1cbmZ1bmN0aW9uIGRlY29yYXRlQ29kZWJsb2NrTGluZXMoY29kZWJsb2NrQ29kZUVsZW1lbnQ6IEhUTUxFbGVtZW50LCBjb2RlYmxvY2tQYXJhbWV0ZXJzOiBDb2RlYmxvY2tQYXJhbWV0ZXJzKTogdm9pZCB7XG5cdGdldENvZGVibG9ja0xpbmVzKGNvZGVibG9ja0NvZGVFbGVtZW50KS5mb3JFYWNoKChsaW5lLGluZGV4LGNvZGVibG9ja0xpbmVzKSA9PiB7XG5cdFx0aWYgKGluZGV4ICE9PSBjb2RlYmxvY2tMaW5lcy5sZW5ndGgtMSlcblx0XHRcdGluc2VydExpbmVXcmFwcGVyKGNvZGVibG9ja0NvZGVFbGVtZW50LGNvZGVibG9ja1BhcmFtZXRlcnMsaW5kZXgrMSxsaW5lKTtcblx0fSk7XG59XG5mdW5jdGlvbiBnZXRDb2RlYmxvY2tMaW5lcyhjb2RlYmxvY2tDb2RlRWxlbWVudDogSFRNTEVsZW1lbnQpOiBBcnJheTxzdHJpbmc+IHtcblx0Y29uc3QgaHRtbFRyZWUgPSBmcm9tSHRtbChjb2RlYmxvY2tDb2RlRWxlbWVudC5pbm5lckhUTUwucmVwbGFjZSgvXFxuL2csXCI8YnI+XCIpLHtmcmFnbWVudDogdHJ1ZX0pO1xuXHRsZXQgY29kZWJsb2NrSFRNTCA9IGNvZGVibG9ja0NvZGVFbGVtZW50LmlubmVySFRNTDtcblx0dmlzaXRQYXJlbnRzKGh0bWxUcmVlLFtcInRleHRcIixcImVsZW1lbnRcIl0sKG5vZGUsYW5jZXN0b3JzKT0+e1xuXHRcdGlmIChub2RlLnR5cGUgPT09IFwiZWxlbWVudFwiICYmIG5vZGUudGFnTmFtZSA9PT0gXCJiclwiKSB7XG5cdFx0XHRpZiAoYW5jZXN0b3JzLmxlbmd0aCA+PSAyKSB7XG5cdFx0XHRcdGNvZGVibG9ja0hUTUwgPSBjb2RlYmxvY2tIVE1MLnJlcGxhY2UoL1xcbi8sYW5jZXN0b3JzLnNsaWNlKDEpLnJlZHVjZSgocmVzdWx0LGVsZW1lbnQpPT57XG5cdFx0XHRcdFx0Y29uc3QgZWxlbWVudENvcHkgPSBzdHJ1Y3R1cmVkQ2xvbmUoZWxlbWVudCk7XG5cdFx0XHRcdFx0ZWxlbWVudENvcHkuY2hpbGRyZW4gPSBbXTtcblx0XHRcdFx0XHRjb25zdCBzcGxpdFRhZyA9IHRvSHRtbChlbGVtZW50Q29weSkuc3BsaXQoLyg/PD0+KSg/PTxcXC8pLyk7XG5cdFx0XHRcdFx0cmV0dXJuIHNwbGl0VGFnLnNwbGljZSgtMSkrcmVzdWx0K3NwbGl0VGFnLmpvaW4oXCJcIik7XG5cdFx0XHRcdH0sXCI8YnI+XCIpKTtcblx0XHRcdH0gZWxzZVxuXHRcdFx0XHRjb2RlYmxvY2tIVE1MID0gY29kZWJsb2NrSFRNTC5yZXBsYWNlKC9cXG4vLFwiPGJyPlwiKTtcblx0XHR9XG5cdH0pO1xuXHRsZXQgY29kZWJsb2NrTGluZXMgPSBjb2RlYmxvY2tIVE1MLnNwbGl0KFwiPGJyPlwiKTtcblx0aWYgKGNvZGVibG9ja0xpbmVzLmxlbmd0aCA9PT0gMSlcblx0XHRjb2RlYmxvY2tMaW5lcyA9IFtcIlwiLFwiXCJdO1xuXHRjb2RlYmxvY2tDb2RlRWxlbWVudC5pbm5lckhUTUwgPSBcIlwiO1xuXHRyZXR1cm4gY29kZWJsb2NrTGluZXM7XG59XG5mdW5jdGlvbiBpbnNlcnRMaW5lV3JhcHBlcihjb2RlYmxvY2tDb2RlRWxlbWVudDogSFRNTEVsZW1lbnQsIGNvZGVibG9ja1BhcmFtZXRlcnM6IENvZGVibG9ja1BhcmFtZXRlcnMsIGxpbmVOdW1iZXI6IG51bWJlciwgbGluZTogc3RyaW5nKTogdm9pZCB7XG5cdGNvbnN0IGxpbmVXcmFwcGVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKTtcblx0Y29kZWJsb2NrQ29kZUVsZW1lbnQuYXBwZW5kQ2hpbGQobGluZVdyYXBwZXIpO1xuXHRnZXRMaW5lQ2xhc3Nlcyhjb2RlYmxvY2tQYXJhbWV0ZXJzLGxpbmVOdW1iZXIsbGluZSkuZm9yRWFjaCgobGluZUNsYXNzKSA9PiBsaW5lV3JhcHBlci5jbGFzc0xpc3QuYWRkKGxpbmVDbGFzcykpO1xuXHRsaW5lV3JhcHBlci5hcHBlbmRDaGlsZChjcmVhdGVEaXYoe2NsczogYGNvZGUtc3R5bGVyLWxpbmUtbnVtYmVyJHtnZXRMaW5lTnVtYmVyRGlzcGxheShjb2RlYmxvY2tQYXJhbWV0ZXJzKX1gLCB0ZXh0OiAobGluZU51bWJlcitjb2RlYmxvY2tQYXJhbWV0ZXJzLmxpbmVOdW1iZXJzLm9mZnNldCkudG9TdHJpbmcoKX0pKTtcblx0bGluZVdyYXBwZXIuYXBwZW5kQ2hpbGQoY3JlYXRlRGl2KHtjbHM6IFwiY29kZS1zdHlsZXItbGluZS10ZXh0XCIsIHRleHQ6IHNhbml0aXplSFRNTFRvRG9tKGxpbmUgIT09IFwiXCIgPyBsaW5lIDogXCI8YnI+XCIpfSkpO1xufVxuYXN5bmMgZnVuY3Rpb24gZ2V0SGlnaGxpZ2h0ZWRIVE1MKHBhcmFtZXRlcnM6IElubGluZUNvZGVQYXJhbWV0ZXJzLCB0ZXh0OiBzdHJpbmcsIHBsdWdpbjogQ29kZVN0eWxlclBsdWdpbik6IFByb21pc2U8c3RyaW5nPiB7XG5cdGNvbnN0IHRlbXBvcmFyeVJlbmRlcmluZ0NvbnRhaW5lciA9IGNyZWF0ZURpdigpO1xuXHRNYXJrZG93blJlbmRlcmVyLnJlbmRlcihwbHVnaW4uYXBwLFtcImBgYFwiLHBhcmFtZXRlcnMubGFuZ3VhZ2UsXCJcXG5cIix0ZXh0LFwiXFxuXCIsXCJgYGBcIl0uam9pbihcIlwiKSx0ZW1wb3JhcnlSZW5kZXJpbmdDb250YWluZXIsXCJcIixuZXcgQ29tcG9uZW50KCkpO1xuXHRjb25zdCByZW5kZXJlZENvZGVFbGVtZW50ID0gdGVtcG9yYXJ5UmVuZGVyaW5nQ29udGFpbmVyLnF1ZXJ5U2VsZWN0b3IoXCJjb2RlXCIpO1xuXHRpZiAoIXJlbmRlcmVkQ29kZUVsZW1lbnQpXG5cdFx0cmV0dXJuIFwiRVJST1I6IENvdWxkIG5vdCByZW5kZXIgaGlnaGxpZ2h0ZWQgY29kZVwiO1xuXHR3aGlsZShwbHVnaW4uc2V0dGluZ3MuY3VycmVudFRoZW1lLnNldHRpbmdzLmlubGluZS5zeW50YXhIaWdobGlnaHQgJiYgIXJlbmRlcmVkQ29kZUVsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKFwiaXMtbG9hZGVkXCIpKVxuXHRcdGF3YWl0IHNsZWVwKDIpO1xuXHRyZXR1cm4gcmVuZGVyZWRDb2RlRWxlbWVudC5pbm5lckhUTUw7XG59XG5cbmV4cG9ydCBjb25zdCBleGVjdXRlQ29kZU11dGF0aW9uT2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcigobXV0YXRpb25zKSA9PiB7XG5cdG11dGF0aW9ucy5mb3JFYWNoKChtdXRhdGlvbjogTXV0YXRpb25SZWNvcmQpID0+IHtcblx0XHRpZiAobXV0YXRpb24udHlwZSA9PT0gXCJjaGlsZExpc3RcIiAmJiAobXV0YXRpb24udGFyZ2V0IGFzIEhUTUxFbGVtZW50KS50YWdOYW1lID09PSBcIlBSRVwiKSB7IC8vIEFkZCBleGVjdXRlIGNvZGUgb3V0cHV0XG5cdFx0XHRjb25zdCBleGVjdXRlQ29kZU91dHB1dCA9IChtdXRhdGlvbi50YXJnZXQgYXMgSFRNTEVsZW1lbnQpLnF1ZXJ5U2VsZWN0b3IoXCJwcmUgPiBjb2RlIH4gY29kZS5sYW5ndWFnZS1vdXRwdXRcIikgYXMgSFRNTEVsZW1lbnQ7XG5cdFx0XHRpZiAoZXhlY3V0ZUNvZGVPdXRwdXQpXG5cdFx0XHRcdGV4ZWN1dGVDb2RlT3V0cHV0LmNsYXNzTGlzdC5hZGQoXCJleGVjdXRlLWNvZGUtb3V0cHV0XCIpO1xuXHRcdH1cblx0fSk7XG59KTtcbiIsICIvKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ3VuaXN0JykuTm9kZX0gTm9kZVxuICogQHR5cGVkZWYge2ltcG9ydCgndW5pc3QnKS5QYXJlbnR9IFBhcmVudFxuICovXG5cbi8qKlxuICogQHRlbXBsYXRlIEZuXG4gKiBAdGVtcGxhdGUgRmFsbGJhY2tcbiAqIEB0eXBlZGVmIHtGbiBleHRlbmRzICh2YWx1ZTogYW55KSA9PiB2YWx1ZSBpcyBpbmZlciBUaGluZyA/IFRoaW5nIDogRmFsbGJhY2t9IFByZWRpY2F0ZVxuICovXG5cbi8qKlxuICogQGNhbGxiYWNrIENoZWNrXG4gKiAgIENoZWNrIHRoYXQgYW4gYXJiaXRyYXJ5IHZhbHVlIGlzIGEgbm9kZS5cbiAqIEBwYXJhbSB7dW5rbm93bn0gdGhpc1xuICogICBUaGUgZ2l2ZW4gY29udGV4dC5cbiAqIEBwYXJhbSB7dW5rbm93bn0gW25vZGVdXG4gKiAgIEFueXRoaW5nICh0eXBpY2FsbHkgYSBub2RlKS5cbiAqIEBwYXJhbSB7bnVtYmVyIHwgbnVsbCB8IHVuZGVmaW5lZH0gW2luZGV4XVxuICogICBUaGUgbm9kZVx1MjAxOXMgcG9zaXRpb24gaW4gaXRzIHBhcmVudC5cbiAqIEBwYXJhbSB7UGFyZW50IHwgbnVsbCB8IHVuZGVmaW5lZH0gW3BhcmVudF1cbiAqICAgVGhlIG5vZGVcdTIwMTlzIHBhcmVudC5cbiAqIEByZXR1cm5zIHtib29sZWFufVxuICogICBXaGV0aGVyIHRoaXMgaXMgYSBub2RlIGFuZCBwYXNzZXMgYSB0ZXN0LlxuICpcbiAqIEB0eXBlZGVmIHtSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB8IE5vZGV9IFByb3BzXG4gKiAgIE9iamVjdCB0byBjaGVjayBmb3IgZXF1aXZhbGVuY2UuXG4gKlxuICogICBOb3RlOiBgTm9kZWAgaXMgaW5jbHVkZWQgYXMgaXQgaXMgY29tbW9uIGJ1dCBpcyBub3QgaW5kZXhhYmxlLlxuICpcbiAqIEB0eXBlZGVmIHtBcnJheTxQcm9wcyB8IFRlc3RGdW5jdGlvbiB8IHN0cmluZz4gfCBQcm9wcyB8IFRlc3RGdW5jdGlvbiB8IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWR9IFRlc3RcbiAqICAgQ2hlY2sgZm9yIGFuIGFyYml0cmFyeSBub2RlLlxuICpcbiAqIEBjYWxsYmFjayBUZXN0RnVuY3Rpb25cbiAqICAgQ2hlY2sgaWYgYSBub2RlIHBhc3NlcyBhIHRlc3QuXG4gKiBAcGFyYW0ge3Vua25vd259IHRoaXNcbiAqICAgVGhlIGdpdmVuIGNvbnRleHQuXG4gKiBAcGFyYW0ge05vZGV9IG5vZGVcbiAqICAgQSBub2RlLlxuICogQHBhcmFtIHtudW1iZXIgfCB1bmRlZmluZWR9IFtpbmRleF1cbiAqICAgVGhlIG5vZGVcdTIwMTlzIHBvc2l0aW9uIGluIGl0cyBwYXJlbnQuXG4gKiBAcGFyYW0ge1BhcmVudCB8IHVuZGVmaW5lZH0gW3BhcmVudF1cbiAqICAgVGhlIG5vZGVcdTIwMTlzIHBhcmVudC5cbiAqIEByZXR1cm5zIHtib29sZWFuIHwgdW5kZWZpbmVkIHwgdm9pZH1cbiAqICAgV2hldGhlciB0aGlzIG5vZGUgcGFzc2VzIHRoZSB0ZXN0LlxuICpcbiAqICAgTm90ZTogYHZvaWRgIGlzIGluY2x1ZGVkIHVudGlsIFRTIHNlZXMgbm8gcmV0dXJuIGFzIGB1bmRlZmluZWRgLlxuICovXG5cbi8qKlxuICogQ2hlY2sgaWYgYG5vZGVgIGlzIGEgYE5vZGVgIGFuZCB3aGV0aGVyIGl0IHBhc3NlcyB0aGUgZ2l2ZW4gdGVzdC5cbiAqXG4gKiBAcGFyYW0ge3Vua25vd259IG5vZGVcbiAqICAgVGhpbmcgdG8gY2hlY2ssIHR5cGljYWxseSBgTm9kZWAuXG4gKiBAcGFyYW0ge1Rlc3R9IHRlc3RcbiAqICAgQSBjaGVjayBmb3IgYSBzcGVjaWZpYyBub2RlLlxuICogQHBhcmFtIHtudW1iZXIgfCBudWxsIHwgdW5kZWZpbmVkfSBpbmRleFxuICogICBUaGUgbm9kZVx1MjAxOXMgcG9zaXRpb24gaW4gaXRzIHBhcmVudC5cbiAqIEBwYXJhbSB7UGFyZW50IHwgbnVsbCB8IHVuZGVmaW5lZH0gcGFyZW50XG4gKiAgIFRoZSBub2RlXHUyMDE5cyBwYXJlbnQuXG4gKiBAcGFyYW0ge3Vua25vd259IGNvbnRleHRcbiAqICAgQ29udGV4dCBvYmplY3QgKGB0aGlzYCkgdG8gcGFzcyB0byBgdGVzdGAgZnVuY3Rpb25zLlxuICogQHJldHVybnMge2Jvb2xlYW59XG4gKiAgIFdoZXRoZXIgYG5vZGVgIGlzIGEgbm9kZSBhbmQgcGFzc2VzIGEgdGVzdC5cbiAqL1xuZXhwb3J0IGNvbnN0IGlzID1cbiAgLy8gTm90ZTogb3ZlcmxvYWRzIGluIEpTRG9jIGNhblx1MjAxOXQgeWV0IHVzZSBkaWZmZXJlbnQgYEB0ZW1wbGF0ZWBzLlxuICAvKipcbiAgICogQHR5cGUgeyhcbiAgICogICAoPENvbmRpdGlvbiBleHRlbmRzIHN0cmluZz4obm9kZTogdW5rbm93biwgdGVzdDogQ29uZGl0aW9uLCBpbmRleD86IG51bWJlciB8IG51bGwgfCB1bmRlZmluZWQsIHBhcmVudD86IFBhcmVudCB8IG51bGwgfCB1bmRlZmluZWQsIGNvbnRleHQ/OiB1bmtub3duKSA9PiBub2RlIGlzIE5vZGUgJiB7dHlwZTogQ29uZGl0aW9ufSkgJlxuICAgKiAgICg8Q29uZGl0aW9uIGV4dGVuZHMgUHJvcHM+KG5vZGU6IHVua25vd24sIHRlc3Q6IENvbmRpdGlvbiwgaW5kZXg/OiBudW1iZXIgfCBudWxsIHwgdW5kZWZpbmVkLCBwYXJlbnQ/OiBQYXJlbnQgfCBudWxsIHwgdW5kZWZpbmVkLCBjb250ZXh0PzogdW5rbm93bikgPT4gbm9kZSBpcyBOb2RlICYgQ29uZGl0aW9uKSAmXG4gICAqICAgKDxDb25kaXRpb24gZXh0ZW5kcyBUZXN0RnVuY3Rpb24+KG5vZGU6IHVua25vd24sIHRlc3Q6IENvbmRpdGlvbiwgaW5kZXg/OiBudW1iZXIgfCBudWxsIHwgdW5kZWZpbmVkLCBwYXJlbnQ/OiBQYXJlbnQgfCBudWxsIHwgdW5kZWZpbmVkLCBjb250ZXh0PzogdW5rbm93bikgPT4gbm9kZSBpcyBOb2RlICYgUHJlZGljYXRlPENvbmRpdGlvbiwgTm9kZT4pICZcbiAgICogICAoKG5vZGU/OiBudWxsIHwgdW5kZWZpbmVkKSA9PiBmYWxzZSkgJlxuICAgKiAgICgobm9kZTogdW5rbm93biwgdGVzdD86IG51bGwgfCB1bmRlZmluZWQsIGluZGV4PzogbnVtYmVyIHwgbnVsbCB8IHVuZGVmaW5lZCwgcGFyZW50PzogUGFyZW50IHwgbnVsbCB8IHVuZGVmaW5lZCwgY29udGV4dD86IHVua25vd24pID0+IG5vZGUgaXMgTm9kZSkgJlxuICAgKiAgICgobm9kZTogdW5rbm93biwgdGVzdD86IFRlc3QsIGluZGV4PzogbnVtYmVyIHwgbnVsbCB8IHVuZGVmaW5lZCwgcGFyZW50PzogUGFyZW50IHwgbnVsbCB8IHVuZGVmaW5lZCwgY29udGV4dD86IHVua25vd24pID0+IGJvb2xlYW4pXG4gICAqICl9XG4gICAqL1xuICAoXG4gICAgLyoqXG4gICAgICogQHBhcmFtIHt1bmtub3dufSBbbm9kZV1cbiAgICAgKiBAcGFyYW0ge1Rlc3R9IFt0ZXN0XVxuICAgICAqIEBwYXJhbSB7bnVtYmVyIHwgbnVsbCB8IHVuZGVmaW5lZH0gW2luZGV4XVxuICAgICAqIEBwYXJhbSB7UGFyZW50IHwgbnVsbCB8IHVuZGVmaW5lZH0gW3BhcmVudF1cbiAgICAgKiBAcGFyYW0ge3Vua25vd259IFtjb250ZXh0XVxuICAgICAqIEByZXR1cm5zIHtib29sZWFufVxuICAgICAqL1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBtYXgtcGFyYW1zXG4gICAgZnVuY3Rpb24gKG5vZGUsIHRlc3QsIGluZGV4LCBwYXJlbnQsIGNvbnRleHQpIHtcbiAgICAgIGNvbnN0IGNoZWNrID0gY29udmVydCh0ZXN0KVxuXG4gICAgICBpZiAoXG4gICAgICAgIGluZGV4ICE9PSB1bmRlZmluZWQgJiZcbiAgICAgICAgaW5kZXggIT09IG51bGwgJiZcbiAgICAgICAgKHR5cGVvZiBpbmRleCAhPT0gJ251bWJlcicgfHxcbiAgICAgICAgICBpbmRleCA8IDAgfHxcbiAgICAgICAgICBpbmRleCA9PT0gTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZKVxuICAgICAgKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignRXhwZWN0ZWQgcG9zaXRpdmUgZmluaXRlIGluZGV4JylcbiAgICAgIH1cblxuICAgICAgaWYgKFxuICAgICAgICBwYXJlbnQgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgICBwYXJlbnQgIT09IG51bGwgJiZcbiAgICAgICAgKCFpcyhwYXJlbnQpIHx8ICFwYXJlbnQuY2hpbGRyZW4pXG4gICAgICApIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdFeHBlY3RlZCBwYXJlbnQgbm9kZScpXG4gICAgICB9XG5cbiAgICAgIGlmIChcbiAgICAgICAgKHBhcmVudCA9PT0gdW5kZWZpbmVkIHx8IHBhcmVudCA9PT0gbnVsbCkgIT09XG4gICAgICAgIChpbmRleCA9PT0gdW5kZWZpbmVkIHx8IGluZGV4ID09PSBudWxsKVxuICAgICAgKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignRXhwZWN0ZWQgYm90aCBwYXJlbnQgYW5kIGluZGV4JylcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGxvb2tzTGlrZUFOb2RlKG5vZGUpXG4gICAgICAgID8gY2hlY2suY2FsbChjb250ZXh0LCBub2RlLCBpbmRleCwgcGFyZW50KVxuICAgICAgICA6IGZhbHNlXG4gICAgfVxuICApXG5cbi8qKlxuICogR2VuZXJhdGUgYW4gYXNzZXJ0aW9uIGZyb20gYSB0ZXN0LlxuICpcbiAqIFVzZWZ1bCBpZiB5b3VcdTIwMTlyZSBnb2luZyB0byB0ZXN0IG1hbnkgbm9kZXMsIGZvciBleGFtcGxlIHdoZW4gY3JlYXRpbmcgYVxuICogdXRpbGl0eSB3aGVyZSBzb21ldGhpbmcgZWxzZSBwYXNzZXMgYSBjb21wYXRpYmxlIHRlc3QuXG4gKlxuICogVGhlIGNyZWF0ZWQgZnVuY3Rpb24gaXMgYSBiaXQgZmFzdGVyIGJlY2F1c2UgaXQgZXhwZWN0cyB2YWxpZCBpbnB1dCBvbmx5OlxuICogYSBgbm9kZWAsIGBpbmRleGAsIGFuZCBgcGFyZW50YC5cbiAqXG4gKiBAcGFyYW0ge1Rlc3R9IHRlc3RcbiAqICAgKiAgIHdoZW4gbnVsbGlzaCwgY2hlY2tzIGlmIGBub2RlYCBpcyBhIGBOb2RlYC5cbiAqICAgKiAgIHdoZW4gYHN0cmluZ2AsIHdvcmtzIGxpa2UgcGFzc2luZyBgKG5vZGUpID0+IG5vZGUudHlwZSA9PT0gdGVzdGAuXG4gKiAgICogICB3aGVuIGBmdW5jdGlvbmAgY2hlY2tzIGlmIGZ1bmN0aW9uIHBhc3NlZCB0aGUgbm9kZSBpcyB0cnVlLlxuICogICAqICAgd2hlbiBgb2JqZWN0YCwgY2hlY2tzIHRoYXQgYWxsIGtleXMgaW4gdGVzdCBhcmUgaW4gbm9kZSwgYW5kIHRoYXQgdGhleSBoYXZlIChzdHJpY3RseSkgZXF1YWwgdmFsdWVzLlxuICogICAqICAgd2hlbiBgYXJyYXlgLCBjaGVja3MgaWYgYW55IG9uZSBvZiB0aGUgc3VidGVzdHMgcGFzcy5cbiAqIEByZXR1cm5zIHtDaGVja31cbiAqICAgQW4gYXNzZXJ0aW9uLlxuICovXG5leHBvcnQgY29uc3QgY29udmVydCA9XG4gIC8vIE5vdGU6IG92ZXJsb2FkcyBpbiBKU0RvYyBjYW5cdTIwMTl0IHlldCB1c2UgZGlmZmVyZW50IGBAdGVtcGxhdGVgcy5cbiAgLyoqXG4gICAqIEB0eXBlIHsoXG4gICAqICAgKDxDb25kaXRpb24gZXh0ZW5kcyBzdHJpbmc+KHRlc3Q6IENvbmRpdGlvbikgPT4gKG5vZGU6IHVua25vd24sIGluZGV4PzogbnVtYmVyIHwgbnVsbCB8IHVuZGVmaW5lZCwgcGFyZW50PzogUGFyZW50IHwgbnVsbCB8IHVuZGVmaW5lZCwgY29udGV4dD86IHVua25vd24pID0+IG5vZGUgaXMgTm9kZSAmIHt0eXBlOiBDb25kaXRpb259KSAmXG4gICAqICAgKDxDb25kaXRpb24gZXh0ZW5kcyBQcm9wcz4odGVzdDogQ29uZGl0aW9uKSA9PiAobm9kZTogdW5rbm93biwgaW5kZXg/OiBudW1iZXIgfCBudWxsIHwgdW5kZWZpbmVkLCBwYXJlbnQ/OiBQYXJlbnQgfCBudWxsIHwgdW5kZWZpbmVkLCBjb250ZXh0PzogdW5rbm93bikgPT4gbm9kZSBpcyBOb2RlICYgQ29uZGl0aW9uKSAmXG4gICAqICAgKDxDb25kaXRpb24gZXh0ZW5kcyBUZXN0RnVuY3Rpb24+KHRlc3Q6IENvbmRpdGlvbikgPT4gKG5vZGU6IHVua25vd24sIGluZGV4PzogbnVtYmVyIHwgbnVsbCB8IHVuZGVmaW5lZCwgcGFyZW50PzogUGFyZW50IHwgbnVsbCB8IHVuZGVmaW5lZCwgY29udGV4dD86IHVua25vd24pID0+IG5vZGUgaXMgTm9kZSAmIFByZWRpY2F0ZTxDb25kaXRpb24sIE5vZGU+KSAmXG4gICAqICAgKCh0ZXN0PzogbnVsbCB8IHVuZGVmaW5lZCkgPT4gKG5vZGU/OiB1bmtub3duLCBpbmRleD86IG51bWJlciB8IG51bGwgfCB1bmRlZmluZWQsIHBhcmVudD86IFBhcmVudCB8IG51bGwgfCB1bmRlZmluZWQsIGNvbnRleHQ/OiB1bmtub3duKSA9PiBub2RlIGlzIE5vZGUpICZcbiAgICogICAoKHRlc3Q/OiBUZXN0KSA9PiBDaGVjaylcbiAgICogKX1cbiAgICovXG4gIChcbiAgICAvKipcbiAgICAgKiBAcGFyYW0ge1Rlc3R9IFt0ZXN0XVxuICAgICAqIEByZXR1cm5zIHtDaGVja31cbiAgICAgKi9cbiAgICBmdW5jdGlvbiAodGVzdCkge1xuICAgICAgaWYgKHRlc3QgPT09IG51bGwgfHwgdGVzdCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHJldHVybiBva1xuICAgICAgfVxuXG4gICAgICBpZiAodHlwZW9mIHRlc3QgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgcmV0dXJuIGNhc3RGYWN0b3J5KHRlc3QpXG4gICAgICB9XG5cbiAgICAgIGlmICh0eXBlb2YgdGVzdCA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgcmV0dXJuIEFycmF5LmlzQXJyYXkodGVzdCkgPyBhbnlGYWN0b3J5KHRlc3QpIDogcHJvcHNGYWN0b3J5KHRlc3QpXG4gICAgICB9XG5cbiAgICAgIGlmICh0eXBlb2YgdGVzdCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgcmV0dXJuIHR5cGVGYWN0b3J5KHRlc3QpXG4gICAgICB9XG5cbiAgICAgIHRocm93IG5ldyBFcnJvcignRXhwZWN0ZWQgZnVuY3Rpb24sIHN0cmluZywgb3Igb2JqZWN0IGFzIHRlc3QnKVxuICAgIH1cbiAgKVxuXG4vKipcbiAqIEBwYXJhbSB7QXJyYXk8UHJvcHMgfCBUZXN0RnVuY3Rpb24gfCBzdHJpbmc+fSB0ZXN0c1xuICogQHJldHVybnMge0NoZWNrfVxuICovXG5mdW5jdGlvbiBhbnlGYWN0b3J5KHRlc3RzKSB7XG4gIC8qKiBAdHlwZSB7QXJyYXk8Q2hlY2s+fSAqL1xuICBjb25zdCBjaGVja3MgPSBbXVxuICBsZXQgaW5kZXggPSAtMVxuXG4gIHdoaWxlICgrK2luZGV4IDwgdGVzdHMubGVuZ3RoKSB7XG4gICAgY2hlY2tzW2luZGV4XSA9IGNvbnZlcnQodGVzdHNbaW5kZXhdKVxuICB9XG5cbiAgcmV0dXJuIGNhc3RGYWN0b3J5KGFueSlcblxuICAvKipcbiAgICogQHRoaXMge3Vua25vd259XG4gICAqIEB0eXBlIHtUZXN0RnVuY3Rpb259XG4gICAqL1xuICBmdW5jdGlvbiBhbnkoLi4ucGFyYW1ldGVycykge1xuICAgIGxldCBpbmRleCA9IC0xXG5cbiAgICB3aGlsZSAoKytpbmRleCA8IGNoZWNrcy5sZW5ndGgpIHtcbiAgICAgIGlmIChjaGVja3NbaW5kZXhdLmFwcGx5KHRoaXMsIHBhcmFtZXRlcnMpKSByZXR1cm4gdHJ1ZVxuICAgIH1cblxuICAgIHJldHVybiBmYWxzZVxuICB9XG59XG5cbi8qKlxuICogVHVybiBhbiBvYmplY3QgaW50byBhIHRlc3QgZm9yIGEgbm9kZSB3aXRoIGEgY2VydGFpbiBmaWVsZHMuXG4gKlxuICogQHBhcmFtIHtQcm9wc30gY2hlY2tcbiAqIEByZXR1cm5zIHtDaGVja31cbiAqL1xuZnVuY3Rpb24gcHJvcHNGYWN0b3J5KGNoZWNrKSB7XG4gIGNvbnN0IGNoZWNrQXNSZWNvcmQgPSAvKiogQHR5cGUge1JlY29yZDxzdHJpbmcsIHVua25vd24+fSAqLyAoY2hlY2spXG5cbiAgcmV0dXJuIGNhc3RGYWN0b3J5KGFsbClcblxuICAvKipcbiAgICogQHBhcmFtIHtOb2RlfSBub2RlXG4gICAqIEByZXR1cm5zIHtib29sZWFufVxuICAgKi9cbiAgZnVuY3Rpb24gYWxsKG5vZGUpIHtcbiAgICBjb25zdCBub2RlQXNSZWNvcmQgPSAvKiogQHR5cGUge1JlY29yZDxzdHJpbmcsIHVua25vd24+fSAqLyAoXG4gICAgICAvKiogQHR5cGUge3Vua25vd259ICovIChub2RlKVxuICAgIClcblxuICAgIC8qKiBAdHlwZSB7c3RyaW5nfSAqL1xuICAgIGxldCBrZXlcblxuICAgIGZvciAoa2V5IGluIGNoZWNrKSB7XG4gICAgICBpZiAobm9kZUFzUmVjb3JkW2tleV0gIT09IGNoZWNrQXNSZWNvcmRba2V5XSkgcmV0dXJuIGZhbHNlXG4gICAgfVxuXG4gICAgcmV0dXJuIHRydWVcbiAgfVxufVxuXG4vKipcbiAqIFR1cm4gYSBzdHJpbmcgaW50byBhIHRlc3QgZm9yIGEgbm9kZSB3aXRoIGEgY2VydGFpbiB0eXBlLlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBjaGVja1xuICogQHJldHVybnMge0NoZWNrfVxuICovXG5mdW5jdGlvbiB0eXBlRmFjdG9yeShjaGVjaykge1xuICByZXR1cm4gY2FzdEZhY3RvcnkodHlwZSlcblxuICAvKipcbiAgICogQHBhcmFtIHtOb2RlfSBub2RlXG4gICAqL1xuICBmdW5jdGlvbiB0eXBlKG5vZGUpIHtcbiAgICByZXR1cm4gbm9kZSAmJiBub2RlLnR5cGUgPT09IGNoZWNrXG4gIH1cbn1cblxuLyoqXG4gKiBUdXJuIGEgY3VzdG9tIHRlc3QgaW50byBhIHRlc3QgZm9yIGEgbm9kZSB0aGF0IHBhc3NlcyB0aGF0IHRlc3QuXG4gKlxuICogQHBhcmFtIHtUZXN0RnVuY3Rpb259IHRlc3RGdW5jdGlvblxuICogQHJldHVybnMge0NoZWNrfVxuICovXG5mdW5jdGlvbiBjYXN0RmFjdG9yeSh0ZXN0RnVuY3Rpb24pIHtcbiAgcmV0dXJuIGNoZWNrXG5cbiAgLyoqXG4gICAqIEB0aGlzIHt1bmtub3dufVxuICAgKiBAdHlwZSB7Q2hlY2t9XG4gICAqL1xuICBmdW5jdGlvbiBjaGVjayh2YWx1ZSwgaW5kZXgsIHBhcmVudCkge1xuICAgIHJldHVybiBCb29sZWFuKFxuICAgICAgbG9va3NMaWtlQU5vZGUodmFsdWUpICYmXG4gICAgICAgIHRlc3RGdW5jdGlvbi5jYWxsKFxuICAgICAgICAgIHRoaXMsXG4gICAgICAgICAgdmFsdWUsXG4gICAgICAgICAgdHlwZW9mIGluZGV4ID09PSAnbnVtYmVyJyA/IGluZGV4IDogdW5kZWZpbmVkLFxuICAgICAgICAgIHBhcmVudCB8fCB1bmRlZmluZWRcbiAgICAgICAgKVxuICAgIClcbiAgfVxufVxuXG5mdW5jdGlvbiBvaygpIHtcbiAgcmV0dXJuIHRydWVcbn1cblxuLyoqXG4gKiBAcGFyYW0ge3Vua25vd259IHZhbHVlXG4gKiBAcmV0dXJucyB7dmFsdWUgaXMgTm9kZX1cbiAqL1xuZnVuY3Rpb24gbG9va3NMaWtlQU5vZGUodmFsdWUpIHtcbiAgcmV0dXJuIHZhbHVlICE9PSBudWxsICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiYgJ3R5cGUnIGluIHZhbHVlXG59XG4iLCAiLyoqXG4gKiBAcGFyYW0ge3N0cmluZ30gZFxuICogQHJldHVybnMge3N0cmluZ31cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvbG9yKGQpIHtcbiAgcmV0dXJuIGRcbn1cbiIsICIvKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ3VuaXN0JykuTm9kZX0gVW5pc3ROb2RlXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCd1bmlzdCcpLlBhcmVudH0gVW5pc3RQYXJlbnRcbiAqL1xuXG4vKipcbiAqIEB0eXBlZGVmIHtFeGNsdWRlPGltcG9ydCgndW5pc3QtdXRpbC1pcycpLlRlc3QsIHVuZGVmaW5lZD4gfCB1bmRlZmluZWR9IFRlc3RcbiAqICAgVGVzdCBmcm9tIGB1bmlzdC11dGlsLWlzYC5cbiAqXG4gKiAgIE5vdGU6IHdlIGhhdmUgcmVtb3ZlIGFuZCBhZGQgYHVuZGVmaW5lZGAsIGJlY2F1c2Ugb3RoZXJ3aXNlIHdoZW4gZ2VuZXJhdGluZ1xuICogICBhdXRvbWF0aWMgYC5kLnRzYCBmaWxlcywgVFMgdHJpZXMgdG8gZmxhdHRlbiBwYXRocyBmcm9tIGEgbG9jYWwgcGVyc3BlY3RpdmUsXG4gKiAgIHdoaWNoIGRvZXNuXHUyMDE5dCB3b3JrIHdoZW4gcHVibGlzaGluZyBvbiBucG0uXG4gKi9cblxuLyoqXG4gKiBAdHlwZWRlZiB7KFxuICogICBGbiBleHRlbmRzICh2YWx1ZTogYW55KSA9PiB2YWx1ZSBpcyBpbmZlciBUaGluZ1xuICogICA/IFRoaW5nXG4gKiAgIDogRmFsbGJhY2tcbiAqICl9IFByZWRpY2F0ZVxuICogICBHZXQgdGhlIHZhbHVlIG9mIGEgdHlwZSBndWFyZCBgRm5gLlxuICogQHRlbXBsYXRlIEZuXG4gKiAgIFZhbHVlOyB0eXBpY2FsbHkgZnVuY3Rpb24gdGhhdCBpcyBhIHR5cGUgZ3VhcmQgKHN1Y2ggYXMgYCh4KTogeCBpcyBZYCkuXG4gKiBAdGVtcGxhdGUgRmFsbGJhY2tcbiAqICAgVmFsdWUgdG8geWllbGQgaWYgYEZuYCBpcyBub3QgYSB0eXBlIGd1YXJkLlxuICovXG5cbi8qKlxuICogQHR5cGVkZWYgeyhcbiAqICAgQ2hlY2sgZXh0ZW5kcyBudWxsIHwgdW5kZWZpbmVkIC8vIE5vIHRlc3QuXG4gKiAgID8gVmFsdWVcbiAqICAgOiBWYWx1ZSBleHRlbmRzIHt0eXBlOiBDaGVja30gLy8gU3RyaW5nICh0eXBlKSB0ZXN0LlxuICogICA/IFZhbHVlXG4gKiAgIDogVmFsdWUgZXh0ZW5kcyBDaGVjayAvLyBQYXJ0aWFsIHRlc3QuXG4gKiAgID8gVmFsdWVcbiAqICAgOiBDaGVjayBleHRlbmRzIEZ1bmN0aW9uIC8vIEZ1bmN0aW9uIHRlc3QuXG4gKiAgID8gUHJlZGljYXRlPENoZWNrLCBWYWx1ZT4gZXh0ZW5kcyBWYWx1ZVxuICogICAgID8gUHJlZGljYXRlPENoZWNrLCBWYWx1ZT5cbiAqICAgICA6IG5ldmVyXG4gKiAgIDogbmV2ZXIgLy8gU29tZSBvdGhlciB0ZXN0P1xuICogKX0gTWF0Y2hlc09uZVxuICogICBDaGVjayB3aGV0aGVyIGEgbm9kZSBtYXRjaGVzIGEgcHJpbWl0aXZlIGNoZWNrIGluIHRoZSB0eXBlIHN5c3RlbS5cbiAqIEB0ZW1wbGF0ZSBWYWx1ZVxuICogICBWYWx1ZTsgdHlwaWNhbGx5IHVuaXN0IGBOb2RlYC5cbiAqIEB0ZW1wbGF0ZSBDaGVja1xuICogICBWYWx1ZTsgdHlwaWNhbGx5IGB1bmlzdC11dGlsLWlzYC1jb21wYXRpYmxlIHRlc3QsIGJ1dCBub3QgYXJyYXlzLlxuICovXG5cbi8qKlxuICogQHR5cGVkZWYgeyhcbiAqICAgQ2hlY2sgZXh0ZW5kcyBBcnJheTxhbnk+XG4gKiAgID8gTWF0Y2hlc09uZTxWYWx1ZSwgQ2hlY2tba2V5b2YgQ2hlY2tdPlxuICogICA6IE1hdGNoZXNPbmU8VmFsdWUsIENoZWNrPlxuICogKX0gTWF0Y2hlc1xuICogICBDaGVjayB3aGV0aGVyIGEgbm9kZSBtYXRjaGVzIGEgY2hlY2sgaW4gdGhlIHR5cGUgc3lzdGVtLlxuICogQHRlbXBsYXRlIFZhbHVlXG4gKiAgIFZhbHVlOyB0eXBpY2FsbHkgdW5pc3QgYE5vZGVgLlxuICogQHRlbXBsYXRlIENoZWNrXG4gKiAgIFZhbHVlOyB0eXBpY2FsbHkgYHVuaXN0LXV0aWwtaXNgLWNvbXBhdGlibGUgdGVzdC5cbiAqL1xuXG4vKipcbiAqIEB0eXBlZGVmIHswIHwgMSB8IDIgfCAzIHwgNCB8IDUgfCA2IHwgNyB8IDggfCA5IHwgMTB9IFVpbnRcbiAqICAgTnVtYmVyOyBjYXBwZWQgcmVhc29uYWJseS5cbiAqL1xuXG4vKipcbiAqIEB0eXBlZGVmIHtJIGV4dGVuZHMgMCA/IDEgOiBJIGV4dGVuZHMgMSA/IDIgOiBJIGV4dGVuZHMgMiA/IDMgOiBJIGV4dGVuZHMgMyA/IDQgOiBJIGV4dGVuZHMgNCA/IDUgOiBJIGV4dGVuZHMgNSA/IDYgOiBJIGV4dGVuZHMgNiA/IDcgOiBJIGV4dGVuZHMgNyA/IDggOiBJIGV4dGVuZHMgOCA/IDkgOiAxMH0gSW5jcmVtZW50XG4gKiAgIEluY3JlbWVudCBhIG51bWJlciBpbiB0aGUgdHlwZSBzeXN0ZW0uXG4gKiBAdGVtcGxhdGUge1VpbnR9IFtJPTBdXG4gKiAgIEluZGV4LlxuICovXG5cbi8qKlxuICogQHR5cGVkZWYgeyhcbiAqICAgTm9kZSBleHRlbmRzIFVuaXN0UGFyZW50XG4gKiAgID8gTm9kZSBleHRlbmRzIHtjaGlsZHJlbjogQXJyYXk8aW5mZXIgQ2hpbGRyZW4+fVxuICogICAgID8gQ2hpbGQgZXh0ZW5kcyBDaGlsZHJlbiA/IE5vZGUgOiBuZXZlclxuICogICAgIDogbmV2ZXJcbiAqICAgOiBuZXZlclxuICogKX0gSW50ZXJuYWxQYXJlbnRcbiAqICAgQ29sbGVjdCBub2RlcyB0aGF0IGNhbiBiZSBwYXJlbnRzIG9mIGBDaGlsZGAuXG4gKiBAdGVtcGxhdGUge1VuaXN0Tm9kZX0gTm9kZVxuICogICBBbGwgbm9kZSB0eXBlcyBpbiBhIHRyZWUuXG4gKiBAdGVtcGxhdGUge1VuaXN0Tm9kZX0gQ2hpbGRcbiAqICAgTm9kZSB0byBzZWFyY2ggZm9yLlxuICovXG5cbi8qKlxuICogQHR5cGVkZWYge0ludGVybmFsUGFyZW50PEluY2x1c2l2ZURlc2NlbmRhbnQ8VHJlZT4sIENoaWxkPn0gUGFyZW50XG4gKiAgIENvbGxlY3Qgbm9kZXMgaW4gYFRyZWVgIHRoYXQgY2FuIGJlIHBhcmVudHMgb2YgYENoaWxkYC5cbiAqIEB0ZW1wbGF0ZSB7VW5pc3ROb2RlfSBUcmVlXG4gKiAgIEFsbCBub2RlIHR5cGVzIGluIGEgdHJlZS5cbiAqIEB0ZW1wbGF0ZSB7VW5pc3ROb2RlfSBDaGlsZFxuICogICBOb2RlIHRvIHNlYXJjaCBmb3IuXG4gKi9cblxuLyoqXG4gKiBAdHlwZWRlZiB7KFxuICogICBEZXB0aCBleHRlbmRzIE1heFxuICogICA/IG5ldmVyXG4gKiAgIDpcbiAqICAgICB8IEludGVybmFsUGFyZW50PE5vZGUsIENoaWxkPlxuICogICAgIHwgSW50ZXJuYWxBbmNlc3RvcjxOb2RlLCBJbnRlcm5hbFBhcmVudDxOb2RlLCBDaGlsZD4sIE1heCwgSW5jcmVtZW50PERlcHRoPj5cbiAqICl9IEludGVybmFsQW5jZXN0b3JcbiAqICAgQ29sbGVjdCBub2RlcyBpbiBgVHJlZWAgdGhhdCBjYW4gYmUgYW5jZXN0b3JzIG9mIGBDaGlsZGAuXG4gKiBAdGVtcGxhdGUge1VuaXN0Tm9kZX0gTm9kZVxuICogICBBbGwgbm9kZSB0eXBlcyBpbiBhIHRyZWUuXG4gKiBAdGVtcGxhdGUge1VuaXN0Tm9kZX0gQ2hpbGRcbiAqICAgTm9kZSB0byBzZWFyY2ggZm9yLlxuICogQHRlbXBsYXRlIHtVaW50fSBbTWF4PTEwXVxuICogICBNYXg7IHNlYXJjaGVzIHVwIHRvIHRoaXMgZGVwdGguXG4gKiBAdGVtcGxhdGUge1VpbnR9IFtEZXB0aD0wXVxuICogICBDdXJyZW50IGRlcHRoLlxuICovXG5cbi8qKlxuICogQHR5cGVkZWYge0ludGVybmFsQW5jZXN0b3I8SW5jbHVzaXZlRGVzY2VuZGFudDxUcmVlPiwgQ2hpbGQ+fSBBbmNlc3RvclxuICogICBDb2xsZWN0IG5vZGVzIGluIGBUcmVlYCB0aGF0IGNhbiBiZSBhbmNlc3RvcnMgb2YgYENoaWxkYC5cbiAqIEB0ZW1wbGF0ZSB7VW5pc3ROb2RlfSBUcmVlXG4gKiAgIEFsbCBub2RlIHR5cGVzIGluIGEgdHJlZS5cbiAqIEB0ZW1wbGF0ZSB7VW5pc3ROb2RlfSBDaGlsZFxuICogICBOb2RlIHRvIHNlYXJjaCBmb3IuXG4gKi9cblxuLyoqXG4gKiBAdHlwZWRlZiB7KFxuICogICBUcmVlIGV4dGVuZHMgVW5pc3RQYXJlbnRcbiAqICAgICA/IERlcHRoIGV4dGVuZHMgTWF4XG4gKiAgICAgICA/IFRyZWVcbiAqICAgICAgIDogVHJlZSB8IEluY2x1c2l2ZURlc2NlbmRhbnQ8VHJlZVsnY2hpbGRyZW4nXVtudW1iZXJdLCBNYXgsIEluY3JlbWVudDxEZXB0aD4+XG4gKiAgICAgOiBUcmVlXG4gKiApfSBJbmNsdXNpdmVEZXNjZW5kYW50XG4gKiAgIENvbGxlY3QgYWxsIChpbmNsdXNpdmUpIGRlc2NlbmRhbnRzIG9mIGBUcmVlYC5cbiAqXG4gKiAgID4gXHVEODNEXHVEQzQ5ICoqTm90ZSoqOiBmb3IgcGVyZm9ybWFuY2UgcmVhc29ucywgdGhpcyBzZWVtcyB0byBiZSB0aGUgZmFzdGVzdCB3YXkgdG9cbiAqICAgPiByZWN1cnNlIHdpdGhvdXQgYWN0dWFsbHkgcnVubmluZyBpbnRvIGFuIGluZmluaXRlIGxvb3AsIHdoaWNoIHRoZVxuICogICA+IHByZXZpb3VzIHZlcnNpb24gZGlkLlxuICogICA+XG4gKiAgID4gUHJhY3RpY2FsbHksIGEgbWF4IG9mIGAyYCBpcyB0eXBpY2FsbHkgZW5vdWdoIGFzc3VtaW5nIGEgYFJvb3RgIGlzXG4gKiAgID4gcGFzc2VkLCBidXQgaXQgZG9lc25cdTIwMTl0IGltcHJvdmUgcGVyZm9ybWFuY2UuXG4gKiAgID4gSXQgZ2V0cyBoaWdoZXIgd2l0aCBgTGlzdCA+IExpc3RJdGVtID4gVGFibGUgPiBUYWJsZVJvdyA+IFRhYmxlQ2VsbGAuXG4gKiAgID4gVXNpbmcgdXAgdG8gYDEwYCBkb2Vzblx1MjAxOXQgaHVydCBvciBoZWxwIGVpdGhlci5cbiAqIEB0ZW1wbGF0ZSB7VW5pc3ROb2RlfSBUcmVlXG4gKiAgIFRyZWUgdHlwZS5cbiAqIEB0ZW1wbGF0ZSB7VWludH0gW01heD0xMF1cbiAqICAgTWF4OyBzZWFyY2hlcyB1cCB0byB0aGlzIGRlcHRoLlxuICogQHRlbXBsYXRlIHtVaW50fSBbRGVwdGg9MF1cbiAqICAgQ3VycmVudCBkZXB0aC5cbiAqL1xuXG4vKipcbiAqIEB0eXBlZGVmIHsnc2tpcCcgfCBib29sZWFufSBBY3Rpb25cbiAqICAgVW5pb24gb2YgdGhlIGFjdGlvbiB0eXBlcy5cbiAqXG4gKiBAdHlwZWRlZiB7bnVtYmVyfSBJbmRleFxuICogICBNb3ZlIHRvIHRoZSBzaWJsaW5nIGF0IGBpbmRleGAgbmV4dCAoYWZ0ZXIgbm9kZSBpdHNlbGYgaXMgY29tcGxldGVseVxuICogICB0cmF2ZXJzZWQpLlxuICpcbiAqICAgVXNlZnVsIGlmIG11dGF0aW5nIHRoZSB0cmVlLCBzdWNoIGFzIHJlbW92aW5nIHRoZSBub2RlIHRoZSB2aXNpdG9yIGlzXG4gKiAgIGN1cnJlbnRseSBvbiwgb3IgYW55IG9mIGl0cyBwcmV2aW91cyBzaWJsaW5ncy5cbiAqICAgUmVzdWx0cyBsZXNzIHRoYW4gMCBvciBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gYGNoaWxkcmVuLmxlbmd0aGAgc3RvcFxuICogICB0cmF2ZXJzaW5nIHRoZSBwYXJlbnQuXG4gKlxuICogQHR5cGVkZWYge1soQWN0aW9uIHwgbnVsbCB8IHVuZGVmaW5lZCB8IHZvaWQpPywgKEluZGV4IHwgbnVsbCB8IHVuZGVmaW5lZCk/XX0gQWN0aW9uVHVwbGVcbiAqICAgTGlzdCB3aXRoIG9uZSBvciB0d28gdmFsdWVzLCB0aGUgZmlyc3QgYW4gYWN0aW9uLCB0aGUgc2Vjb25kIGFuIGluZGV4LlxuICpcbiAqIEB0eXBlZGVmIHtBY3Rpb24gfCBBY3Rpb25UdXBsZSB8IEluZGV4IHwgbnVsbCB8IHVuZGVmaW5lZCB8IHZvaWR9IFZpc2l0b3JSZXN1bHRcbiAqICAgQW55IHZhbHVlIHRoYXQgY2FuIGJlIHJldHVybmVkIGZyb20gYSB2aXNpdG9yLlxuICovXG5cbi8qKlxuICogQGNhbGxiYWNrIFZpc2l0b3JcbiAqICAgSGFuZGxlIGEgbm9kZSAobWF0Y2hpbmcgYHRlc3RgLCBpZiBnaXZlbikuXG4gKlxuICogICBWaXNpdG9ycyBhcmUgZnJlZSB0byB0cmFuc2Zvcm0gYG5vZGVgLlxuICogICBUaGV5IGNhbiBhbHNvIHRyYW5zZm9ybSB0aGUgcGFyZW50IG9mIG5vZGUgKHRoZSBsYXN0IG9mIGBhbmNlc3RvcnNgKS5cbiAqXG4gKiAgIFJlcGxhY2luZyBgbm9kZWAgaXRzZWxmLCBpZiBgU0tJUGAgaXMgbm90IHJldHVybmVkLCBzdGlsbCBjYXVzZXMgaXRzXG4gKiAgIGRlc2NlbmRhbnRzIHRvIGJlIHdhbGtlZCAod2hpY2ggaXMgYSBidWcpLlxuICpcbiAqICAgV2hlbiBhZGRpbmcgb3IgcmVtb3ZpbmcgcHJldmlvdXMgc2libGluZ3Mgb2YgYG5vZGVgIChvciBuZXh0IHNpYmxpbmdzLCBpblxuICogICBjYXNlIG9mIHJldmVyc2UpLCB0aGUgYFZpc2l0b3JgIHNob3VsZCByZXR1cm4gYSBuZXcgYEluZGV4YCB0byBzcGVjaWZ5IHRoZVxuICogICBzaWJsaW5nIHRvIHRyYXZlcnNlIGFmdGVyIGBub2RlYCBpcyB0cmF2ZXJzZWQuXG4gKiAgIEFkZGluZyBvciByZW1vdmluZyBuZXh0IHNpYmxpbmdzIG9mIGBub2RlYCAob3IgcHJldmlvdXMgc2libGluZ3MsIGluIGNhc2VcbiAqICAgb2YgcmV2ZXJzZSkgaXMgaGFuZGxlZCBhcyBleHBlY3RlZCB3aXRob3V0IG5lZWRpbmcgdG8gcmV0dXJuIGEgbmV3IGBJbmRleGAuXG4gKlxuICogICBSZW1vdmluZyB0aGUgY2hpbGRyZW4gcHJvcGVydHkgb2YgYW4gYW5jZXN0b3Igc3RpbGwgcmVzdWx0cyBpbiB0aGVtIGJlaW5nXG4gKiAgIHRyYXZlcnNlZC5cbiAqIEBwYXJhbSB7VmlzaXRlZH0gbm9kZVxuICogICBGb3VuZCBub2RlLlxuICogQHBhcmFtIHtBcnJheTxWaXNpdGVkUGFyZW50cz59IGFuY2VzdG9yc1xuICogICBBbmNlc3RvcnMgb2YgYG5vZGVgLlxuICogQHJldHVybnMge1Zpc2l0b3JSZXN1bHR9XG4gKiAgIFdoYXQgdG8gZG8gbmV4dC5cbiAqXG4gKiAgIEFuIGBJbmRleGAgaXMgdHJlYXRlZCBhcyBhIHR1cGxlIG9mIGBbQ09OVElOVUUsIEluZGV4XWAuXG4gKiAgIEFuIGBBY3Rpb25gIGlzIHRyZWF0ZWQgYXMgYSB0dXBsZSBvZiBgW0FjdGlvbl1gLlxuICpcbiAqICAgUGFzc2luZyBhIHR1cGxlIGJhY2sgb25seSBtYWtlcyBzZW5zZSBpZiB0aGUgYEFjdGlvbmAgaXMgYFNLSVBgLlxuICogICBXaGVuIHRoZSBgQWN0aW9uYCBpcyBgRVhJVGAsIHRoYXQgYWN0aW9uIGNhbiBiZSByZXR1cm5lZC5cbiAqICAgV2hlbiB0aGUgYEFjdGlvbmAgaXMgYENPTlRJTlVFYCwgYEluZGV4YCBjYW4gYmUgcmV0dXJuZWQuXG4gKiBAdGVtcGxhdGUge1VuaXN0Tm9kZX0gW1Zpc2l0ZWQ9VW5pc3ROb2RlXVxuICogICBWaXNpdGVkIG5vZGUgdHlwZS5cbiAqIEB0ZW1wbGF0ZSB7VW5pc3RQYXJlbnR9IFtWaXNpdGVkUGFyZW50cz1VbmlzdFBhcmVudF1cbiAqICAgQW5jZXN0b3IgdHlwZS5cbiAqL1xuXG4vKipcbiAqIEB0eXBlZGVmIHtWaXNpdG9yPE1hdGNoZXM8SW5jbHVzaXZlRGVzY2VuZGFudDxUcmVlPiwgQ2hlY2s+LCBBbmNlc3RvcjxUcmVlLCBNYXRjaGVzPEluY2x1c2l2ZURlc2NlbmRhbnQ8VHJlZT4sIENoZWNrPj4+fSBCdWlsZFZpc2l0b3JcbiAqICAgQnVpbGQgYSB0eXBlZCBgVmlzaXRvcmAgZnVuY3Rpb24gZnJvbSBhIHRyZWUgYW5kIGEgdGVzdC5cbiAqXG4gKiAgIEl0IHdpbGwgaW5mZXIgd2hpY2ggdmFsdWVzIGFyZSBwYXNzZWQgYXMgYG5vZGVgIGFuZCB3aGljaCBhcyBgcGFyZW50c2AuXG4gKiBAdGVtcGxhdGUge1VuaXN0Tm9kZX0gW1RyZWU9VW5pc3ROb2RlXVxuICogICBUcmVlIHR5cGUuXG4gKiBAdGVtcGxhdGUge1Rlc3R9IFtDaGVjaz1UZXN0XVxuICogICBUZXN0IHR5cGUuXG4gKi9cblxuaW1wb3J0IHtjb252ZXJ0fSBmcm9tICd1bmlzdC11dGlsLWlzJ1xuaW1wb3J0IHtjb2xvcn0gZnJvbSAndW5pc3QtdXRpbC12aXNpdC1wYXJlbnRzL2RvLW5vdC11c2UtY29sb3InXG5cbi8qKiBAdHlwZSB7UmVhZG9ubHk8QWN0aW9uVHVwbGU+fSAqL1xuY29uc3QgZW1wdHkgPSBbXVxuXG4vKipcbiAqIENvbnRpbnVlIHRyYXZlcnNpbmcgYXMgbm9ybWFsLlxuICovXG5leHBvcnQgY29uc3QgQ09OVElOVUUgPSB0cnVlXG5cbi8qKlxuICogU3RvcCB0cmF2ZXJzaW5nIGltbWVkaWF0ZWx5LlxuICovXG5leHBvcnQgY29uc3QgRVhJVCA9IGZhbHNlXG5cbi8qKlxuICogRG8gbm90IHRyYXZlcnNlIHRoaXMgbm9kZVx1MjAxOXMgY2hpbGRyZW4uXG4gKi9cbmV4cG9ydCBjb25zdCBTS0lQID0gJ3NraXAnXG5cbi8qKlxuICogVmlzaXQgbm9kZXMsIHdpdGggYW5jZXN0cmFsIGluZm9ybWF0aW9uLlxuICpcbiAqIFRoaXMgYWxnb3JpdGhtIHBlcmZvcm1zICpkZXB0aC1maXJzdCogKnRyZWUgdHJhdmVyc2FsKiBpbiAqcHJlb3JkZXIqXG4gKiAoKipOTFIqKikgb3IgaWYgYHJldmVyc2VgIGlzIGdpdmVuLCBpbiAqcmV2ZXJzZSBwcmVvcmRlciogKCoqTlJMKiopLlxuICpcbiAqIFlvdSBjYW4gY2hvb3NlIGZvciB3aGljaCBub2RlcyBgdmlzaXRvcmAgaXMgY2FsbGVkIGJ5IHBhc3NpbmcgYSBgdGVzdGAuXG4gKiBGb3IgY29tcGxleCB0ZXN0cywgeW91IHNob3VsZCB0ZXN0IHlvdXJzZWxmIGluIGB2aXNpdG9yYCwgYXMgaXQgd2lsbCBiZVxuICogZmFzdGVyIGFuZCB3aWxsIGhhdmUgaW1wcm92ZWQgdHlwZSBpbmZvcm1hdGlvbi5cbiAqXG4gKiBXYWxraW5nIHRoZSB0cmVlIGlzIGFuIGludGVuc2l2ZSB0YXNrLlxuICogTWFrZSB1c2Ugb2YgdGhlIHJldHVybiB2YWx1ZXMgb2YgdGhlIHZpc2l0b3Igd2hlbiBwb3NzaWJsZS5cbiAqIEluc3RlYWQgb2Ygd2Fsa2luZyBhIHRyZWUgbXVsdGlwbGUgdGltZXMsIHdhbGsgaXQgb25jZSwgdXNlIGB1bmlzdC11dGlsLWlzYFxuICogdG8gY2hlY2sgaWYgYSBub2RlIG1hdGNoZXMsIGFuZCB0aGVuIHBlcmZvcm0gZGlmZmVyZW50IG9wZXJhdGlvbnMuXG4gKlxuICogWW91IGNhbiBjaGFuZ2UgdGhlIHRyZWUuXG4gKiBTZWUgYFZpc2l0b3JgIGZvciBtb3JlIGluZm8uXG4gKlxuICogQG92ZXJsb2FkXG4gKiBAcGFyYW0ge1RyZWV9IHRyZWVcbiAqIEBwYXJhbSB7Q2hlY2t9IGNoZWNrXG4gKiBAcGFyYW0ge0J1aWxkVmlzaXRvcjxUcmVlLCBDaGVjaz59IHZpc2l0b3JcbiAqIEBwYXJhbSB7Ym9vbGVhbiB8IG51bGwgfCB1bmRlZmluZWR9IFtyZXZlcnNlXVxuICogQHJldHVybnMge3VuZGVmaW5lZH1cbiAqXG4gKiBAb3ZlcmxvYWRcbiAqIEBwYXJhbSB7VHJlZX0gdHJlZVxuICogQHBhcmFtIHtCdWlsZFZpc2l0b3I8VHJlZT59IHZpc2l0b3JcbiAqIEBwYXJhbSB7Ym9vbGVhbiB8IG51bGwgfCB1bmRlZmluZWR9IFtyZXZlcnNlXVxuICogQHJldHVybnMge3VuZGVmaW5lZH1cbiAqXG4gKiBAcGFyYW0ge1VuaXN0Tm9kZX0gdHJlZVxuICogICBUcmVlIHRvIHRyYXZlcnNlLlxuICogQHBhcmFtIHtWaXNpdG9yIHwgVGVzdH0gdGVzdFxuICogICBgdW5pc3QtdXRpbC1pc2AtY29tcGF0aWJsZSB0ZXN0XG4gKiBAcGFyYW0ge1Zpc2l0b3IgfCBib29sZWFuIHwgbnVsbCB8IHVuZGVmaW5lZH0gW3Zpc2l0b3JdXG4gKiAgIEhhbmRsZSBlYWNoIG5vZGUuXG4gKiBAcGFyYW0ge2Jvb2xlYW4gfCBudWxsIHwgdW5kZWZpbmVkfSBbcmV2ZXJzZV1cbiAqICAgVHJhdmVyc2UgaW4gcmV2ZXJzZSBwcmVvcmRlciAoTlJMKSBpbnN0ZWFkIG9mIHRoZSBkZWZhdWx0IHByZW9yZGVyIChOTFIpLlxuICogQHJldHVybnMge3VuZGVmaW5lZH1cbiAqICAgTm90aGluZy5cbiAqXG4gKiBAdGVtcGxhdGUge1VuaXN0Tm9kZX0gVHJlZVxuICogICBOb2RlIHR5cGUuXG4gKiBAdGVtcGxhdGUge1Rlc3R9IENoZWNrXG4gKiAgIGB1bmlzdC11dGlsLWlzYC1jb21wYXRpYmxlIHRlc3QuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB2aXNpdFBhcmVudHModHJlZSwgdGVzdCwgdmlzaXRvciwgcmV2ZXJzZSkge1xuICAvKiogQHR5cGUge1Rlc3R9ICovXG4gIGxldCBjaGVja1xuXG4gIGlmICh0eXBlb2YgdGVzdCA9PT0gJ2Z1bmN0aW9uJyAmJiB0eXBlb2YgdmlzaXRvciAhPT0gJ2Z1bmN0aW9uJykge1xuICAgIHJldmVyc2UgPSB2aXNpdG9yXG4gICAgLy8gQHRzLWV4cGVjdC1lcnJvciBubyB2aXNpdG9yIGdpdmVuLCBzbyBgdmlzaXRvcmAgaXMgdGVzdC5cbiAgICB2aXNpdG9yID0gdGVzdFxuICB9IGVsc2Uge1xuICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgdmlzaXRvciBnaXZlbiwgc28gYHRlc3RgIGlzblx1MjAxOXQgYSB2aXNpdG9yLlxuICAgIGNoZWNrID0gdGVzdFxuICB9XG5cbiAgY29uc3QgaXMgPSBjb252ZXJ0KGNoZWNrKVxuICBjb25zdCBzdGVwID0gcmV2ZXJzZSA/IC0xIDogMVxuXG4gIGZhY3RvcnkodHJlZSwgdW5kZWZpbmVkLCBbXSkoKVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge1VuaXN0Tm9kZX0gbm9kZVxuICAgKiBAcGFyYW0ge251bWJlciB8IHVuZGVmaW5lZH0gaW5kZXhcbiAgICogQHBhcmFtIHtBcnJheTxVbmlzdFBhcmVudD59IHBhcmVudHNcbiAgICovXG4gIGZ1bmN0aW9uIGZhY3Rvcnkobm9kZSwgaW5kZXgsIHBhcmVudHMpIHtcbiAgICBjb25zdCB2YWx1ZSA9IC8qKiBAdHlwZSB7UmVjb3JkPHN0cmluZywgdW5rbm93bj59ICovIChcbiAgICAgIG5vZGUgJiYgdHlwZW9mIG5vZGUgPT09ICdvYmplY3QnID8gbm9kZSA6IHt9XG4gICAgKVxuXG4gICAgaWYgKHR5cGVvZiB2YWx1ZS50eXBlID09PSAnc3RyaW5nJykge1xuICAgICAgY29uc3QgbmFtZSA9XG4gICAgICAgIC8vIGBoYXN0YFxuICAgICAgICB0eXBlb2YgdmFsdWUudGFnTmFtZSA9PT0gJ3N0cmluZydcbiAgICAgICAgICA/IHZhbHVlLnRhZ05hbWVcbiAgICAgICAgICA6IC8vIGB4YXN0YFxuICAgICAgICAgIHR5cGVvZiB2YWx1ZS5uYW1lID09PSAnc3RyaW5nJ1xuICAgICAgICAgID8gdmFsdWUubmFtZVxuICAgICAgICAgIDogdW5kZWZpbmVkXG5cbiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh2aXNpdCwgJ25hbWUnLCB7XG4gICAgICAgIHZhbHVlOlxuICAgICAgICAgICdub2RlICgnICsgY29sb3Iobm9kZS50eXBlICsgKG5hbWUgPyAnPCcgKyBuYW1lICsgJz4nIDogJycpKSArICcpJ1xuICAgICAgfSlcbiAgICB9XG5cbiAgICByZXR1cm4gdmlzaXRcblxuICAgIGZ1bmN0aW9uIHZpc2l0KCkge1xuICAgICAgLyoqIEB0eXBlIHtSZWFkb25seTxBY3Rpb25UdXBsZT59ICovXG4gICAgICBsZXQgcmVzdWx0ID0gZW1wdHlcbiAgICAgIC8qKiBAdHlwZSB7UmVhZG9ubHk8QWN0aW9uVHVwbGU+fSAqL1xuICAgICAgbGV0IHN1YnJlc3VsdFxuICAgICAgLyoqIEB0eXBlIHtudW1iZXJ9ICovXG4gICAgICBsZXQgb2Zmc2V0XG4gICAgICAvKiogQHR5cGUge0FycmF5PFVuaXN0UGFyZW50Pn0gKi9cbiAgICAgIGxldCBncmFuZHBhcmVudHNcblxuICAgICAgaWYgKCF0ZXN0IHx8IGlzKG5vZGUsIGluZGV4LCBwYXJlbnRzW3BhcmVudHMubGVuZ3RoIC0gMV0gfHwgdW5kZWZpbmVkKSkge1xuICAgICAgICAvLyBAdHMtZXhwZWN0LWVycm9yOiBgdmlzaXRvcmAgaXMgbm93IGEgdmlzaXRvci5cbiAgICAgICAgcmVzdWx0ID0gdG9SZXN1bHQodmlzaXRvcihub2RlLCBwYXJlbnRzKSlcblxuICAgICAgICBpZiAocmVzdWx0WzBdID09PSBFWElUKSB7XG4gICAgICAgICAgcmV0dXJuIHJlc3VsdFxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmICgnY2hpbGRyZW4nIGluIG5vZGUgJiYgbm9kZS5jaGlsZHJlbikge1xuICAgICAgICBjb25zdCBub2RlQXNQYXJlbnQgPSAvKiogQHR5cGUge1VuaXN0UGFyZW50fSAqLyAobm9kZSlcblxuICAgICAgICBpZiAobm9kZUFzUGFyZW50LmNoaWxkcmVuICYmIHJlc3VsdFswXSAhPT0gU0tJUCkge1xuICAgICAgICAgIG9mZnNldCA9IChyZXZlcnNlID8gbm9kZUFzUGFyZW50LmNoaWxkcmVuLmxlbmd0aCA6IC0xKSArIHN0ZXBcbiAgICAgICAgICBncmFuZHBhcmVudHMgPSBwYXJlbnRzLmNvbmNhdChub2RlQXNQYXJlbnQpXG5cbiAgICAgICAgICB3aGlsZSAob2Zmc2V0ID4gLTEgJiYgb2Zmc2V0IDwgbm9kZUFzUGFyZW50LmNoaWxkcmVuLmxlbmd0aCkge1xuICAgICAgICAgICAgY29uc3QgY2hpbGQgPSBub2RlQXNQYXJlbnQuY2hpbGRyZW5bb2Zmc2V0XVxuXG4gICAgICAgICAgICBzdWJyZXN1bHQgPSBmYWN0b3J5KGNoaWxkLCBvZmZzZXQsIGdyYW5kcGFyZW50cykoKVxuXG4gICAgICAgICAgICBpZiAoc3VicmVzdWx0WzBdID09PSBFWElUKSB7XG4gICAgICAgICAgICAgIHJldHVybiBzdWJyZXN1bHRcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgb2Zmc2V0ID1cbiAgICAgICAgICAgICAgdHlwZW9mIHN1YnJlc3VsdFsxXSA9PT0gJ251bWJlcicgPyBzdWJyZXN1bHRbMV0gOiBvZmZzZXQgKyBzdGVwXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHJldHVybiByZXN1bHRcbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBUdXJuIGEgcmV0dXJuIHZhbHVlIGludG8gYSBjbGVhbiByZXN1bHQuXG4gKlxuICogQHBhcmFtIHtWaXNpdG9yUmVzdWx0fSB2YWx1ZVxuICogICBWYWxpZCByZXR1cm4gdmFsdWVzIGZyb20gdmlzaXRvcnMuXG4gKiBAcmV0dXJucyB7UmVhZG9ubHk8QWN0aW9uVHVwbGU+fVxuICogICBDbGVhbiByZXN1bHQuXG4gKi9cbmZ1bmN0aW9uIHRvUmVzdWx0KHZhbHVlKSB7XG4gIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgIHJldHVybiB2YWx1ZVxuICB9XG5cbiAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicpIHtcbiAgICByZXR1cm4gW0NPTlRJTlVFLCB2YWx1ZV1cbiAgfVxuXG4gIHJldHVybiB2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkID8gZW1wdHkgOiBbdmFsdWVdXG59XG4iLCAiZXhwb3J0IGZ1bmN0aW9uIGRlcHJlY2F0ZShmbikge1xuICByZXR1cm4gZm5cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGVxdWFsKCkge31cblxuZXhwb3J0IGZ1bmN0aW9uIG9rKCkge31cblxuZXhwb3J0IGZ1bmN0aW9uIHVucmVhY2hhYmxlKCkge31cbiIsICIvKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJy4vaW5mby5qcycpLkluZm99IEluZm9cbiAqIEB0eXBlZGVmIHtSZWNvcmQ8c3RyaW5nLCBJbmZvPn0gUHJvcGVydGllc1xuICogQHR5cGVkZWYge1JlY29yZDxzdHJpbmcsIHN0cmluZz59IE5vcm1hbFxuICovXG5cbmV4cG9ydCBjbGFzcyBTY2hlbWEge1xuICAvKipcbiAgICogQGNvbnN0cnVjdG9yXG4gICAqIEBwYXJhbSB7UHJvcGVydGllc30gcHJvcGVydHlcbiAgICogQHBhcmFtIHtOb3JtYWx9IG5vcm1hbFxuICAgKiBAcGFyYW0ge3N0cmluZ30gW3NwYWNlXVxuICAgKi9cbiAgY29uc3RydWN0b3IocHJvcGVydHksIG5vcm1hbCwgc3BhY2UpIHtcbiAgICB0aGlzLnByb3BlcnR5ID0gcHJvcGVydHlcbiAgICB0aGlzLm5vcm1hbCA9IG5vcm1hbFxuICAgIGlmIChzcGFjZSkge1xuICAgICAgdGhpcy5zcGFjZSA9IHNwYWNlXG4gICAgfVxuICB9XG59XG5cbi8qKiBAdHlwZSB7UHJvcGVydGllc30gKi9cblNjaGVtYS5wcm90b3R5cGUucHJvcGVydHkgPSB7fVxuLyoqIEB0eXBlIHtOb3JtYWx9ICovXG5TY2hlbWEucHJvdG90eXBlLm5vcm1hbCA9IHt9XG4vKiogQHR5cGUge3N0cmluZ3xudWxsfSAqL1xuU2NoZW1hLnByb3RvdHlwZS5zcGFjZSA9IG51bGxcbiIsICIvKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJy4vc2NoZW1hLmpzJykuUHJvcGVydGllc30gUHJvcGVydGllc1xuICogQHR5cGVkZWYge2ltcG9ydCgnLi9zY2hlbWEuanMnKS5Ob3JtYWx9IE5vcm1hbFxuICovXG5cbmltcG9ydCB7U2NoZW1hfSBmcm9tICcuL3NjaGVtYS5qcydcblxuLyoqXG4gKiBAcGFyYW0ge1NjaGVtYVtdfSBkZWZpbml0aW9uc1xuICogQHBhcmFtIHtzdHJpbmd9IFtzcGFjZV1cbiAqIEByZXR1cm5zIHtTY2hlbWF9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBtZXJnZShkZWZpbml0aW9ucywgc3BhY2UpIHtcbiAgLyoqIEB0eXBlIHtQcm9wZXJ0aWVzfSAqL1xuICBjb25zdCBwcm9wZXJ0eSA9IHt9XG4gIC8qKiBAdHlwZSB7Tm9ybWFsfSAqL1xuICBjb25zdCBub3JtYWwgPSB7fVxuICBsZXQgaW5kZXggPSAtMVxuXG4gIHdoaWxlICgrK2luZGV4IDwgZGVmaW5pdGlvbnMubGVuZ3RoKSB7XG4gICAgT2JqZWN0LmFzc2lnbihwcm9wZXJ0eSwgZGVmaW5pdGlvbnNbaW5kZXhdLnByb3BlcnR5KVxuICAgIE9iamVjdC5hc3NpZ24obm9ybWFsLCBkZWZpbml0aW9uc1tpbmRleF0ubm9ybWFsKVxuICB9XG5cbiAgcmV0dXJuIG5ldyBTY2hlbWEocHJvcGVydHksIG5vcm1hbCwgc3BhY2UpXG59XG4iLCAiLyoqXG4gKiBAcGFyYW0ge3N0cmluZ30gdmFsdWVcbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBub3JtYWxpemUodmFsdWUpIHtcbiAgcmV0dXJuIHZhbHVlLnRvTG93ZXJDYXNlKClcbn1cbiIsICJleHBvcnQgY2xhc3MgSW5mbyB7XG4gIC8qKlxuICAgKiBAY29uc3RydWN0b3JcbiAgICogQHBhcmFtIHtzdHJpbmd9IHByb3BlcnR5XG4gICAqIEBwYXJhbSB7c3RyaW5nfSBhdHRyaWJ1dGVcbiAgICovXG4gIGNvbnN0cnVjdG9yKHByb3BlcnR5LCBhdHRyaWJ1dGUpIHtcbiAgICAvKiogQHR5cGUge3N0cmluZ30gKi9cbiAgICB0aGlzLnByb3BlcnR5ID0gcHJvcGVydHlcbiAgICAvKiogQHR5cGUge3N0cmluZ30gKi9cbiAgICB0aGlzLmF0dHJpYnV0ZSA9IGF0dHJpYnV0ZVxuICB9XG59XG5cbi8qKiBAdHlwZSB7c3RyaW5nfG51bGx9ICovXG5JbmZvLnByb3RvdHlwZS5zcGFjZSA9IG51bGxcbkluZm8ucHJvdG90eXBlLmJvb2xlYW4gPSBmYWxzZVxuSW5mby5wcm90b3R5cGUuYm9vbGVhbmlzaCA9IGZhbHNlXG5JbmZvLnByb3RvdHlwZS5vdmVybG9hZGVkQm9vbGVhbiA9IGZhbHNlXG5JbmZvLnByb3RvdHlwZS5udW1iZXIgPSBmYWxzZVxuSW5mby5wcm90b3R5cGUuY29tbWFTZXBhcmF0ZWQgPSBmYWxzZVxuSW5mby5wcm90b3R5cGUuc3BhY2VTZXBhcmF0ZWQgPSBmYWxzZVxuSW5mby5wcm90b3R5cGUuY29tbWFPclNwYWNlU2VwYXJhdGVkID0gZmFsc2VcbkluZm8ucHJvdG90eXBlLm11c3RVc2VQcm9wZXJ0eSA9IGZhbHNlXG5JbmZvLnByb3RvdHlwZS5kZWZpbmVkID0gZmFsc2VcbiIsICJsZXQgcG93ZXJzID0gMFxuXG5leHBvcnQgY29uc3QgYm9vbGVhbiA9IGluY3JlbWVudCgpXG5leHBvcnQgY29uc3QgYm9vbGVhbmlzaCA9IGluY3JlbWVudCgpXG5leHBvcnQgY29uc3Qgb3ZlcmxvYWRlZEJvb2xlYW4gPSBpbmNyZW1lbnQoKVxuZXhwb3J0IGNvbnN0IG51bWJlciA9IGluY3JlbWVudCgpXG5leHBvcnQgY29uc3Qgc3BhY2VTZXBhcmF0ZWQgPSBpbmNyZW1lbnQoKVxuZXhwb3J0IGNvbnN0IGNvbW1hU2VwYXJhdGVkID0gaW5jcmVtZW50KClcbmV4cG9ydCBjb25zdCBjb21tYU9yU3BhY2VTZXBhcmF0ZWQgPSBpbmNyZW1lbnQoKVxuXG5mdW5jdGlvbiBpbmNyZW1lbnQoKSB7XG4gIHJldHVybiAyICoqICsrcG93ZXJzXG59XG4iLCAiaW1wb3J0IHtJbmZvfSBmcm9tICcuL2luZm8uanMnXG5pbXBvcnQgKiBhcyB0eXBlcyBmcm9tICcuL3R5cGVzLmpzJ1xuXG4vKiogQHR5cGUge0FycmF5PGtleW9mIHR5cGVzPn0gKi9cbi8vIEB0cy1leHBlY3QtZXJyb3I6IGh1c2guXG5jb25zdCBjaGVja3MgPSBPYmplY3Qua2V5cyh0eXBlcylcblxuZXhwb3J0IGNsYXNzIERlZmluZWRJbmZvIGV4dGVuZHMgSW5mbyB7XG4gIC8qKlxuICAgKiBAY29uc3RydWN0b3JcbiAgICogQHBhcmFtIHtzdHJpbmd9IHByb3BlcnR5XG4gICAqIEBwYXJhbSB7c3RyaW5nfSBhdHRyaWJ1dGVcbiAgICogQHBhcmFtIHtudW1iZXJ8bnVsbH0gW21hc2tdXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbc3BhY2VdXG4gICAqL1xuICBjb25zdHJ1Y3Rvcihwcm9wZXJ0eSwgYXR0cmlidXRlLCBtYXNrLCBzcGFjZSkge1xuICAgIGxldCBpbmRleCA9IC0xXG5cbiAgICBzdXBlcihwcm9wZXJ0eSwgYXR0cmlidXRlKVxuXG4gICAgbWFyayh0aGlzLCAnc3BhY2UnLCBzcGFjZSlcblxuICAgIGlmICh0eXBlb2YgbWFzayA9PT0gJ251bWJlcicpIHtcbiAgICAgIHdoaWxlICgrK2luZGV4IDwgY2hlY2tzLmxlbmd0aCkge1xuICAgICAgICBjb25zdCBjaGVjayA9IGNoZWNrc1tpbmRleF1cbiAgICAgICAgbWFyayh0aGlzLCBjaGVja3NbaW5kZXhdLCAobWFzayAmIHR5cGVzW2NoZWNrXSkgPT09IHR5cGVzW2NoZWNrXSlcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuRGVmaW5lZEluZm8ucHJvdG90eXBlLmRlZmluZWQgPSB0cnVlXG5cbi8qKlxuICogQHBhcmFtIHtEZWZpbmVkSW5mb30gdmFsdWVzXG4gKiBAcGFyYW0ge3N0cmluZ30ga2V5XG4gKiBAcGFyYW0ge3Vua25vd259IHZhbHVlXG4gKi9cbmZ1bmN0aW9uIG1hcmsodmFsdWVzLCBrZXksIHZhbHVlKSB7XG4gIGlmICh2YWx1ZSkge1xuICAgIC8vIEB0cy1leHBlY3QtZXJyb3I6IGFzc3VtZSBgdmFsdWVgIG1hdGNoZXMgdGhlIGV4cGVjdGVkIHZhbHVlIG9mIGBrZXlgLlxuICAgIHZhbHVlc1trZXldID0gdmFsdWVcbiAgfVxufVxuIiwgIi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgnLi9zY2hlbWEuanMnKS5Qcm9wZXJ0aWVzfSBQcm9wZXJ0aWVzXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCcuL3NjaGVtYS5qcycpLk5vcm1hbH0gTm9ybWFsXG4gKlxuICogQHR5cGVkZWYge1JlY29yZDxzdHJpbmcsIHN0cmluZz59IEF0dHJpYnV0ZXNcbiAqXG4gKiBAdHlwZWRlZiB7T2JqZWN0fSBEZWZpbml0aW9uXG4gKiBAcHJvcGVydHkge1JlY29yZDxzdHJpbmcsIG51bWJlcnxudWxsPn0gcHJvcGVydGllc1xuICogQHByb3BlcnR5IHsoYXR0cmlidXRlczogQXR0cmlidXRlcywgcHJvcGVydHk6IHN0cmluZykgPT4gc3RyaW5nfSB0cmFuc2Zvcm1cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBbc3BhY2VdXG4gKiBAcHJvcGVydHkge0F0dHJpYnV0ZXN9IFthdHRyaWJ1dGVzXVxuICogQHByb3BlcnR5IHtBcnJheTxzdHJpbmc+fSBbbXVzdFVzZVByb3BlcnR5XVxuICovXG5cbmltcG9ydCB7bm9ybWFsaXplfSBmcm9tICcuLi9ub3JtYWxpemUuanMnXG5pbXBvcnQge1NjaGVtYX0gZnJvbSAnLi9zY2hlbWEuanMnXG5pbXBvcnQge0RlZmluZWRJbmZvfSBmcm9tICcuL2RlZmluZWQtaW5mby5qcydcblxuY29uc3Qgb3duID0ge30uaGFzT3duUHJvcGVydHlcblxuLyoqXG4gKiBAcGFyYW0ge0RlZmluaXRpb259IGRlZmluaXRpb25cbiAqIEByZXR1cm5zIHtTY2hlbWF9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGUoZGVmaW5pdGlvbikge1xuICAvKiogQHR5cGUge1Byb3BlcnRpZXN9ICovXG4gIGNvbnN0IHByb3BlcnR5ID0ge31cbiAgLyoqIEB0eXBlIHtOb3JtYWx9ICovXG4gIGNvbnN0IG5vcm1hbCA9IHt9XG4gIC8qKiBAdHlwZSB7c3RyaW5nfSAqL1xuICBsZXQgcHJvcFxuXG4gIGZvciAocHJvcCBpbiBkZWZpbml0aW9uLnByb3BlcnRpZXMpIHtcbiAgICBpZiAob3duLmNhbGwoZGVmaW5pdGlvbi5wcm9wZXJ0aWVzLCBwcm9wKSkge1xuICAgICAgY29uc3QgdmFsdWUgPSBkZWZpbml0aW9uLnByb3BlcnRpZXNbcHJvcF1cbiAgICAgIGNvbnN0IGluZm8gPSBuZXcgRGVmaW5lZEluZm8oXG4gICAgICAgIHByb3AsXG4gICAgICAgIGRlZmluaXRpb24udHJhbnNmb3JtKGRlZmluaXRpb24uYXR0cmlidXRlcyB8fCB7fSwgcHJvcCksXG4gICAgICAgIHZhbHVlLFxuICAgICAgICBkZWZpbml0aW9uLnNwYWNlXG4gICAgICApXG5cbiAgICAgIGlmIChcbiAgICAgICAgZGVmaW5pdGlvbi5tdXN0VXNlUHJvcGVydHkgJiZcbiAgICAgICAgZGVmaW5pdGlvbi5tdXN0VXNlUHJvcGVydHkuaW5jbHVkZXMocHJvcClcbiAgICAgICkge1xuICAgICAgICBpbmZvLm11c3RVc2VQcm9wZXJ0eSA9IHRydWVcbiAgICAgIH1cblxuICAgICAgcHJvcGVydHlbcHJvcF0gPSBpbmZvXG5cbiAgICAgIG5vcm1hbFtub3JtYWxpemUocHJvcCldID0gcHJvcFxuICAgICAgbm9ybWFsW25vcm1hbGl6ZShpbmZvLmF0dHJpYnV0ZSldID0gcHJvcFxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBuZXcgU2NoZW1hKHByb3BlcnR5LCBub3JtYWwsIGRlZmluaXRpb24uc3BhY2UpXG59XG4iLCAiaW1wb3J0IHtjcmVhdGV9IGZyb20gJy4vdXRpbC9jcmVhdGUuanMnXG5cbmV4cG9ydCBjb25zdCB4bGluayA9IGNyZWF0ZSh7XG4gIHNwYWNlOiAneGxpbmsnLFxuICB0cmFuc2Zvcm0oXywgcHJvcCkge1xuICAgIHJldHVybiAneGxpbms6JyArIHByb3Auc2xpY2UoNSkudG9Mb3dlckNhc2UoKVxuICB9LFxuICBwcm9wZXJ0aWVzOiB7XG4gICAgeExpbmtBY3R1YXRlOiBudWxsLFxuICAgIHhMaW5rQXJjUm9sZTogbnVsbCxcbiAgICB4TGlua0hyZWY6IG51bGwsXG4gICAgeExpbmtSb2xlOiBudWxsLFxuICAgIHhMaW5rU2hvdzogbnVsbCxcbiAgICB4TGlua1RpdGxlOiBudWxsLFxuICAgIHhMaW5rVHlwZTogbnVsbFxuICB9XG59KVxuIiwgImltcG9ydCB7Y3JlYXRlfSBmcm9tICcuL3V0aWwvY3JlYXRlLmpzJ1xuXG5leHBvcnQgY29uc3QgeG1sID0gY3JlYXRlKHtcbiAgc3BhY2U6ICd4bWwnLFxuICB0cmFuc2Zvcm0oXywgcHJvcCkge1xuICAgIHJldHVybiAneG1sOicgKyBwcm9wLnNsaWNlKDMpLnRvTG93ZXJDYXNlKClcbiAgfSxcbiAgcHJvcGVydGllczoge3htbExhbmc6IG51bGwsIHhtbEJhc2U6IG51bGwsIHhtbFNwYWNlOiBudWxsfVxufSlcbiIsICIvKipcbiAqIEBwYXJhbSB7UmVjb3JkPHN0cmluZywgc3RyaW5nPn0gYXR0cmlidXRlc1xuICogQHBhcmFtIHtzdHJpbmd9IGF0dHJpYnV0ZVxuICogQHJldHVybnMge3N0cmluZ31cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNhc2VTZW5zaXRpdmVUcmFuc2Zvcm0oYXR0cmlidXRlcywgYXR0cmlidXRlKSB7XG4gIHJldHVybiBhdHRyaWJ1dGUgaW4gYXR0cmlidXRlcyA/IGF0dHJpYnV0ZXNbYXR0cmlidXRlXSA6IGF0dHJpYnV0ZVxufVxuIiwgImltcG9ydCB7Y2FzZVNlbnNpdGl2ZVRyYW5zZm9ybX0gZnJvbSAnLi9jYXNlLXNlbnNpdGl2ZS10cmFuc2Zvcm0uanMnXG5cbi8qKlxuICogQHBhcmFtIHtSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+fSBhdHRyaWJ1dGVzXG4gKiBAcGFyYW0ge3N0cmluZ30gcHJvcGVydHlcbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjYXNlSW5zZW5zaXRpdmVUcmFuc2Zvcm0oYXR0cmlidXRlcywgcHJvcGVydHkpIHtcbiAgcmV0dXJuIGNhc2VTZW5zaXRpdmVUcmFuc2Zvcm0oYXR0cmlidXRlcywgcHJvcGVydHkudG9Mb3dlckNhc2UoKSlcbn1cbiIsICJpbXBvcnQge2NyZWF0ZX0gZnJvbSAnLi91dGlsL2NyZWF0ZS5qcydcbmltcG9ydCB7Y2FzZUluc2Vuc2l0aXZlVHJhbnNmb3JtfSBmcm9tICcuL3V0aWwvY2FzZS1pbnNlbnNpdGl2ZS10cmFuc2Zvcm0uanMnXG5cbmV4cG9ydCBjb25zdCB4bWxucyA9IGNyZWF0ZSh7XG4gIHNwYWNlOiAneG1sbnMnLFxuICBhdHRyaWJ1dGVzOiB7eG1sbnN4bGluazogJ3htbG5zOnhsaW5rJ30sXG4gIHRyYW5zZm9ybTogY2FzZUluc2Vuc2l0aXZlVHJhbnNmb3JtLFxuICBwcm9wZXJ0aWVzOiB7eG1sbnM6IG51bGwsIHhtbG5zWExpbms6IG51bGx9XG59KVxuIiwgImltcG9ydCB7Ym9vbGVhbmlzaCwgbnVtYmVyLCBzcGFjZVNlcGFyYXRlZH0gZnJvbSAnLi91dGlsL3R5cGVzLmpzJ1xuaW1wb3J0IHtjcmVhdGV9IGZyb20gJy4vdXRpbC9jcmVhdGUuanMnXG5cbmV4cG9ydCBjb25zdCBhcmlhID0gY3JlYXRlKHtcbiAgdHJhbnNmb3JtKF8sIHByb3ApIHtcbiAgICByZXR1cm4gcHJvcCA9PT0gJ3JvbGUnID8gcHJvcCA6ICdhcmlhLScgKyBwcm9wLnNsaWNlKDQpLnRvTG93ZXJDYXNlKClcbiAgfSxcbiAgcHJvcGVydGllczoge1xuICAgIGFyaWFBY3RpdmVEZXNjZW5kYW50OiBudWxsLFxuICAgIGFyaWFBdG9taWM6IGJvb2xlYW5pc2gsXG4gICAgYXJpYUF1dG9Db21wbGV0ZTogbnVsbCxcbiAgICBhcmlhQnVzeTogYm9vbGVhbmlzaCxcbiAgICBhcmlhQ2hlY2tlZDogYm9vbGVhbmlzaCxcbiAgICBhcmlhQ29sQ291bnQ6IG51bWJlcixcbiAgICBhcmlhQ29sSW5kZXg6IG51bWJlcixcbiAgICBhcmlhQ29sU3BhbjogbnVtYmVyLFxuICAgIGFyaWFDb250cm9sczogc3BhY2VTZXBhcmF0ZWQsXG4gICAgYXJpYUN1cnJlbnQ6IG51bGwsXG4gICAgYXJpYURlc2NyaWJlZEJ5OiBzcGFjZVNlcGFyYXRlZCxcbiAgICBhcmlhRGV0YWlsczogbnVsbCxcbiAgICBhcmlhRGlzYWJsZWQ6IGJvb2xlYW5pc2gsXG4gICAgYXJpYURyb3BFZmZlY3Q6IHNwYWNlU2VwYXJhdGVkLFxuICAgIGFyaWFFcnJvck1lc3NhZ2U6IG51bGwsXG4gICAgYXJpYUV4cGFuZGVkOiBib29sZWFuaXNoLFxuICAgIGFyaWFGbG93VG86IHNwYWNlU2VwYXJhdGVkLFxuICAgIGFyaWFHcmFiYmVkOiBib29sZWFuaXNoLFxuICAgIGFyaWFIYXNQb3B1cDogbnVsbCxcbiAgICBhcmlhSGlkZGVuOiBib29sZWFuaXNoLFxuICAgIGFyaWFJbnZhbGlkOiBudWxsLFxuICAgIGFyaWFLZXlTaG9ydGN1dHM6IG51bGwsXG4gICAgYXJpYUxhYmVsOiBudWxsLFxuICAgIGFyaWFMYWJlbGxlZEJ5OiBzcGFjZVNlcGFyYXRlZCxcbiAgICBhcmlhTGV2ZWw6IG51bWJlcixcbiAgICBhcmlhTGl2ZTogbnVsbCxcbiAgICBhcmlhTW9kYWw6IGJvb2xlYW5pc2gsXG4gICAgYXJpYU11bHRpTGluZTogYm9vbGVhbmlzaCxcbiAgICBhcmlhTXVsdGlTZWxlY3RhYmxlOiBib29sZWFuaXNoLFxuICAgIGFyaWFPcmllbnRhdGlvbjogbnVsbCxcbiAgICBhcmlhT3duczogc3BhY2VTZXBhcmF0ZWQsXG4gICAgYXJpYVBsYWNlaG9sZGVyOiBudWxsLFxuICAgIGFyaWFQb3NJblNldDogbnVtYmVyLFxuICAgIGFyaWFQcmVzc2VkOiBib29sZWFuaXNoLFxuICAgIGFyaWFSZWFkT25seTogYm9vbGVhbmlzaCxcbiAgICBhcmlhUmVsZXZhbnQ6IG51bGwsXG4gICAgYXJpYVJlcXVpcmVkOiBib29sZWFuaXNoLFxuICAgIGFyaWFSb2xlRGVzY3JpcHRpb246IHNwYWNlU2VwYXJhdGVkLFxuICAgIGFyaWFSb3dDb3VudDogbnVtYmVyLFxuICAgIGFyaWFSb3dJbmRleDogbnVtYmVyLFxuICAgIGFyaWFSb3dTcGFuOiBudW1iZXIsXG4gICAgYXJpYVNlbGVjdGVkOiBib29sZWFuaXNoLFxuICAgIGFyaWFTZXRTaXplOiBudW1iZXIsXG4gICAgYXJpYVNvcnQ6IG51bGwsXG4gICAgYXJpYVZhbHVlTWF4OiBudW1iZXIsXG4gICAgYXJpYVZhbHVlTWluOiBudW1iZXIsXG4gICAgYXJpYVZhbHVlTm93OiBudW1iZXIsXG4gICAgYXJpYVZhbHVlVGV4dDogbnVsbCxcbiAgICByb2xlOiBudWxsXG4gIH1cbn0pXG4iLCAiaW1wb3J0IHtcbiAgYm9vbGVhbixcbiAgb3ZlcmxvYWRlZEJvb2xlYW4sXG4gIGJvb2xlYW5pc2gsXG4gIG51bWJlcixcbiAgc3BhY2VTZXBhcmF0ZWQsXG4gIGNvbW1hU2VwYXJhdGVkXG59IGZyb20gJy4vdXRpbC90eXBlcy5qcydcbmltcG9ydCB7Y3JlYXRlfSBmcm9tICcuL3V0aWwvY3JlYXRlLmpzJ1xuaW1wb3J0IHtjYXNlSW5zZW5zaXRpdmVUcmFuc2Zvcm19IGZyb20gJy4vdXRpbC9jYXNlLWluc2Vuc2l0aXZlLXRyYW5zZm9ybS5qcydcblxuZXhwb3J0IGNvbnN0IGh0bWwgPSBjcmVhdGUoe1xuICBzcGFjZTogJ2h0bWwnLFxuICBhdHRyaWJ1dGVzOiB7XG4gICAgYWNjZXB0Y2hhcnNldDogJ2FjY2VwdC1jaGFyc2V0JyxcbiAgICBjbGFzc25hbWU6ICdjbGFzcycsXG4gICAgaHRtbGZvcjogJ2ZvcicsXG4gICAgaHR0cGVxdWl2OiAnaHR0cC1lcXVpdidcbiAgfSxcbiAgdHJhbnNmb3JtOiBjYXNlSW5zZW5zaXRpdmVUcmFuc2Zvcm0sXG4gIG11c3RVc2VQcm9wZXJ0eTogWydjaGVja2VkJywgJ211bHRpcGxlJywgJ211dGVkJywgJ3NlbGVjdGVkJ10sXG4gIHByb3BlcnRpZXM6IHtcbiAgICAvLyBTdGFuZGFyZCBQcm9wZXJ0aWVzLlxuICAgIGFiYnI6IG51bGwsXG4gICAgYWNjZXB0OiBjb21tYVNlcGFyYXRlZCxcbiAgICBhY2NlcHRDaGFyc2V0OiBzcGFjZVNlcGFyYXRlZCxcbiAgICBhY2Nlc3NLZXk6IHNwYWNlU2VwYXJhdGVkLFxuICAgIGFjdGlvbjogbnVsbCxcbiAgICBhbGxvdzogbnVsbCxcbiAgICBhbGxvd0Z1bGxTY3JlZW46IGJvb2xlYW4sXG4gICAgYWxsb3dQYXltZW50UmVxdWVzdDogYm9vbGVhbixcbiAgICBhbGxvd1VzZXJNZWRpYTogYm9vbGVhbixcbiAgICBhbHQ6IG51bGwsXG4gICAgYXM6IG51bGwsXG4gICAgYXN5bmM6IGJvb2xlYW4sXG4gICAgYXV0b0NhcGl0YWxpemU6IG51bGwsXG4gICAgYXV0b0NvbXBsZXRlOiBzcGFjZVNlcGFyYXRlZCxcbiAgICBhdXRvRm9jdXM6IGJvb2xlYW4sXG4gICAgYXV0b1BsYXk6IGJvb2xlYW4sXG4gICAgY2FwdHVyZTogYm9vbGVhbixcbiAgICBjaGFyU2V0OiBudWxsLFxuICAgIGNoZWNrZWQ6IGJvb2xlYW4sXG4gICAgY2l0ZTogbnVsbCxcbiAgICBjbGFzc05hbWU6IHNwYWNlU2VwYXJhdGVkLFxuICAgIGNvbHM6IG51bWJlcixcbiAgICBjb2xTcGFuOiBudWxsLFxuICAgIGNvbnRlbnQ6IG51bGwsXG4gICAgY29udGVudEVkaXRhYmxlOiBib29sZWFuaXNoLFxuICAgIGNvbnRyb2xzOiBib29sZWFuLFxuICAgIGNvbnRyb2xzTGlzdDogc3BhY2VTZXBhcmF0ZWQsXG4gICAgY29vcmRzOiBudW1iZXIgfCBjb21tYVNlcGFyYXRlZCxcbiAgICBjcm9zc09yaWdpbjogbnVsbCxcbiAgICBkYXRhOiBudWxsLFxuICAgIGRhdGVUaW1lOiBudWxsLFxuICAgIGRlY29kaW5nOiBudWxsLFxuICAgIGRlZmF1bHQ6IGJvb2xlYW4sXG4gICAgZGVmZXI6IGJvb2xlYW4sXG4gICAgZGlyOiBudWxsLFxuICAgIGRpck5hbWU6IG51bGwsXG4gICAgZGlzYWJsZWQ6IGJvb2xlYW4sXG4gICAgZG93bmxvYWQ6IG92ZXJsb2FkZWRCb29sZWFuLFxuICAgIGRyYWdnYWJsZTogYm9vbGVhbmlzaCxcbiAgICBlbmNUeXBlOiBudWxsLFxuICAgIGVudGVyS2V5SGludDogbnVsbCxcbiAgICBmb3JtOiBudWxsLFxuICAgIGZvcm1BY3Rpb246IG51bGwsXG4gICAgZm9ybUVuY1R5cGU6IG51bGwsXG4gICAgZm9ybU1ldGhvZDogbnVsbCxcbiAgICBmb3JtTm9WYWxpZGF0ZTogYm9vbGVhbixcbiAgICBmb3JtVGFyZ2V0OiBudWxsLFxuICAgIGhlYWRlcnM6IHNwYWNlU2VwYXJhdGVkLFxuICAgIGhlaWdodDogbnVtYmVyLFxuICAgIGhpZGRlbjogYm9vbGVhbixcbiAgICBoaWdoOiBudW1iZXIsXG4gICAgaHJlZjogbnVsbCxcbiAgICBocmVmTGFuZzogbnVsbCxcbiAgICBodG1sRm9yOiBzcGFjZVNlcGFyYXRlZCxcbiAgICBodHRwRXF1aXY6IHNwYWNlU2VwYXJhdGVkLFxuICAgIGlkOiBudWxsLFxuICAgIGltYWdlU2l6ZXM6IG51bGwsXG4gICAgaW1hZ2VTcmNTZXQ6IG51bGwsXG4gICAgaW5wdXRNb2RlOiBudWxsLFxuICAgIGludGVncml0eTogbnVsbCxcbiAgICBpczogbnVsbCxcbiAgICBpc01hcDogYm9vbGVhbixcbiAgICBpdGVtSWQ6IG51bGwsXG4gICAgaXRlbVByb3A6IHNwYWNlU2VwYXJhdGVkLFxuICAgIGl0ZW1SZWY6IHNwYWNlU2VwYXJhdGVkLFxuICAgIGl0ZW1TY29wZTogYm9vbGVhbixcbiAgICBpdGVtVHlwZTogc3BhY2VTZXBhcmF0ZWQsXG4gICAga2luZDogbnVsbCxcbiAgICBsYWJlbDogbnVsbCxcbiAgICBsYW5nOiBudWxsLFxuICAgIGxhbmd1YWdlOiBudWxsLFxuICAgIGxpc3Q6IG51bGwsXG4gICAgbG9hZGluZzogbnVsbCxcbiAgICBsb29wOiBib29sZWFuLFxuICAgIGxvdzogbnVtYmVyLFxuICAgIG1hbmlmZXN0OiBudWxsLFxuICAgIG1heDogbnVsbCxcbiAgICBtYXhMZW5ndGg6IG51bWJlcixcbiAgICBtZWRpYTogbnVsbCxcbiAgICBtZXRob2Q6IG51bGwsXG4gICAgbWluOiBudWxsLFxuICAgIG1pbkxlbmd0aDogbnVtYmVyLFxuICAgIG11bHRpcGxlOiBib29sZWFuLFxuICAgIG11dGVkOiBib29sZWFuLFxuICAgIG5hbWU6IG51bGwsXG4gICAgbm9uY2U6IG51bGwsXG4gICAgbm9Nb2R1bGU6IGJvb2xlYW4sXG4gICAgbm9WYWxpZGF0ZTogYm9vbGVhbixcbiAgICBvbkFib3J0OiBudWxsLFxuICAgIG9uQWZ0ZXJQcmludDogbnVsbCxcbiAgICBvbkF1eENsaWNrOiBudWxsLFxuICAgIG9uQmVmb3JlTWF0Y2g6IG51bGwsXG4gICAgb25CZWZvcmVQcmludDogbnVsbCxcbiAgICBvbkJlZm9yZVVubG9hZDogbnVsbCxcbiAgICBvbkJsdXI6IG51bGwsXG4gICAgb25DYW5jZWw6IG51bGwsXG4gICAgb25DYW5QbGF5OiBudWxsLFxuICAgIG9uQ2FuUGxheVRocm91Z2g6IG51bGwsXG4gICAgb25DaGFuZ2U6IG51bGwsXG4gICAgb25DbGljazogbnVsbCxcbiAgICBvbkNsb3NlOiBudWxsLFxuICAgIG9uQ29udGV4dExvc3Q6IG51bGwsXG4gICAgb25Db250ZXh0TWVudTogbnVsbCxcbiAgICBvbkNvbnRleHRSZXN0b3JlZDogbnVsbCxcbiAgICBvbkNvcHk6IG51bGwsXG4gICAgb25DdWVDaGFuZ2U6IG51bGwsXG4gICAgb25DdXQ6IG51bGwsXG4gICAgb25EYmxDbGljazogbnVsbCxcbiAgICBvbkRyYWc6IG51bGwsXG4gICAgb25EcmFnRW5kOiBudWxsLFxuICAgIG9uRHJhZ0VudGVyOiBudWxsLFxuICAgIG9uRHJhZ0V4aXQ6IG51bGwsXG4gICAgb25EcmFnTGVhdmU6IG51bGwsXG4gICAgb25EcmFnT3ZlcjogbnVsbCxcbiAgICBvbkRyYWdTdGFydDogbnVsbCxcbiAgICBvbkRyb3A6IG51bGwsXG4gICAgb25EdXJhdGlvbkNoYW5nZTogbnVsbCxcbiAgICBvbkVtcHRpZWQ6IG51bGwsXG4gICAgb25FbmRlZDogbnVsbCxcbiAgICBvbkVycm9yOiBudWxsLFxuICAgIG9uRm9jdXM6IG51bGwsXG4gICAgb25Gb3JtRGF0YTogbnVsbCxcbiAgICBvbkhhc2hDaGFuZ2U6IG51bGwsXG4gICAgb25JbnB1dDogbnVsbCxcbiAgICBvbkludmFsaWQ6IG51bGwsXG4gICAgb25LZXlEb3duOiBudWxsLFxuICAgIG9uS2V5UHJlc3M6IG51bGwsXG4gICAgb25LZXlVcDogbnVsbCxcbiAgICBvbkxhbmd1YWdlQ2hhbmdlOiBudWxsLFxuICAgIG9uTG9hZDogbnVsbCxcbiAgICBvbkxvYWRlZERhdGE6IG51bGwsXG4gICAgb25Mb2FkZWRNZXRhZGF0YTogbnVsbCxcbiAgICBvbkxvYWRFbmQ6IG51bGwsXG4gICAgb25Mb2FkU3RhcnQ6IG51bGwsXG4gICAgb25NZXNzYWdlOiBudWxsLFxuICAgIG9uTWVzc2FnZUVycm9yOiBudWxsLFxuICAgIG9uTW91c2VEb3duOiBudWxsLFxuICAgIG9uTW91c2VFbnRlcjogbnVsbCxcbiAgICBvbk1vdXNlTGVhdmU6IG51bGwsXG4gICAgb25Nb3VzZU1vdmU6IG51bGwsXG4gICAgb25Nb3VzZU91dDogbnVsbCxcbiAgICBvbk1vdXNlT3ZlcjogbnVsbCxcbiAgICBvbk1vdXNlVXA6IG51bGwsXG4gICAgb25PZmZsaW5lOiBudWxsLFxuICAgIG9uT25saW5lOiBudWxsLFxuICAgIG9uUGFnZUhpZGU6IG51bGwsXG4gICAgb25QYWdlU2hvdzogbnVsbCxcbiAgICBvblBhc3RlOiBudWxsLFxuICAgIG9uUGF1c2U6IG51bGwsXG4gICAgb25QbGF5OiBudWxsLFxuICAgIG9uUGxheWluZzogbnVsbCxcbiAgICBvblBvcFN0YXRlOiBudWxsLFxuICAgIG9uUHJvZ3Jlc3M6IG51bGwsXG4gICAgb25SYXRlQ2hhbmdlOiBudWxsLFxuICAgIG9uUmVqZWN0aW9uSGFuZGxlZDogbnVsbCxcbiAgICBvblJlc2V0OiBudWxsLFxuICAgIG9uUmVzaXplOiBudWxsLFxuICAgIG9uU2Nyb2xsOiBudWxsLFxuICAgIG9uU2Nyb2xsRW5kOiBudWxsLFxuICAgIG9uU2VjdXJpdHlQb2xpY3lWaW9sYXRpb246IG51bGwsXG4gICAgb25TZWVrZWQ6IG51bGwsXG4gICAgb25TZWVraW5nOiBudWxsLFxuICAgIG9uU2VsZWN0OiBudWxsLFxuICAgIG9uU2xvdENoYW5nZTogbnVsbCxcbiAgICBvblN0YWxsZWQ6IG51bGwsXG4gICAgb25TdG9yYWdlOiBudWxsLFxuICAgIG9uU3VibWl0OiBudWxsLFxuICAgIG9uU3VzcGVuZDogbnVsbCxcbiAgICBvblRpbWVVcGRhdGU6IG51bGwsXG4gICAgb25Ub2dnbGU6IG51bGwsXG4gICAgb25VbmhhbmRsZWRSZWplY3Rpb246IG51bGwsXG4gICAgb25VbmxvYWQ6IG51bGwsXG4gICAgb25Wb2x1bWVDaGFuZ2U6IG51bGwsXG4gICAgb25XYWl0aW5nOiBudWxsLFxuICAgIG9uV2hlZWw6IG51bGwsXG4gICAgb3BlbjogYm9vbGVhbixcbiAgICBvcHRpbXVtOiBudW1iZXIsXG4gICAgcGF0dGVybjogbnVsbCxcbiAgICBwaW5nOiBzcGFjZVNlcGFyYXRlZCxcbiAgICBwbGFjZWhvbGRlcjogbnVsbCxcbiAgICBwbGF5c0lubGluZTogYm9vbGVhbixcbiAgICBwb3N0ZXI6IG51bGwsXG4gICAgcHJlbG9hZDogbnVsbCxcbiAgICByZWFkT25seTogYm9vbGVhbixcbiAgICByZWZlcnJlclBvbGljeTogbnVsbCxcbiAgICByZWw6IHNwYWNlU2VwYXJhdGVkLFxuICAgIHJlcXVpcmVkOiBib29sZWFuLFxuICAgIHJldmVyc2VkOiBib29sZWFuLFxuICAgIHJvd3M6IG51bWJlcixcbiAgICByb3dTcGFuOiBudW1iZXIsXG4gICAgc2FuZGJveDogc3BhY2VTZXBhcmF0ZWQsXG4gICAgc2NvcGU6IG51bGwsXG4gICAgc2NvcGVkOiBib29sZWFuLFxuICAgIHNlYW1sZXNzOiBib29sZWFuLFxuICAgIHNlbGVjdGVkOiBib29sZWFuLFxuICAgIHNoYXBlOiBudWxsLFxuICAgIHNpemU6IG51bWJlcixcbiAgICBzaXplczogbnVsbCxcbiAgICBzbG90OiBudWxsLFxuICAgIHNwYW46IG51bWJlcixcbiAgICBzcGVsbENoZWNrOiBib29sZWFuaXNoLFxuICAgIHNyYzogbnVsbCxcbiAgICBzcmNEb2M6IG51bGwsXG4gICAgc3JjTGFuZzogbnVsbCxcbiAgICBzcmNTZXQ6IG51bGwsXG4gICAgc3RhcnQ6IG51bWJlcixcbiAgICBzdGVwOiBudWxsLFxuICAgIHN0eWxlOiBudWxsLFxuICAgIHRhYkluZGV4OiBudW1iZXIsXG4gICAgdGFyZ2V0OiBudWxsLFxuICAgIHRpdGxlOiBudWxsLFxuICAgIHRyYW5zbGF0ZTogbnVsbCxcbiAgICB0eXBlOiBudWxsLFxuICAgIHR5cGVNdXN0TWF0Y2g6IGJvb2xlYW4sXG4gICAgdXNlTWFwOiBudWxsLFxuICAgIHZhbHVlOiBib29sZWFuaXNoLFxuICAgIHdpZHRoOiBudW1iZXIsXG4gICAgd3JhcDogbnVsbCxcblxuICAgIC8vIExlZ2FjeS5cbiAgICAvLyBTZWU6IGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvI290aGVyLWVsZW1lbnRzLC1hdHRyaWJ1dGVzLWFuZC1hcGlzXG4gICAgYWxpZ246IG51bGwsIC8vIFNldmVyYWwuIFVzZSBDU1MgYHRleHQtYWxpZ25gIGluc3RlYWQsXG4gICAgYUxpbms6IG51bGwsIC8vIGA8Ym9keT5gLiBVc2UgQ1NTIGBhOmFjdGl2ZSB7Y29sb3J9YCBpbnN0ZWFkXG4gICAgYXJjaGl2ZTogc3BhY2VTZXBhcmF0ZWQsIC8vIGA8b2JqZWN0PmAuIExpc3Qgb2YgVVJJcyB0byBhcmNoaXZlc1xuICAgIGF4aXM6IG51bGwsIC8vIGA8dGQ+YCBhbmQgYDx0aD5gLiBVc2UgYHNjb3BlYCBvbiBgPHRoPmBcbiAgICBiYWNrZ3JvdW5kOiBudWxsLCAvLyBgPGJvZHk+YC4gVXNlIENTUyBgYmFja2dyb3VuZC1pbWFnZWAgaW5zdGVhZFxuICAgIGJnQ29sb3I6IG51bGwsIC8vIGA8Ym9keT5gIGFuZCB0YWJsZSBlbGVtZW50cy4gVXNlIENTUyBgYmFja2dyb3VuZC1jb2xvcmAgaW5zdGVhZFxuICAgIGJvcmRlcjogbnVtYmVyLCAvLyBgPHRhYmxlPmAuIFVzZSBDU1MgYGJvcmRlci13aWR0aGAgaW5zdGVhZCxcbiAgICBib3JkZXJDb2xvcjogbnVsbCwgLy8gYDx0YWJsZT5gLiBVc2UgQ1NTIGBib3JkZXItY29sb3JgIGluc3RlYWQsXG4gICAgYm90dG9tTWFyZ2luOiBudW1iZXIsIC8vIGA8Ym9keT5gXG4gICAgY2VsbFBhZGRpbmc6IG51bGwsIC8vIGA8dGFibGU+YFxuICAgIGNlbGxTcGFjaW5nOiBudWxsLCAvLyBgPHRhYmxlPmBcbiAgICBjaGFyOiBudWxsLCAvLyBTZXZlcmFsIHRhYmxlIGVsZW1lbnRzLiBXaGVuIGBhbGlnbj1jaGFyYCwgc2V0cyB0aGUgY2hhcmFjdGVyIHRvIGFsaWduIG9uXG4gICAgY2hhck9mZjogbnVsbCwgLy8gU2V2ZXJhbCB0YWJsZSBlbGVtZW50cy4gV2hlbiBgY2hhcmAsIG9mZnNldHMgdGhlIGFsaWdubWVudFxuICAgIGNsYXNzSWQ6IG51bGwsIC8vIGA8b2JqZWN0PmBcbiAgICBjbGVhcjogbnVsbCwgLy8gYDxicj5gLiBVc2UgQ1NTIGBjbGVhcmAgaW5zdGVhZFxuICAgIGNvZGU6IG51bGwsIC8vIGA8b2JqZWN0PmBcbiAgICBjb2RlQmFzZTogbnVsbCwgLy8gYDxvYmplY3Q+YFxuICAgIGNvZGVUeXBlOiBudWxsLCAvLyBgPG9iamVjdD5gXG4gICAgY29sb3I6IG51bGwsIC8vIGA8Zm9udD5gIGFuZCBgPGhyPmAuIFVzZSBDU1MgaW5zdGVhZFxuICAgIGNvbXBhY3Q6IGJvb2xlYW4sIC8vIExpc3RzLiBVc2UgQ1NTIHRvIHJlZHVjZSBzcGFjZSBiZXR3ZWVuIGl0ZW1zIGluc3RlYWRcbiAgICBkZWNsYXJlOiBib29sZWFuLCAvLyBgPG9iamVjdD5gXG4gICAgZXZlbnQ6IG51bGwsIC8vIGA8c2NyaXB0PmBcbiAgICBmYWNlOiBudWxsLCAvLyBgPGZvbnQ+YC4gVXNlIENTUyBpbnN0ZWFkXG4gICAgZnJhbWU6IG51bGwsIC8vIGA8dGFibGU+YFxuICAgIGZyYW1lQm9yZGVyOiBudWxsLCAvLyBgPGlmcmFtZT5gLiBVc2UgQ1NTIGBib3JkZXJgIGluc3RlYWRcbiAgICBoU3BhY2U6IG51bWJlciwgLy8gYDxpbWc+YCBhbmQgYDxvYmplY3Q+YFxuICAgIGxlZnRNYXJnaW46IG51bWJlciwgLy8gYDxib2R5PmBcbiAgICBsaW5rOiBudWxsLCAvLyBgPGJvZHk+YC4gVXNlIENTUyBgYTpsaW5rIHtjb2xvcjogKn1gIGluc3RlYWRcbiAgICBsb25nRGVzYzogbnVsbCwgLy8gYDxmcmFtZT5gLCBgPGlmcmFtZT5gLCBhbmQgYDxpbWc+YC4gVXNlIGFuIGA8YT5gXG4gICAgbG93U3JjOiBudWxsLCAvLyBgPGltZz5gLiBVc2UgYSBgPHBpY3R1cmU+YFxuICAgIG1hcmdpbkhlaWdodDogbnVtYmVyLCAvLyBgPGJvZHk+YFxuICAgIG1hcmdpbldpZHRoOiBudW1iZXIsIC8vIGA8Ym9keT5gXG4gICAgbm9SZXNpemU6IGJvb2xlYW4sIC8vIGA8ZnJhbWU+YFxuICAgIG5vSHJlZjogYm9vbGVhbiwgLy8gYDxhcmVhPmAuIFVzZSBubyBocmVmIGluc3RlYWQgb2YgYW4gZXhwbGljaXQgYG5vaHJlZmBcbiAgICBub1NoYWRlOiBib29sZWFuLCAvLyBgPGhyPmAuIFVzZSBiYWNrZ3JvdW5kLWNvbG9yIGFuZCBoZWlnaHQgaW5zdGVhZCBvZiBib3JkZXJzXG4gICAgbm9XcmFwOiBib29sZWFuLCAvLyBgPHRkPmAgYW5kIGA8dGg+YFxuICAgIG9iamVjdDogbnVsbCwgLy8gYDxhcHBsZXQ+YFxuICAgIHByb2ZpbGU6IG51bGwsIC8vIGA8aGVhZD5gXG4gICAgcHJvbXB0OiBudWxsLCAvLyBgPGlzaW5kZXg+YFxuICAgIHJldjogbnVsbCwgLy8gYDxsaW5rPmBcbiAgICByaWdodE1hcmdpbjogbnVtYmVyLCAvLyBgPGJvZHk+YFxuICAgIHJ1bGVzOiBudWxsLCAvLyBgPHRhYmxlPmBcbiAgICBzY2hlbWU6IG51bGwsIC8vIGA8bWV0YT5gXG4gICAgc2Nyb2xsaW5nOiBib29sZWFuaXNoLCAvLyBgPGZyYW1lPmAuIFVzZSBvdmVyZmxvdyBpbiB0aGUgY2hpbGQgY29udGV4dFxuICAgIHN0YW5kYnk6IG51bGwsIC8vIGA8b2JqZWN0PmBcbiAgICBzdW1tYXJ5OiBudWxsLCAvLyBgPHRhYmxlPmBcbiAgICB0ZXh0OiBudWxsLCAvLyBgPGJvZHk+YC4gVXNlIENTUyBgY29sb3JgIGluc3RlYWRcbiAgICB0b3BNYXJnaW46IG51bWJlciwgLy8gYDxib2R5PmBcbiAgICB2YWx1ZVR5cGU6IG51bGwsIC8vIGA8cGFyYW0+YFxuICAgIHZlcnNpb246IG51bGwsIC8vIGA8aHRtbD5gLiBVc2UgYSBkb2N0eXBlLlxuICAgIHZBbGlnbjogbnVsbCwgLy8gU2V2ZXJhbC4gVXNlIENTUyBgdmVydGljYWwtYWxpZ25gIGluc3RlYWRcbiAgICB2TGluazogbnVsbCwgLy8gYDxib2R5PmAuIFVzZSBDU1MgYGE6dmlzaXRlZCB7Y29sb3J9YCBpbnN0ZWFkXG4gICAgdlNwYWNlOiBudW1iZXIsIC8vIGA8aW1nPmAgYW5kIGA8b2JqZWN0PmBcblxuICAgIC8vIE5vbi1zdGFuZGFyZCBQcm9wZXJ0aWVzLlxuICAgIGFsbG93VHJhbnNwYXJlbmN5OiBudWxsLFxuICAgIGF1dG9Db3JyZWN0OiBudWxsLFxuICAgIGF1dG9TYXZlOiBudWxsLFxuICAgIGRpc2FibGVQaWN0dXJlSW5QaWN0dXJlOiBib29sZWFuLFxuICAgIGRpc2FibGVSZW1vdGVQbGF5YmFjazogYm9vbGVhbixcbiAgICBwcmVmaXg6IG51bGwsXG4gICAgcHJvcGVydHk6IG51bGwsXG4gICAgcmVzdWx0czogbnVtYmVyLFxuICAgIHNlY3VyaXR5OiBudWxsLFxuICAgIHVuc2VsZWN0YWJsZTogbnVsbFxuICB9XG59KVxuIiwgImltcG9ydCB7XG4gIGJvb2xlYW4sXG4gIG51bWJlcixcbiAgc3BhY2VTZXBhcmF0ZWQsXG4gIGNvbW1hU2VwYXJhdGVkLFxuICBjb21tYU9yU3BhY2VTZXBhcmF0ZWRcbn0gZnJvbSAnLi91dGlsL3R5cGVzLmpzJ1xuaW1wb3J0IHtjcmVhdGV9IGZyb20gJy4vdXRpbC9jcmVhdGUuanMnXG5pbXBvcnQge2Nhc2VTZW5zaXRpdmVUcmFuc2Zvcm19IGZyb20gJy4vdXRpbC9jYXNlLXNlbnNpdGl2ZS10cmFuc2Zvcm0uanMnXG5cbmV4cG9ydCBjb25zdCBzdmcgPSBjcmVhdGUoe1xuICBzcGFjZTogJ3N2ZycsXG4gIGF0dHJpYnV0ZXM6IHtcbiAgICBhY2NlbnRIZWlnaHQ6ICdhY2NlbnQtaGVpZ2h0JyxcbiAgICBhbGlnbm1lbnRCYXNlbGluZTogJ2FsaWdubWVudC1iYXNlbGluZScsXG4gICAgYXJhYmljRm9ybTogJ2FyYWJpYy1mb3JtJyxcbiAgICBiYXNlbGluZVNoaWZ0OiAnYmFzZWxpbmUtc2hpZnQnLFxuICAgIGNhcEhlaWdodDogJ2NhcC1oZWlnaHQnLFxuICAgIGNsYXNzTmFtZTogJ2NsYXNzJyxcbiAgICBjbGlwUGF0aDogJ2NsaXAtcGF0aCcsXG4gICAgY2xpcFJ1bGU6ICdjbGlwLXJ1bGUnLFxuICAgIGNvbG9ySW50ZXJwb2xhdGlvbjogJ2NvbG9yLWludGVycG9sYXRpb24nLFxuICAgIGNvbG9ySW50ZXJwb2xhdGlvbkZpbHRlcnM6ICdjb2xvci1pbnRlcnBvbGF0aW9uLWZpbHRlcnMnLFxuICAgIGNvbG9yUHJvZmlsZTogJ2NvbG9yLXByb2ZpbGUnLFxuICAgIGNvbG9yUmVuZGVyaW5nOiAnY29sb3ItcmVuZGVyaW5nJyxcbiAgICBjcm9zc09yaWdpbjogJ2Nyb3Nzb3JpZ2luJyxcbiAgICBkYXRhVHlwZTogJ2RhdGF0eXBlJyxcbiAgICBkb21pbmFudEJhc2VsaW5lOiAnZG9taW5hbnQtYmFzZWxpbmUnLFxuICAgIGVuYWJsZUJhY2tncm91bmQ6ICdlbmFibGUtYmFja2dyb3VuZCcsXG4gICAgZmlsbE9wYWNpdHk6ICdmaWxsLW9wYWNpdHknLFxuICAgIGZpbGxSdWxlOiAnZmlsbC1ydWxlJyxcbiAgICBmbG9vZENvbG9yOiAnZmxvb2QtY29sb3InLFxuICAgIGZsb29kT3BhY2l0eTogJ2Zsb29kLW9wYWNpdHknLFxuICAgIGZvbnRGYW1pbHk6ICdmb250LWZhbWlseScsXG4gICAgZm9udFNpemU6ICdmb250LXNpemUnLFxuICAgIGZvbnRTaXplQWRqdXN0OiAnZm9udC1zaXplLWFkanVzdCcsXG4gICAgZm9udFN0cmV0Y2g6ICdmb250LXN0cmV0Y2gnLFxuICAgIGZvbnRTdHlsZTogJ2ZvbnQtc3R5bGUnLFxuICAgIGZvbnRWYXJpYW50OiAnZm9udC12YXJpYW50JyxcbiAgICBmb250V2VpZ2h0OiAnZm9udC13ZWlnaHQnLFxuICAgIGdseXBoTmFtZTogJ2dseXBoLW5hbWUnLFxuICAgIGdseXBoT3JpZW50YXRpb25Ib3Jpem9udGFsOiAnZ2x5cGgtb3JpZW50YXRpb24taG9yaXpvbnRhbCcsXG4gICAgZ2x5cGhPcmllbnRhdGlvblZlcnRpY2FsOiAnZ2x5cGgtb3JpZW50YXRpb24tdmVydGljYWwnLFxuICAgIGhyZWZMYW5nOiAnaHJlZmxhbmcnLFxuICAgIGhvcml6QWR2WDogJ2hvcml6LWFkdi14JyxcbiAgICBob3Jpek9yaWdpblg6ICdob3Jpei1vcmlnaW4teCcsXG4gICAgaG9yaXpPcmlnaW5ZOiAnaG9yaXotb3JpZ2luLXknLFxuICAgIGltYWdlUmVuZGVyaW5nOiAnaW1hZ2UtcmVuZGVyaW5nJyxcbiAgICBsZXR0ZXJTcGFjaW5nOiAnbGV0dGVyLXNwYWNpbmcnLFxuICAgIGxpZ2h0aW5nQ29sb3I6ICdsaWdodGluZy1jb2xvcicsXG4gICAgbWFya2VyRW5kOiAnbWFya2VyLWVuZCcsXG4gICAgbWFya2VyTWlkOiAnbWFya2VyLW1pZCcsXG4gICAgbWFya2VyU3RhcnQ6ICdtYXJrZXItc3RhcnQnLFxuICAgIG5hdkRvd246ICduYXYtZG93bicsXG4gICAgbmF2RG93bkxlZnQ6ICduYXYtZG93bi1sZWZ0JyxcbiAgICBuYXZEb3duUmlnaHQ6ICduYXYtZG93bi1yaWdodCcsXG4gICAgbmF2TGVmdDogJ25hdi1sZWZ0JyxcbiAgICBuYXZOZXh0OiAnbmF2LW5leHQnLFxuICAgIG5hdlByZXY6ICduYXYtcHJldicsXG4gICAgbmF2UmlnaHQ6ICduYXYtcmlnaHQnLFxuICAgIG5hdlVwOiAnbmF2LXVwJyxcbiAgICBuYXZVcExlZnQ6ICduYXYtdXAtbGVmdCcsXG4gICAgbmF2VXBSaWdodDogJ25hdi11cC1yaWdodCcsXG4gICAgb25BYm9ydDogJ29uYWJvcnQnLFxuICAgIG9uQWN0aXZhdGU6ICdvbmFjdGl2YXRlJyxcbiAgICBvbkFmdGVyUHJpbnQ6ICdvbmFmdGVycHJpbnQnLFxuICAgIG9uQmVmb3JlUHJpbnQ6ICdvbmJlZm9yZXByaW50JyxcbiAgICBvbkJlZ2luOiAnb25iZWdpbicsXG4gICAgb25DYW5jZWw6ICdvbmNhbmNlbCcsXG4gICAgb25DYW5QbGF5OiAnb25jYW5wbGF5JyxcbiAgICBvbkNhblBsYXlUaHJvdWdoOiAnb25jYW5wbGF5dGhyb3VnaCcsXG4gICAgb25DaGFuZ2U6ICdvbmNoYW5nZScsXG4gICAgb25DbGljazogJ29uY2xpY2snLFxuICAgIG9uQ2xvc2U6ICdvbmNsb3NlJyxcbiAgICBvbkNvcHk6ICdvbmNvcHknLFxuICAgIG9uQ3VlQ2hhbmdlOiAnb25jdWVjaGFuZ2UnLFxuICAgIG9uQ3V0OiAnb25jdXQnLFxuICAgIG9uRGJsQ2xpY2s6ICdvbmRibGNsaWNrJyxcbiAgICBvbkRyYWc6ICdvbmRyYWcnLFxuICAgIG9uRHJhZ0VuZDogJ29uZHJhZ2VuZCcsXG4gICAgb25EcmFnRW50ZXI6ICdvbmRyYWdlbnRlcicsXG4gICAgb25EcmFnRXhpdDogJ29uZHJhZ2V4aXQnLFxuICAgIG9uRHJhZ0xlYXZlOiAnb25kcmFnbGVhdmUnLFxuICAgIG9uRHJhZ092ZXI6ICdvbmRyYWdvdmVyJyxcbiAgICBvbkRyYWdTdGFydDogJ29uZHJhZ3N0YXJ0JyxcbiAgICBvbkRyb3A6ICdvbmRyb3AnLFxuICAgIG9uRHVyYXRpb25DaGFuZ2U6ICdvbmR1cmF0aW9uY2hhbmdlJyxcbiAgICBvbkVtcHRpZWQ6ICdvbmVtcHRpZWQnLFxuICAgIG9uRW5kOiAnb25lbmQnLFxuICAgIG9uRW5kZWQ6ICdvbmVuZGVkJyxcbiAgICBvbkVycm9yOiAnb25lcnJvcicsXG4gICAgb25Gb2N1czogJ29uZm9jdXMnLFxuICAgIG9uRm9jdXNJbjogJ29uZm9jdXNpbicsXG4gICAgb25Gb2N1c091dDogJ29uZm9jdXNvdXQnLFxuICAgIG9uSGFzaENoYW5nZTogJ29uaGFzaGNoYW5nZScsXG4gICAgb25JbnB1dDogJ29uaW5wdXQnLFxuICAgIG9uSW52YWxpZDogJ29uaW52YWxpZCcsXG4gICAgb25LZXlEb3duOiAnb25rZXlkb3duJyxcbiAgICBvbktleVByZXNzOiAnb25rZXlwcmVzcycsXG4gICAgb25LZXlVcDogJ29ua2V5dXAnLFxuICAgIG9uTG9hZDogJ29ubG9hZCcsXG4gICAgb25Mb2FkZWREYXRhOiAnb25sb2FkZWRkYXRhJyxcbiAgICBvbkxvYWRlZE1ldGFkYXRhOiAnb25sb2FkZWRtZXRhZGF0YScsXG4gICAgb25Mb2FkU3RhcnQ6ICdvbmxvYWRzdGFydCcsXG4gICAgb25NZXNzYWdlOiAnb25tZXNzYWdlJyxcbiAgICBvbk1vdXNlRG93bjogJ29ubW91c2Vkb3duJyxcbiAgICBvbk1vdXNlRW50ZXI6ICdvbm1vdXNlZW50ZXInLFxuICAgIG9uTW91c2VMZWF2ZTogJ29ubW91c2VsZWF2ZScsXG4gICAgb25Nb3VzZU1vdmU6ICdvbm1vdXNlbW92ZScsXG4gICAgb25Nb3VzZU91dDogJ29ubW91c2VvdXQnLFxuICAgIG9uTW91c2VPdmVyOiAnb25tb3VzZW92ZXInLFxuICAgIG9uTW91c2VVcDogJ29ubW91c2V1cCcsXG4gICAgb25Nb3VzZVdoZWVsOiAnb25tb3VzZXdoZWVsJyxcbiAgICBvbk9mZmxpbmU6ICdvbm9mZmxpbmUnLFxuICAgIG9uT25saW5lOiAnb25vbmxpbmUnLFxuICAgIG9uUGFnZUhpZGU6ICdvbnBhZ2VoaWRlJyxcbiAgICBvblBhZ2VTaG93OiAnb25wYWdlc2hvdycsXG4gICAgb25QYXN0ZTogJ29ucGFzdGUnLFxuICAgIG9uUGF1c2U6ICdvbnBhdXNlJyxcbiAgICBvblBsYXk6ICdvbnBsYXknLFxuICAgIG9uUGxheWluZzogJ29ucGxheWluZycsXG4gICAgb25Qb3BTdGF0ZTogJ29ucG9wc3RhdGUnLFxuICAgIG9uUHJvZ3Jlc3M6ICdvbnByb2dyZXNzJyxcbiAgICBvblJhdGVDaGFuZ2U6ICdvbnJhdGVjaGFuZ2UnLFxuICAgIG9uUmVwZWF0OiAnb25yZXBlYXQnLFxuICAgIG9uUmVzZXQ6ICdvbnJlc2V0JyxcbiAgICBvblJlc2l6ZTogJ29ucmVzaXplJyxcbiAgICBvblNjcm9sbDogJ29uc2Nyb2xsJyxcbiAgICBvblNlZWtlZDogJ29uc2Vla2VkJyxcbiAgICBvblNlZWtpbmc6ICdvbnNlZWtpbmcnLFxuICAgIG9uU2VsZWN0OiAnb25zZWxlY3QnLFxuICAgIG9uU2hvdzogJ29uc2hvdycsXG4gICAgb25TdGFsbGVkOiAnb25zdGFsbGVkJyxcbiAgICBvblN0b3JhZ2U6ICdvbnN0b3JhZ2UnLFxuICAgIG9uU3VibWl0OiAnb25zdWJtaXQnLFxuICAgIG9uU3VzcGVuZDogJ29uc3VzcGVuZCcsXG4gICAgb25UaW1lVXBkYXRlOiAnb250aW1ldXBkYXRlJyxcbiAgICBvblRvZ2dsZTogJ29udG9nZ2xlJyxcbiAgICBvblVubG9hZDogJ29udW5sb2FkJyxcbiAgICBvblZvbHVtZUNoYW5nZTogJ29udm9sdW1lY2hhbmdlJyxcbiAgICBvbldhaXRpbmc6ICdvbndhaXRpbmcnLFxuICAgIG9uWm9vbTogJ29uem9vbScsXG4gICAgb3ZlcmxpbmVQb3NpdGlvbjogJ292ZXJsaW5lLXBvc2l0aW9uJyxcbiAgICBvdmVybGluZVRoaWNrbmVzczogJ292ZXJsaW5lLXRoaWNrbmVzcycsXG4gICAgcGFpbnRPcmRlcjogJ3BhaW50LW9yZGVyJyxcbiAgICBwYW5vc2UxOiAncGFub3NlLTEnLFxuICAgIHBvaW50ZXJFdmVudHM6ICdwb2ludGVyLWV2ZW50cycsXG4gICAgcmVmZXJyZXJQb2xpY3k6ICdyZWZlcnJlcnBvbGljeScsXG4gICAgcmVuZGVyaW5nSW50ZW50OiAncmVuZGVyaW5nLWludGVudCcsXG4gICAgc2hhcGVSZW5kZXJpbmc6ICdzaGFwZS1yZW5kZXJpbmcnLFxuICAgIHN0b3BDb2xvcjogJ3N0b3AtY29sb3InLFxuICAgIHN0b3BPcGFjaXR5OiAnc3RvcC1vcGFjaXR5JyxcbiAgICBzdHJpa2V0aHJvdWdoUG9zaXRpb246ICdzdHJpa2V0aHJvdWdoLXBvc2l0aW9uJyxcbiAgICBzdHJpa2V0aHJvdWdoVGhpY2tuZXNzOiAnc3RyaWtldGhyb3VnaC10aGlja25lc3MnLFxuICAgIHN0cm9rZURhc2hBcnJheTogJ3N0cm9rZS1kYXNoYXJyYXknLFxuICAgIHN0cm9rZURhc2hPZmZzZXQ6ICdzdHJva2UtZGFzaG9mZnNldCcsXG4gICAgc3Ryb2tlTGluZUNhcDogJ3N0cm9rZS1saW5lY2FwJyxcbiAgICBzdHJva2VMaW5lSm9pbjogJ3N0cm9rZS1saW5lam9pbicsXG4gICAgc3Ryb2tlTWl0ZXJMaW1pdDogJ3N0cm9rZS1taXRlcmxpbWl0JyxcbiAgICBzdHJva2VPcGFjaXR5OiAnc3Ryb2tlLW9wYWNpdHknLFxuICAgIHN0cm9rZVdpZHRoOiAnc3Ryb2tlLXdpZHRoJyxcbiAgICB0YWJJbmRleDogJ3RhYmluZGV4JyxcbiAgICB0ZXh0QW5jaG9yOiAndGV4dC1hbmNob3InLFxuICAgIHRleHREZWNvcmF0aW9uOiAndGV4dC1kZWNvcmF0aW9uJyxcbiAgICB0ZXh0UmVuZGVyaW5nOiAndGV4dC1yZW5kZXJpbmcnLFxuICAgIHR5cGVPZjogJ3R5cGVvZicsXG4gICAgdW5kZXJsaW5lUG9zaXRpb246ICd1bmRlcmxpbmUtcG9zaXRpb24nLFxuICAgIHVuZGVybGluZVRoaWNrbmVzczogJ3VuZGVybGluZS10aGlja25lc3MnLFxuICAgIHVuaWNvZGVCaWRpOiAndW5pY29kZS1iaWRpJyxcbiAgICB1bmljb2RlUmFuZ2U6ICd1bmljb2RlLXJhbmdlJyxcbiAgICB1bml0c1BlckVtOiAndW5pdHMtcGVyLWVtJyxcbiAgICB2QWxwaGFiZXRpYzogJ3YtYWxwaGFiZXRpYycsXG4gICAgdkhhbmdpbmc6ICd2LWhhbmdpbmcnLFxuICAgIHZJZGVvZ3JhcGhpYzogJ3YtaWRlb2dyYXBoaWMnLFxuICAgIHZNYXRoZW1hdGljYWw6ICd2LW1hdGhlbWF0aWNhbCcsXG4gICAgdmVjdG9yRWZmZWN0OiAndmVjdG9yLWVmZmVjdCcsXG4gICAgdmVydEFkdlk6ICd2ZXJ0LWFkdi15JyxcbiAgICB2ZXJ0T3JpZ2luWDogJ3ZlcnQtb3JpZ2luLXgnLFxuICAgIHZlcnRPcmlnaW5ZOiAndmVydC1vcmlnaW4teScsXG4gICAgd29yZFNwYWNpbmc6ICd3b3JkLXNwYWNpbmcnLFxuICAgIHdyaXRpbmdNb2RlOiAnd3JpdGluZy1tb2RlJyxcbiAgICB4SGVpZ2h0OiAneC1oZWlnaHQnLFxuICAgIC8vIFRoZXNlIHdlcmUgY2FtZWxjYXNlZCBpbiBUaW55LiBOb3cgbG93ZXJjYXNlZCBpbiBTVkcgMlxuICAgIHBsYXliYWNrT3JkZXI6ICdwbGF5YmFja29yZGVyJyxcbiAgICB0aW1lbGluZUJlZ2luOiAndGltZWxpbmViZWdpbidcbiAgfSxcbiAgdHJhbnNmb3JtOiBjYXNlU2Vuc2l0aXZlVHJhbnNmb3JtLFxuICBwcm9wZXJ0aWVzOiB7XG4gICAgYWJvdXQ6IGNvbW1hT3JTcGFjZVNlcGFyYXRlZCxcbiAgICBhY2NlbnRIZWlnaHQ6IG51bWJlcixcbiAgICBhY2N1bXVsYXRlOiBudWxsLFxuICAgIGFkZGl0aXZlOiBudWxsLFxuICAgIGFsaWdubWVudEJhc2VsaW5lOiBudWxsLFxuICAgIGFscGhhYmV0aWM6IG51bWJlcixcbiAgICBhbXBsaXR1ZGU6IG51bWJlcixcbiAgICBhcmFiaWNGb3JtOiBudWxsLFxuICAgIGFzY2VudDogbnVtYmVyLFxuICAgIGF0dHJpYnV0ZU5hbWU6IG51bGwsXG4gICAgYXR0cmlidXRlVHlwZTogbnVsbCxcbiAgICBhemltdXRoOiBudW1iZXIsXG4gICAgYmFuZHdpZHRoOiBudWxsLFxuICAgIGJhc2VsaW5lU2hpZnQ6IG51bGwsXG4gICAgYmFzZUZyZXF1ZW5jeTogbnVsbCxcbiAgICBiYXNlUHJvZmlsZTogbnVsbCxcbiAgICBiYm94OiBudWxsLFxuICAgIGJlZ2luOiBudWxsLFxuICAgIGJpYXM6IG51bWJlcixcbiAgICBieTogbnVsbCxcbiAgICBjYWxjTW9kZTogbnVsbCxcbiAgICBjYXBIZWlnaHQ6IG51bWJlcixcbiAgICBjbGFzc05hbWU6IHNwYWNlU2VwYXJhdGVkLFxuICAgIGNsaXA6IG51bGwsXG4gICAgY2xpcFBhdGg6IG51bGwsXG4gICAgY2xpcFBhdGhVbml0czogbnVsbCxcbiAgICBjbGlwUnVsZTogbnVsbCxcbiAgICBjb2xvcjogbnVsbCxcbiAgICBjb2xvckludGVycG9sYXRpb246IG51bGwsXG4gICAgY29sb3JJbnRlcnBvbGF0aW9uRmlsdGVyczogbnVsbCxcbiAgICBjb2xvclByb2ZpbGU6IG51bGwsXG4gICAgY29sb3JSZW5kZXJpbmc6IG51bGwsXG4gICAgY29udGVudDogbnVsbCxcbiAgICBjb250ZW50U2NyaXB0VHlwZTogbnVsbCxcbiAgICBjb250ZW50U3R5bGVUeXBlOiBudWxsLFxuICAgIGNyb3NzT3JpZ2luOiBudWxsLFxuICAgIGN1cnNvcjogbnVsbCxcbiAgICBjeDogbnVsbCxcbiAgICBjeTogbnVsbCxcbiAgICBkOiBudWxsLFxuICAgIGRhdGFUeXBlOiBudWxsLFxuICAgIGRlZmF1bHRBY3Rpb246IG51bGwsXG4gICAgZGVzY2VudDogbnVtYmVyLFxuICAgIGRpZmZ1c2VDb25zdGFudDogbnVtYmVyLFxuICAgIGRpcmVjdGlvbjogbnVsbCxcbiAgICBkaXNwbGF5OiBudWxsLFxuICAgIGR1cjogbnVsbCxcbiAgICBkaXZpc29yOiBudW1iZXIsXG4gICAgZG9taW5hbnRCYXNlbGluZTogbnVsbCxcbiAgICBkb3dubG9hZDogYm9vbGVhbixcbiAgICBkeDogbnVsbCxcbiAgICBkeTogbnVsbCxcbiAgICBlZGdlTW9kZTogbnVsbCxcbiAgICBlZGl0YWJsZTogbnVsbCxcbiAgICBlbGV2YXRpb246IG51bWJlcixcbiAgICBlbmFibGVCYWNrZ3JvdW5kOiBudWxsLFxuICAgIGVuZDogbnVsbCxcbiAgICBldmVudDogbnVsbCxcbiAgICBleHBvbmVudDogbnVtYmVyLFxuICAgIGV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQ6IG51bGwsXG4gICAgZmlsbDogbnVsbCxcbiAgICBmaWxsT3BhY2l0eTogbnVtYmVyLFxuICAgIGZpbGxSdWxlOiBudWxsLFxuICAgIGZpbHRlcjogbnVsbCxcbiAgICBmaWx0ZXJSZXM6IG51bGwsXG4gICAgZmlsdGVyVW5pdHM6IG51bGwsXG4gICAgZmxvb2RDb2xvcjogbnVsbCxcbiAgICBmbG9vZE9wYWNpdHk6IG51bGwsXG4gICAgZm9jdXNhYmxlOiBudWxsLFxuICAgIGZvY3VzSGlnaGxpZ2h0OiBudWxsLFxuICAgIGZvbnRGYW1pbHk6IG51bGwsXG4gICAgZm9udFNpemU6IG51bGwsXG4gICAgZm9udFNpemVBZGp1c3Q6IG51bGwsXG4gICAgZm9udFN0cmV0Y2g6IG51bGwsXG4gICAgZm9udFN0eWxlOiBudWxsLFxuICAgIGZvbnRWYXJpYW50OiBudWxsLFxuICAgIGZvbnRXZWlnaHQ6IG51bGwsXG4gICAgZm9ybWF0OiBudWxsLFxuICAgIGZyOiBudWxsLFxuICAgIGZyb206IG51bGwsXG4gICAgZng6IG51bGwsXG4gICAgZnk6IG51bGwsXG4gICAgZzE6IGNvbW1hU2VwYXJhdGVkLFxuICAgIGcyOiBjb21tYVNlcGFyYXRlZCxcbiAgICBnbHlwaE5hbWU6IGNvbW1hU2VwYXJhdGVkLFxuICAgIGdseXBoT3JpZW50YXRpb25Ib3Jpem9udGFsOiBudWxsLFxuICAgIGdseXBoT3JpZW50YXRpb25WZXJ0aWNhbDogbnVsbCxcbiAgICBnbHlwaFJlZjogbnVsbCxcbiAgICBncmFkaWVudFRyYW5zZm9ybTogbnVsbCxcbiAgICBncmFkaWVudFVuaXRzOiBudWxsLFxuICAgIGhhbmRsZXI6IG51bGwsXG4gICAgaGFuZ2luZzogbnVtYmVyLFxuICAgIGhhdGNoQ29udGVudFVuaXRzOiBudWxsLFxuICAgIGhhdGNoVW5pdHM6IG51bGwsXG4gICAgaGVpZ2h0OiBudWxsLFxuICAgIGhyZWY6IG51bGwsXG4gICAgaHJlZkxhbmc6IG51bGwsXG4gICAgaG9yaXpBZHZYOiBudW1iZXIsXG4gICAgaG9yaXpPcmlnaW5YOiBudW1iZXIsXG4gICAgaG9yaXpPcmlnaW5ZOiBudW1iZXIsXG4gICAgaWQ6IG51bGwsXG4gICAgaWRlb2dyYXBoaWM6IG51bWJlcixcbiAgICBpbWFnZVJlbmRlcmluZzogbnVsbCxcbiAgICBpbml0aWFsVmlzaWJpbGl0eTogbnVsbCxcbiAgICBpbjogbnVsbCxcbiAgICBpbjI6IG51bGwsXG4gICAgaW50ZXJjZXB0OiBudW1iZXIsXG4gICAgazogbnVtYmVyLFxuICAgIGsxOiBudW1iZXIsXG4gICAgazI6IG51bWJlcixcbiAgICBrMzogbnVtYmVyLFxuICAgIGs0OiBudW1iZXIsXG4gICAga2VybmVsTWF0cml4OiBjb21tYU9yU3BhY2VTZXBhcmF0ZWQsXG4gICAga2VybmVsVW5pdExlbmd0aDogbnVsbCxcbiAgICBrZXlQb2ludHM6IG51bGwsIC8vIFNFTUlfQ09MT05fU0VQQVJBVEVEXG4gICAga2V5U3BsaW5lczogbnVsbCwgLy8gU0VNSV9DT0xPTl9TRVBBUkFURURcbiAgICBrZXlUaW1lczogbnVsbCwgLy8gU0VNSV9DT0xPTl9TRVBBUkFURURcbiAgICBrZXJuaW5nOiBudWxsLFxuICAgIGxhbmc6IG51bGwsXG4gICAgbGVuZ3RoQWRqdXN0OiBudWxsLFxuICAgIGxldHRlclNwYWNpbmc6IG51bGwsXG4gICAgbGlnaHRpbmdDb2xvcjogbnVsbCxcbiAgICBsaW1pdGluZ0NvbmVBbmdsZTogbnVtYmVyLFxuICAgIGxvY2FsOiBudWxsLFxuICAgIG1hcmtlckVuZDogbnVsbCxcbiAgICBtYXJrZXJNaWQ6IG51bGwsXG4gICAgbWFya2VyU3RhcnQ6IG51bGwsXG4gICAgbWFya2VySGVpZ2h0OiBudWxsLFxuICAgIG1hcmtlclVuaXRzOiBudWxsLFxuICAgIG1hcmtlcldpZHRoOiBudWxsLFxuICAgIG1hc2s6IG51bGwsXG4gICAgbWFza0NvbnRlbnRVbml0czogbnVsbCxcbiAgICBtYXNrVW5pdHM6IG51bGwsXG4gICAgbWF0aGVtYXRpY2FsOiBudWxsLFxuICAgIG1heDogbnVsbCxcbiAgICBtZWRpYTogbnVsbCxcbiAgICBtZWRpYUNoYXJhY3RlckVuY29kaW5nOiBudWxsLFxuICAgIG1lZGlhQ29udGVudEVuY29kaW5nczogbnVsbCxcbiAgICBtZWRpYVNpemU6IG51bWJlcixcbiAgICBtZWRpYVRpbWU6IG51bGwsXG4gICAgbWV0aG9kOiBudWxsLFxuICAgIG1pbjogbnVsbCxcbiAgICBtb2RlOiBudWxsLFxuICAgIG5hbWU6IG51bGwsXG4gICAgbmF2RG93bjogbnVsbCxcbiAgICBuYXZEb3duTGVmdDogbnVsbCxcbiAgICBuYXZEb3duUmlnaHQ6IG51bGwsXG4gICAgbmF2TGVmdDogbnVsbCxcbiAgICBuYXZOZXh0OiBudWxsLFxuICAgIG5hdlByZXY6IG51bGwsXG4gICAgbmF2UmlnaHQ6IG51bGwsXG4gICAgbmF2VXA6IG51bGwsXG4gICAgbmF2VXBMZWZ0OiBudWxsLFxuICAgIG5hdlVwUmlnaHQ6IG51bGwsXG4gICAgbnVtT2N0YXZlczogbnVsbCxcbiAgICBvYnNlcnZlcjogbnVsbCxcbiAgICBvZmZzZXQ6IG51bGwsXG4gICAgb25BYm9ydDogbnVsbCxcbiAgICBvbkFjdGl2YXRlOiBudWxsLFxuICAgIG9uQWZ0ZXJQcmludDogbnVsbCxcbiAgICBvbkJlZm9yZVByaW50OiBudWxsLFxuICAgIG9uQmVnaW46IG51bGwsXG4gICAgb25DYW5jZWw6IG51bGwsXG4gICAgb25DYW5QbGF5OiBudWxsLFxuICAgIG9uQ2FuUGxheVRocm91Z2g6IG51bGwsXG4gICAgb25DaGFuZ2U6IG51bGwsXG4gICAgb25DbGljazogbnVsbCxcbiAgICBvbkNsb3NlOiBudWxsLFxuICAgIG9uQ29weTogbnVsbCxcbiAgICBvbkN1ZUNoYW5nZTogbnVsbCxcbiAgICBvbkN1dDogbnVsbCxcbiAgICBvbkRibENsaWNrOiBudWxsLFxuICAgIG9uRHJhZzogbnVsbCxcbiAgICBvbkRyYWdFbmQ6IG51bGwsXG4gICAgb25EcmFnRW50ZXI6IG51bGwsXG4gICAgb25EcmFnRXhpdDogbnVsbCxcbiAgICBvbkRyYWdMZWF2ZTogbnVsbCxcbiAgICBvbkRyYWdPdmVyOiBudWxsLFxuICAgIG9uRHJhZ1N0YXJ0OiBudWxsLFxuICAgIG9uRHJvcDogbnVsbCxcbiAgICBvbkR1cmF0aW9uQ2hhbmdlOiBudWxsLFxuICAgIG9uRW1wdGllZDogbnVsbCxcbiAgICBvbkVuZDogbnVsbCxcbiAgICBvbkVuZGVkOiBudWxsLFxuICAgIG9uRXJyb3I6IG51bGwsXG4gICAgb25Gb2N1czogbnVsbCxcbiAgICBvbkZvY3VzSW46IG51bGwsXG4gICAgb25Gb2N1c091dDogbnVsbCxcbiAgICBvbkhhc2hDaGFuZ2U6IG51bGwsXG4gICAgb25JbnB1dDogbnVsbCxcbiAgICBvbkludmFsaWQ6IG51bGwsXG4gICAgb25LZXlEb3duOiBudWxsLFxuICAgIG9uS2V5UHJlc3M6IG51bGwsXG4gICAgb25LZXlVcDogbnVsbCxcbiAgICBvbkxvYWQ6IG51bGwsXG4gICAgb25Mb2FkZWREYXRhOiBudWxsLFxuICAgIG9uTG9hZGVkTWV0YWRhdGE6IG51bGwsXG4gICAgb25Mb2FkU3RhcnQ6IG51bGwsXG4gICAgb25NZXNzYWdlOiBudWxsLFxuICAgIG9uTW91c2VEb3duOiBudWxsLFxuICAgIG9uTW91c2VFbnRlcjogbnVsbCxcbiAgICBvbk1vdXNlTGVhdmU6IG51bGwsXG4gICAgb25Nb3VzZU1vdmU6IG51bGwsXG4gICAgb25Nb3VzZU91dDogbnVsbCxcbiAgICBvbk1vdXNlT3ZlcjogbnVsbCxcbiAgICBvbk1vdXNlVXA6IG51bGwsXG4gICAgb25Nb3VzZVdoZWVsOiBudWxsLFxuICAgIG9uT2ZmbGluZTogbnVsbCxcbiAgICBvbk9ubGluZTogbnVsbCxcbiAgICBvblBhZ2VIaWRlOiBudWxsLFxuICAgIG9uUGFnZVNob3c6IG51bGwsXG4gICAgb25QYXN0ZTogbnVsbCxcbiAgICBvblBhdXNlOiBudWxsLFxuICAgIG9uUGxheTogbnVsbCxcbiAgICBvblBsYXlpbmc6IG51bGwsXG4gICAgb25Qb3BTdGF0ZTogbnVsbCxcbiAgICBvblByb2dyZXNzOiBudWxsLFxuICAgIG9uUmF0ZUNoYW5nZTogbnVsbCxcbiAgICBvblJlcGVhdDogbnVsbCxcbiAgICBvblJlc2V0OiBudWxsLFxuICAgIG9uUmVzaXplOiBudWxsLFxuICAgIG9uU2Nyb2xsOiBudWxsLFxuICAgIG9uU2Vla2VkOiBudWxsLFxuICAgIG9uU2Vla2luZzogbnVsbCxcbiAgICBvblNlbGVjdDogbnVsbCxcbiAgICBvblNob3c6IG51bGwsXG4gICAgb25TdGFsbGVkOiBudWxsLFxuICAgIG9uU3RvcmFnZTogbnVsbCxcbiAgICBvblN1Ym1pdDogbnVsbCxcbiAgICBvblN1c3BlbmQ6IG51bGwsXG4gICAgb25UaW1lVXBkYXRlOiBudWxsLFxuICAgIG9uVG9nZ2xlOiBudWxsLFxuICAgIG9uVW5sb2FkOiBudWxsLFxuICAgIG9uVm9sdW1lQ2hhbmdlOiBudWxsLFxuICAgIG9uV2FpdGluZzogbnVsbCxcbiAgICBvblpvb206IG51bGwsXG4gICAgb3BhY2l0eTogbnVsbCxcbiAgICBvcGVyYXRvcjogbnVsbCxcbiAgICBvcmRlcjogbnVsbCxcbiAgICBvcmllbnQ6IG51bGwsXG4gICAgb3JpZW50YXRpb246IG51bGwsXG4gICAgb3JpZ2luOiBudWxsLFxuICAgIG92ZXJmbG93OiBudWxsLFxuICAgIG92ZXJsYXk6IG51bGwsXG4gICAgb3ZlcmxpbmVQb3NpdGlvbjogbnVtYmVyLFxuICAgIG92ZXJsaW5lVGhpY2tuZXNzOiBudW1iZXIsXG4gICAgcGFpbnRPcmRlcjogbnVsbCxcbiAgICBwYW5vc2UxOiBudWxsLFxuICAgIHBhdGg6IG51bGwsXG4gICAgcGF0aExlbmd0aDogbnVtYmVyLFxuICAgIHBhdHRlcm5Db250ZW50VW5pdHM6IG51bGwsXG4gICAgcGF0dGVyblRyYW5zZm9ybTogbnVsbCxcbiAgICBwYXR0ZXJuVW5pdHM6IG51bGwsXG4gICAgcGhhc2U6IG51bGwsXG4gICAgcGluZzogc3BhY2VTZXBhcmF0ZWQsXG4gICAgcGl0Y2g6IG51bGwsXG4gICAgcGxheWJhY2tPcmRlcjogbnVsbCxcbiAgICBwb2ludGVyRXZlbnRzOiBudWxsLFxuICAgIHBvaW50czogbnVsbCxcbiAgICBwb2ludHNBdFg6IG51bWJlcixcbiAgICBwb2ludHNBdFk6IG51bWJlcixcbiAgICBwb2ludHNBdFo6IG51bWJlcixcbiAgICBwcmVzZXJ2ZUFscGhhOiBudWxsLFxuICAgIHByZXNlcnZlQXNwZWN0UmF0aW86IG51bGwsXG4gICAgcHJpbWl0aXZlVW5pdHM6IG51bGwsXG4gICAgcHJvcGFnYXRlOiBudWxsLFxuICAgIHByb3BlcnR5OiBjb21tYU9yU3BhY2VTZXBhcmF0ZWQsXG4gICAgcjogbnVsbCxcbiAgICByYWRpdXM6IG51bGwsXG4gICAgcmVmZXJyZXJQb2xpY3k6IG51bGwsXG4gICAgcmVmWDogbnVsbCxcbiAgICByZWZZOiBudWxsLFxuICAgIHJlbDogY29tbWFPclNwYWNlU2VwYXJhdGVkLFxuICAgIHJldjogY29tbWFPclNwYWNlU2VwYXJhdGVkLFxuICAgIHJlbmRlcmluZ0ludGVudDogbnVsbCxcbiAgICByZXBlYXRDb3VudDogbnVsbCxcbiAgICByZXBlYXREdXI6IG51bGwsXG4gICAgcmVxdWlyZWRFeHRlbnNpb25zOiBjb21tYU9yU3BhY2VTZXBhcmF0ZWQsXG4gICAgcmVxdWlyZWRGZWF0dXJlczogY29tbWFPclNwYWNlU2VwYXJhdGVkLFxuICAgIHJlcXVpcmVkRm9udHM6IGNvbW1hT3JTcGFjZVNlcGFyYXRlZCxcbiAgICByZXF1aXJlZEZvcm1hdHM6IGNvbW1hT3JTcGFjZVNlcGFyYXRlZCxcbiAgICByZXNvdXJjZTogbnVsbCxcbiAgICByZXN0YXJ0OiBudWxsLFxuICAgIHJlc3VsdDogbnVsbCxcbiAgICByb3RhdGU6IG51bGwsXG4gICAgcng6IG51bGwsXG4gICAgcnk6IG51bGwsXG4gICAgc2NhbGU6IG51bGwsXG4gICAgc2VlZDogbnVsbCxcbiAgICBzaGFwZVJlbmRlcmluZzogbnVsbCxcbiAgICBzaWRlOiBudWxsLFxuICAgIHNsb3BlOiBudWxsLFxuICAgIHNuYXBzaG90VGltZTogbnVsbCxcbiAgICBzcGVjdWxhckNvbnN0YW50OiBudW1iZXIsXG4gICAgc3BlY3VsYXJFeHBvbmVudDogbnVtYmVyLFxuICAgIHNwcmVhZE1ldGhvZDogbnVsbCxcbiAgICBzcGFjaW5nOiBudWxsLFxuICAgIHN0YXJ0T2Zmc2V0OiBudWxsLFxuICAgIHN0ZERldmlhdGlvbjogbnVsbCxcbiAgICBzdGVtaDogbnVsbCxcbiAgICBzdGVtdjogbnVsbCxcbiAgICBzdGl0Y2hUaWxlczogbnVsbCxcbiAgICBzdG9wQ29sb3I6IG51bGwsXG4gICAgc3RvcE9wYWNpdHk6IG51bGwsXG4gICAgc3RyaWtldGhyb3VnaFBvc2l0aW9uOiBudW1iZXIsXG4gICAgc3RyaWtldGhyb3VnaFRoaWNrbmVzczogbnVtYmVyLFxuICAgIHN0cmluZzogbnVsbCxcbiAgICBzdHJva2U6IG51bGwsXG4gICAgc3Ryb2tlRGFzaEFycmF5OiBjb21tYU9yU3BhY2VTZXBhcmF0ZWQsXG4gICAgc3Ryb2tlRGFzaE9mZnNldDogbnVsbCxcbiAgICBzdHJva2VMaW5lQ2FwOiBudWxsLFxuICAgIHN0cm9rZUxpbmVKb2luOiBudWxsLFxuICAgIHN0cm9rZU1pdGVyTGltaXQ6IG51bWJlcixcbiAgICBzdHJva2VPcGFjaXR5OiBudW1iZXIsXG4gICAgc3Ryb2tlV2lkdGg6IG51bGwsXG4gICAgc3R5bGU6IG51bGwsXG4gICAgc3VyZmFjZVNjYWxlOiBudW1iZXIsXG4gICAgc3luY0JlaGF2aW9yOiBudWxsLFxuICAgIHN5bmNCZWhhdmlvckRlZmF1bHQ6IG51bGwsXG4gICAgc3luY01hc3RlcjogbnVsbCxcbiAgICBzeW5jVG9sZXJhbmNlOiBudWxsLFxuICAgIHN5bmNUb2xlcmFuY2VEZWZhdWx0OiBudWxsLFxuICAgIHN5c3RlbUxhbmd1YWdlOiBjb21tYU9yU3BhY2VTZXBhcmF0ZWQsXG4gICAgdGFiSW5kZXg6IG51bWJlcixcbiAgICB0YWJsZVZhbHVlczogbnVsbCxcbiAgICB0YXJnZXQ6IG51bGwsXG4gICAgdGFyZ2V0WDogbnVtYmVyLFxuICAgIHRhcmdldFk6IG51bWJlcixcbiAgICB0ZXh0QW5jaG9yOiBudWxsLFxuICAgIHRleHREZWNvcmF0aW9uOiBudWxsLFxuICAgIHRleHRSZW5kZXJpbmc6IG51bGwsXG4gICAgdGV4dExlbmd0aDogbnVsbCxcbiAgICB0aW1lbGluZUJlZ2luOiBudWxsLFxuICAgIHRpdGxlOiBudWxsLFxuICAgIHRyYW5zZm9ybUJlaGF2aW9yOiBudWxsLFxuICAgIHR5cGU6IG51bGwsXG4gICAgdHlwZU9mOiBjb21tYU9yU3BhY2VTZXBhcmF0ZWQsXG4gICAgdG86IG51bGwsXG4gICAgdHJhbnNmb3JtOiBudWxsLFxuICAgIHUxOiBudWxsLFxuICAgIHUyOiBudWxsLFxuICAgIHVuZGVybGluZVBvc2l0aW9uOiBudW1iZXIsXG4gICAgdW5kZXJsaW5lVGhpY2tuZXNzOiBudW1iZXIsXG4gICAgdW5pY29kZTogbnVsbCxcbiAgICB1bmljb2RlQmlkaTogbnVsbCxcbiAgICB1bmljb2RlUmFuZ2U6IG51bGwsXG4gICAgdW5pdHNQZXJFbTogbnVtYmVyLFxuICAgIHZhbHVlczogbnVsbCxcbiAgICB2QWxwaGFiZXRpYzogbnVtYmVyLFxuICAgIHZNYXRoZW1hdGljYWw6IG51bWJlcixcbiAgICB2ZWN0b3JFZmZlY3Q6IG51bGwsXG4gICAgdkhhbmdpbmc6IG51bWJlcixcbiAgICB2SWRlb2dyYXBoaWM6IG51bWJlcixcbiAgICB2ZXJzaW9uOiBudWxsLFxuICAgIHZlcnRBZHZZOiBudW1iZXIsXG4gICAgdmVydE9yaWdpblg6IG51bWJlcixcbiAgICB2ZXJ0T3JpZ2luWTogbnVtYmVyLFxuICAgIHZpZXdCb3g6IG51bGwsXG4gICAgdmlld1RhcmdldDogbnVsbCxcbiAgICB2aXNpYmlsaXR5OiBudWxsLFxuICAgIHdpZHRoOiBudWxsLFxuICAgIHdpZHRoczogbnVsbCxcbiAgICB3b3JkU3BhY2luZzogbnVsbCxcbiAgICB3cml0aW5nTW9kZTogbnVsbCxcbiAgICB4OiBudWxsLFxuICAgIHgxOiBudWxsLFxuICAgIHgyOiBudWxsLFxuICAgIHhDaGFubmVsU2VsZWN0b3I6IG51bGwsXG4gICAgeEhlaWdodDogbnVtYmVyLFxuICAgIHk6IG51bGwsXG4gICAgeTE6IG51bGwsXG4gICAgeTI6IG51bGwsXG4gICAgeUNoYW5uZWxTZWxlY3RvcjogbnVsbCxcbiAgICB6OiBudWxsLFxuICAgIHpvb21BbmRQYW46IG51bGxcbiAgfVxufSlcbiIsICIvKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJy4vdXRpbC9zY2hlbWEuanMnKS5TY2hlbWF9IFNjaGVtYVxuICovXG5cbmltcG9ydCB7bm9ybWFsaXplfSBmcm9tICcuL25vcm1hbGl6ZS5qcydcbmltcG9ydCB7RGVmaW5lZEluZm99IGZyb20gJy4vdXRpbC9kZWZpbmVkLWluZm8uanMnXG5pbXBvcnQge0luZm99IGZyb20gJy4vdXRpbC9pbmZvLmpzJ1xuXG5jb25zdCB2YWxpZCA9IC9eZGF0YVstXFx3LjpdKyQvaVxuY29uc3QgZGFzaCA9IC8tW2Etel0vZ1xuY29uc3QgY2FwID0gL1tBLVpdL2dcblxuLyoqXG4gKiBAcGFyYW0ge1NjaGVtYX0gc2NoZW1hXG4gKiBAcGFyYW0ge3N0cmluZ30gdmFsdWVcbiAqIEByZXR1cm5zIHtJbmZvfVxuICovXG5leHBvcnQgZnVuY3Rpb24gZmluZChzY2hlbWEsIHZhbHVlKSB7XG4gIGNvbnN0IG5vcm1hbCA9IG5vcm1hbGl6ZSh2YWx1ZSlcbiAgbGV0IHByb3AgPSB2YWx1ZVxuICBsZXQgVHlwZSA9IEluZm9cblxuICBpZiAobm9ybWFsIGluIHNjaGVtYS5ub3JtYWwpIHtcbiAgICByZXR1cm4gc2NoZW1hLnByb3BlcnR5W3NjaGVtYS5ub3JtYWxbbm9ybWFsXV1cbiAgfVxuXG4gIGlmIChub3JtYWwubGVuZ3RoID4gNCAmJiBub3JtYWwuc2xpY2UoMCwgNCkgPT09ICdkYXRhJyAmJiB2YWxpZC50ZXN0KHZhbHVlKSkge1xuICAgIC8vIEF0dHJpYnV0ZSBvciBwcm9wZXJ0eS5cbiAgICBpZiAodmFsdWUuY2hhckF0KDQpID09PSAnLScpIHtcbiAgICAgIC8vIFR1cm4gaXQgaW50byBhIHByb3BlcnR5LlxuICAgICAgY29uc3QgcmVzdCA9IHZhbHVlLnNsaWNlKDUpLnJlcGxhY2UoZGFzaCwgY2FtZWxjYXNlKVxuICAgICAgcHJvcCA9ICdkYXRhJyArIHJlc3QuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyByZXN0LnNsaWNlKDEpXG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFR1cm4gaXQgaW50byBhbiBhdHRyaWJ1dGUuXG4gICAgICBjb25zdCByZXN0ID0gdmFsdWUuc2xpY2UoNClcblxuICAgICAgaWYgKCFkYXNoLnRlc3QocmVzdCkpIHtcbiAgICAgICAgbGV0IGRhc2hlcyA9IHJlc3QucmVwbGFjZShjYXAsIGtlYmFiKVxuXG4gICAgICAgIGlmIChkYXNoZXMuY2hhckF0KDApICE9PSAnLScpIHtcbiAgICAgICAgICBkYXNoZXMgPSAnLScgKyBkYXNoZXNcbiAgICAgICAgfVxuXG4gICAgICAgIHZhbHVlID0gJ2RhdGEnICsgZGFzaGVzXG4gICAgICB9XG4gICAgfVxuXG4gICAgVHlwZSA9IERlZmluZWRJbmZvXG4gIH1cblxuICByZXR1cm4gbmV3IFR5cGUocHJvcCwgdmFsdWUpXG59XG5cbi8qKlxuICogQHBhcmFtIHtzdHJpbmd9ICQwXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICovXG5mdW5jdGlvbiBrZWJhYigkMCkge1xuICByZXR1cm4gJy0nICsgJDAudG9Mb3dlckNhc2UoKVxufVxuXG4vKipcbiAqIEBwYXJhbSB7c3RyaW5nfSAkMFxuICogQHJldHVybnMge3N0cmluZ31cbiAqL1xuZnVuY3Rpb24gY2FtZWxjYXNlKCQwKSB7XG4gIHJldHVybiAkMC5jaGFyQXQoMSkudG9VcHBlckNhc2UoKVxufVxuIiwgIi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgnLi9saWIvdXRpbC9pbmZvLmpzJykuSW5mb30gSW5mb1xuICogQHR5cGVkZWYge2ltcG9ydCgnLi9saWIvdXRpbC9zY2hlbWEuanMnKS5TY2hlbWF9IFNjaGVtYVxuICovXG5cbmltcG9ydCB7bWVyZ2V9IGZyb20gJy4vbGliL3V0aWwvbWVyZ2UuanMnXG5pbXBvcnQge3hsaW5rfSBmcm9tICcuL2xpYi94bGluay5qcydcbmltcG9ydCB7eG1sfSBmcm9tICcuL2xpYi94bWwuanMnXG5pbXBvcnQge3htbG5zfSBmcm9tICcuL2xpYi94bWxucy5qcydcbmltcG9ydCB7YXJpYX0gZnJvbSAnLi9saWIvYXJpYS5qcydcbmltcG9ydCB7aHRtbCBhcyBodG1sQmFzZX0gZnJvbSAnLi9saWIvaHRtbC5qcydcbmltcG9ydCB7c3ZnIGFzIHN2Z0Jhc2V9IGZyb20gJy4vbGliL3N2Zy5qcydcblxuZXhwb3J0IHtmaW5kfSBmcm9tICcuL2xpYi9maW5kLmpzJ1xuZXhwb3J0IHtoYXN0VG9SZWFjdH0gZnJvbSAnLi9saWIvaGFzdC10by1yZWFjdC5qcydcbmV4cG9ydCB7bm9ybWFsaXplfSBmcm9tICcuL2xpYi9ub3JtYWxpemUuanMnXG5leHBvcnQgY29uc3QgaHRtbCA9IG1lcmdlKFt4bWwsIHhsaW5rLCB4bWxucywgYXJpYSwgaHRtbEJhc2VdLCAnaHRtbCcpXG5leHBvcnQgY29uc3Qgc3ZnID0gbWVyZ2UoW3htbCwgeGxpbmssIHhtbG5zLCBhcmlhLCBzdmdCYXNlXSwgJ3N2ZycpXG4iLCAiLyoqXG4gKiBAdHlwZWRlZiBPcHRpb25zXG4gKiAgIENvbmZpZ3VyYXRpb24gZm9yIGBzdHJpbmdpZnlgLlxuICogQHByb3BlcnR5IHtib29sZWFufSBbcGFkTGVmdD10cnVlXVxuICogICBXaGV0aGVyIHRvIHBhZCBhIHNwYWNlIGJlZm9yZSBhIHRva2VuLlxuICogQHByb3BlcnR5IHtib29sZWFufSBbcGFkUmlnaHQ9ZmFsc2VdXG4gKiAgIFdoZXRoZXIgdG8gcGFkIGEgc3BhY2UgYWZ0ZXIgYSB0b2tlbi5cbiAqL1xuXG4vKipcbiAqIEB0eXBlZGVmIHtPcHRpb25zfSBTdHJpbmdpZnlPcHRpb25zXG4gKiAgIFBsZWFzZSB1c2UgYFN0cmluZ2lmeU9wdGlvbnNgIGluc3RlYWQuXG4gKi9cblxuLyoqXG4gKiBQYXJzZSBjb21tYS1zZXBhcmF0ZWQgdG9rZW5zIHRvIGFuIGFycmF5LlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSB2YWx1ZVxuICogICBDb21tYS1zZXBhcmF0ZWQgdG9rZW5zLlxuICogQHJldHVybnMge0FycmF5PHN0cmluZz59XG4gKiAgIExpc3Qgb2YgdG9rZW5zLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcGFyc2UodmFsdWUpIHtcbiAgLyoqIEB0eXBlIHtBcnJheTxzdHJpbmc+fSAqL1xuICBjb25zdCB0b2tlbnMgPSBbXVxuICBjb25zdCBpbnB1dCA9IFN0cmluZyh2YWx1ZSB8fCAnJylcbiAgbGV0IGluZGV4ID0gaW5wdXQuaW5kZXhPZignLCcpXG4gIGxldCBzdGFydCA9IDBcbiAgLyoqIEB0eXBlIHtib29sZWFufSAqL1xuICBsZXQgZW5kID0gZmFsc2VcblxuICB3aGlsZSAoIWVuZCkge1xuICAgIGlmIChpbmRleCA9PT0gLTEpIHtcbiAgICAgIGluZGV4ID0gaW5wdXQubGVuZ3RoXG4gICAgICBlbmQgPSB0cnVlXG4gICAgfVxuXG4gICAgY29uc3QgdG9rZW4gPSBpbnB1dC5zbGljZShzdGFydCwgaW5kZXgpLnRyaW0oKVxuXG4gICAgaWYgKHRva2VuIHx8ICFlbmQpIHtcbiAgICAgIHRva2Vucy5wdXNoKHRva2VuKVxuICAgIH1cblxuICAgIHN0YXJ0ID0gaW5kZXggKyAxXG4gICAgaW5kZXggPSBpbnB1dC5pbmRleE9mKCcsJywgc3RhcnQpXG4gIH1cblxuICByZXR1cm4gdG9rZW5zXG59XG5cbi8qKlxuICogU2VyaWFsaXplIGFuIGFycmF5IG9mIHN0cmluZ3Mgb3IgbnVtYmVycyB0byBjb21tYS1zZXBhcmF0ZWQgdG9rZW5zLlxuICpcbiAqIEBwYXJhbSB7QXJyYXk8c3RyaW5nfG51bWJlcj59IHZhbHVlc1xuICogICBMaXN0IG9mIHRva2Vucy5cbiAqIEBwYXJhbSB7T3B0aW9uc30gW29wdGlvbnNdXG4gKiAgIENvbmZpZ3VyYXRpb24gZm9yIGBzdHJpbmdpZnlgIChvcHRpb25hbCkuXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICogICBDb21tYS1zZXBhcmF0ZWQgdG9rZW5zLlxuICovXG5leHBvcnQgZnVuY3Rpb24gc3RyaW5naWZ5KHZhbHVlcywgb3B0aW9ucykge1xuICBjb25zdCBzZXR0aW5ncyA9IG9wdGlvbnMgfHwge31cblxuICAvLyBFbnN1cmUgdGhlIGxhc3QgZW1wdHkgZW50cnkgaXMgc2Vlbi5cbiAgY29uc3QgaW5wdXQgPSB2YWx1ZXNbdmFsdWVzLmxlbmd0aCAtIDFdID09PSAnJyA/IFsuLi52YWx1ZXMsICcnXSA6IHZhbHVlc1xuXG4gIHJldHVybiBpbnB1dFxuICAgIC5qb2luKFxuICAgICAgKHNldHRpbmdzLnBhZFJpZ2h0ID8gJyAnIDogJycpICtcbiAgICAgICAgJywnICtcbiAgICAgICAgKHNldHRpbmdzLnBhZExlZnQgPT09IGZhbHNlID8gJycgOiAnICcpXG4gICAgKVxuICAgIC50cmltKClcbn1cbiIsICIvKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ2hhc3QnKS5FbGVtZW50fSBFbGVtZW50XG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdoYXN0JykuUHJvcGVydGllc30gUHJvcGVydGllc1xuICovXG5cbi8qKlxuICogQHRlbXBsYXRlIHtzdHJpbmd9IFNpbXBsZVNlbGVjdG9yXG4gKiAgIFNlbGVjdG9yIHR5cGUuXG4gKiBAdGVtcGxhdGUge3N0cmluZ30gRGVmYXVsdFRhZ05hbWVcbiAqICAgRGVmYXVsdCB0YWcgbmFtZS5cbiAqIEB0eXBlZGVmIHsoXG4gKiAgIFNpbXBsZVNlbGVjdG9yIGV4dGVuZHMgJydcbiAqICAgICA/IERlZmF1bHRUYWdOYW1lXG4gKiAgICAgOiBTaW1wbGVTZWxlY3RvciBleHRlbmRzIGAke2luZmVyIFRhZ05hbWV9LiR7aW5mZXIgUmVzdH1gXG4gKiAgICAgPyBFeHRyYWN0VGFnTmFtZTxUYWdOYW1lLCBEZWZhdWx0VGFnTmFtZT5cbiAqICAgICA6IFNpbXBsZVNlbGVjdG9yIGV4dGVuZHMgYCR7aW5mZXIgVGFnTmFtZX0jJHtpbmZlciBSZXN0fWBcbiAqICAgICA/IEV4dHJhY3RUYWdOYW1lPFRhZ05hbWUsIERlZmF1bHRUYWdOYW1lPlxuICogICAgIDogU2ltcGxlU2VsZWN0b3IgZXh0ZW5kcyBzdHJpbmdcbiAqICAgICA/IFNpbXBsZVNlbGVjdG9yXG4gKiAgICAgOiBEZWZhdWx0VGFnTmFtZVxuICogKX0gRXh0cmFjdFRhZ05hbWVcbiAqICAgRXh0cmFjdCB0YWcgbmFtZSBmcm9tIGEgc2ltcGxlIHNlbGVjdG9yLlxuICovXG5cbmNvbnN0IHNlYXJjaCA9IC9bIy5dL2dcblxuLyoqXG4gKiBDcmVhdGUgYSBoYXN0IGVsZW1lbnQgZnJvbSBhIHNpbXBsZSBDU1Mgc2VsZWN0b3IuXG4gKlxuICogQHRlbXBsYXRlIHtzdHJpbmd9IFNlbGVjdG9yXG4gKiAgIFR5cGUgb2Ygc2VsZWN0b3IuXG4gKiBAdGVtcGxhdGUge3N0cmluZ30gW0RlZmF1bHRUYWdOYW1lPSdkaXYnXVxuICogICBUeXBlIG9mIGRlZmF1bHQgdGFnIG5hbWUgKGRlZmF1bHQ6IGAnZGl2J2ApLlxuICogQHBhcmFtIHtTZWxlY3RvciB8IG51bGwgfCB1bmRlZmluZWR9IFtzZWxlY3Rvcl1cbiAqICAgU2ltcGxlIENTUyBzZWxlY3RvciAob3B0aW9uYWwpLlxuICpcbiAqICAgQ2FuIGNvbnRhaW4gYSB0YWcgbmFtZSAoYGZvb2ApLCBjbGFzc2VzIChgLmJhcmApLCBhbmQgYW4gSUQgKGAjYmF6YCkuXG4gKiAgIE11bHRpcGxlIGNsYXNzZXMgYXJlIGFsbG93ZWQuXG4gKiAgIFVzZXMgdGhlIGxhc3QgSUQgaWYgbXVsdGlwbGUgSURzIGFyZSBmb3VuZC5cbiAqIEBwYXJhbSB7RGVmYXVsdFRhZ05hbWUgfCBudWxsIHwgdW5kZWZpbmVkfSBbZGVmYXVsdFRhZ05hbWU9J2RpdiddXG4gKiAgIFRhZyBuYW1lIHRvIHVzZSBpZiBgc2VsZWN0b3JgIGRvZXMgbm90IHNwZWNpZnkgb25lIChkZWZhdWx0OiBgJ2RpdidgKS5cbiAqIEByZXR1cm5zIHtFbGVtZW50ICYge3RhZ05hbWU6IEV4dHJhY3RUYWdOYW1lPFNlbGVjdG9yLCBEZWZhdWx0VGFnTmFtZT59fVxuICogICBCdWlsdCBlbGVtZW50LlxuICovXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VTZWxlY3RvcihzZWxlY3RvciwgZGVmYXVsdFRhZ05hbWUpIHtcbiAgY29uc3QgdmFsdWUgPSBzZWxlY3RvciB8fCAnJ1xuICAvKiogQHR5cGUge1Byb3BlcnRpZXN9ICovXG4gIGNvbnN0IHByb3BzID0ge31cbiAgbGV0IHN0YXJ0ID0gMFxuICAvKiogQHR5cGUge3N0cmluZyB8IHVuZGVmaW5lZH0gKi9cbiAgbGV0IHByZXZpb3VzXG4gIC8qKiBAdHlwZSB7c3RyaW5nIHwgdW5kZWZpbmVkfSAqL1xuICBsZXQgdGFnTmFtZVxuXG4gIHdoaWxlIChzdGFydCA8IHZhbHVlLmxlbmd0aCkge1xuICAgIHNlYXJjaC5sYXN0SW5kZXggPSBzdGFydFxuICAgIGNvbnN0IG1hdGNoID0gc2VhcmNoLmV4ZWModmFsdWUpXG4gICAgY29uc3Qgc3VidmFsdWUgPSB2YWx1ZS5zbGljZShzdGFydCwgbWF0Y2ggPyBtYXRjaC5pbmRleCA6IHZhbHVlLmxlbmd0aClcblxuICAgIGlmIChzdWJ2YWx1ZSkge1xuICAgICAgaWYgKCFwcmV2aW91cykge1xuICAgICAgICB0YWdOYW1lID0gc3VidmFsdWVcbiAgICAgIH0gZWxzZSBpZiAocHJldmlvdXMgPT09ICcjJykge1xuICAgICAgICBwcm9wcy5pZCA9IHN1YnZhbHVlXG4gICAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkocHJvcHMuY2xhc3NOYW1lKSkge1xuICAgICAgICBwcm9wcy5jbGFzc05hbWUucHVzaChzdWJ2YWx1ZSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHByb3BzLmNsYXNzTmFtZSA9IFtzdWJ2YWx1ZV1cbiAgICAgIH1cblxuICAgICAgc3RhcnQgKz0gc3VidmFsdWUubGVuZ3RoXG4gICAgfVxuXG4gICAgaWYgKG1hdGNoKSB7XG4gICAgICBwcmV2aW91cyA9IG1hdGNoWzBdXG4gICAgICBzdGFydCsrXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHtcbiAgICB0eXBlOiAnZWxlbWVudCcsXG4gICAgLy8gQHRzLWV4cGVjdC1lcnJvcjogdGFnIG5hbWUgaXMgcGFyc2VkLlxuICAgIHRhZ05hbWU6IHRhZ05hbWUgfHwgZGVmYXVsdFRhZ05hbWUgfHwgJ2RpdicsXG4gICAgcHJvcGVydGllczogcHJvcHMsXG4gICAgY2hpbGRyZW46IFtdXG4gIH1cbn1cbiIsICIvKipcbiAqIFBhcnNlIHNwYWNlLXNlcGFyYXRlZCB0b2tlbnMgdG8gYW4gYXJyYXkgb2Ygc3RyaW5ncy5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gdmFsdWVcbiAqICAgU3BhY2Utc2VwYXJhdGVkIHRva2Vucy5cbiAqIEByZXR1cm5zIHtBcnJheTxzdHJpbmc+fVxuICogICBMaXN0IG9mIHRva2Vucy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlKHZhbHVlKSB7XG4gIGNvbnN0IGlucHV0ID0gU3RyaW5nKHZhbHVlIHx8ICcnKS50cmltKClcbiAgcmV0dXJuIGlucHV0ID8gaW5wdXQuc3BsaXQoL1sgXFx0XFxuXFxyXFxmXSsvZykgOiBbXVxufVxuXG4vKipcbiAqIFNlcmlhbGl6ZSBhbiBhcnJheSBvZiBzdHJpbmdzIGFzIHNwYWNlIHNlcGFyYXRlZC10b2tlbnMuXG4gKlxuICogQHBhcmFtIHtBcnJheTxzdHJpbmd8bnVtYmVyPn0gdmFsdWVzXG4gKiAgIExpc3Qgb2YgdG9rZW5zLlxuICogQHJldHVybnMge3N0cmluZ31cbiAqICAgU3BhY2Utc2VwYXJhdGVkIHRva2Vucy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHN0cmluZ2lmeSh2YWx1ZXMpIHtcbiAgcmV0dXJuIHZhbHVlcy5qb2luKCcgJykudHJpbSgpXG59XG4iLCAiLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdoYXN0JykuRWxlbWVudH0gRWxlbWVudFxuICogQHR5cGVkZWYge2ltcG9ydCgnaGFzdCcpLk5vZGVzfSBOb2Rlc1xuICogQHR5cGVkZWYge2ltcG9ydCgnaGFzdCcpLlJvb3R9IFJvb3RcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ2hhc3QnKS5Sb290Q29udGVudH0gUm9vdENvbnRlbnRcbiAqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdwcm9wZXJ0eS1pbmZvcm1hdGlvbicpLkluZm99IEluZm9cbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ3Byb3BlcnR5LWluZm9ybWF0aW9uJykuU2NoZW1hfSBTY2hlbWFcbiAqL1xuXG4vKipcbiAqIEB0eXBlZGVmIHtFbGVtZW50IHwgUm9vdH0gUmVzdWx0XG4gKiAgIFJlc3VsdCBmcm9tIGEgYGhgIChvciBgc2ApIGNhbGwuXG4gKlxuICogQHR5cGVkZWYge251bWJlciB8IHN0cmluZ30gU3R5bGVWYWx1ZVxuICogICBWYWx1ZSBmb3IgYSBDU1Mgc3R5bGUgZmllbGQuXG4gKiBAdHlwZWRlZiB7UmVjb3JkPHN0cmluZywgU3R5bGVWYWx1ZT59IFN0eWxlXG4gKiAgIFN1cHBvcnRlZCB2YWx1ZSBvZiBhIGBzdHlsZWAgcHJvcC5cbiAqIEB0eXBlZGVmIHtib29sZWFuIHwgbnVtYmVyIHwgc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH0gUHJpbWl0aXZlVmFsdWVcbiAqICAgUHJpbWl0aXZlIHByb3BlcnR5IHZhbHVlLlxuICogQHR5cGVkZWYge0FycmF5PG51bWJlciB8IHN0cmluZz59IEFycmF5VmFsdWVcbiAqICAgTGlzdCBvZiBwcm9wZXJ0eSB2YWx1ZXMgZm9yIHNwYWNlLSBvciBjb21tYSBzZXBhcmF0ZWQgdmFsdWVzIChzdWNoIGFzIGBjbGFzc05hbWVgKS5cbiAqIEB0eXBlZGVmIHtBcnJheVZhbHVlIHwgUHJpbWl0aXZlVmFsdWV9IFByb3BlcnR5VmFsdWVcbiAqICAgUHJpbWl0aXZlIHZhbHVlIG9yIGxpc3QgdmFsdWUuXG4gKiBAdHlwZWRlZiB7e1twcm9wZXJ0eTogc3RyaW5nXTogUHJvcGVydHlWYWx1ZSB8IFN0eWxlfX0gUHJvcGVydGllc1xuICogICBBY2NlcHRhYmxlIHZhbHVlIGZvciBlbGVtZW50IHByb3BlcnRpZXMuXG4gKlxuICogQHR5cGVkZWYge251bWJlciB8IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWR9IFByaW1pdGl2ZUNoaWxkXG4gKiAgIFByaW1pdGl2ZSBjaGlsZHJlbiwgZWl0aGVyIGlnbm9yZWQgKG51bGxpc2gpLCBvciB0dXJuZWQgaW50byB0ZXh0IG5vZGVzLlxuICogQHR5cGVkZWYge0FycmF5PEFycmF5Q2hpbGROZXN0ZWQgfCBOb2RlcyB8IFByaW1pdGl2ZUNoaWxkPn0gQXJyYXlDaGlsZFxuICogICBMaXN0IG9mIGNoaWxkcmVuLlxuICogQHR5cGVkZWYge0FycmF5PE5vZGVzIHwgUHJpbWl0aXZlQ2hpbGQ+fSBBcnJheUNoaWxkTmVzdGVkXG4gKiAgIExpc3Qgb2YgY2hpbGRyZW4gKGRlZXApLlxuICogQHR5cGVkZWYge0FycmF5Q2hpbGQgfCBOb2RlcyB8IFByaW1pdGl2ZUNoaWxkfSBDaGlsZFxuICogICBBY2NlcHRhYmxlIGNoaWxkIHZhbHVlLlxuICovXG5cbmltcG9ydCB7cGFyc2UgYXMgY29tbWFzfSBmcm9tICdjb21tYS1zZXBhcmF0ZWQtdG9rZW5zJ1xuaW1wb3J0IHtwYXJzZVNlbGVjdG9yfSBmcm9tICdoYXN0LXV0aWwtcGFyc2Utc2VsZWN0b3InXG5pbXBvcnQge2ZpbmQsIG5vcm1hbGl6ZX0gZnJvbSAncHJvcGVydHktaW5mb3JtYXRpb24nXG5pbXBvcnQge3BhcnNlIGFzIHNwYWNlc30gZnJvbSAnc3BhY2Utc2VwYXJhdGVkLXRva2VucydcblxuY29uc3QgYnV0dG9uVHlwZXMgPSBuZXcgU2V0KFsnYnV0dG9uJywgJ21lbnUnLCAncmVzZXQnLCAnc3VibWl0J10pXG5cbmNvbnN0IG93biA9IHt9Lmhhc093blByb3BlcnR5XG5cbi8qKlxuICogQHBhcmFtIHtTY2hlbWF9IHNjaGVtYVxuICogICBTY2hlbWEgdG8gdXNlLlxuICogQHBhcmFtIHtzdHJpbmd9IGRlZmF1bHRUYWdOYW1lXG4gKiAgIERlZmF1bHQgdGFnIG5hbWUuXG4gKiBAcGFyYW0ge0FycmF5PHN0cmluZz4gfCB1bmRlZmluZWR9IFtjYXNlU2Vuc2l0aXZlXVxuICogICBDYXNlLXNlbnNpdGl2ZSB0YWcgbmFtZXMgKGRlZmF1bHQ6IGB1bmRlZmluZWRgKS5cbiAqIEByZXR1cm5zXG4gKiAgIGBoYC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUgoc2NoZW1hLCBkZWZhdWx0VGFnTmFtZSwgY2FzZVNlbnNpdGl2ZSkge1xuICBjb25zdCBhZGp1c3QgPSBjYXNlU2Vuc2l0aXZlICYmIGNyZWF0ZUFkanVzdE1hcChjYXNlU2Vuc2l0aXZlKVxuXG4gIC8qKlxuICAgKiBIeXBlcnNjcmlwdCBjb21wYXRpYmxlIERTTCBmb3IgY3JlYXRpbmcgdmlydHVhbCBoYXN0IHRyZWVzLlxuICAgKlxuICAgKiBAb3ZlcmxvYWRcbiAgICogQHBhcmFtIHtudWxsIHwgdW5kZWZpbmVkfSBbc2VsZWN0b3JdXG4gICAqIEBwYXJhbSB7Li4uQ2hpbGR9IGNoaWxkcmVuXG4gICAqIEByZXR1cm5zIHtSb290fVxuICAgKlxuICAgKiBAb3ZlcmxvYWRcbiAgICogQHBhcmFtIHtzdHJpbmd9IHNlbGVjdG9yXG4gICAqIEBwYXJhbSB7UHJvcGVydGllc30gcHJvcGVydGllc1xuICAgKiBAcGFyYW0gey4uLkNoaWxkfSBjaGlsZHJlblxuICAgKiBAcmV0dXJucyB7RWxlbWVudH1cbiAgICpcbiAgICogQG92ZXJsb2FkXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBzZWxlY3RvclxuICAgKiBAcGFyYW0gey4uLkNoaWxkfSBjaGlsZHJlblxuICAgKiBAcmV0dXJucyB7RWxlbWVudH1cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbc2VsZWN0b3JdXG4gICAqICAgU2VsZWN0b3IuXG4gICAqIEBwYXJhbSB7Q2hpbGQgfCBQcm9wZXJ0aWVzIHwgbnVsbCB8IHVuZGVmaW5lZH0gW3Byb3BlcnRpZXNdXG4gICAqICAgUHJvcGVydGllcyAob3IgZmlyc3QgY2hpbGQpIChkZWZhdWx0OiBgdW5kZWZpbmVkYCkuXG4gICAqIEBwYXJhbSB7Li4uQ2hpbGR9IGNoaWxkcmVuXG4gICAqICAgQ2hpbGRyZW4uXG4gICAqIEByZXR1cm5zIHtSZXN1bHR9XG4gICAqICAgUmVzdWx0LlxuICAgKi9cbiAgZnVuY3Rpb24gaChzZWxlY3RvciwgcHJvcGVydGllcywgLi4uY2hpbGRyZW4pIHtcbiAgICBsZXQgaW5kZXggPSAtMVxuICAgIC8qKiBAdHlwZSB7UmVzdWx0fSAqL1xuICAgIGxldCBub2RlXG5cbiAgICBpZiAoc2VsZWN0b3IgPT09IHVuZGVmaW5lZCB8fCBzZWxlY3RvciA9PT0gbnVsbCkge1xuICAgICAgbm9kZSA9IHt0eXBlOiAncm9vdCcsIGNoaWxkcmVuOiBbXX1cbiAgICAgIC8vIFByb3BlcnRpZXMgYXJlIG5vdCBzdXBwb3J0ZWQgZm9yIHJvb3RzLlxuICAgICAgY29uc3QgY2hpbGQgPSAvKiogQHR5cGUge0NoaWxkfSAqLyAocHJvcGVydGllcylcbiAgICAgIGNoaWxkcmVuLnVuc2hpZnQoY2hpbGQpXG4gICAgfSBlbHNlIHtcbiAgICAgIG5vZGUgPSBwYXJzZVNlbGVjdG9yKHNlbGVjdG9yLCBkZWZhdWx0VGFnTmFtZSlcbiAgICAgIC8vIE5vcm1hbGl6ZSB0aGUgbmFtZS5cbiAgICAgIG5vZGUudGFnTmFtZSA9IG5vZGUudGFnTmFtZS50b0xvd2VyQ2FzZSgpXG4gICAgICBpZiAoYWRqdXN0ICYmIG93bi5jYWxsKGFkanVzdCwgbm9kZS50YWdOYW1lKSkge1xuICAgICAgICBub2RlLnRhZ05hbWUgPSBhZGp1c3Rbbm9kZS50YWdOYW1lXVxuICAgICAgfVxuXG4gICAgICAvLyBIYW5kbGUgcHJvcHMuXG4gICAgICBpZiAoaXNQcm9wZXJ0aWVzKHByb3BlcnRpZXMsIG5vZGUudGFnTmFtZSkpIHtcbiAgICAgICAgLyoqIEB0eXBlIHtzdHJpbmd9ICovXG4gICAgICAgIGxldCBrZXlcblxuICAgICAgICBmb3IgKGtleSBpbiBwcm9wZXJ0aWVzKSB7XG4gICAgICAgICAgaWYgKG93bi5jYWxsKHByb3BlcnRpZXMsIGtleSkpIHtcbiAgICAgICAgICAgIGFkZFByb3BlcnR5KHNjaGVtYSwgbm9kZS5wcm9wZXJ0aWVzLCBrZXksIHByb3BlcnRpZXNba2V5XSlcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNoaWxkcmVuLnVuc2hpZnQocHJvcGVydGllcylcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBIYW5kbGUgY2hpbGRyZW4uXG4gICAgd2hpbGUgKCsraW5kZXggPCBjaGlsZHJlbi5sZW5ndGgpIHtcbiAgICAgIGFkZENoaWxkKG5vZGUuY2hpbGRyZW4sIGNoaWxkcmVuW2luZGV4XSlcbiAgICB9XG5cbiAgICBpZiAobm9kZS50eXBlID09PSAnZWxlbWVudCcgJiYgbm9kZS50YWdOYW1lID09PSAndGVtcGxhdGUnKSB7XG4gICAgICBub2RlLmNvbnRlbnQgPSB7dHlwZTogJ3Jvb3QnLCBjaGlsZHJlbjogbm9kZS5jaGlsZHJlbn1cbiAgICAgIG5vZGUuY2hpbGRyZW4gPSBbXVxuICAgIH1cblxuICAgIHJldHVybiBub2RlXG4gIH1cblxuICByZXR1cm4gaFxufVxuXG4vKipcbiAqIENoZWNrIGlmIHNvbWV0aGluZyBpcyBwcm9wZXJ0aWVzIG9yIGEgY2hpbGQuXG4gKlxuICogQHBhcmFtIHtDaGlsZCB8IFByb3BlcnRpZXN9IHZhbHVlXG4gKiAgIFZhbHVlIHRvIGNoZWNrLlxuICogQHBhcmFtIHtzdHJpbmd9IG5hbWVcbiAqICAgVGFnIG5hbWUuXG4gKiBAcmV0dXJucyB7dmFsdWUgaXMgUHJvcGVydGllc31cbiAqICAgV2hldGhlciBgdmFsdWVgIGlzIGEgcHJvcGVydGllcyBvYmplY3QuXG4gKi9cbmZ1bmN0aW9uIGlzUHJvcGVydGllcyh2YWx1ZSwgbmFtZSkge1xuICBpZiAoXG4gICAgdmFsdWUgPT09IG51bGwgfHxcbiAgICB2YWx1ZSA9PT0gdW5kZWZpbmVkIHx8XG4gICAgdHlwZW9mIHZhbHVlICE9PSAnb2JqZWN0JyB8fFxuICAgIEFycmF5LmlzQXJyYXkodmFsdWUpXG4gICkge1xuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgaWYgKG5hbWUgPT09ICdpbnB1dCcgfHwgIXZhbHVlLnR5cGUgfHwgdHlwZW9mIHZhbHVlLnR5cGUgIT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIHRydWVcbiAgfVxuXG4gIGlmICgnY2hpbGRyZW4nIGluIHZhbHVlICYmIEFycmF5LmlzQXJyYXkodmFsdWUuY2hpbGRyZW4pKSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cblxuICBpZiAobmFtZSA9PT0gJ2J1dHRvbicpIHtcbiAgICByZXR1cm4gYnV0dG9uVHlwZXMuaGFzKHZhbHVlLnR5cGUudG9Mb3dlckNhc2UoKSlcbiAgfVxuXG4gIHJldHVybiAhKCd2YWx1ZScgaW4gdmFsdWUpXG59XG5cbi8qKlxuICogQHBhcmFtIHtTY2hlbWF9IHNjaGVtYVxuICogICBTY2hlbWEuXG4gKiBAcGFyYW0ge1Byb3BlcnRpZXN9IHByb3BlcnRpZXNcbiAqICAgUHJvcGVydGllcyBvYmplY3QuXG4gKiBAcGFyYW0ge3N0cmluZ30ga2V5XG4gKiAgIFByb3BlcnR5IG5hbWUuXG4gKiBAcGFyYW0ge1Byb3BlcnR5VmFsdWUgfCBTdHlsZX0gdmFsdWVcbiAqICAgUHJvcGVydHkgdmFsdWUuXG4gKiBAcmV0dXJucyB7dW5kZWZpbmVkfVxuICogICBOb3RoaW5nLlxuICovXG5mdW5jdGlvbiBhZGRQcm9wZXJ0eShzY2hlbWEsIHByb3BlcnRpZXMsIGtleSwgdmFsdWUpIHtcbiAgY29uc3QgaW5mbyA9IGZpbmQoc2NoZW1hLCBrZXkpXG4gIGxldCBpbmRleCA9IC0xXG4gIC8qKiBAdHlwZSB7UHJvcGVydHlWYWx1ZX0gKi9cbiAgbGV0IHJlc3VsdFxuXG4gIC8vIElnbm9yZSBudWxsaXNoIGFuZCBOYU4gdmFsdWVzLlxuICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCB8fCB2YWx1ZSA9PT0gbnVsbCkgcmV0dXJuXG5cbiAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicpIHtcbiAgICAvLyBJZ25vcmUgTmFOLlxuICAgIGlmIChOdW1iZXIuaXNOYU4odmFsdWUpKSByZXR1cm5cblxuICAgIHJlc3VsdCA9IHZhbHVlXG4gIH1cbiAgLy8gQm9vbGVhbnMuXG4gIGVsc2UgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ2Jvb2xlYW4nKSB7XG4gICAgcmVzdWx0ID0gdmFsdWVcbiAgfVxuICAvLyBIYW5kbGUgbGlzdCB2YWx1ZXMuXG4gIGVsc2UgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICBpZiAoaW5mby5zcGFjZVNlcGFyYXRlZCkge1xuICAgICAgcmVzdWx0ID0gc3BhY2VzKHZhbHVlKVxuICAgIH0gZWxzZSBpZiAoaW5mby5jb21tYVNlcGFyYXRlZCkge1xuICAgICAgcmVzdWx0ID0gY29tbWFzKHZhbHVlKVxuICAgIH0gZWxzZSBpZiAoaW5mby5jb21tYU9yU3BhY2VTZXBhcmF0ZWQpIHtcbiAgICAgIHJlc3VsdCA9IHNwYWNlcyhjb21tYXModmFsdWUpLmpvaW4oJyAnKSlcbiAgICB9IGVsc2Uge1xuICAgICAgcmVzdWx0ID0gcGFyc2VQcmltaXRpdmUoaW5mbywgaW5mby5wcm9wZXJ0eSwgdmFsdWUpXG4gICAgfVxuICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgcmVzdWx0ID0gdmFsdWUuY29uY2F0KClcbiAgfSBlbHNlIHtcbiAgICByZXN1bHQgPSBpbmZvLnByb3BlcnR5ID09PSAnc3R5bGUnID8gc3R5bGUodmFsdWUpIDogU3RyaW5nKHZhbHVlKVxuICB9XG5cbiAgaWYgKEFycmF5LmlzQXJyYXkocmVzdWx0KSkge1xuICAgIC8qKiBAdHlwZSB7QXJyYXk8bnVtYmVyIHwgc3RyaW5nPn0gKi9cbiAgICBjb25zdCBmaW5hbFJlc3VsdCA9IFtdXG5cbiAgICB3aGlsZSAoKytpbmRleCA8IHJlc3VsdC5sZW5ndGgpIHtcbiAgICAgIC8vIEFzc3VtZSBubyBib29sZWFucyBpbiBhcnJheS5cbiAgICAgIGNvbnN0IHZhbHVlID0gLyoqIEB0eXBlIHtudW1iZXIgfCBzdHJpbmd9ICovIChcbiAgICAgICAgcGFyc2VQcmltaXRpdmUoaW5mbywgaW5mby5wcm9wZXJ0eSwgcmVzdWx0W2luZGV4XSlcbiAgICAgIClcbiAgICAgIGZpbmFsUmVzdWx0W2luZGV4XSA9IHZhbHVlXG4gICAgfVxuXG4gICAgcmVzdWx0ID0gZmluYWxSZXN1bHRcbiAgfVxuXG4gIC8vIENsYXNzIG5hbWVzICh3aGljaCBjYW4gYmUgYWRkZWQgYm90aCBvbiB0aGUgYHNlbGVjdG9yYCBhbmQgaGVyZSkuXG4gIGlmIChpbmZvLnByb3BlcnR5ID09PSAnY2xhc3NOYW1lJyAmJiBBcnJheS5pc0FycmF5KHByb3BlcnRpZXMuY2xhc3NOYW1lKSkge1xuICAgIC8vIEFzc3VtZSBubyBib29sZWFucyBpbiBgY2xhc3NOYW1lYC5cbiAgICBjb25zdCB2YWx1ZSA9IC8qKiBAdHlwZSB7bnVtYmVyIHwgc3RyaW5nfSAqLyAocmVzdWx0KVxuICAgIHJlc3VsdCA9IHByb3BlcnRpZXMuY2xhc3NOYW1lLmNvbmNhdCh2YWx1ZSlcbiAgfVxuXG4gIHByb3BlcnRpZXNbaW5mby5wcm9wZXJ0eV0gPSByZXN1bHRcbn1cblxuLyoqXG4gKiBAcGFyYW0ge0FycmF5PFJvb3RDb250ZW50Pn0gbm9kZXNcbiAqICAgQ2hpbGRyZW4uXG4gKiBAcGFyYW0ge0NoaWxkfSB2YWx1ZVxuICogICBDaGlsZC5cbiAqIEByZXR1cm5zIHt1bmRlZmluZWR9XG4gKiAgIE5vdGhpbmcuXG4gKi9cbmZ1bmN0aW9uIGFkZENoaWxkKG5vZGVzLCB2YWx1ZSkge1xuICBsZXQgaW5kZXggPSAtMVxuXG4gIGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkIHx8IHZhbHVlID09PSBudWxsKSB7XG4gICAgLy8gRW1wdHkuXG4gIH0gZWxzZSBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyB8fCB0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInKSB7XG4gICAgbm9kZXMucHVzaCh7dHlwZTogJ3RleHQnLCB2YWx1ZTogU3RyaW5nKHZhbHVlKX0pXG4gIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICB3aGlsZSAoKytpbmRleCA8IHZhbHVlLmxlbmd0aCkge1xuICAgICAgYWRkQ2hpbGQobm9kZXMsIHZhbHVlW2luZGV4XSlcbiAgICB9XG4gIH0gZWxzZSBpZiAodHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJiAndHlwZScgaW4gdmFsdWUpIHtcbiAgICBpZiAodmFsdWUudHlwZSA9PT0gJ3Jvb3QnKSB7XG4gICAgICBhZGRDaGlsZChub2RlcywgdmFsdWUuY2hpbGRyZW4pXG4gICAgfSBlbHNlIHtcbiAgICAgIG5vZGVzLnB1c2godmFsdWUpXG4gICAgfVxuICB9IGVsc2Uge1xuICAgIHRocm93IG5ldyBFcnJvcignRXhwZWN0ZWQgbm9kZSwgbm9kZXMsIG9yIHN0cmluZywgZ290IGAnICsgdmFsdWUgKyAnYCcpXG4gIH1cbn1cblxuLyoqXG4gKiBQYXJzZSBhIHNpbmdsZSBwcmltaXRpdmVzLlxuICpcbiAqIEBwYXJhbSB7SW5mb30gaW5mb1xuICogICBQcm9wZXJ0eSBpbmZvcm1hdGlvbi5cbiAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lXG4gKiAgIFByb3BlcnR5IG5hbWUuXG4gKiBAcGFyYW0ge1ByaW1pdGl2ZVZhbHVlfSB2YWx1ZVxuICogICBQcm9wZXJ0eSB2YWx1ZS5cbiAqIEByZXR1cm5zIHtQcmltaXRpdmVWYWx1ZX1cbiAqICAgUHJvcGVydHkgdmFsdWUuXG4gKi9cbmZ1bmN0aW9uIHBhcnNlUHJpbWl0aXZlKGluZm8sIG5hbWUsIHZhbHVlKSB7XG4gIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgaWYgKGluZm8ubnVtYmVyICYmIHZhbHVlICYmICFOdW1iZXIuaXNOYU4oTnVtYmVyKHZhbHVlKSkpIHtcbiAgICAgIHJldHVybiBOdW1iZXIodmFsdWUpXG4gICAgfVxuXG4gICAgaWYgKFxuICAgICAgKGluZm8uYm9vbGVhbiB8fCBpbmZvLm92ZXJsb2FkZWRCb29sZWFuKSAmJlxuICAgICAgKHZhbHVlID09PSAnJyB8fCBub3JtYWxpemUodmFsdWUpID09PSBub3JtYWxpemUobmFtZSkpXG4gICAgKSB7XG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiB2YWx1ZVxufVxuXG4vKipcbiAqIFNlcmlhbGl6ZSBhIGBzdHlsZWAgb2JqZWN0IGFzIGEgc3RyaW5nLlxuICpcbiAqIEBwYXJhbSB7U3R5bGV9IHZhbHVlXG4gKiAgIFN0eWxlIG9iamVjdC5cbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKiAgIENTUyBzdHJpbmcuXG4gKi9cbmZ1bmN0aW9uIHN0eWxlKHZhbHVlKSB7XG4gIC8qKiBAdHlwZSB7QXJyYXk8c3RyaW5nPn0gKi9cbiAgY29uc3QgcmVzdWx0ID0gW11cbiAgLyoqIEB0eXBlIHtzdHJpbmd9ICovXG4gIGxldCBrZXlcblxuICBmb3IgKGtleSBpbiB2YWx1ZSkge1xuICAgIGlmIChvd24uY2FsbCh2YWx1ZSwga2V5KSkge1xuICAgICAgcmVzdWx0LnB1c2goW2tleSwgdmFsdWVba2V5XV0uam9pbignOiAnKSlcbiAgICB9XG4gIH1cblxuICByZXR1cm4gcmVzdWx0LmpvaW4oJzsgJylcbn1cblxuLyoqXG4gKiBDcmVhdGUgYSBtYXAgdG8gYWRqdXN0IGNhc2luZy5cbiAqXG4gKiBAcGFyYW0ge0FycmF5PHN0cmluZz59IHZhbHVlc1xuICogICBMaXN0IG9mIHByb3Blcmx5IGNhc2VkIGtleXMuXG4gKiBAcmV0dXJucyB7UmVjb3JkPHN0cmluZywgc3RyaW5nPn1cbiAqICAgTWFwIG9mIGxvd2VyY2FzZSBrZXlzIHRvIHVwcGVyY2FzZSBrZXlzLlxuICovXG5mdW5jdGlvbiBjcmVhdGVBZGp1c3RNYXAodmFsdWVzKSB7XG4gIC8qKiBAdHlwZSB7UmVjb3JkPHN0cmluZywgc3RyaW5nPn0gKi9cbiAgY29uc3QgcmVzdWx0ID0ge31cbiAgbGV0IGluZGV4ID0gLTFcblxuICB3aGlsZSAoKytpbmRleCA8IHZhbHVlcy5sZW5ndGgpIHtcbiAgICByZXN1bHRbdmFsdWVzW2luZGV4XS50b0xvd2VyQ2FzZSgpXSA9IHZhbHVlc1tpbmRleF1cbiAgfVxuXG4gIHJldHVybiByZXN1bHRcbn1cbiIsICJleHBvcnQgY29uc3Qgc3ZnQ2FzZVNlbnNpdGl2ZVRhZ05hbWVzID0gW1xuICAnYWx0R2x5cGgnLFxuICAnYWx0R2x5cGhEZWYnLFxuICAnYWx0R2x5cGhJdGVtJyxcbiAgJ2FuaW1hdGVDb2xvcicsXG4gICdhbmltYXRlTW90aW9uJyxcbiAgJ2FuaW1hdGVUcmFuc2Zvcm0nLFxuICAnY2xpcFBhdGgnLFxuICAnZmVCbGVuZCcsXG4gICdmZUNvbG9yTWF0cml4JyxcbiAgJ2ZlQ29tcG9uZW50VHJhbnNmZXInLFxuICAnZmVDb21wb3NpdGUnLFxuICAnZmVDb252b2x2ZU1hdHJpeCcsXG4gICdmZURpZmZ1c2VMaWdodGluZycsXG4gICdmZURpc3BsYWNlbWVudE1hcCcsXG4gICdmZURpc3RhbnRMaWdodCcsXG4gICdmZURyb3BTaGFkb3cnLFxuICAnZmVGbG9vZCcsXG4gICdmZUZ1bmNBJyxcbiAgJ2ZlRnVuY0InLFxuICAnZmVGdW5jRycsXG4gICdmZUZ1bmNSJyxcbiAgJ2ZlR2F1c3NpYW5CbHVyJyxcbiAgJ2ZlSW1hZ2UnLFxuICAnZmVNZXJnZScsXG4gICdmZU1lcmdlTm9kZScsXG4gICdmZU1vcnBob2xvZ3knLFxuICAnZmVPZmZzZXQnLFxuICAnZmVQb2ludExpZ2h0JyxcbiAgJ2ZlU3BlY3VsYXJMaWdodGluZycsXG4gICdmZVNwb3RMaWdodCcsXG4gICdmZVRpbGUnLFxuICAnZmVUdXJidWxlbmNlJyxcbiAgJ2ZvcmVpZ25PYmplY3QnLFxuICAnZ2x5cGhSZWYnLFxuICAnbGluZWFyR3JhZGllbnQnLFxuICAncmFkaWFsR3JhZGllbnQnLFxuICAnc29saWRDb2xvcicsXG4gICd0ZXh0QXJlYScsXG4gICd0ZXh0UGF0aCdcbl1cbiIsICIvKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJy4vY3JlYXRlLWguanMnKS5DaGlsZH0gQ2hpbGRcbiAqICAgQWNjZXB0YWJsZSBjaGlsZCB2YWx1ZS5cbiAqIEB0eXBlZGVmIHtpbXBvcnQoJy4vY3JlYXRlLWguanMnKS5Qcm9wZXJ0aWVzfSBQcm9wZXJ0aWVzXG4gKiAgIEFjY2VwdGFibGUgdmFsdWUgZm9yIGVsZW1lbnQgcHJvcGVydGllcy5cbiAqIEB0eXBlZGVmIHtpbXBvcnQoJy4vY3JlYXRlLWguanMnKS5SZXN1bHR9IFJlc3VsdFxuICogICBSZXN1bHQgZnJvbSBhIGBoYCAob3IgYHNgKSBjYWxsLlxuICovXG5cbi8vIFJlZ2lzdGVyIHRoZSBKU1ggbmFtZXNwYWNlIG9uIGBoYC5cbi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgnLi9qc3gtY2xhc3NpYy5qcycpLkVsZW1lbnR9IGguSlNYLkVsZW1lbnRcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJy4vanN4LWNsYXNzaWMuanMnKS5FbGVtZW50Q2hpbGRyZW5BdHRyaWJ1dGV9IGguSlNYLkVsZW1lbnRDaGlsZHJlbkF0dHJpYnV0ZVxuICogQHR5cGVkZWYge2ltcG9ydCgnLi9qc3gtY2xhc3NpYy5qcycpLkludHJpbnNpY0F0dHJpYnV0ZXN9IGguSlNYLkludHJpbnNpY0F0dHJpYnV0ZXNcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJy4vanN4LWNsYXNzaWMuanMnKS5JbnRyaW5zaWNFbGVtZW50c30gaC5KU1guSW50cmluc2ljRWxlbWVudHNcbiAqL1xuXG4vLyBSZWdpc3RlciB0aGUgSlNYIG5hbWVzcGFjZSBvbiBgc2AuXG4vKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJy4vanN4LWNsYXNzaWMuanMnKS5FbGVtZW50fSBzLkpTWC5FbGVtZW50XG4gKiBAdHlwZWRlZiB7aW1wb3J0KCcuL2pzeC1jbGFzc2ljLmpzJykuRWxlbWVudENoaWxkcmVuQXR0cmlidXRlfSBzLkpTWC5FbGVtZW50Q2hpbGRyZW5BdHRyaWJ1dGVcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJy4vanN4LWNsYXNzaWMuanMnKS5JbnRyaW5zaWNBdHRyaWJ1dGVzfSBzLkpTWC5JbnRyaW5zaWNBdHRyaWJ1dGVzXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCcuL2pzeC1jbGFzc2ljLmpzJykuSW50cmluc2ljRWxlbWVudHN9IHMuSlNYLkludHJpbnNpY0VsZW1lbnRzXG4gKi9cblxuaW1wb3J0IHtodG1sLCBzdmd9IGZyb20gJ3Byb3BlcnR5LWluZm9ybWF0aW9uJ1xuaW1wb3J0IHtjcmVhdGVIfSBmcm9tICcuL2NyZWF0ZS1oLmpzJ1xuaW1wb3J0IHtzdmdDYXNlU2Vuc2l0aXZlVGFnTmFtZXN9IGZyb20gJy4vc3ZnLWNhc2Utc2Vuc2l0aXZlLXRhZy1uYW1lcy5qcydcblxuLy8gTm90ZTogdGhpcyBleHBsaWNpdCB0eXBlIGlzIG5lZWRlZCwgb3RoZXJ3aXNlIFRTIGNyZWF0ZXMgYnJva2VuIHR5cGVzLlxuLyoqIEB0eXBlIHtSZXR1cm5UeXBlPGNyZWF0ZUg+fSAqL1xuZXhwb3J0IGNvbnN0IGggPSBjcmVhdGVIKGh0bWwsICdkaXYnKVxuXG4vLyBOb3RlOiB0aGlzIGV4cGxpY2l0IHR5cGUgaXMgbmVlZGVkLCBvdGhlcndpc2UgVFMgY3JlYXRlcyBicm9rZW4gdHlwZXMuXG4vKiogQHR5cGUge1JldHVyblR5cGU8Y3JlYXRlSD59ICovXG5leHBvcnQgY29uc3QgcyA9IGNyZWF0ZUgoc3ZnLCAnZycsIHN2Z0Nhc2VTZW5zaXRpdmVUYWdOYW1lcylcbiIsICIvKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ3ZmaWxlJykuVkZpbGV9IFZGaWxlXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCd2ZmlsZScpLlZhbHVlfSBWYWx1ZVxuICogQHR5cGVkZWYge2ltcG9ydCgndW5pc3QnKS5Qb2ludH0gVW5pc3RQb2ludFxuICovXG5cbi8qKlxuICpcbiAqIEB0eXBlZGVmIFBvaW50TGlrZVxuICogICB1bmlzdCBwb2ludCwgYWxsb3dlZCBhcyBpbnB1dC5cbiAqIEBwcm9wZXJ0eSB7bnVtYmVyIHwgbnVsbCB8IHVuZGVmaW5lZH0gW2xpbmVdXG4gKiAgIExpbmUuXG4gKiBAcHJvcGVydHkge251bWJlciB8IG51bGwgfCB1bmRlZmluZWR9IFtjb2x1bW5dXG4gKiAgIENvbHVtbi5cbiAqIEBwcm9wZXJ0eSB7bnVtYmVyIHwgbnVsbCB8IHVuZGVmaW5lZH0gW29mZnNldF1cbiAqICAgT2Zmc2V0LlxuICpcbiAqIEBjYWxsYmFjayBUb1BvaW50XG4gKiAgIEdldCB0aGUgbGluZS9jb2x1bW4gYmFzZWQgYFBvaW50YCBmb3IgYG9mZnNldGAgaW4gdGhlIGJvdW5kIGluZGljZXMuXG4gKlxuICogICBSZXR1cm5zIGB1bmRlZmluZWRgIHdoZW4gZ2l2ZW4gb3V0IG9mIGJvdW5kcyBpbnB1dC5cbiAqXG4gKiAgIEFsc28gaW1wbGVtZW50ZWQgaW4gUnVzdCBpbiBbYHdvb29ybS9tYXJrZG93bi1yc2BdW21hcmtkb3duLXJzXS5cbiAqXG4gKiAgIFttYXJrZG93bi1yc106IGh0dHBzOi8vZ2l0aHViLmNvbS93b29vcm0vbWFya2Rvd24tcnMvYmxvYi9tYWluL3NyYy91dGlsL2xvY2F0aW9uLnJzXG4gKiBAcGFyYW0ge251bWJlciB8IG51bGwgfCB1bmRlZmluZWR9IFtvZmZzZXRdXG4gKiAgIFNvbWV0aGluZyB0aGF0IHNob3VsZCBiZSBhbiBgb2Zmc2V0LlxuICogQHJldHVybnMge1VuaXN0UG9pbnQgfCB1bmRlZmluZWR9XG4gKiAgIFBvaW50LCBpZiBgb2Zmc2V0YCBpcyB2YWxpZCBhbmQgaW4tYm91bmRzIGlucHV0LlxuICpcbiAqIEBjYWxsYmFjayBUb09mZnNldFxuICogICBHZXQgdGhlIGBvZmZzZXRgIGZyb20gYSBsaW5lL2NvbHVtbiBiYXNlZCBgUG9pbnRgIGluIHRoZSBib3VuZCBpbmRpY2VzLlxuICogQHBhcmFtIHtQb2ludExpa2UgfCBudWxsIHwgdW5kZWZpbmVkfSBbcG9pbnRdXG4gKiAgIFNvbWV0aGluZyB0aGF0IHNob3VsZCBiZSBhIGBwb2ludC5cbiAqIEByZXR1cm5zIHtudW1iZXIgfCB1bmRlZmluZWR9XG4gKiAgIE9mZnNldCAoYG51bWJlcmApIG9yIGB1bmRlZmluZWRgIGZvciBpbnZhbGlkIG9yIG91dCBvZiBib3VuZHMgaW5wdXQuXG4gKlxuICogQHR5cGVkZWYgTG9jYXRpb25cbiAqICAgQWNjZXNzb3JzIGZvciBpbmRleC5cbiAqIEBwcm9wZXJ0eSB7VG9Qb2ludH0gdG9Qb2ludFxuICogICBHZXQgdGhlIGxpbmUvY29sdW1uIGJhc2VkIGBQb2ludGAgZm9yIGBvZmZzZXRgIGluIHRoZSBib3VuZCBpbmRpY2VzLlxuICogQHByb3BlcnR5IHtUb09mZnNldH0gdG9PZmZzZXRcbiAqICAgR2V0IHRoZSBgb2Zmc2V0YCBmcm9tIGEgbGluZS9jb2x1bW4gYmFzZWQgYFBvaW50YCBpbiB0aGUgYm91bmQgaW5kaWNlcy5cbiAqL1xuXG5jb25zdCBzZWFyY2ggPSAvXFxyP1xcbnxcXHIvZ1xuXG4vKipcbiAqIENyZWF0ZSBhbiBpbmRleCBvZiB0aGUgZ2l2ZW4gZG9jdW1lbnQgdG8gdHJhbnNsYXRlIGJldHdlZW4gbGluZS9jb2x1bW4gYW5kXG4gKiBvZmZzZXQgYmFzZWQgcG9zaXRpb25hbCBpbmZvLlxuICpcbiAqIEFsc28gaW1wbGVtZW50ZWQgaW4gUnVzdCBpbiBbYHdvb29ybS9tYXJrZG93bi1yc2BdW21hcmtkb3duLXJzXS5cbiAqXG4gKiBbbWFya2Rvd24tcnNdOiBodHRwczovL2dpdGh1Yi5jb20vd29vb3JtL21hcmtkb3duLXJzL2Jsb2IvbWFpbi9zcmMvdXRpbC9sb2NhdGlvbi5yc1xuICpcbiAqIEBwYXJhbSB7VkZpbGUgfCBWYWx1ZX0gZmlsZVxuICogICBGaWxlIHRvIGluZGV4LlxuICogQHJldHVybnMge0xvY2F0aW9ufVxuICogICBBY2Nlc3NvcnMgZm9yIGluZGV4LlxuICovXG5leHBvcnQgZnVuY3Rpb24gbG9jYXRpb24oZmlsZSkge1xuICBjb25zdCB2YWx1ZSA9IFN0cmluZyhmaWxlKVxuICAvKipcbiAgICogTGlzdCwgd2hlcmUgZWFjaCBpbmRleCBpcyBhIGxpbmUgbnVtYmVyICgwLWJhc2VkKSwgYW5kIGVhY2ggdmFsdWUgaXMgdGhlXG4gICAqIGJ5dGUgaW5kZXggKmFmdGVyKiB3aGVyZSB0aGUgbGluZSBlbmRzLlxuICAgKlxuICAgKiBAdHlwZSB7QXJyYXk8bnVtYmVyPn1cbiAgICovXG4gIGNvbnN0IGluZGljZXMgPSBbXVxuXG4gIHNlYXJjaC5sYXN0SW5kZXggPSAwXG5cbiAgd2hpbGUgKHNlYXJjaC50ZXN0KHZhbHVlKSkge1xuICAgIGluZGljZXMucHVzaChzZWFyY2gubGFzdEluZGV4KVxuICB9XG5cbiAgaW5kaWNlcy5wdXNoKHZhbHVlLmxlbmd0aCArIDEpXG5cbiAgcmV0dXJuIHt0b1BvaW50LCB0b09mZnNldH1cblxuICAvKiogQHR5cGUge1RvUG9pbnR9ICovXG4gIGZ1bmN0aW9uIHRvUG9pbnQob2Zmc2V0KSB7XG4gICAgbGV0IGluZGV4ID0gLTFcblxuICAgIGlmIChcbiAgICAgIHR5cGVvZiBvZmZzZXQgPT09ICdudW1iZXInICYmXG4gICAgICBvZmZzZXQgPiAtMSAmJlxuICAgICAgb2Zmc2V0IDwgaW5kaWNlc1tpbmRpY2VzLmxlbmd0aCAtIDFdXG4gICAgKSB7XG4gICAgICB3aGlsZSAoKytpbmRleCA8IGluZGljZXMubGVuZ3RoKSB7XG4gICAgICAgIGlmIChpbmRpY2VzW2luZGV4XSA+IG9mZnNldCkge1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBsaW5lOiBpbmRleCArIDEsXG4gICAgICAgICAgICBjb2x1bW46IG9mZnNldCAtIChpbmRleCA+IDAgPyBpbmRpY2VzW2luZGV4IC0gMV0gOiAwKSArIDEsXG4gICAgICAgICAgICBvZmZzZXRcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKiogQHR5cGUge1RvT2Zmc2V0fSAqL1xuICBmdW5jdGlvbiB0b09mZnNldChwb2ludCkge1xuICAgIGNvbnN0IGxpbmUgPSBwb2ludCAmJiBwb2ludC5saW5lXG4gICAgY29uc3QgY29sdW1uID0gcG9pbnQgJiYgcG9pbnQuY29sdW1uXG5cbiAgICBpZiAoXG4gICAgICB0eXBlb2YgbGluZSA9PT0gJ251bWJlcicgJiZcbiAgICAgIHR5cGVvZiBjb2x1bW4gPT09ICdudW1iZXInICYmXG4gICAgICAhTnVtYmVyLmlzTmFOKGxpbmUpICYmXG4gICAgICAhTnVtYmVyLmlzTmFOKGNvbHVtbikgJiZcbiAgICAgIGxpbmUgLSAxIGluIGluZGljZXNcbiAgICApIHtcbiAgICAgIGNvbnN0IG9mZnNldCA9IChpbmRpY2VzW2xpbmUgLSAyXSB8fCAwKSArIGNvbHVtbiAtIDEgfHwgMFxuXG4gICAgICBpZiAob2Zmc2V0ID4gLTEgJiYgb2Zmc2V0IDwgaW5kaWNlc1tpbmRpY2VzLmxlbmd0aCAtIDFdKSB7XG4gICAgICAgIHJldHVybiBvZmZzZXRcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsICIvKipcbiAqIE1hcCBvZiB3ZWIgbmFtZXNwYWNlcy5cbiAqXG4gKiBAdHlwZSB7UmVjb3JkPHN0cmluZywgc3RyaW5nPn1cbiAqL1xuZXhwb3J0IGNvbnN0IHdlYk5hbWVzcGFjZXMgPSB7XG4gIGh0bWw6ICdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJyxcbiAgbWF0aG1sOiAnaHR0cDovL3d3dy53My5vcmcvMTk5OC9NYXRoL01hdGhNTCcsXG4gIHN2ZzogJ2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyxcbiAgeGxpbms6ICdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rJyxcbiAgeG1sOiAnaHR0cDovL3d3dy53My5vcmcvWE1MLzE5OTgvbmFtZXNwYWNlJyxcbiAgeG1sbnM6ICdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3htbG5zLydcbn1cbiIsICIvKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ2hhc3QnKS5FbGVtZW50fSBFbGVtZW50XG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdoYXN0JykuRWxlbWVudERhdGF9IEVsZW1lbnREYXRhXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdoYXN0JykuTm9kZXN9IE5vZGVzXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdoYXN0JykuUm9vdH0gUm9vdFxuICogQHR5cGVkZWYge2ltcG9ydCgnaGFzdCcpLlJvb3RDb250ZW50fSBSb290Q29udGVudFxuICpcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ3BhcnNlNScpLkRlZmF1bHRUcmVlQWRhcHRlck1hcH0gRGVmYXVsdFRyZWVBZGFwdGVyTWFwXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdwYXJzZTUnKS5Ub2tlbi5FbGVtZW50TG9jYXRpb259IFA1RWxlbWVudExvY2F0aW9uXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdwYXJzZTUnKS5Ub2tlbi5Mb2NhdGlvbn0gUDVMb2NhdGlvblxuICpcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ3Byb3BlcnR5LWluZm9ybWF0aW9uJykuU2NoZW1hfSBTY2hlbWFcbiAqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCd1bmlzdCcpLlBvaW50fSBQb2ludFxuICogQHR5cGVkZWYge2ltcG9ydCgndW5pc3QnKS5Qb3NpdGlvbn0gUG9zaXRpb25cbiAqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCd2ZmlsZScpLlZGaWxlfSBWRmlsZVxuICovXG5cbi8qKlxuICogQHR5cGVkZWYge0RlZmF1bHRUcmVlQWRhcHRlck1hcFsnZG9jdW1lbnQnXX0gUDVEb2N1bWVudFxuICogQHR5cGVkZWYge0RlZmF1bHRUcmVlQWRhcHRlck1hcFsnZG9jdW1lbnRGcmFnbWVudCddfSBQNURvY3VtZW50RnJhZ21lbnRcbiAqIEB0eXBlZGVmIHtEZWZhdWx0VHJlZUFkYXB0ZXJNYXBbJ2RvY3VtZW50VHlwZSddfSBQNURvY3VtZW50VHlwZVxuICogQHR5cGVkZWYge0RlZmF1bHRUcmVlQWRhcHRlck1hcFsnY29tbWVudE5vZGUnXX0gUDVDb21tZW50XG4gKiBAdHlwZWRlZiB7RGVmYXVsdFRyZWVBZGFwdGVyTWFwWyd0ZXh0Tm9kZSddfSBQNVRleHRcbiAqIEB0eXBlZGVmIHtEZWZhdWx0VHJlZUFkYXB0ZXJNYXBbJ2VsZW1lbnQnXX0gUDVFbGVtZW50XG4gKiBAdHlwZWRlZiB7RGVmYXVsdFRyZWVBZGFwdGVyTWFwWydub2RlJ119IFA1Tm9kZVxuICogQHR5cGVkZWYge0RlZmF1bHRUcmVlQWRhcHRlck1hcFsndGVtcGxhdGUnXX0gUDVUZW1wbGF0ZVxuICovXG5cbi8qKlxuICogQHR5cGVkZWYgT3B0aW9uc1xuICogICBDb25maWd1cmF0aW9uLlxuICogQHByb3BlcnR5IHtTcGFjZSB8IG51bGwgfCB1bmRlZmluZWR9IFtzcGFjZT0naHRtbCddXG4gKiAgIFdoaWNoIHNwYWNlIHRoZSBkb2N1bWVudCBpcyBpbiAoZGVmYXVsdDogYCdodG1sJ2ApLlxuICpcbiAqICAgV2hlbiBhbiBgPHN2Zz5gIGVsZW1lbnQgaXMgZm91bmQgaW4gdGhlIEhUTUwgc3BhY2UsIHRoaXMgcGFja2FnZSBhbHJlYWR5XG4gKiAgIGF1dG9tYXRpY2FsbHkgc3dpdGNoZXMgdG8gYW5kIGZyb20gdGhlIFNWRyBzcGFjZSB3aGVuIGVudGVyaW5nIGFuZCBleGl0aW5nXG4gKiAgIGl0LlxuICogQHByb3BlcnR5IHtWRmlsZSB8IG51bGwgfCB1bmRlZmluZWR9IFtmaWxlXVxuICogICBGaWxlIHVzZWQgdG8gYWRkIHBvc2l0aW9uYWwgaW5mbyB0byBub2RlcyAob3B0aW9uYWwpLlxuICpcbiAqICAgSWYgZ2l2ZW4sIHRoZSBmaWxlIHNob3VsZCByZXByZXNlbnQgdGhlIG9yaWdpbmFsIEhUTUwgc291cmNlLlxuICogQHByb3BlcnR5IHtib29sZWFuIHwgbnVsbCB8IHVuZGVmaW5lZH0gW3ZlcmJvc2U9ZmFsc2VdXG4gKiAgIFdoZXRoZXIgdG8gYWRkIGV4dHJhIHBvc2l0aW9uYWwgaW5mbyBhYm91dCBzdGFydGluZyB0YWdzLCBjbG9zaW5nIHRhZ3MsXG4gKiAgIGFuZCBhdHRyaWJ1dGVzIHRvIGVsZW1lbnRzIChkZWZhdWx0OiBgZmFsc2VgKS5cbiAqXG4gKiAgID4gXHVEODNEXHVEQzQ5ICoqTm90ZSoqOiBvbmx5IHVzZWQgd2hlbiBgZmlsZWAgaXMgZ2l2ZW4uXG4gKlxuICogQHR5cGVkZWYgeydodG1sJyB8ICdzdmcnfSBTcGFjZVxuICogICBOYW1lc3BhY2UuXG4gKlxuICogQHR5cGVkZWYgU3RhdGVcbiAqICAgSW5mbyBwYXNzZWQgYXJvdW5kIGFib3V0IHRoZSBjdXJyZW50IHN0YXRlLlxuICogQHByb3BlcnR5IHtWRmlsZSB8IHVuZGVmaW5lZH0gZmlsZVxuICogICBDb3JyZXNwb25kaW5nIGZpbGUuXG4gKiBAcHJvcGVydHkge2Jvb2xlYW59IGxvY2F0aW9uXG4gKiAgIFdoZXRoZXIgbG9jYXRpb24gaW5mbyB3YXMgZm91bmQuXG4gKiBAcHJvcGVydHkge1NjaGVtYX0gc2NoZW1hXG4gKiAgIEN1cnJlbnQgc2NoZW1hLlxuICogQHByb3BlcnR5IHtib29sZWFuIHwgdW5kZWZpbmVkfSB2ZXJib3NlXG4gKiAgIEFkZCBleHRyYSBwb3NpdGlvbmFsIGluZm8uXG4gKi9cblxuaW1wb3J0IHtvayBhcyBhc3NlcnR9IGZyb20gJ2RldmxvcCdcbmltcG9ydCB7aCwgc30gZnJvbSAnaGFzdHNjcmlwdCdcbmltcG9ydCB7ZmluZCwgaHRtbCwgc3ZnfSBmcm9tICdwcm9wZXJ0eS1pbmZvcm1hdGlvbidcbmltcG9ydCB7bG9jYXRpb259IGZyb20gJ3ZmaWxlLWxvY2F0aW9uJ1xuaW1wb3J0IHt3ZWJOYW1lc3BhY2VzfSBmcm9tICd3ZWItbmFtZXNwYWNlcydcblxuY29uc3Qgb3duID0ge30uaGFzT3duUHJvcGVydHlcbi8qKiBAdHlwZSB7dW5rbm93bn0gKi9cbi8vIHR5cGUtY292ZXJhZ2U6aWdub3JlLW5leHQtbGluZVxuY29uc3QgcHJvdG8gPSBPYmplY3QucHJvdG90eXBlXG5cbi8qKlxuICogVHJhbnNmb3JtIGEgYHBhcnNlNWAgQVNUIHRvIGhhc3QuXG4gKlxuICogQHBhcmFtIHtQNU5vZGV9IHRyZWVcbiAqICAgYHBhcnNlNWAgdHJlZSB0byB0cmFuc2Zvcm0uXG4gKiBAcGFyYW0ge09wdGlvbnMgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3B0aW9uc11cbiAqICAgQ29uZmlndXJhdGlvbiAob3B0aW9uYWwpLlxuICogQHJldHVybnMge05vZGVzfVxuICogICBoYXN0IHRyZWUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmcm9tUGFyc2U1KHRyZWUsIG9wdGlvbnMpIHtcbiAgY29uc3Qgc2V0dGluZ3MgPSBvcHRpb25zIHx8IHt9XG5cbiAgcmV0dXJuIG9uZShcbiAgICB7XG4gICAgICBmaWxlOiBzZXR0aW5ncy5maWxlIHx8IHVuZGVmaW5lZCxcbiAgICAgIGxvY2F0aW9uOiBmYWxzZSxcbiAgICAgIHNjaGVtYTogc2V0dGluZ3Muc3BhY2UgPT09ICdzdmcnID8gc3ZnIDogaHRtbCxcbiAgICAgIHZlcmJvc2U6IHNldHRpbmdzLnZlcmJvc2UgfHwgZmFsc2VcbiAgICB9LFxuICAgIHRyZWVcbiAgKVxufVxuXG4vKipcbiAqIFRyYW5zZm9ybSBhIG5vZGUuXG4gKlxuICogQHBhcmFtIHtTdGF0ZX0gc3RhdGVcbiAqICAgSW5mbyBwYXNzZWQgYXJvdW5kIGFib3V0IHRoZSBjdXJyZW50IHN0YXRlLlxuICogQHBhcmFtIHtQNU5vZGV9IG5vZGVcbiAqICAgcDUgbm9kZS5cbiAqIEByZXR1cm5zIHtOb2Rlc31cbiAqICAgaGFzdCBub2RlLlxuICovXG5mdW5jdGlvbiBvbmUoc3RhdGUsIG5vZGUpIHtcbiAgLyoqIEB0eXBlIHtOb2Rlc30gKi9cbiAgbGV0IHJlc3VsdFxuXG4gIHN3aXRjaCAobm9kZS5ub2RlTmFtZSkge1xuICAgIGNhc2UgJyNjb21tZW50Jzoge1xuICAgICAgY29uc3QgcmVmZXJlbmNlID0gLyoqIEB0eXBlIHtQNUNvbW1lbnR9ICovIChub2RlKVxuICAgICAgcmVzdWx0ID0ge3R5cGU6ICdjb21tZW50JywgdmFsdWU6IHJlZmVyZW5jZS5kYXRhfVxuICAgICAgcGF0Y2goc3RhdGUsIHJlZmVyZW5jZSwgcmVzdWx0KVxuICAgICAgcmV0dXJuIHJlc3VsdFxuICAgIH1cblxuICAgIGNhc2UgJyNkb2N1bWVudCc6XG4gICAgY2FzZSAnI2RvY3VtZW50LWZyYWdtZW50Jzoge1xuICAgICAgY29uc3QgcmVmZXJlbmNlID0gLyoqIEB0eXBlIHtQNURvY3VtZW50IHwgUDVEb2N1bWVudEZyYWdtZW50fSAqLyAobm9kZSlcbiAgICAgIGNvbnN0IHF1aXJrc01vZGUgPVxuICAgICAgICAnbW9kZScgaW4gcmVmZXJlbmNlXG4gICAgICAgICAgPyByZWZlcmVuY2UubW9kZSA9PT0gJ3F1aXJrcycgfHwgcmVmZXJlbmNlLm1vZGUgPT09ICdsaW1pdGVkLXF1aXJrcydcbiAgICAgICAgICA6IGZhbHNlXG5cbiAgICAgIHJlc3VsdCA9IHtcbiAgICAgICAgdHlwZTogJ3Jvb3QnLFxuICAgICAgICBjaGlsZHJlbjogYWxsKHN0YXRlLCBub2RlLmNoaWxkTm9kZXMpLFxuICAgICAgICBkYXRhOiB7cXVpcmtzTW9kZX1cbiAgICAgIH1cblxuICAgICAgaWYgKHN0YXRlLmZpbGUgJiYgc3RhdGUubG9jYXRpb24pIHtcbiAgICAgICAgY29uc3QgZG9jID0gU3RyaW5nKHN0YXRlLmZpbGUpXG4gICAgICAgIGNvbnN0IGxvYyA9IGxvY2F0aW9uKGRvYylcbiAgICAgICAgY29uc3Qgc3RhcnQgPSBsb2MudG9Qb2ludCgwKVxuICAgICAgICBjb25zdCBlbmQgPSBsb2MudG9Qb2ludChkb2MubGVuZ3RoKVxuICAgICAgICAvLyBBbHdheXMgZGVmaW5lZCBhcyB3ZSBnaXZlIHZhbGlkIGlucHV0LlxuICAgICAgICBhc3NlcnQoc3RhcnQsICdleHBlY3RlZCBgc3RhcnRgJylcbiAgICAgICAgYXNzZXJ0KGVuZCwgJ2V4cGVjdGVkIGBlbmRgJylcbiAgICAgICAgcmVzdWx0LnBvc2l0aW9uID0ge3N0YXJ0LCBlbmR9XG4gICAgICB9XG5cbiAgICAgIHJldHVybiByZXN1bHRcbiAgICB9XG5cbiAgICBjYXNlICcjZG9jdW1lbnRUeXBlJzoge1xuICAgICAgY29uc3QgcmVmZXJlbmNlID0gLyoqIEB0eXBlIHtQNURvY3VtZW50VHlwZX0gKi8gKG5vZGUpXG4gICAgICByZXN1bHQgPSB7dHlwZTogJ2RvY3R5cGUnfVxuICAgICAgcGF0Y2goc3RhdGUsIHJlZmVyZW5jZSwgcmVzdWx0KVxuICAgICAgcmV0dXJuIHJlc3VsdFxuICAgIH1cblxuICAgIGNhc2UgJyN0ZXh0Jzoge1xuICAgICAgY29uc3QgcmVmZXJlbmNlID0gLyoqIEB0eXBlIHtQNVRleHR9ICovIChub2RlKVxuICAgICAgcmVzdWx0ID0ge3R5cGU6ICd0ZXh0JywgdmFsdWU6IHJlZmVyZW5jZS52YWx1ZX1cbiAgICAgIHBhdGNoKHN0YXRlLCByZWZlcmVuY2UsIHJlc3VsdClcbiAgICAgIHJldHVybiByZXN1bHRcbiAgICB9XG5cbiAgICAvLyBFbGVtZW50LlxuICAgIGRlZmF1bHQ6IHtcbiAgICAgIGNvbnN0IHJlZmVyZW5jZSA9IC8qKiBAdHlwZSB7UDVFbGVtZW50fSAqLyAobm9kZSlcbiAgICAgIHJlc3VsdCA9IGVsZW1lbnQoc3RhdGUsIHJlZmVyZW5jZSlcbiAgICAgIHJldHVybiByZXN1bHRcbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBUcmFuc2Zvcm0gY2hpbGRyZW4uXG4gKlxuICogQHBhcmFtIHtTdGF0ZX0gc3RhdGVcbiAqICAgSW5mbyBwYXNzZWQgYXJvdW5kIGFib3V0IHRoZSBjdXJyZW50IHN0YXRlLlxuICogQHBhcmFtIHtBcnJheTxQNU5vZGU+fSBub2Rlc1xuICogICBOb2Rlcy5cbiAqIEByZXR1cm5zIHtBcnJheTxSb290Q29udGVudD59XG4gKiAgIGhhc3Qgbm9kZXMuXG4gKi9cbmZ1bmN0aW9uIGFsbChzdGF0ZSwgbm9kZXMpIHtcbiAgbGV0IGluZGV4ID0gLTFcbiAgLyoqIEB0eXBlIHtBcnJheTxSb290Q29udGVudD59ICovXG4gIGNvbnN0IHJlc3VsdHMgPSBbXVxuXG4gIHdoaWxlICgrK2luZGV4IDwgbm9kZXMubGVuZ3RoKSB7XG4gICAgLy8gQXNzdW1lIG5vIHJvb3RzIGluIGBub2Rlc2AuXG4gICAgY29uc3QgcmVzdWx0ID0gLyoqIEB0eXBlIHtSb290Q29udGVudH0gKi8gKG9uZShzdGF0ZSwgbm9kZXNbaW5kZXhdKSlcbiAgICByZXN1bHRzLnB1c2gocmVzdWx0KVxuICB9XG5cbiAgcmV0dXJuIHJlc3VsdHNcbn1cblxuLyoqXG4gKiBUcmFuc2Zvcm0gYW4gZWxlbWVudC5cbiAqXG4gKiBAcGFyYW0ge1N0YXRlfSBzdGF0ZVxuICogICBJbmZvIHBhc3NlZCBhcm91bmQgYWJvdXQgdGhlIGN1cnJlbnQgc3RhdGUuXG4gKiBAcGFyYW0ge1A1RWxlbWVudH0gbm9kZVxuICogICBgcGFyc2U1YCBub2RlIHRvIHRyYW5zZm9ybS5cbiAqIEByZXR1cm5zIHtFbGVtZW50fVxuICogICBoYXN0IG5vZGUuXG4gKi9cbmZ1bmN0aW9uIGVsZW1lbnQoc3RhdGUsIG5vZGUpIHtcbiAgY29uc3Qgc2NoZW1hID0gc3RhdGUuc2NoZW1hXG5cbiAgc3RhdGUuc2NoZW1hID0gbm9kZS5uYW1lc3BhY2VVUkkgPT09IHdlYk5hbWVzcGFjZXMuc3ZnID8gc3ZnIDogaHRtbFxuXG4gIC8vIFByb3BzLlxuICBsZXQgaW5kZXggPSAtMVxuICAvKiogQHR5cGUge1JlY29yZDxzdHJpbmcsIHN0cmluZz59ICovXG4gIGNvbnN0IHByb3BzID0ge31cblxuICB3aGlsZSAoKytpbmRleCA8IG5vZGUuYXR0cnMubGVuZ3RoKSB7XG4gICAgY29uc3QgYXR0cmlidXRlID0gbm9kZS5hdHRyc1tpbmRleF1cbiAgICBjb25zdCBuYW1lID1cbiAgICAgIChhdHRyaWJ1dGUucHJlZml4ID8gYXR0cmlidXRlLnByZWZpeCArICc6JyA6ICcnKSArIGF0dHJpYnV0ZS5uYW1lXG4gICAgaWYgKCFvd24uY2FsbChwcm90bywgbmFtZSkpIHtcbiAgICAgIHByb3BzW25hbWVdID0gYXR0cmlidXRlLnZhbHVlXG4gICAgfVxuICB9XG5cbiAgLy8gQnVpbGQuXG4gIGNvbnN0IGZuID0gc3RhdGUuc2NoZW1hLnNwYWNlID09PSAnc3ZnJyA/IHMgOiBoXG4gIGNvbnN0IHJlc3VsdCA9IGZuKG5vZGUudGFnTmFtZSwgcHJvcHMsIGFsbChzdGF0ZSwgbm9kZS5jaGlsZE5vZGVzKSlcbiAgcGF0Y2goc3RhdGUsIG5vZGUsIHJlc3VsdClcblxuICAvLyBTd2l0Y2ggY29udGVudC5cbiAgaWYgKHJlc3VsdC50YWdOYW1lID09PSAndGVtcGxhdGUnKSB7XG4gICAgY29uc3QgcmVmZXJlbmNlID0gLyoqIEB0eXBlIHtQNVRlbXBsYXRlfSAqLyAobm9kZSlcbiAgICBjb25zdCBwb3MgPSByZWZlcmVuY2Uuc291cmNlQ29kZUxvY2F0aW9uXG4gICAgY29uc3Qgc3RhcnRUYWcgPSBwb3MgJiYgcG9zLnN0YXJ0VGFnICYmIHBvc2l0aW9uKHBvcy5zdGFydFRhZylcbiAgICBjb25zdCBlbmRUYWcgPSBwb3MgJiYgcG9zLmVuZFRhZyAmJiBwb3NpdGlvbihwb3MuZW5kVGFnKVxuXG4gICAgLy8gUm9vdCBpbiwgcm9vdCBvdXQuXG4gICAgY29uc3QgY29udGVudCA9IC8qKiBAdHlwZSB7Um9vdH0gKi8gKG9uZShzdGF0ZSwgcmVmZXJlbmNlLmNvbnRlbnQpKVxuXG4gICAgaWYgKHN0YXJ0VGFnICYmIGVuZFRhZyAmJiBzdGF0ZS5maWxlKSB7XG4gICAgICBjb250ZW50LnBvc2l0aW9uID0ge3N0YXJ0OiBzdGFydFRhZy5lbmQsIGVuZDogZW5kVGFnLnN0YXJ0fVxuICAgIH1cblxuICAgIHJlc3VsdC5jb250ZW50ID0gY29udGVudFxuICB9XG5cbiAgc3RhdGUuc2NoZW1hID0gc2NoZW1hXG5cbiAgcmV0dXJuIHJlc3VsdFxufVxuXG4vKipcbiAqIFBhdGNoIHBvc2l0aW9uYWwgaW5mbyBmcm9tIGBmcm9tYCBvbnRvIGB0b2AuXG4gKlxuICogQHBhcmFtIHtTdGF0ZX0gc3RhdGVcbiAqICAgSW5mbyBwYXNzZWQgYXJvdW5kIGFib3V0IHRoZSBjdXJyZW50IHN0YXRlLlxuICogQHBhcmFtIHtQNU5vZGV9IGZyb21cbiAqICAgcDUgbm9kZS5cbiAqIEBwYXJhbSB7Tm9kZXN9IHRvXG4gKiAgIGhhc3Qgbm9kZS5cbiAqIEByZXR1cm5zIHt1bmRlZmluZWR9XG4gKiAgIE5vdGhpbmcuXG4gKi9cbmZ1bmN0aW9uIHBhdGNoKHN0YXRlLCBmcm9tLCB0bykge1xuICBpZiAoJ3NvdXJjZUNvZGVMb2NhdGlvbicgaW4gZnJvbSAmJiBmcm9tLnNvdXJjZUNvZGVMb2NhdGlvbiAmJiBzdGF0ZS5maWxlKSB7XG4gICAgY29uc3QgcG9zaXRpb24gPSBjcmVhdGVMb2NhdGlvbihzdGF0ZSwgdG8sIGZyb20uc291cmNlQ29kZUxvY2F0aW9uKVxuXG4gICAgaWYgKHBvc2l0aW9uKSB7XG4gICAgICBzdGF0ZS5sb2NhdGlvbiA9IHRydWVcbiAgICAgIHRvLnBvc2l0aW9uID0gcG9zaXRpb25cbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBDcmVhdGUgY2xlYW4gcG9zaXRpb25hbCBpbmZvcm1hdGlvbi5cbiAqXG4gKiBAcGFyYW0ge1N0YXRlfSBzdGF0ZVxuICogICBJbmZvIHBhc3NlZCBhcm91bmQgYWJvdXQgdGhlIGN1cnJlbnQgc3RhdGUuXG4gKiBAcGFyYW0ge05vZGVzfSBub2RlXG4gKiAgIGhhc3Qgbm9kZS5cbiAqIEBwYXJhbSB7UDVFbGVtZW50TG9jYXRpb259IGxvY2F0aW9uXG4gKiAgIHA1IGxvY2F0aW9uIGluZm8uXG4gKiBAcmV0dXJucyB7UG9zaXRpb24gfCB1bmRlZmluZWR9XG4gKiAgIFBvc2l0aW9uLCBvciBub3RoaW5nLlxuICovXG5mdW5jdGlvbiBjcmVhdGVMb2NhdGlvbihzdGF0ZSwgbm9kZSwgbG9jYXRpb24pIHtcbiAgY29uc3QgcmVzdWx0ID0gcG9zaXRpb24obG9jYXRpb24pXG5cbiAgaWYgKG5vZGUudHlwZSA9PT0gJ2VsZW1lbnQnKSB7XG4gICAgY29uc3QgdGFpbCA9IG5vZGUuY2hpbGRyZW5bbm9kZS5jaGlsZHJlbi5sZW5ndGggLSAxXVxuXG4gICAgLy8gQnVnIGZvciB1bmNsb3NlZCB3aXRoIGNoaWxkcmVuLlxuICAgIC8vIFNlZTogPGh0dHBzOi8vZ2l0aHViLmNvbS9pbmlrdWxpbi9wYXJzZTUvaXNzdWVzLzEwOT4uXG4gICAgaWYgKFxuICAgICAgcmVzdWx0ICYmXG4gICAgICAhbG9jYXRpb24uZW5kVGFnICYmXG4gICAgICB0YWlsICYmXG4gICAgICB0YWlsLnBvc2l0aW9uICYmXG4gICAgICB0YWlsLnBvc2l0aW9uLmVuZFxuICAgICkge1xuICAgICAgcmVzdWx0LmVuZCA9IE9iamVjdC5hc3NpZ24oe30sIHRhaWwucG9zaXRpb24uZW5kKVxuICAgIH1cblxuICAgIGlmIChzdGF0ZS52ZXJib3NlKSB7XG4gICAgICAvKiogQHR5cGUge1JlY29yZDxzdHJpbmcsIFBvc2l0aW9uIHwgdW5kZWZpbmVkPn0gKi9cbiAgICAgIGNvbnN0IHByb3BzID0ge31cbiAgICAgIC8qKiBAdHlwZSB7c3RyaW5nfSAqL1xuICAgICAgbGV0IGtleVxuXG4gICAgICBpZiAobG9jYXRpb24uYXR0cnMpIHtcbiAgICAgICAgZm9yIChrZXkgaW4gbG9jYXRpb24uYXR0cnMpIHtcbiAgICAgICAgICBpZiAob3duLmNhbGwobG9jYXRpb24uYXR0cnMsIGtleSkpIHtcbiAgICAgICAgICAgIHByb3BzW2ZpbmQoc3RhdGUuc2NoZW1hLCBrZXkpLnByb3BlcnR5XSA9IHBvc2l0aW9uKFxuICAgICAgICAgICAgICBsb2NhdGlvbi5hdHRyc1trZXldXG4gICAgICAgICAgICApXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGFzc2VydChsb2NhdGlvbi5zdGFydFRhZywgJ2Egc3RhcnQgdGFnIHNob3VsZCBleGlzdCcpXG4gICAgICBjb25zdCBvcGVuaW5nID0gcG9zaXRpb24obG9jYXRpb24uc3RhcnRUYWcpXG4gICAgICBjb25zdCBjbG9zaW5nID0gbG9jYXRpb24uZW5kVGFnID8gcG9zaXRpb24obG9jYXRpb24uZW5kVGFnKSA6IHVuZGVmaW5lZFxuICAgICAgLyoqIEB0eXBlIHtFbGVtZW50RGF0YVsncG9zaXRpb24nXX0gKi9cbiAgICAgIGNvbnN0IGRhdGEgPSB7b3BlbmluZ31cbiAgICAgIGlmIChjbG9zaW5nKSBkYXRhLmNsb3NpbmcgPSBjbG9zaW5nXG4gICAgICBkYXRhLnByb3BlcnRpZXMgPSBwcm9wc1xuXG4gICAgICBub2RlLmRhdGEgPSB7cG9zaXRpb246IGRhdGF9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHJlc3VsdFxufVxuXG4vKipcbiAqIFR1cm4gYSBwNSBsb2NhdGlvbiBpbnRvIGEgcG9zaXRpb24uXG4gKlxuICogQHBhcmFtIHtQNUxvY2F0aW9ufSBsb2NcbiAqICAgTG9jYXRpb24uXG4gKiBAcmV0dXJucyB7UG9zaXRpb24gfCB1bmRlZmluZWR9XG4gKiAgIFBvc2l0aW9uIG9yIG5vdGhpbmcuXG4gKi9cbmZ1bmN0aW9uIHBvc2l0aW9uKGxvYykge1xuICBjb25zdCBzdGFydCA9IHBvaW50KHtcbiAgICBsaW5lOiBsb2Muc3RhcnRMaW5lLFxuICAgIGNvbHVtbjogbG9jLnN0YXJ0Q29sLFxuICAgIG9mZnNldDogbG9jLnN0YXJ0T2Zmc2V0XG4gIH0pXG4gIGNvbnN0IGVuZCA9IHBvaW50KHtcbiAgICBsaW5lOiBsb2MuZW5kTGluZSxcbiAgICBjb2x1bW46IGxvYy5lbmRDb2wsXG4gICAgb2Zmc2V0OiBsb2MuZW5kT2Zmc2V0XG4gIH0pXG5cbiAgLy8gQHRzLWV4cGVjdC1lcnJvcjogd2UgZG8gdXNlIGB1bmRlZmluZWRgIGZvciBwb2ludHMgaWYgb25lIG9yIHRoZSBvdGhlclxuICAvLyBleGlzdHMuXG4gIHJldHVybiBzdGFydCB8fCBlbmQgPyB7c3RhcnQsIGVuZH0gOiB1bmRlZmluZWRcbn1cblxuLyoqXG4gKiBGaWx0ZXIgb3V0IGludmFsaWQgcG9pbnRzLlxuICpcbiAqIEBwYXJhbSB7UG9pbnR9IHBvaW50XG4gKiAgIFBvaW50IHdpdGggcG90ZW50aWFsbHkgYHVuZGVmaW5lZGAgdmFsdWVzLlxuICogQHJldHVybnMge1BvaW50IHwgdW5kZWZpbmVkfVxuICogICBQb2ludCBvciBub3RoaW5nLlxuICovXG5mdW5jdGlvbiBwb2ludChwb2ludCkge1xuICByZXR1cm4gcG9pbnQubGluZSAmJiBwb2ludC5jb2x1bW4gPyBwb2ludCA6IHVuZGVmaW5lZFxufVxuIiwgImNvbnN0IFVOREVGSU5FRF9DT0RFX1BPSU5UUyA9IG5ldyBTZXQoW1xuICAgIDY1NTM0LCA2NTUzNSwgMTMxMDcwLCAxMzEwNzEsIDE5NjYwNiwgMTk2NjA3LCAyNjIxNDIsIDI2MjE0MywgMzI3Njc4LCAzMjc2NzksIDM5MzIxNCxcbiAgICAzOTMyMTUsIDQ1ODc1MCwgNDU4NzUxLCA1MjQyODYsIDUyNDI4NywgNTg5ODIyLCA1ODk4MjMsIDY1NTM1OCwgNjU1MzU5LCA3MjA4OTQsXG4gICAgNzIwODk1LCA3ODY0MzAsIDc4NjQzMSwgODUxOTY2LCA4NTE5NjcsIDkxNzUwMiwgOTE3NTAzLCA5ODMwMzgsIDk4MzAzOSwgMTA0ODU3NCxcbiAgICAxMDQ4NTc1LCAxMTE0MTEwLCAxMTE0MTExLFxuXSk7XG5leHBvcnQgY29uc3QgUkVQTEFDRU1FTlRfQ0hBUkFDVEVSID0gJ1xcdUZGRkQnO1xuZXhwb3J0IHZhciBDT0RFX1BPSU5UUztcbihmdW5jdGlvbiAoQ09ERV9QT0lOVFMpIHtcbiAgICBDT0RFX1BPSU5UU1tDT0RFX1BPSU5UU1tcIkVPRlwiXSA9IC0xXSA9IFwiRU9GXCI7XG4gICAgQ09ERV9QT0lOVFNbQ09ERV9QT0lOVFNbXCJOVUxMXCJdID0gMF0gPSBcIk5VTExcIjtcbiAgICBDT0RFX1BPSU5UU1tDT0RFX1BPSU5UU1tcIlRBQlVMQVRJT05cIl0gPSA5XSA9IFwiVEFCVUxBVElPTlwiO1xuICAgIENPREVfUE9JTlRTW0NPREVfUE9JTlRTW1wiQ0FSUklBR0VfUkVUVVJOXCJdID0gMTNdID0gXCJDQVJSSUFHRV9SRVRVUk5cIjtcbiAgICBDT0RFX1BPSU5UU1tDT0RFX1BPSU5UU1tcIkxJTkVfRkVFRFwiXSA9IDEwXSA9IFwiTElORV9GRUVEXCI7XG4gICAgQ09ERV9QT0lOVFNbQ09ERV9QT0lOVFNbXCJGT1JNX0ZFRURcIl0gPSAxMl0gPSBcIkZPUk1fRkVFRFwiO1xuICAgIENPREVfUE9JTlRTW0NPREVfUE9JTlRTW1wiU1BBQ0VcIl0gPSAzMl0gPSBcIlNQQUNFXCI7XG4gICAgQ09ERV9QT0lOVFNbQ09ERV9QT0lOVFNbXCJFWENMQU1BVElPTl9NQVJLXCJdID0gMzNdID0gXCJFWENMQU1BVElPTl9NQVJLXCI7XG4gICAgQ09ERV9QT0lOVFNbQ09ERV9QT0lOVFNbXCJRVU9UQVRJT05fTUFSS1wiXSA9IDM0XSA9IFwiUVVPVEFUSU9OX01BUktcIjtcbiAgICBDT0RFX1BPSU5UU1tDT0RFX1BPSU5UU1tcIk5VTUJFUl9TSUdOXCJdID0gMzVdID0gXCJOVU1CRVJfU0lHTlwiO1xuICAgIENPREVfUE9JTlRTW0NPREVfUE9JTlRTW1wiQU1QRVJTQU5EXCJdID0gMzhdID0gXCJBTVBFUlNBTkRcIjtcbiAgICBDT0RFX1BPSU5UU1tDT0RFX1BPSU5UU1tcIkFQT1NUUk9QSEVcIl0gPSAzOV0gPSBcIkFQT1NUUk9QSEVcIjtcbiAgICBDT0RFX1BPSU5UU1tDT0RFX1BPSU5UU1tcIkhZUEhFTl9NSU5VU1wiXSA9IDQ1XSA9IFwiSFlQSEVOX01JTlVTXCI7XG4gICAgQ09ERV9QT0lOVFNbQ09ERV9QT0lOVFNbXCJTT0xJRFVTXCJdID0gNDddID0gXCJTT0xJRFVTXCI7XG4gICAgQ09ERV9QT0lOVFNbQ09ERV9QT0lOVFNbXCJESUdJVF8wXCJdID0gNDhdID0gXCJESUdJVF8wXCI7XG4gICAgQ09ERV9QT0lOVFNbQ09ERV9QT0lOVFNbXCJESUdJVF85XCJdID0gNTddID0gXCJESUdJVF85XCI7XG4gICAgQ09ERV9QT0lOVFNbQ09ERV9QT0lOVFNbXCJTRU1JQ09MT05cIl0gPSA1OV0gPSBcIlNFTUlDT0xPTlwiO1xuICAgIENPREVfUE9JTlRTW0NPREVfUE9JTlRTW1wiTEVTU19USEFOX1NJR05cIl0gPSA2MF0gPSBcIkxFU1NfVEhBTl9TSUdOXCI7XG4gICAgQ09ERV9QT0lOVFNbQ09ERV9QT0lOVFNbXCJFUVVBTFNfU0lHTlwiXSA9IDYxXSA9IFwiRVFVQUxTX1NJR05cIjtcbiAgICBDT0RFX1BPSU5UU1tDT0RFX1BPSU5UU1tcIkdSRUFURVJfVEhBTl9TSUdOXCJdID0gNjJdID0gXCJHUkVBVEVSX1RIQU5fU0lHTlwiO1xuICAgIENPREVfUE9JTlRTW0NPREVfUE9JTlRTW1wiUVVFU1RJT05fTUFSS1wiXSA9IDYzXSA9IFwiUVVFU1RJT05fTUFSS1wiO1xuICAgIENPREVfUE9JTlRTW0NPREVfUE9JTlRTW1wiTEFUSU5fQ0FQSVRBTF9BXCJdID0gNjVdID0gXCJMQVRJTl9DQVBJVEFMX0FcIjtcbiAgICBDT0RFX1BPSU5UU1tDT0RFX1BPSU5UU1tcIkxBVElOX0NBUElUQUxfRlwiXSA9IDcwXSA9IFwiTEFUSU5fQ0FQSVRBTF9GXCI7XG4gICAgQ09ERV9QT0lOVFNbQ09ERV9QT0lOVFNbXCJMQVRJTl9DQVBJVEFMX1hcIl0gPSA4OF0gPSBcIkxBVElOX0NBUElUQUxfWFwiO1xuICAgIENPREVfUE9JTlRTW0NPREVfUE9JTlRTW1wiTEFUSU5fQ0FQSVRBTF9aXCJdID0gOTBdID0gXCJMQVRJTl9DQVBJVEFMX1pcIjtcbiAgICBDT0RFX1BPSU5UU1tDT0RFX1BPSU5UU1tcIlJJR0hUX1NRVUFSRV9CUkFDS0VUXCJdID0gOTNdID0gXCJSSUdIVF9TUVVBUkVfQlJBQ0tFVFwiO1xuICAgIENPREVfUE9JTlRTW0NPREVfUE9JTlRTW1wiR1JBVkVfQUNDRU5UXCJdID0gOTZdID0gXCJHUkFWRV9BQ0NFTlRcIjtcbiAgICBDT0RFX1BPSU5UU1tDT0RFX1BPSU5UU1tcIkxBVElOX1NNQUxMX0FcIl0gPSA5N10gPSBcIkxBVElOX1NNQUxMX0FcIjtcbiAgICBDT0RFX1BPSU5UU1tDT0RFX1BPSU5UU1tcIkxBVElOX1NNQUxMX0ZcIl0gPSAxMDJdID0gXCJMQVRJTl9TTUFMTF9GXCI7XG4gICAgQ09ERV9QT0lOVFNbQ09ERV9QT0lOVFNbXCJMQVRJTl9TTUFMTF9YXCJdID0gMTIwXSA9IFwiTEFUSU5fU01BTExfWFwiO1xuICAgIENPREVfUE9JTlRTW0NPREVfUE9JTlRTW1wiTEFUSU5fU01BTExfWlwiXSA9IDEyMl0gPSBcIkxBVElOX1NNQUxMX1pcIjtcbiAgICBDT0RFX1BPSU5UU1tDT0RFX1BPSU5UU1tcIlJFUExBQ0VNRU5UX0NIQVJBQ1RFUlwiXSA9IDY1NTMzXSA9IFwiUkVQTEFDRU1FTlRfQ0hBUkFDVEVSXCI7XG59KShDT0RFX1BPSU5UUyA9IENPREVfUE9JTlRTIHx8IChDT0RFX1BPSU5UUyA9IHt9KSk7XG5leHBvcnQgY29uc3QgU0VRVUVOQ0VTID0ge1xuICAgIERBU0hfREFTSDogJy0tJyxcbiAgICBDREFUQV9TVEFSVDogJ1tDREFUQVsnLFxuICAgIERPQ1RZUEU6ICdkb2N0eXBlJyxcbiAgICBTQ1JJUFQ6ICdzY3JpcHQnLFxuICAgIFBVQkxJQzogJ3B1YmxpYycsXG4gICAgU1lTVEVNOiAnc3lzdGVtJyxcbn07XG4vL1N1cnJvZ2F0ZXNcbmV4cG9ydCBmdW5jdGlvbiBpc1N1cnJvZ2F0ZShjcCkge1xuICAgIHJldHVybiBjcCA+PSA1NTI5NiAmJiBjcCA8PSA1NzM0Mztcbn1cbmV4cG9ydCBmdW5jdGlvbiBpc1N1cnJvZ2F0ZVBhaXIoY3ApIHtcbiAgICByZXR1cm4gY3AgPj0gNTYzMjAgJiYgY3AgPD0gNTczNDM7XG59XG5leHBvcnQgZnVuY3Rpb24gZ2V0U3Vycm9nYXRlUGFpckNvZGVQb2ludChjcDEsIGNwMikge1xuICAgIHJldHVybiAoY3AxIC0gNTUyOTYpICogMTAyNCArIDkyMTYgKyBjcDI7XG59XG4vL05PVEU6IGV4Y2x1ZGluZyBOVUxMIGFuZCBBU0NJSSB3aGl0ZXNwYWNlXG5leHBvcnQgZnVuY3Rpb24gaXNDb250cm9sQ29kZVBvaW50KGNwKSB7XG4gICAgcmV0dXJuICgoY3AgIT09IDB4MjAgJiYgY3AgIT09IDB4MGEgJiYgY3AgIT09IDB4MGQgJiYgY3AgIT09IDB4MDkgJiYgY3AgIT09IDB4MGMgJiYgY3AgPj0gMHgwMSAmJiBjcCA8PSAweDFmKSB8fFxuICAgICAgICAoY3AgPj0gMHg3ZiAmJiBjcCA8PSAweDlmKSk7XG59XG5leHBvcnQgZnVuY3Rpb24gaXNVbmRlZmluZWRDb2RlUG9pbnQoY3ApIHtcbiAgICByZXR1cm4gKGNwID49IDY0OTc2ICYmIGNwIDw9IDY1MDA3KSB8fCBVTkRFRklORURfQ09ERV9QT0lOVFMuaGFzKGNwKTtcbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXVuaWNvZGUuanMubWFwIiwgImV4cG9ydCB2YXIgRVJSO1xuKGZ1bmN0aW9uIChFUlIpIHtcbiAgICBFUlJbXCJjb250cm9sQ2hhcmFjdGVySW5JbnB1dFN0cmVhbVwiXSA9IFwiY29udHJvbC1jaGFyYWN0ZXItaW4taW5wdXQtc3RyZWFtXCI7XG4gICAgRVJSW1wibm9uY2hhcmFjdGVySW5JbnB1dFN0cmVhbVwiXSA9IFwibm9uY2hhcmFjdGVyLWluLWlucHV0LXN0cmVhbVwiO1xuICAgIEVSUltcInN1cnJvZ2F0ZUluSW5wdXRTdHJlYW1cIl0gPSBcInN1cnJvZ2F0ZS1pbi1pbnB1dC1zdHJlYW1cIjtcbiAgICBFUlJbXCJub25Wb2lkSHRtbEVsZW1lbnRTdGFydFRhZ1dpdGhUcmFpbGluZ1NvbGlkdXNcIl0gPSBcIm5vbi12b2lkLWh0bWwtZWxlbWVudC1zdGFydC10YWctd2l0aC10cmFpbGluZy1zb2xpZHVzXCI7XG4gICAgRVJSW1wiZW5kVGFnV2l0aEF0dHJpYnV0ZXNcIl0gPSBcImVuZC10YWctd2l0aC1hdHRyaWJ1dGVzXCI7XG4gICAgRVJSW1wiZW5kVGFnV2l0aFRyYWlsaW5nU29saWR1c1wiXSA9IFwiZW5kLXRhZy13aXRoLXRyYWlsaW5nLXNvbGlkdXNcIjtcbiAgICBFUlJbXCJ1bmV4cGVjdGVkU29saWR1c0luVGFnXCJdID0gXCJ1bmV4cGVjdGVkLXNvbGlkdXMtaW4tdGFnXCI7XG4gICAgRVJSW1widW5leHBlY3RlZE51bGxDaGFyYWN0ZXJcIl0gPSBcInVuZXhwZWN0ZWQtbnVsbC1jaGFyYWN0ZXJcIjtcbiAgICBFUlJbXCJ1bmV4cGVjdGVkUXVlc3Rpb25NYXJrSW5zdGVhZE9mVGFnTmFtZVwiXSA9IFwidW5leHBlY3RlZC1xdWVzdGlvbi1tYXJrLWluc3RlYWQtb2YtdGFnLW5hbWVcIjtcbiAgICBFUlJbXCJpbnZhbGlkRmlyc3RDaGFyYWN0ZXJPZlRhZ05hbWVcIl0gPSBcImludmFsaWQtZmlyc3QtY2hhcmFjdGVyLW9mLXRhZy1uYW1lXCI7XG4gICAgRVJSW1widW5leHBlY3RlZEVxdWFsc1NpZ25CZWZvcmVBdHRyaWJ1dGVOYW1lXCJdID0gXCJ1bmV4cGVjdGVkLWVxdWFscy1zaWduLWJlZm9yZS1hdHRyaWJ1dGUtbmFtZVwiO1xuICAgIEVSUltcIm1pc3NpbmdFbmRUYWdOYW1lXCJdID0gXCJtaXNzaW5nLWVuZC10YWctbmFtZVwiO1xuICAgIEVSUltcInVuZXhwZWN0ZWRDaGFyYWN0ZXJJbkF0dHJpYnV0ZU5hbWVcIl0gPSBcInVuZXhwZWN0ZWQtY2hhcmFjdGVyLWluLWF0dHJpYnV0ZS1uYW1lXCI7XG4gICAgRVJSW1widW5rbm93bk5hbWVkQ2hhcmFjdGVyUmVmZXJlbmNlXCJdID0gXCJ1bmtub3duLW5hbWVkLWNoYXJhY3Rlci1yZWZlcmVuY2VcIjtcbiAgICBFUlJbXCJtaXNzaW5nU2VtaWNvbG9uQWZ0ZXJDaGFyYWN0ZXJSZWZlcmVuY2VcIl0gPSBcIm1pc3Npbmctc2VtaWNvbG9uLWFmdGVyLWNoYXJhY3Rlci1yZWZlcmVuY2VcIjtcbiAgICBFUlJbXCJ1bmV4cGVjdGVkQ2hhcmFjdGVyQWZ0ZXJEb2N0eXBlU3lzdGVtSWRlbnRpZmllclwiXSA9IFwidW5leHBlY3RlZC1jaGFyYWN0ZXItYWZ0ZXItZG9jdHlwZS1zeXN0ZW0taWRlbnRpZmllclwiO1xuICAgIEVSUltcInVuZXhwZWN0ZWRDaGFyYWN0ZXJJblVucXVvdGVkQXR0cmlidXRlVmFsdWVcIl0gPSBcInVuZXhwZWN0ZWQtY2hhcmFjdGVyLWluLXVucXVvdGVkLWF0dHJpYnV0ZS12YWx1ZVwiO1xuICAgIEVSUltcImVvZkJlZm9yZVRhZ05hbWVcIl0gPSBcImVvZi1iZWZvcmUtdGFnLW5hbWVcIjtcbiAgICBFUlJbXCJlb2ZJblRhZ1wiXSA9IFwiZW9mLWluLXRhZ1wiO1xuICAgIEVSUltcIm1pc3NpbmdBdHRyaWJ1dGVWYWx1ZVwiXSA9IFwibWlzc2luZy1hdHRyaWJ1dGUtdmFsdWVcIjtcbiAgICBFUlJbXCJtaXNzaW5nV2hpdGVzcGFjZUJldHdlZW5BdHRyaWJ1dGVzXCJdID0gXCJtaXNzaW5nLXdoaXRlc3BhY2UtYmV0d2Vlbi1hdHRyaWJ1dGVzXCI7XG4gICAgRVJSW1wibWlzc2luZ1doaXRlc3BhY2VBZnRlckRvY3R5cGVQdWJsaWNLZXl3b3JkXCJdID0gXCJtaXNzaW5nLXdoaXRlc3BhY2UtYWZ0ZXItZG9jdHlwZS1wdWJsaWMta2V5d29yZFwiO1xuICAgIEVSUltcIm1pc3NpbmdXaGl0ZXNwYWNlQmV0d2VlbkRvY3R5cGVQdWJsaWNBbmRTeXN0ZW1JZGVudGlmaWVyc1wiXSA9IFwibWlzc2luZy13aGl0ZXNwYWNlLWJldHdlZW4tZG9jdHlwZS1wdWJsaWMtYW5kLXN5c3RlbS1pZGVudGlmaWVyc1wiO1xuICAgIEVSUltcIm1pc3NpbmdXaGl0ZXNwYWNlQWZ0ZXJEb2N0eXBlU3lzdGVtS2V5d29yZFwiXSA9IFwibWlzc2luZy13aGl0ZXNwYWNlLWFmdGVyLWRvY3R5cGUtc3lzdGVtLWtleXdvcmRcIjtcbiAgICBFUlJbXCJtaXNzaW5nUXVvdGVCZWZvcmVEb2N0eXBlUHVibGljSWRlbnRpZmllclwiXSA9IFwibWlzc2luZy1xdW90ZS1iZWZvcmUtZG9jdHlwZS1wdWJsaWMtaWRlbnRpZmllclwiO1xuICAgIEVSUltcIm1pc3NpbmdRdW90ZUJlZm9yZURvY3R5cGVTeXN0ZW1JZGVudGlmaWVyXCJdID0gXCJtaXNzaW5nLXF1b3RlLWJlZm9yZS1kb2N0eXBlLXN5c3RlbS1pZGVudGlmaWVyXCI7XG4gICAgRVJSW1wibWlzc2luZ0RvY3R5cGVQdWJsaWNJZGVudGlmaWVyXCJdID0gXCJtaXNzaW5nLWRvY3R5cGUtcHVibGljLWlkZW50aWZpZXJcIjtcbiAgICBFUlJbXCJtaXNzaW5nRG9jdHlwZVN5c3RlbUlkZW50aWZpZXJcIl0gPSBcIm1pc3NpbmctZG9jdHlwZS1zeXN0ZW0taWRlbnRpZmllclwiO1xuICAgIEVSUltcImFicnVwdERvY3R5cGVQdWJsaWNJZGVudGlmaWVyXCJdID0gXCJhYnJ1cHQtZG9jdHlwZS1wdWJsaWMtaWRlbnRpZmllclwiO1xuICAgIEVSUltcImFicnVwdERvY3R5cGVTeXN0ZW1JZGVudGlmaWVyXCJdID0gXCJhYnJ1cHQtZG9jdHlwZS1zeXN0ZW0taWRlbnRpZmllclwiO1xuICAgIEVSUltcImNkYXRhSW5IdG1sQ29udGVudFwiXSA9IFwiY2RhdGEtaW4taHRtbC1jb250ZW50XCI7XG4gICAgRVJSW1wiaW5jb3JyZWN0bHlPcGVuZWRDb21tZW50XCJdID0gXCJpbmNvcnJlY3RseS1vcGVuZWQtY29tbWVudFwiO1xuICAgIEVSUltcImVvZkluU2NyaXB0SHRtbENvbW1lbnRMaWtlVGV4dFwiXSA9IFwiZW9mLWluLXNjcmlwdC1odG1sLWNvbW1lbnQtbGlrZS10ZXh0XCI7XG4gICAgRVJSW1wiZW9mSW5Eb2N0eXBlXCJdID0gXCJlb2YtaW4tZG9jdHlwZVwiO1xuICAgIEVSUltcIm5lc3RlZENvbW1lbnRcIl0gPSBcIm5lc3RlZC1jb21tZW50XCI7XG4gICAgRVJSW1wiYWJydXB0Q2xvc2luZ09mRW1wdHlDb21tZW50XCJdID0gXCJhYnJ1cHQtY2xvc2luZy1vZi1lbXB0eS1jb21tZW50XCI7XG4gICAgRVJSW1wiZW9mSW5Db21tZW50XCJdID0gXCJlb2YtaW4tY29tbWVudFwiO1xuICAgIEVSUltcImluY29ycmVjdGx5Q2xvc2VkQ29tbWVudFwiXSA9IFwiaW5jb3JyZWN0bHktY2xvc2VkLWNvbW1lbnRcIjtcbiAgICBFUlJbXCJlb2ZJbkNkYXRhXCJdID0gXCJlb2YtaW4tY2RhdGFcIjtcbiAgICBFUlJbXCJhYnNlbmNlT2ZEaWdpdHNJbk51bWVyaWNDaGFyYWN0ZXJSZWZlcmVuY2VcIl0gPSBcImFic2VuY2Utb2YtZGlnaXRzLWluLW51bWVyaWMtY2hhcmFjdGVyLXJlZmVyZW5jZVwiO1xuICAgIEVSUltcIm51bGxDaGFyYWN0ZXJSZWZlcmVuY2VcIl0gPSBcIm51bGwtY2hhcmFjdGVyLXJlZmVyZW5jZVwiO1xuICAgIEVSUltcInN1cnJvZ2F0ZUNoYXJhY3RlclJlZmVyZW5jZVwiXSA9IFwic3Vycm9nYXRlLWNoYXJhY3Rlci1yZWZlcmVuY2VcIjtcbiAgICBFUlJbXCJjaGFyYWN0ZXJSZWZlcmVuY2VPdXRzaWRlVW5pY29kZVJhbmdlXCJdID0gXCJjaGFyYWN0ZXItcmVmZXJlbmNlLW91dHNpZGUtdW5pY29kZS1yYW5nZVwiO1xuICAgIEVSUltcImNvbnRyb2xDaGFyYWN0ZXJSZWZlcmVuY2VcIl0gPSBcImNvbnRyb2wtY2hhcmFjdGVyLXJlZmVyZW5jZVwiO1xuICAgIEVSUltcIm5vbmNoYXJhY3RlckNoYXJhY3RlclJlZmVyZW5jZVwiXSA9IFwibm9uY2hhcmFjdGVyLWNoYXJhY3Rlci1yZWZlcmVuY2VcIjtcbiAgICBFUlJbXCJtaXNzaW5nV2hpdGVzcGFjZUJlZm9yZURvY3R5cGVOYW1lXCJdID0gXCJtaXNzaW5nLXdoaXRlc3BhY2UtYmVmb3JlLWRvY3R5cGUtbmFtZVwiO1xuICAgIEVSUltcIm1pc3NpbmdEb2N0eXBlTmFtZVwiXSA9IFwibWlzc2luZy1kb2N0eXBlLW5hbWVcIjtcbiAgICBFUlJbXCJpbnZhbGlkQ2hhcmFjdGVyU2VxdWVuY2VBZnRlckRvY3R5cGVOYW1lXCJdID0gXCJpbnZhbGlkLWNoYXJhY3Rlci1zZXF1ZW5jZS1hZnRlci1kb2N0eXBlLW5hbWVcIjtcbiAgICBFUlJbXCJkdXBsaWNhdGVBdHRyaWJ1dGVcIl0gPSBcImR1cGxpY2F0ZS1hdHRyaWJ1dGVcIjtcbiAgICBFUlJbXCJub25Db25mb3JtaW5nRG9jdHlwZVwiXSA9IFwibm9uLWNvbmZvcm1pbmctZG9jdHlwZVwiO1xuICAgIEVSUltcIm1pc3NpbmdEb2N0eXBlXCJdID0gXCJtaXNzaW5nLWRvY3R5cGVcIjtcbiAgICBFUlJbXCJtaXNwbGFjZWREb2N0eXBlXCJdID0gXCJtaXNwbGFjZWQtZG9jdHlwZVwiO1xuICAgIEVSUltcImVuZFRhZ1dpdGhvdXRNYXRjaGluZ09wZW5FbGVtZW50XCJdID0gXCJlbmQtdGFnLXdpdGhvdXQtbWF0Y2hpbmctb3Blbi1lbGVtZW50XCI7XG4gICAgRVJSW1wiY2xvc2luZ09mRWxlbWVudFdpdGhPcGVuQ2hpbGRFbGVtZW50c1wiXSA9IFwiY2xvc2luZy1vZi1lbGVtZW50LXdpdGgtb3Blbi1jaGlsZC1lbGVtZW50c1wiO1xuICAgIEVSUltcImRpc2FsbG93ZWRDb250ZW50SW5Ob3NjcmlwdEluSGVhZFwiXSA9IFwiZGlzYWxsb3dlZC1jb250ZW50LWluLW5vc2NyaXB0LWluLWhlYWRcIjtcbiAgICBFUlJbXCJvcGVuRWxlbWVudHNMZWZ0QWZ0ZXJFb2ZcIl0gPSBcIm9wZW4tZWxlbWVudHMtbGVmdC1hZnRlci1lb2ZcIjtcbiAgICBFUlJbXCJhYmFuZG9uZWRIZWFkRWxlbWVudENoaWxkXCJdID0gXCJhYmFuZG9uZWQtaGVhZC1lbGVtZW50LWNoaWxkXCI7XG4gICAgRVJSW1wibWlzcGxhY2VkU3RhcnRUYWdGb3JIZWFkRWxlbWVudFwiXSA9IFwibWlzcGxhY2VkLXN0YXJ0LXRhZy1mb3ItaGVhZC1lbGVtZW50XCI7XG4gICAgRVJSW1wibmVzdGVkTm9zY3JpcHRJbkhlYWRcIl0gPSBcIm5lc3RlZC1ub3NjcmlwdC1pbi1oZWFkXCI7XG4gICAgRVJSW1wiZW9mSW5FbGVtZW50VGhhdENhbkNvbnRhaW5Pbmx5VGV4dFwiXSA9IFwiZW9mLWluLWVsZW1lbnQtdGhhdC1jYW4tY29udGFpbi1vbmx5LXRleHRcIjtcbn0pKEVSUiA9IEVSUiB8fCAoRVJSID0ge30pKTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWVycm9yLWNvZGVzLmpzLm1hcCIsICJpbXBvcnQgeyBDT0RFX1BPSU5UUyBhcyAkLCBnZXRTdXJyb2dhdGVQYWlyQ29kZVBvaW50LCBpc0NvbnRyb2xDb2RlUG9pbnQsIGlzU3Vycm9nYXRlLCBpc1N1cnJvZ2F0ZVBhaXIsIGlzVW5kZWZpbmVkQ29kZVBvaW50LCB9IGZyb20gJy4uL2NvbW1vbi91bmljb2RlLmpzJztcbmltcG9ydCB7IEVSUiB9IGZyb20gJy4uL2NvbW1vbi9lcnJvci1jb2Rlcy5qcyc7XG4vL0NvbnN0XG5jb25zdCBERUZBVUxUX0JVRkZFUl9XQVRFUkxJTkUgPSAxIDw8IDE2O1xuLy9QcmVwcm9jZXNzb3Jcbi8vTk9URTogSFRNTCBpbnB1dCBwcmVwcm9jZXNzaW5nXG4vLyhzZWU6IGh0dHA6Ly93d3cud2hhdHdnLm9yZy9zcGVjcy93ZWItYXBwcy9jdXJyZW50LXdvcmsvbXVsdGlwYWdlL3BhcnNpbmcuaHRtbCNwcmVwcm9jZXNzaW5nLXRoZS1pbnB1dC1zdHJlYW0pXG5leHBvcnQgY2xhc3MgUHJlcHJvY2Vzc29yIHtcbiAgICBjb25zdHJ1Y3RvcihoYW5kbGVyKSB7XG4gICAgICAgIHRoaXMuaGFuZGxlciA9IGhhbmRsZXI7XG4gICAgICAgIHRoaXMuaHRtbCA9ICcnO1xuICAgICAgICB0aGlzLnBvcyA9IC0xO1xuICAgICAgICAvLyBOT1RFOiBJbml0aWFsIGBsYXN0R2FwUG9zYCBpcyAtMiwgdG8gZW5zdXJlIGBjb2xgIG9uIGluaXRpYWxpc2F0aW9uIGlzIDBcbiAgICAgICAgdGhpcy5sYXN0R2FwUG9zID0gLTI7XG4gICAgICAgIHRoaXMuZ2FwU3RhY2sgPSBbXTtcbiAgICAgICAgdGhpcy5za2lwTmV4dE5ld0xpbmUgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5sYXN0Q2h1bmtXcml0dGVuID0gZmFsc2U7XG4gICAgICAgIHRoaXMuZW5kT2ZDaHVua0hpdCA9IGZhbHNlO1xuICAgICAgICB0aGlzLmJ1ZmZlcldhdGVybGluZSA9IERFRkFVTFRfQlVGRkVSX1dBVEVSTElORTtcbiAgICAgICAgdGhpcy5pc0VvbCA9IGZhbHNlO1xuICAgICAgICB0aGlzLmxpbmVTdGFydFBvcyA9IDA7XG4gICAgICAgIHRoaXMuZHJvcHBlZEJ1ZmZlclNpemUgPSAwO1xuICAgICAgICB0aGlzLmxpbmUgPSAxO1xuICAgICAgICAvL05PVEU6IGF2b2lkIHJlcG9ydGluZyBlcnJvcnMgdHdpY2Ugb24gYWR2YW5jZS9yZXRyZWF0XG4gICAgICAgIHRoaXMubGFzdEVyck9mZnNldCA9IC0xO1xuICAgIH1cbiAgICAvKiogVGhlIGNvbHVtbiBvbiB0aGUgY3VycmVudCBsaW5lLiBJZiB3ZSBqdXN0IHNhdyBhIGdhcCAoZWcuIGEgc3Vycm9nYXRlIHBhaXIpLCByZXR1cm4gdGhlIGluZGV4IGJlZm9yZS4gKi9cbiAgICBnZXQgY29sKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5wb3MgLSB0aGlzLmxpbmVTdGFydFBvcyArIE51bWJlcih0aGlzLmxhc3RHYXBQb3MgIT09IHRoaXMucG9zKTtcbiAgICB9XG4gICAgZ2V0IG9mZnNldCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZHJvcHBlZEJ1ZmZlclNpemUgKyB0aGlzLnBvcztcbiAgICB9XG4gICAgZ2V0RXJyb3IoY29kZSkge1xuICAgICAgICBjb25zdCB7IGxpbmUsIGNvbCwgb2Zmc2V0IH0gPSB0aGlzO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgY29kZSxcbiAgICAgICAgICAgIHN0YXJ0TGluZTogbGluZSxcbiAgICAgICAgICAgIGVuZExpbmU6IGxpbmUsXG4gICAgICAgICAgICBzdGFydENvbDogY29sLFxuICAgICAgICAgICAgZW5kQ29sOiBjb2wsXG4gICAgICAgICAgICBzdGFydE9mZnNldDogb2Zmc2V0LFxuICAgICAgICAgICAgZW5kT2Zmc2V0OiBvZmZzZXQsXG4gICAgICAgIH07XG4gICAgfVxuICAgIF9lcnIoY29kZSkge1xuICAgICAgICBpZiAodGhpcy5oYW5kbGVyLm9uUGFyc2VFcnJvciAmJiB0aGlzLmxhc3RFcnJPZmZzZXQgIT09IHRoaXMub2Zmc2V0KSB7XG4gICAgICAgICAgICB0aGlzLmxhc3RFcnJPZmZzZXQgPSB0aGlzLm9mZnNldDtcbiAgICAgICAgICAgIHRoaXMuaGFuZGxlci5vblBhcnNlRXJyb3IodGhpcy5nZXRFcnJvcihjb2RlKSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgX2FkZEdhcCgpIHtcbiAgICAgICAgdGhpcy5nYXBTdGFjay5wdXNoKHRoaXMubGFzdEdhcFBvcyk7XG4gICAgICAgIHRoaXMubGFzdEdhcFBvcyA9IHRoaXMucG9zO1xuICAgIH1cbiAgICBfcHJvY2Vzc1N1cnJvZ2F0ZShjcCkge1xuICAgICAgICAvL05PVEU6IHRyeSB0byBwZWVrIGEgc3Vycm9nYXRlIHBhaXJcbiAgICAgICAgaWYgKHRoaXMucG9zICE9PSB0aGlzLmh0bWwubGVuZ3RoIC0gMSkge1xuICAgICAgICAgICAgY29uc3QgbmV4dENwID0gdGhpcy5odG1sLmNoYXJDb2RlQXQodGhpcy5wb3MgKyAxKTtcbiAgICAgICAgICAgIGlmIChpc1N1cnJvZ2F0ZVBhaXIobmV4dENwKSkge1xuICAgICAgICAgICAgICAgIC8vTk9URTogd2UgaGF2ZSBhIHN1cnJvZ2F0ZSBwYWlyLiBQZWVrIHBhaXIgY2hhcmFjdGVyIGFuZCByZWNhbGN1bGF0ZSBjb2RlIHBvaW50LlxuICAgICAgICAgICAgICAgIHRoaXMucG9zKys7XG4gICAgICAgICAgICAgICAgLy9OT1RFOiBhZGQgYSBnYXAgdGhhdCBzaG91bGQgYmUgYXZvaWRlZCBkdXJpbmcgcmV0cmVhdFxuICAgICAgICAgICAgICAgIHRoaXMuX2FkZEdhcCgpO1xuICAgICAgICAgICAgICAgIHJldHVybiBnZXRTdXJyb2dhdGVQYWlyQ29kZVBvaW50KGNwLCBuZXh0Q3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8vTk9URTogd2UgYXJlIGF0IHRoZSBlbmQgb2YgYSBjaHVuaywgdGhlcmVmb3JlIHdlIGNhbid0IGluZmVyIHRoZSBzdXJyb2dhdGUgcGFpciB5ZXQuXG4gICAgICAgIGVsc2UgaWYgKCF0aGlzLmxhc3RDaHVua1dyaXR0ZW4pIHtcbiAgICAgICAgICAgIHRoaXMuZW5kT2ZDaHVua0hpdCA9IHRydWU7XG4gICAgICAgICAgICByZXR1cm4gJC5FT0Y7XG4gICAgICAgIH1cbiAgICAgICAgLy9OT1RFOiBpc29sYXRlZCBzdXJyb2dhdGVcbiAgICAgICAgdGhpcy5fZXJyKEVSUi5zdXJyb2dhdGVJbklucHV0U3RyZWFtKTtcbiAgICAgICAgcmV0dXJuIGNwO1xuICAgIH1cbiAgICB3aWxsRHJvcFBhcnNlZENodW5rKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5wb3MgPiB0aGlzLmJ1ZmZlcldhdGVybGluZTtcbiAgICB9XG4gICAgZHJvcFBhcnNlZENodW5rKCkge1xuICAgICAgICBpZiAodGhpcy53aWxsRHJvcFBhcnNlZENodW5rKCkpIHtcbiAgICAgICAgICAgIHRoaXMuaHRtbCA9IHRoaXMuaHRtbC5zdWJzdHJpbmcodGhpcy5wb3MpO1xuICAgICAgICAgICAgdGhpcy5saW5lU3RhcnRQb3MgLT0gdGhpcy5wb3M7XG4gICAgICAgICAgICB0aGlzLmRyb3BwZWRCdWZmZXJTaXplICs9IHRoaXMucG9zO1xuICAgICAgICAgICAgdGhpcy5wb3MgPSAwO1xuICAgICAgICAgICAgdGhpcy5sYXN0R2FwUG9zID0gLTI7XG4gICAgICAgICAgICB0aGlzLmdhcFN0YWNrLmxlbmd0aCA9IDA7XG4gICAgICAgIH1cbiAgICB9XG4gICAgd3JpdGUoY2h1bmssIGlzTGFzdENodW5rKSB7XG4gICAgICAgIGlmICh0aGlzLmh0bWwubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgdGhpcy5odG1sICs9IGNodW5rO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5odG1sID0gY2h1bms7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5lbmRPZkNodW5rSGl0ID0gZmFsc2U7XG4gICAgICAgIHRoaXMubGFzdENodW5rV3JpdHRlbiA9IGlzTGFzdENodW5rO1xuICAgIH1cbiAgICBpbnNlcnRIdG1sQXRDdXJyZW50UG9zKGNodW5rKSB7XG4gICAgICAgIHRoaXMuaHRtbCA9IHRoaXMuaHRtbC5zdWJzdHJpbmcoMCwgdGhpcy5wb3MgKyAxKSArIGNodW5rICsgdGhpcy5odG1sLnN1YnN0cmluZyh0aGlzLnBvcyArIDEpO1xuICAgICAgICB0aGlzLmVuZE9mQ2h1bmtIaXQgPSBmYWxzZTtcbiAgICB9XG4gICAgc3RhcnRzV2l0aChwYXR0ZXJuLCBjYXNlU2Vuc2l0aXZlKSB7XG4gICAgICAgIC8vIENoZWNrIGlmIG91ciBidWZmZXIgaGFzIGVub3VnaCBjaGFyYWN0ZXJzXG4gICAgICAgIGlmICh0aGlzLnBvcyArIHBhdHRlcm4ubGVuZ3RoID4gdGhpcy5odG1sLmxlbmd0aCkge1xuICAgICAgICAgICAgdGhpcy5lbmRPZkNodW5rSGl0ID0gIXRoaXMubGFzdENodW5rV3JpdHRlbjtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoY2FzZVNlbnNpdGl2ZSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuaHRtbC5zdGFydHNXaXRoKHBhdHRlcm4sIHRoaXMucG9zKTtcbiAgICAgICAgfVxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHBhdHRlcm4ubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGNvbnN0IGNwID0gdGhpcy5odG1sLmNoYXJDb2RlQXQodGhpcy5wb3MgKyBpKSB8IDB4MjA7XG4gICAgICAgICAgICBpZiAoY3AgIT09IHBhdHRlcm4uY2hhckNvZGVBdChpKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcGVlayhvZmZzZXQpIHtcbiAgICAgICAgY29uc3QgcG9zID0gdGhpcy5wb3MgKyBvZmZzZXQ7XG4gICAgICAgIGlmIChwb3MgPj0gdGhpcy5odG1sLmxlbmd0aCkge1xuICAgICAgICAgICAgdGhpcy5lbmRPZkNodW5rSGl0ID0gIXRoaXMubGFzdENodW5rV3JpdHRlbjtcbiAgICAgICAgICAgIHJldHVybiAkLkVPRjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBjb2RlID0gdGhpcy5odG1sLmNoYXJDb2RlQXQocG9zKTtcbiAgICAgICAgcmV0dXJuIGNvZGUgPT09ICQuQ0FSUklBR0VfUkVUVVJOID8gJC5MSU5FX0ZFRUQgOiBjb2RlO1xuICAgIH1cbiAgICBhZHZhbmNlKCkge1xuICAgICAgICB0aGlzLnBvcysrO1xuICAgICAgICAvL05PVEU6IExGIHNob3VsZCBiZSBpbiB0aGUgbGFzdCBjb2x1bW4gb2YgdGhlIGxpbmVcbiAgICAgICAgaWYgKHRoaXMuaXNFb2wpIHtcbiAgICAgICAgICAgIHRoaXMuaXNFb2wgPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMubGluZSsrO1xuICAgICAgICAgICAgdGhpcy5saW5lU3RhcnRQb3MgPSB0aGlzLnBvcztcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5wb3MgPj0gdGhpcy5odG1sLmxlbmd0aCkge1xuICAgICAgICAgICAgdGhpcy5lbmRPZkNodW5rSGl0ID0gIXRoaXMubGFzdENodW5rV3JpdHRlbjtcbiAgICAgICAgICAgIHJldHVybiAkLkVPRjtcbiAgICAgICAgfVxuICAgICAgICBsZXQgY3AgPSB0aGlzLmh0bWwuY2hhckNvZGVBdCh0aGlzLnBvcyk7XG4gICAgICAgIC8vTk9URTogYWxsIFUrMDAwRCBDQVJSSUFHRSBSRVRVUk4gKENSKSBjaGFyYWN0ZXJzIG11c3QgYmUgY29udmVydGVkIHRvIFUrMDAwQSBMSU5FIEZFRUQgKExGKSBjaGFyYWN0ZXJzXG4gICAgICAgIGlmIChjcCA9PT0gJC5DQVJSSUFHRV9SRVRVUk4pIHtcbiAgICAgICAgICAgIHRoaXMuaXNFb2wgPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy5za2lwTmV4dE5ld0xpbmUgPSB0cnVlO1xuICAgICAgICAgICAgcmV0dXJuICQuTElORV9GRUVEO1xuICAgICAgICB9XG4gICAgICAgIC8vTk9URTogYW55IFUrMDAwQSBMSU5FIEZFRUQgKExGKSBjaGFyYWN0ZXJzIHRoYXQgaW1tZWRpYXRlbHkgZm9sbG93IGEgVSswMDBEIENBUlJJQUdFIFJFVFVSTiAoQ1IpIGNoYXJhY3RlclxuICAgICAgICAvL211c3QgYmUgaWdub3JlZC5cbiAgICAgICAgaWYgKGNwID09PSAkLkxJTkVfRkVFRCkge1xuICAgICAgICAgICAgdGhpcy5pc0VvbCA9IHRydWU7XG4gICAgICAgICAgICBpZiAodGhpcy5za2lwTmV4dE5ld0xpbmUpIHtcbiAgICAgICAgICAgICAgICAvLyBgbGluZWAgd2lsbCBiZSBidW1wZWQgYWdhaW4gaW4gdGhlIHJlY3Vyc2l2ZSBjYWxsLlxuICAgICAgICAgICAgICAgIHRoaXMubGluZS0tO1xuICAgICAgICAgICAgICAgIHRoaXMuc2tpcE5leHROZXdMaW5lID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgdGhpcy5fYWRkR2FwKCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuYWR2YW5jZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRoaXMuc2tpcE5leHROZXdMaW5lID0gZmFsc2U7XG4gICAgICAgIGlmIChpc1N1cnJvZ2F0ZShjcCkpIHtcbiAgICAgICAgICAgIGNwID0gdGhpcy5fcHJvY2Vzc1N1cnJvZ2F0ZShjcCk7XG4gICAgICAgIH1cbiAgICAgICAgLy9PUFRJTUlaQVRJT046IGZpcnN0IGNoZWNrIGlmIGNvZGUgcG9pbnQgaXMgaW4gdGhlIGNvbW1vbiBhbGxvd2VkXG4gICAgICAgIC8vcmFuZ2UgKEFTQ0lJIGFscGhhbnVtZXJpYywgd2hpdGVzcGFjZXMsIGJpZyBjaHVuayBvZiBCTVApXG4gICAgICAgIC8vYmVmb3JlIGdvaW5nIGludG8gZGV0YWlsZWQgcGVyZm9ybWFuY2UgY29zdCB2YWxpZGF0aW9uLlxuICAgICAgICBjb25zdCBpc0NvbW1vblZhbGlkUmFuZ2UgPSB0aGlzLmhhbmRsZXIub25QYXJzZUVycm9yID09PSBudWxsIHx8XG4gICAgICAgICAgICAoY3AgPiAweDFmICYmIGNwIDwgMHg3ZikgfHxcbiAgICAgICAgICAgIGNwID09PSAkLkxJTkVfRkVFRCB8fFxuICAgICAgICAgICAgY3AgPT09ICQuQ0FSUklBR0VfUkVUVVJOIHx8XG4gICAgICAgICAgICAoY3AgPiAweDlmICYmIGNwIDwgNjQ5NzYpO1xuICAgICAgICBpZiAoIWlzQ29tbW9uVmFsaWRSYW5nZSkge1xuICAgICAgICAgICAgdGhpcy5fY2hlY2tGb3JQcm9ibGVtYXRpY0NoYXJhY3RlcnMoY3ApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBjcDtcbiAgICB9XG4gICAgX2NoZWNrRm9yUHJvYmxlbWF0aWNDaGFyYWN0ZXJzKGNwKSB7XG4gICAgICAgIGlmIChpc0NvbnRyb2xDb2RlUG9pbnQoY3ApKSB7XG4gICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmNvbnRyb2xDaGFyYWN0ZXJJbklucHV0U3RyZWFtKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChpc1VuZGVmaW5lZENvZGVQb2ludChjcCkpIHtcbiAgICAgICAgICAgIHRoaXMuX2VycihFUlIubm9uY2hhcmFjdGVySW5JbnB1dFN0cmVhbSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0cmVhdChjb3VudCkge1xuICAgICAgICB0aGlzLnBvcyAtPSBjb3VudDtcbiAgICAgICAgd2hpbGUgKHRoaXMucG9zIDwgdGhpcy5sYXN0R2FwUG9zKSB7XG4gICAgICAgICAgICB0aGlzLmxhc3RHYXBQb3MgPSB0aGlzLmdhcFN0YWNrLnBvcCgpO1xuICAgICAgICAgICAgdGhpcy5wb3MtLTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmlzRW9sID0gZmFsc2U7XG4gICAgfVxufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cHJlcHJvY2Vzc29yLmpzLm1hcCIsICJleHBvcnQgdmFyIFRva2VuVHlwZTtcbihmdW5jdGlvbiAoVG9rZW5UeXBlKSB7XG4gICAgVG9rZW5UeXBlW1Rva2VuVHlwZVtcIkNIQVJBQ1RFUlwiXSA9IDBdID0gXCJDSEFSQUNURVJcIjtcbiAgICBUb2tlblR5cGVbVG9rZW5UeXBlW1wiTlVMTF9DSEFSQUNURVJcIl0gPSAxXSA9IFwiTlVMTF9DSEFSQUNURVJcIjtcbiAgICBUb2tlblR5cGVbVG9rZW5UeXBlW1wiV0hJVEVTUEFDRV9DSEFSQUNURVJcIl0gPSAyXSA9IFwiV0hJVEVTUEFDRV9DSEFSQUNURVJcIjtcbiAgICBUb2tlblR5cGVbVG9rZW5UeXBlW1wiU1RBUlRfVEFHXCJdID0gM10gPSBcIlNUQVJUX1RBR1wiO1xuICAgIFRva2VuVHlwZVtUb2tlblR5cGVbXCJFTkRfVEFHXCJdID0gNF0gPSBcIkVORF9UQUdcIjtcbiAgICBUb2tlblR5cGVbVG9rZW5UeXBlW1wiQ09NTUVOVFwiXSA9IDVdID0gXCJDT01NRU5UXCI7XG4gICAgVG9rZW5UeXBlW1Rva2VuVHlwZVtcIkRPQ1RZUEVcIl0gPSA2XSA9IFwiRE9DVFlQRVwiO1xuICAgIFRva2VuVHlwZVtUb2tlblR5cGVbXCJFT0ZcIl0gPSA3XSA9IFwiRU9GXCI7XG4gICAgVG9rZW5UeXBlW1Rva2VuVHlwZVtcIkhJQkVSTkFUSU9OXCJdID0gOF0gPSBcIkhJQkVSTkFUSU9OXCI7XG59KShUb2tlblR5cGUgPSBUb2tlblR5cGUgfHwgKFRva2VuVHlwZSA9IHt9KSk7XG5leHBvcnQgZnVuY3Rpb24gZ2V0VG9rZW5BdHRyKHRva2VuLCBhdHRyTmFtZSkge1xuICAgIGZvciAobGV0IGkgPSB0b2tlbi5hdHRycy5sZW5ndGggLSAxOyBpID49IDA7IGktLSkge1xuICAgICAgICBpZiAodG9rZW4uYXR0cnNbaV0ubmFtZSA9PT0gYXR0ck5hbWUpIHtcbiAgICAgICAgICAgIHJldHVybiB0b2tlbi5hdHRyc1tpXS52YWx1ZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXRva2VuLmpzLm1hcCIsIG51bGwsIG51bGwsIG51bGwsIG51bGwsICIvKiogQWxsIHZhbGlkIG5hbWVzcGFjZXMgaW4gSFRNTC4gKi9cbmV4cG9ydCB2YXIgTlM7XG4oZnVuY3Rpb24gKE5TKSB7XG4gICAgTlNbXCJIVE1MXCJdID0gXCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sXCI7XG4gICAgTlNbXCJNQVRITUxcIl0gPSBcImh0dHA6Ly93d3cudzMub3JnLzE5OTgvTWF0aC9NYXRoTUxcIjtcbiAgICBOU1tcIlNWR1wiXSA9IFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIjtcbiAgICBOU1tcIlhMSU5LXCJdID0gXCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rXCI7XG4gICAgTlNbXCJYTUxcIl0gPSBcImh0dHA6Ly93d3cudzMub3JnL1hNTC8xOTk4L25hbWVzcGFjZVwiO1xuICAgIE5TW1wiWE1MTlNcIl0gPSBcImh0dHA6Ly93d3cudzMub3JnLzIwMDAveG1sbnMvXCI7XG59KShOUyA9IE5TIHx8IChOUyA9IHt9KSk7XG5leHBvcnQgdmFyIEFUVFJTO1xuKGZ1bmN0aW9uIChBVFRSUykge1xuICAgIEFUVFJTW1wiVFlQRVwiXSA9IFwidHlwZVwiO1xuICAgIEFUVFJTW1wiQUNUSU9OXCJdID0gXCJhY3Rpb25cIjtcbiAgICBBVFRSU1tcIkVOQ09ESU5HXCJdID0gXCJlbmNvZGluZ1wiO1xuICAgIEFUVFJTW1wiUFJPTVBUXCJdID0gXCJwcm9tcHRcIjtcbiAgICBBVFRSU1tcIk5BTUVcIl0gPSBcIm5hbWVcIjtcbiAgICBBVFRSU1tcIkNPTE9SXCJdID0gXCJjb2xvclwiO1xuICAgIEFUVFJTW1wiRkFDRVwiXSA9IFwiZmFjZVwiO1xuICAgIEFUVFJTW1wiU0laRVwiXSA9IFwic2l6ZVwiO1xufSkoQVRUUlMgPSBBVFRSUyB8fCAoQVRUUlMgPSB7fSkpO1xuLyoqXG4gKiBUaGUgbW9kZSBvZiB0aGUgZG9jdW1lbnQuXG4gKlxuICogQHNlZSB7QGxpbmsgaHR0cHM6Ly9kb20uc3BlYy53aGF0d2cub3JnLyNjb25jZXB0LWRvY3VtZW50LWxpbWl0ZWQtcXVpcmtzfVxuICovXG5leHBvcnQgdmFyIERPQ1VNRU5UX01PREU7XG4oZnVuY3Rpb24gKERPQ1VNRU5UX01PREUpIHtcbiAgICBET0NVTUVOVF9NT0RFW1wiTk9fUVVJUktTXCJdID0gXCJuby1xdWlya3NcIjtcbiAgICBET0NVTUVOVF9NT0RFW1wiUVVJUktTXCJdID0gXCJxdWlya3NcIjtcbiAgICBET0NVTUVOVF9NT0RFW1wiTElNSVRFRF9RVUlSS1NcIl0gPSBcImxpbWl0ZWQtcXVpcmtzXCI7XG59KShET0NVTUVOVF9NT0RFID0gRE9DVU1FTlRfTU9ERSB8fCAoRE9DVU1FTlRfTU9ERSA9IHt9KSk7XG5leHBvcnQgdmFyIFRBR19OQU1FUztcbihmdW5jdGlvbiAoVEFHX05BTUVTKSB7XG4gICAgVEFHX05BTUVTW1wiQVwiXSA9IFwiYVwiO1xuICAgIFRBR19OQU1FU1tcIkFERFJFU1NcIl0gPSBcImFkZHJlc3NcIjtcbiAgICBUQUdfTkFNRVNbXCJBTk5PVEFUSU9OX1hNTFwiXSA9IFwiYW5ub3RhdGlvbi14bWxcIjtcbiAgICBUQUdfTkFNRVNbXCJBUFBMRVRcIl0gPSBcImFwcGxldFwiO1xuICAgIFRBR19OQU1FU1tcIkFSRUFcIl0gPSBcImFyZWFcIjtcbiAgICBUQUdfTkFNRVNbXCJBUlRJQ0xFXCJdID0gXCJhcnRpY2xlXCI7XG4gICAgVEFHX05BTUVTW1wiQVNJREVcIl0gPSBcImFzaWRlXCI7XG4gICAgVEFHX05BTUVTW1wiQlwiXSA9IFwiYlwiO1xuICAgIFRBR19OQU1FU1tcIkJBU0VcIl0gPSBcImJhc2VcIjtcbiAgICBUQUdfTkFNRVNbXCJCQVNFRk9OVFwiXSA9IFwiYmFzZWZvbnRcIjtcbiAgICBUQUdfTkFNRVNbXCJCR1NPVU5EXCJdID0gXCJiZ3NvdW5kXCI7XG4gICAgVEFHX05BTUVTW1wiQklHXCJdID0gXCJiaWdcIjtcbiAgICBUQUdfTkFNRVNbXCJCTE9DS1FVT1RFXCJdID0gXCJibG9ja3F1b3RlXCI7XG4gICAgVEFHX05BTUVTW1wiQk9EWVwiXSA9IFwiYm9keVwiO1xuICAgIFRBR19OQU1FU1tcIkJSXCJdID0gXCJiclwiO1xuICAgIFRBR19OQU1FU1tcIkJVVFRPTlwiXSA9IFwiYnV0dG9uXCI7XG4gICAgVEFHX05BTUVTW1wiQ0FQVElPTlwiXSA9IFwiY2FwdGlvblwiO1xuICAgIFRBR19OQU1FU1tcIkNFTlRFUlwiXSA9IFwiY2VudGVyXCI7XG4gICAgVEFHX05BTUVTW1wiQ09ERVwiXSA9IFwiY29kZVwiO1xuICAgIFRBR19OQU1FU1tcIkNPTFwiXSA9IFwiY29sXCI7XG4gICAgVEFHX05BTUVTW1wiQ09MR1JPVVBcIl0gPSBcImNvbGdyb3VwXCI7XG4gICAgVEFHX05BTUVTW1wiRERcIl0gPSBcImRkXCI7XG4gICAgVEFHX05BTUVTW1wiREVTQ1wiXSA9IFwiZGVzY1wiO1xuICAgIFRBR19OQU1FU1tcIkRFVEFJTFNcIl0gPSBcImRldGFpbHNcIjtcbiAgICBUQUdfTkFNRVNbXCJESUFMT0dcIl0gPSBcImRpYWxvZ1wiO1xuICAgIFRBR19OQU1FU1tcIkRJUlwiXSA9IFwiZGlyXCI7XG4gICAgVEFHX05BTUVTW1wiRElWXCJdID0gXCJkaXZcIjtcbiAgICBUQUdfTkFNRVNbXCJETFwiXSA9IFwiZGxcIjtcbiAgICBUQUdfTkFNRVNbXCJEVFwiXSA9IFwiZHRcIjtcbiAgICBUQUdfTkFNRVNbXCJFTVwiXSA9IFwiZW1cIjtcbiAgICBUQUdfTkFNRVNbXCJFTUJFRFwiXSA9IFwiZW1iZWRcIjtcbiAgICBUQUdfTkFNRVNbXCJGSUVMRFNFVFwiXSA9IFwiZmllbGRzZXRcIjtcbiAgICBUQUdfTkFNRVNbXCJGSUdDQVBUSU9OXCJdID0gXCJmaWdjYXB0aW9uXCI7XG4gICAgVEFHX05BTUVTW1wiRklHVVJFXCJdID0gXCJmaWd1cmVcIjtcbiAgICBUQUdfTkFNRVNbXCJGT05UXCJdID0gXCJmb250XCI7XG4gICAgVEFHX05BTUVTW1wiRk9PVEVSXCJdID0gXCJmb290ZXJcIjtcbiAgICBUQUdfTkFNRVNbXCJGT1JFSUdOX09CSkVDVFwiXSA9IFwiZm9yZWlnbk9iamVjdFwiO1xuICAgIFRBR19OQU1FU1tcIkZPUk1cIl0gPSBcImZvcm1cIjtcbiAgICBUQUdfTkFNRVNbXCJGUkFNRVwiXSA9IFwiZnJhbWVcIjtcbiAgICBUQUdfTkFNRVNbXCJGUkFNRVNFVFwiXSA9IFwiZnJhbWVzZXRcIjtcbiAgICBUQUdfTkFNRVNbXCJIMVwiXSA9IFwiaDFcIjtcbiAgICBUQUdfTkFNRVNbXCJIMlwiXSA9IFwiaDJcIjtcbiAgICBUQUdfTkFNRVNbXCJIM1wiXSA9IFwiaDNcIjtcbiAgICBUQUdfTkFNRVNbXCJINFwiXSA9IFwiaDRcIjtcbiAgICBUQUdfTkFNRVNbXCJINVwiXSA9IFwiaDVcIjtcbiAgICBUQUdfTkFNRVNbXCJINlwiXSA9IFwiaDZcIjtcbiAgICBUQUdfTkFNRVNbXCJIRUFEXCJdID0gXCJoZWFkXCI7XG4gICAgVEFHX05BTUVTW1wiSEVBREVSXCJdID0gXCJoZWFkZXJcIjtcbiAgICBUQUdfTkFNRVNbXCJIR1JPVVBcIl0gPSBcImhncm91cFwiO1xuICAgIFRBR19OQU1FU1tcIkhSXCJdID0gXCJoclwiO1xuICAgIFRBR19OQU1FU1tcIkhUTUxcIl0gPSBcImh0bWxcIjtcbiAgICBUQUdfTkFNRVNbXCJJXCJdID0gXCJpXCI7XG4gICAgVEFHX05BTUVTW1wiSU1HXCJdID0gXCJpbWdcIjtcbiAgICBUQUdfTkFNRVNbXCJJTUFHRVwiXSA9IFwiaW1hZ2VcIjtcbiAgICBUQUdfTkFNRVNbXCJJTlBVVFwiXSA9IFwiaW5wdXRcIjtcbiAgICBUQUdfTkFNRVNbXCJJRlJBTUVcIl0gPSBcImlmcmFtZVwiO1xuICAgIFRBR19OQU1FU1tcIktFWUdFTlwiXSA9IFwia2V5Z2VuXCI7XG4gICAgVEFHX05BTUVTW1wiTEFCRUxcIl0gPSBcImxhYmVsXCI7XG4gICAgVEFHX05BTUVTW1wiTElcIl0gPSBcImxpXCI7XG4gICAgVEFHX05BTUVTW1wiTElOS1wiXSA9IFwibGlua1wiO1xuICAgIFRBR19OQU1FU1tcIkxJU1RJTkdcIl0gPSBcImxpc3RpbmdcIjtcbiAgICBUQUdfTkFNRVNbXCJNQUlOXCJdID0gXCJtYWluXCI7XG4gICAgVEFHX05BTUVTW1wiTUFMSUdOTUFSS1wiXSA9IFwibWFsaWdubWFya1wiO1xuICAgIFRBR19OQU1FU1tcIk1BUlFVRUVcIl0gPSBcIm1hcnF1ZWVcIjtcbiAgICBUQUdfTkFNRVNbXCJNQVRIXCJdID0gXCJtYXRoXCI7XG4gICAgVEFHX05BTUVTW1wiTUVOVVwiXSA9IFwibWVudVwiO1xuICAgIFRBR19OQU1FU1tcIk1FVEFcIl0gPSBcIm1ldGFcIjtcbiAgICBUQUdfTkFNRVNbXCJNR0xZUEhcIl0gPSBcIm1nbHlwaFwiO1xuICAgIFRBR19OQU1FU1tcIk1JXCJdID0gXCJtaVwiO1xuICAgIFRBR19OQU1FU1tcIk1PXCJdID0gXCJtb1wiO1xuICAgIFRBR19OQU1FU1tcIk1OXCJdID0gXCJtblwiO1xuICAgIFRBR19OQU1FU1tcIk1TXCJdID0gXCJtc1wiO1xuICAgIFRBR19OQU1FU1tcIk1URVhUXCJdID0gXCJtdGV4dFwiO1xuICAgIFRBR19OQU1FU1tcIk5BVlwiXSA9IFwibmF2XCI7XG4gICAgVEFHX05BTUVTW1wiTk9CUlwiXSA9IFwibm9iclwiO1xuICAgIFRBR19OQU1FU1tcIk5PRlJBTUVTXCJdID0gXCJub2ZyYW1lc1wiO1xuICAgIFRBR19OQU1FU1tcIk5PRU1CRURcIl0gPSBcIm5vZW1iZWRcIjtcbiAgICBUQUdfTkFNRVNbXCJOT1NDUklQVFwiXSA9IFwibm9zY3JpcHRcIjtcbiAgICBUQUdfTkFNRVNbXCJPQkpFQ1RcIl0gPSBcIm9iamVjdFwiO1xuICAgIFRBR19OQU1FU1tcIk9MXCJdID0gXCJvbFwiO1xuICAgIFRBR19OQU1FU1tcIk9QVEdST1VQXCJdID0gXCJvcHRncm91cFwiO1xuICAgIFRBR19OQU1FU1tcIk9QVElPTlwiXSA9IFwib3B0aW9uXCI7XG4gICAgVEFHX05BTUVTW1wiUFwiXSA9IFwicFwiO1xuICAgIFRBR19OQU1FU1tcIlBBUkFNXCJdID0gXCJwYXJhbVwiO1xuICAgIFRBR19OQU1FU1tcIlBMQUlOVEVYVFwiXSA9IFwicGxhaW50ZXh0XCI7XG4gICAgVEFHX05BTUVTW1wiUFJFXCJdID0gXCJwcmVcIjtcbiAgICBUQUdfTkFNRVNbXCJSQlwiXSA9IFwicmJcIjtcbiAgICBUQUdfTkFNRVNbXCJSUFwiXSA9IFwicnBcIjtcbiAgICBUQUdfTkFNRVNbXCJSVFwiXSA9IFwicnRcIjtcbiAgICBUQUdfTkFNRVNbXCJSVENcIl0gPSBcInJ0Y1wiO1xuICAgIFRBR19OQU1FU1tcIlJVQllcIl0gPSBcInJ1YnlcIjtcbiAgICBUQUdfTkFNRVNbXCJTXCJdID0gXCJzXCI7XG4gICAgVEFHX05BTUVTW1wiU0NSSVBUXCJdID0gXCJzY3JpcHRcIjtcbiAgICBUQUdfTkFNRVNbXCJTRUNUSU9OXCJdID0gXCJzZWN0aW9uXCI7XG4gICAgVEFHX05BTUVTW1wiU0VMRUNUXCJdID0gXCJzZWxlY3RcIjtcbiAgICBUQUdfTkFNRVNbXCJTT1VSQ0VcIl0gPSBcInNvdXJjZVwiO1xuICAgIFRBR19OQU1FU1tcIlNNQUxMXCJdID0gXCJzbWFsbFwiO1xuICAgIFRBR19OQU1FU1tcIlNQQU5cIl0gPSBcInNwYW5cIjtcbiAgICBUQUdfTkFNRVNbXCJTVFJJS0VcIl0gPSBcInN0cmlrZVwiO1xuICAgIFRBR19OQU1FU1tcIlNUUk9OR1wiXSA9IFwic3Ryb25nXCI7XG4gICAgVEFHX05BTUVTW1wiU1RZTEVcIl0gPSBcInN0eWxlXCI7XG4gICAgVEFHX05BTUVTW1wiU1VCXCJdID0gXCJzdWJcIjtcbiAgICBUQUdfTkFNRVNbXCJTVU1NQVJZXCJdID0gXCJzdW1tYXJ5XCI7XG4gICAgVEFHX05BTUVTW1wiU1VQXCJdID0gXCJzdXBcIjtcbiAgICBUQUdfTkFNRVNbXCJUQUJMRVwiXSA9IFwidGFibGVcIjtcbiAgICBUQUdfTkFNRVNbXCJUQk9EWVwiXSA9IFwidGJvZHlcIjtcbiAgICBUQUdfTkFNRVNbXCJURU1QTEFURVwiXSA9IFwidGVtcGxhdGVcIjtcbiAgICBUQUdfTkFNRVNbXCJURVhUQVJFQVwiXSA9IFwidGV4dGFyZWFcIjtcbiAgICBUQUdfTkFNRVNbXCJURk9PVFwiXSA9IFwidGZvb3RcIjtcbiAgICBUQUdfTkFNRVNbXCJURFwiXSA9IFwidGRcIjtcbiAgICBUQUdfTkFNRVNbXCJUSFwiXSA9IFwidGhcIjtcbiAgICBUQUdfTkFNRVNbXCJUSEVBRFwiXSA9IFwidGhlYWRcIjtcbiAgICBUQUdfTkFNRVNbXCJUSVRMRVwiXSA9IFwidGl0bGVcIjtcbiAgICBUQUdfTkFNRVNbXCJUUlwiXSA9IFwidHJcIjtcbiAgICBUQUdfTkFNRVNbXCJUUkFDS1wiXSA9IFwidHJhY2tcIjtcbiAgICBUQUdfTkFNRVNbXCJUVFwiXSA9IFwidHRcIjtcbiAgICBUQUdfTkFNRVNbXCJVXCJdID0gXCJ1XCI7XG4gICAgVEFHX05BTUVTW1wiVUxcIl0gPSBcInVsXCI7XG4gICAgVEFHX05BTUVTW1wiU1ZHXCJdID0gXCJzdmdcIjtcbiAgICBUQUdfTkFNRVNbXCJWQVJcIl0gPSBcInZhclwiO1xuICAgIFRBR19OQU1FU1tcIldCUlwiXSA9IFwid2JyXCI7XG4gICAgVEFHX05BTUVTW1wiWE1QXCJdID0gXCJ4bXBcIjtcbn0pKFRBR19OQU1FUyA9IFRBR19OQU1FUyB8fCAoVEFHX05BTUVTID0ge30pKTtcbi8qKlxuICogVGFnIElEcyBhcmUgbnVtZXJpYyBJRHMgZm9yIGtub3duIHRhZyBuYW1lcy5cbiAqXG4gKiBXZSB1c2UgdGFnIElEcyB0byBpbXByb3ZlIHRoZSBwZXJmb3JtYW5jZSBvZiB0YWcgbmFtZSBjb21wYXJpc29ucy5cbiAqL1xuZXhwb3J0IHZhciBUQUdfSUQ7XG4oZnVuY3Rpb24gKFRBR19JRCkge1xuICAgIFRBR19JRFtUQUdfSURbXCJVTktOT1dOXCJdID0gMF0gPSBcIlVOS05PV05cIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiQVwiXSA9IDFdID0gXCJBXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIkFERFJFU1NcIl0gPSAyXSA9IFwiQUREUkVTU1wiO1xuICAgIFRBR19JRFtUQUdfSURbXCJBTk5PVEFUSU9OX1hNTFwiXSA9IDNdID0gXCJBTk5PVEFUSU9OX1hNTFwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJBUFBMRVRcIl0gPSA0XSA9IFwiQVBQTEVUXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIkFSRUFcIl0gPSA1XSA9IFwiQVJFQVwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJBUlRJQ0xFXCJdID0gNl0gPSBcIkFSVElDTEVcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiQVNJREVcIl0gPSA3XSA9IFwiQVNJREVcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiQlwiXSA9IDhdID0gXCJCXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIkJBU0VcIl0gPSA5XSA9IFwiQkFTRVwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJCQVNFRk9OVFwiXSA9IDEwXSA9IFwiQkFTRUZPTlRcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiQkdTT1VORFwiXSA9IDExXSA9IFwiQkdTT1VORFwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJCSUdcIl0gPSAxMl0gPSBcIkJJR1wiO1xuICAgIFRBR19JRFtUQUdfSURbXCJCTE9DS1FVT1RFXCJdID0gMTNdID0gXCJCTE9DS1FVT1RFXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIkJPRFlcIl0gPSAxNF0gPSBcIkJPRFlcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiQlJcIl0gPSAxNV0gPSBcIkJSXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIkJVVFRPTlwiXSA9IDE2XSA9IFwiQlVUVE9OXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIkNBUFRJT05cIl0gPSAxN10gPSBcIkNBUFRJT05cIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiQ0VOVEVSXCJdID0gMThdID0gXCJDRU5URVJcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiQ09ERVwiXSA9IDE5XSA9IFwiQ09ERVwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJDT0xcIl0gPSAyMF0gPSBcIkNPTFwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJDT0xHUk9VUFwiXSA9IDIxXSA9IFwiQ09MR1JPVVBcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiRERcIl0gPSAyMl0gPSBcIkREXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIkRFU0NcIl0gPSAyM10gPSBcIkRFU0NcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiREVUQUlMU1wiXSA9IDI0XSA9IFwiREVUQUlMU1wiO1xuICAgIFRBR19JRFtUQUdfSURbXCJESUFMT0dcIl0gPSAyNV0gPSBcIkRJQUxPR1wiO1xuICAgIFRBR19JRFtUQUdfSURbXCJESVJcIl0gPSAyNl0gPSBcIkRJUlwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJESVZcIl0gPSAyN10gPSBcIkRJVlwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJETFwiXSA9IDI4XSA9IFwiRExcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiRFRcIl0gPSAyOV0gPSBcIkRUXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIkVNXCJdID0gMzBdID0gXCJFTVwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJFTUJFRFwiXSA9IDMxXSA9IFwiRU1CRURcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiRklFTERTRVRcIl0gPSAzMl0gPSBcIkZJRUxEU0VUXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIkZJR0NBUFRJT05cIl0gPSAzM10gPSBcIkZJR0NBUFRJT05cIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiRklHVVJFXCJdID0gMzRdID0gXCJGSUdVUkVcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiRk9OVFwiXSA9IDM1XSA9IFwiRk9OVFwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJGT09URVJcIl0gPSAzNl0gPSBcIkZPT1RFUlwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJGT1JFSUdOX09CSkVDVFwiXSA9IDM3XSA9IFwiRk9SRUlHTl9PQkpFQ1RcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiRk9STVwiXSA9IDM4XSA9IFwiRk9STVwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJGUkFNRVwiXSA9IDM5XSA9IFwiRlJBTUVcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiRlJBTUVTRVRcIl0gPSA0MF0gPSBcIkZSQU1FU0VUXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIkgxXCJdID0gNDFdID0gXCJIMVwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJIMlwiXSA9IDQyXSA9IFwiSDJcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiSDNcIl0gPSA0M10gPSBcIkgzXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIkg0XCJdID0gNDRdID0gXCJINFwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJINVwiXSA9IDQ1XSA9IFwiSDVcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiSDZcIl0gPSA0Nl0gPSBcIkg2XCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIkhFQURcIl0gPSA0N10gPSBcIkhFQURcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiSEVBREVSXCJdID0gNDhdID0gXCJIRUFERVJcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiSEdST1VQXCJdID0gNDldID0gXCJIR1JPVVBcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiSFJcIl0gPSA1MF0gPSBcIkhSXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIkhUTUxcIl0gPSA1MV0gPSBcIkhUTUxcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiSVwiXSA9IDUyXSA9IFwiSVwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJJTUdcIl0gPSA1M10gPSBcIklNR1wiO1xuICAgIFRBR19JRFtUQUdfSURbXCJJTUFHRVwiXSA9IDU0XSA9IFwiSU1BR0VcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiSU5QVVRcIl0gPSA1NV0gPSBcIklOUFVUXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIklGUkFNRVwiXSA9IDU2XSA9IFwiSUZSQU1FXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIktFWUdFTlwiXSA9IDU3XSA9IFwiS0VZR0VOXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIkxBQkVMXCJdID0gNThdID0gXCJMQUJFTFwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJMSVwiXSA9IDU5XSA9IFwiTElcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiTElOS1wiXSA9IDYwXSA9IFwiTElOS1wiO1xuICAgIFRBR19JRFtUQUdfSURbXCJMSVNUSU5HXCJdID0gNjFdID0gXCJMSVNUSU5HXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIk1BSU5cIl0gPSA2Ml0gPSBcIk1BSU5cIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiTUFMSUdOTUFSS1wiXSA9IDYzXSA9IFwiTUFMSUdOTUFSS1wiO1xuICAgIFRBR19JRFtUQUdfSURbXCJNQVJRVUVFXCJdID0gNjRdID0gXCJNQVJRVUVFXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIk1BVEhcIl0gPSA2NV0gPSBcIk1BVEhcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiTUVOVVwiXSA9IDY2XSA9IFwiTUVOVVwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJNRVRBXCJdID0gNjddID0gXCJNRVRBXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIk1HTFlQSFwiXSA9IDY4XSA9IFwiTUdMWVBIXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIk1JXCJdID0gNjldID0gXCJNSVwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJNT1wiXSA9IDcwXSA9IFwiTU9cIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiTU5cIl0gPSA3MV0gPSBcIk1OXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIk1TXCJdID0gNzJdID0gXCJNU1wiO1xuICAgIFRBR19JRFtUQUdfSURbXCJNVEVYVFwiXSA9IDczXSA9IFwiTVRFWFRcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiTkFWXCJdID0gNzRdID0gXCJOQVZcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiTk9CUlwiXSA9IDc1XSA9IFwiTk9CUlwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJOT0ZSQU1FU1wiXSA9IDc2XSA9IFwiTk9GUkFNRVNcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiTk9FTUJFRFwiXSA9IDc3XSA9IFwiTk9FTUJFRFwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJOT1NDUklQVFwiXSA9IDc4XSA9IFwiTk9TQ1JJUFRcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiT0JKRUNUXCJdID0gNzldID0gXCJPQkpFQ1RcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiT0xcIl0gPSA4MF0gPSBcIk9MXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIk9QVEdST1VQXCJdID0gODFdID0gXCJPUFRHUk9VUFwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJPUFRJT05cIl0gPSA4Ml0gPSBcIk9QVElPTlwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJQXCJdID0gODNdID0gXCJQXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIlBBUkFNXCJdID0gODRdID0gXCJQQVJBTVwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJQTEFJTlRFWFRcIl0gPSA4NV0gPSBcIlBMQUlOVEVYVFwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJQUkVcIl0gPSA4Nl0gPSBcIlBSRVwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJSQlwiXSA9IDg3XSA9IFwiUkJcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiUlBcIl0gPSA4OF0gPSBcIlJQXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIlJUXCJdID0gODldID0gXCJSVFwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJSVENcIl0gPSA5MF0gPSBcIlJUQ1wiO1xuICAgIFRBR19JRFtUQUdfSURbXCJSVUJZXCJdID0gOTFdID0gXCJSVUJZXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIlNcIl0gPSA5Ml0gPSBcIlNcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiU0NSSVBUXCJdID0gOTNdID0gXCJTQ1JJUFRcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiU0VDVElPTlwiXSA9IDk0XSA9IFwiU0VDVElPTlwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJTRUxFQ1RcIl0gPSA5NV0gPSBcIlNFTEVDVFwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJTT1VSQ0VcIl0gPSA5Nl0gPSBcIlNPVVJDRVwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJTTUFMTFwiXSA9IDk3XSA9IFwiU01BTExcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiU1BBTlwiXSA9IDk4XSA9IFwiU1BBTlwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJTVFJJS0VcIl0gPSA5OV0gPSBcIlNUUklLRVwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJTVFJPTkdcIl0gPSAxMDBdID0gXCJTVFJPTkdcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiU1RZTEVcIl0gPSAxMDFdID0gXCJTVFlMRVwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJTVUJcIl0gPSAxMDJdID0gXCJTVUJcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiU1VNTUFSWVwiXSA9IDEwM10gPSBcIlNVTU1BUllcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiU1VQXCJdID0gMTA0XSA9IFwiU1VQXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIlRBQkxFXCJdID0gMTA1XSA9IFwiVEFCTEVcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiVEJPRFlcIl0gPSAxMDZdID0gXCJUQk9EWVwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJURU1QTEFURVwiXSA9IDEwN10gPSBcIlRFTVBMQVRFXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIlRFWFRBUkVBXCJdID0gMTA4XSA9IFwiVEVYVEFSRUFcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiVEZPT1RcIl0gPSAxMDldID0gXCJURk9PVFwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJURFwiXSA9IDExMF0gPSBcIlREXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIlRIXCJdID0gMTExXSA9IFwiVEhcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiVEhFQURcIl0gPSAxMTJdID0gXCJUSEVBRFwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJUSVRMRVwiXSA9IDExM10gPSBcIlRJVExFXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIlRSXCJdID0gMTE0XSA9IFwiVFJcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiVFJBQ0tcIl0gPSAxMTVdID0gXCJUUkFDS1wiO1xuICAgIFRBR19JRFtUQUdfSURbXCJUVFwiXSA9IDExNl0gPSBcIlRUXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIlVcIl0gPSAxMTddID0gXCJVXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIlVMXCJdID0gMTE4XSA9IFwiVUxcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiU1ZHXCJdID0gMTE5XSA9IFwiU1ZHXCI7XG4gICAgVEFHX0lEW1RBR19JRFtcIlZBUlwiXSA9IDEyMF0gPSBcIlZBUlwiO1xuICAgIFRBR19JRFtUQUdfSURbXCJXQlJcIl0gPSAxMjFdID0gXCJXQlJcIjtcbiAgICBUQUdfSURbVEFHX0lEW1wiWE1QXCJdID0gMTIyXSA9IFwiWE1QXCI7XG59KShUQUdfSUQgPSBUQUdfSUQgfHwgKFRBR19JRCA9IHt9KSk7XG5jb25zdCBUQUdfTkFNRV9UT19JRCA9IG5ldyBNYXAoW1xuICAgIFtUQUdfTkFNRVMuQSwgVEFHX0lELkFdLFxuICAgIFtUQUdfTkFNRVMuQUREUkVTUywgVEFHX0lELkFERFJFU1NdLFxuICAgIFtUQUdfTkFNRVMuQU5OT1RBVElPTl9YTUwsIFRBR19JRC5BTk5PVEFUSU9OX1hNTF0sXG4gICAgW1RBR19OQU1FUy5BUFBMRVQsIFRBR19JRC5BUFBMRVRdLFxuICAgIFtUQUdfTkFNRVMuQVJFQSwgVEFHX0lELkFSRUFdLFxuICAgIFtUQUdfTkFNRVMuQVJUSUNMRSwgVEFHX0lELkFSVElDTEVdLFxuICAgIFtUQUdfTkFNRVMuQVNJREUsIFRBR19JRC5BU0lERV0sXG4gICAgW1RBR19OQU1FUy5CLCBUQUdfSUQuQl0sXG4gICAgW1RBR19OQU1FUy5CQVNFLCBUQUdfSUQuQkFTRV0sXG4gICAgW1RBR19OQU1FUy5CQVNFRk9OVCwgVEFHX0lELkJBU0VGT05UXSxcbiAgICBbVEFHX05BTUVTLkJHU09VTkQsIFRBR19JRC5CR1NPVU5EXSxcbiAgICBbVEFHX05BTUVTLkJJRywgVEFHX0lELkJJR10sXG4gICAgW1RBR19OQU1FUy5CTE9DS1FVT1RFLCBUQUdfSUQuQkxPQ0tRVU9URV0sXG4gICAgW1RBR19OQU1FUy5CT0RZLCBUQUdfSUQuQk9EWV0sXG4gICAgW1RBR19OQU1FUy5CUiwgVEFHX0lELkJSXSxcbiAgICBbVEFHX05BTUVTLkJVVFRPTiwgVEFHX0lELkJVVFRPTl0sXG4gICAgW1RBR19OQU1FUy5DQVBUSU9OLCBUQUdfSUQuQ0FQVElPTl0sXG4gICAgW1RBR19OQU1FUy5DRU5URVIsIFRBR19JRC5DRU5URVJdLFxuICAgIFtUQUdfTkFNRVMuQ09ERSwgVEFHX0lELkNPREVdLFxuICAgIFtUQUdfTkFNRVMuQ09MLCBUQUdfSUQuQ09MXSxcbiAgICBbVEFHX05BTUVTLkNPTEdST1VQLCBUQUdfSUQuQ09MR1JPVVBdLFxuICAgIFtUQUdfTkFNRVMuREQsIFRBR19JRC5ERF0sXG4gICAgW1RBR19OQU1FUy5ERVNDLCBUQUdfSUQuREVTQ10sXG4gICAgW1RBR19OQU1FUy5ERVRBSUxTLCBUQUdfSUQuREVUQUlMU10sXG4gICAgW1RBR19OQU1FUy5ESUFMT0csIFRBR19JRC5ESUFMT0ddLFxuICAgIFtUQUdfTkFNRVMuRElSLCBUQUdfSUQuRElSXSxcbiAgICBbVEFHX05BTUVTLkRJViwgVEFHX0lELkRJVl0sXG4gICAgW1RBR19OQU1FUy5ETCwgVEFHX0lELkRMXSxcbiAgICBbVEFHX05BTUVTLkRULCBUQUdfSUQuRFRdLFxuICAgIFtUQUdfTkFNRVMuRU0sIFRBR19JRC5FTV0sXG4gICAgW1RBR19OQU1FUy5FTUJFRCwgVEFHX0lELkVNQkVEXSxcbiAgICBbVEFHX05BTUVTLkZJRUxEU0VULCBUQUdfSUQuRklFTERTRVRdLFxuICAgIFtUQUdfTkFNRVMuRklHQ0FQVElPTiwgVEFHX0lELkZJR0NBUFRJT05dLFxuICAgIFtUQUdfTkFNRVMuRklHVVJFLCBUQUdfSUQuRklHVVJFXSxcbiAgICBbVEFHX05BTUVTLkZPTlQsIFRBR19JRC5GT05UXSxcbiAgICBbVEFHX05BTUVTLkZPT1RFUiwgVEFHX0lELkZPT1RFUl0sXG4gICAgW1RBR19OQU1FUy5GT1JFSUdOX09CSkVDVCwgVEFHX0lELkZPUkVJR05fT0JKRUNUXSxcbiAgICBbVEFHX05BTUVTLkZPUk0sIFRBR19JRC5GT1JNXSxcbiAgICBbVEFHX05BTUVTLkZSQU1FLCBUQUdfSUQuRlJBTUVdLFxuICAgIFtUQUdfTkFNRVMuRlJBTUVTRVQsIFRBR19JRC5GUkFNRVNFVF0sXG4gICAgW1RBR19OQU1FUy5IMSwgVEFHX0lELkgxXSxcbiAgICBbVEFHX05BTUVTLkgyLCBUQUdfSUQuSDJdLFxuICAgIFtUQUdfTkFNRVMuSDMsIFRBR19JRC5IM10sXG4gICAgW1RBR19OQU1FUy5INCwgVEFHX0lELkg0XSxcbiAgICBbVEFHX05BTUVTLkg1LCBUQUdfSUQuSDVdLFxuICAgIFtUQUdfTkFNRVMuSDYsIFRBR19JRC5INl0sXG4gICAgW1RBR19OQU1FUy5IRUFELCBUQUdfSUQuSEVBRF0sXG4gICAgW1RBR19OQU1FUy5IRUFERVIsIFRBR19JRC5IRUFERVJdLFxuICAgIFtUQUdfTkFNRVMuSEdST1VQLCBUQUdfSUQuSEdST1VQXSxcbiAgICBbVEFHX05BTUVTLkhSLCBUQUdfSUQuSFJdLFxuICAgIFtUQUdfTkFNRVMuSFRNTCwgVEFHX0lELkhUTUxdLFxuICAgIFtUQUdfTkFNRVMuSSwgVEFHX0lELkldLFxuICAgIFtUQUdfTkFNRVMuSU1HLCBUQUdfSUQuSU1HXSxcbiAgICBbVEFHX05BTUVTLklNQUdFLCBUQUdfSUQuSU1BR0VdLFxuICAgIFtUQUdfTkFNRVMuSU5QVVQsIFRBR19JRC5JTlBVVF0sXG4gICAgW1RBR19OQU1FUy5JRlJBTUUsIFRBR19JRC5JRlJBTUVdLFxuICAgIFtUQUdfTkFNRVMuS0VZR0VOLCBUQUdfSUQuS0VZR0VOXSxcbiAgICBbVEFHX05BTUVTLkxBQkVMLCBUQUdfSUQuTEFCRUxdLFxuICAgIFtUQUdfTkFNRVMuTEksIFRBR19JRC5MSV0sXG4gICAgW1RBR19OQU1FUy5MSU5LLCBUQUdfSUQuTElOS10sXG4gICAgW1RBR19OQU1FUy5MSVNUSU5HLCBUQUdfSUQuTElTVElOR10sXG4gICAgW1RBR19OQU1FUy5NQUlOLCBUQUdfSUQuTUFJTl0sXG4gICAgW1RBR19OQU1FUy5NQUxJR05NQVJLLCBUQUdfSUQuTUFMSUdOTUFSS10sXG4gICAgW1RBR19OQU1FUy5NQVJRVUVFLCBUQUdfSUQuTUFSUVVFRV0sXG4gICAgW1RBR19OQU1FUy5NQVRILCBUQUdfSUQuTUFUSF0sXG4gICAgW1RBR19OQU1FUy5NRU5VLCBUQUdfSUQuTUVOVV0sXG4gICAgW1RBR19OQU1FUy5NRVRBLCBUQUdfSUQuTUVUQV0sXG4gICAgW1RBR19OQU1FUy5NR0xZUEgsIFRBR19JRC5NR0xZUEhdLFxuICAgIFtUQUdfTkFNRVMuTUksIFRBR19JRC5NSV0sXG4gICAgW1RBR19OQU1FUy5NTywgVEFHX0lELk1PXSxcbiAgICBbVEFHX05BTUVTLk1OLCBUQUdfSUQuTU5dLFxuICAgIFtUQUdfTkFNRVMuTVMsIFRBR19JRC5NU10sXG4gICAgW1RBR19OQU1FUy5NVEVYVCwgVEFHX0lELk1URVhUXSxcbiAgICBbVEFHX05BTUVTLk5BViwgVEFHX0lELk5BVl0sXG4gICAgW1RBR19OQU1FUy5OT0JSLCBUQUdfSUQuTk9CUl0sXG4gICAgW1RBR19OQU1FUy5OT0ZSQU1FUywgVEFHX0lELk5PRlJBTUVTXSxcbiAgICBbVEFHX05BTUVTLk5PRU1CRUQsIFRBR19JRC5OT0VNQkVEXSxcbiAgICBbVEFHX05BTUVTLk5PU0NSSVBULCBUQUdfSUQuTk9TQ1JJUFRdLFxuICAgIFtUQUdfTkFNRVMuT0JKRUNULCBUQUdfSUQuT0JKRUNUXSxcbiAgICBbVEFHX05BTUVTLk9MLCBUQUdfSUQuT0xdLFxuICAgIFtUQUdfTkFNRVMuT1BUR1JPVVAsIFRBR19JRC5PUFRHUk9VUF0sXG4gICAgW1RBR19OQU1FUy5PUFRJT04sIFRBR19JRC5PUFRJT05dLFxuICAgIFtUQUdfTkFNRVMuUCwgVEFHX0lELlBdLFxuICAgIFtUQUdfTkFNRVMuUEFSQU0sIFRBR19JRC5QQVJBTV0sXG4gICAgW1RBR19OQU1FUy5QTEFJTlRFWFQsIFRBR19JRC5QTEFJTlRFWFRdLFxuICAgIFtUQUdfTkFNRVMuUFJFLCBUQUdfSUQuUFJFXSxcbiAgICBbVEFHX05BTUVTLlJCLCBUQUdfSUQuUkJdLFxuICAgIFtUQUdfTkFNRVMuUlAsIFRBR19JRC5SUF0sXG4gICAgW1RBR19OQU1FUy5SVCwgVEFHX0lELlJUXSxcbiAgICBbVEFHX05BTUVTLlJUQywgVEFHX0lELlJUQ10sXG4gICAgW1RBR19OQU1FUy5SVUJZLCBUQUdfSUQuUlVCWV0sXG4gICAgW1RBR19OQU1FUy5TLCBUQUdfSUQuU10sXG4gICAgW1RBR19OQU1FUy5TQ1JJUFQsIFRBR19JRC5TQ1JJUFRdLFxuICAgIFtUQUdfTkFNRVMuU0VDVElPTiwgVEFHX0lELlNFQ1RJT05dLFxuICAgIFtUQUdfTkFNRVMuU0VMRUNULCBUQUdfSUQuU0VMRUNUXSxcbiAgICBbVEFHX05BTUVTLlNPVVJDRSwgVEFHX0lELlNPVVJDRV0sXG4gICAgW1RBR19OQU1FUy5TTUFMTCwgVEFHX0lELlNNQUxMXSxcbiAgICBbVEFHX05BTUVTLlNQQU4sIFRBR19JRC5TUEFOXSxcbiAgICBbVEFHX05BTUVTLlNUUklLRSwgVEFHX0lELlNUUklLRV0sXG4gICAgW1RBR19OQU1FUy5TVFJPTkcsIFRBR19JRC5TVFJPTkddLFxuICAgIFtUQUdfTkFNRVMuU1RZTEUsIFRBR19JRC5TVFlMRV0sXG4gICAgW1RBR19OQU1FUy5TVUIsIFRBR19JRC5TVUJdLFxuICAgIFtUQUdfTkFNRVMuU1VNTUFSWSwgVEFHX0lELlNVTU1BUlldLFxuICAgIFtUQUdfTkFNRVMuU1VQLCBUQUdfSUQuU1VQXSxcbiAgICBbVEFHX05BTUVTLlRBQkxFLCBUQUdfSUQuVEFCTEVdLFxuICAgIFtUQUdfTkFNRVMuVEJPRFksIFRBR19JRC5UQk9EWV0sXG4gICAgW1RBR19OQU1FUy5URU1QTEFURSwgVEFHX0lELlRFTVBMQVRFXSxcbiAgICBbVEFHX05BTUVTLlRFWFRBUkVBLCBUQUdfSUQuVEVYVEFSRUFdLFxuICAgIFtUQUdfTkFNRVMuVEZPT1QsIFRBR19JRC5URk9PVF0sXG4gICAgW1RBR19OQU1FUy5URCwgVEFHX0lELlREXSxcbiAgICBbVEFHX05BTUVTLlRILCBUQUdfSUQuVEhdLFxuICAgIFtUQUdfTkFNRVMuVEhFQUQsIFRBR19JRC5USEVBRF0sXG4gICAgW1RBR19OQU1FUy5USVRMRSwgVEFHX0lELlRJVExFXSxcbiAgICBbVEFHX05BTUVTLlRSLCBUQUdfSUQuVFJdLFxuICAgIFtUQUdfTkFNRVMuVFJBQ0ssIFRBR19JRC5UUkFDS10sXG4gICAgW1RBR19OQU1FUy5UVCwgVEFHX0lELlRUXSxcbiAgICBbVEFHX05BTUVTLlUsIFRBR19JRC5VXSxcbiAgICBbVEFHX05BTUVTLlVMLCBUQUdfSUQuVUxdLFxuICAgIFtUQUdfTkFNRVMuU1ZHLCBUQUdfSUQuU1ZHXSxcbiAgICBbVEFHX05BTUVTLlZBUiwgVEFHX0lELlZBUl0sXG4gICAgW1RBR19OQU1FUy5XQlIsIFRBR19JRC5XQlJdLFxuICAgIFtUQUdfTkFNRVMuWE1QLCBUQUdfSUQuWE1QXSxcbl0pO1xuZXhwb3J0IGZ1bmN0aW9uIGdldFRhZ0lEKHRhZ05hbWUpIHtcbiAgICB2YXIgX2E7XG4gICAgcmV0dXJuIChfYSA9IFRBR19OQU1FX1RPX0lELmdldCh0YWdOYW1lKSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogVEFHX0lELlVOS05PV047XG59XG5jb25zdCAkID0gVEFHX0lEO1xuZXhwb3J0IGNvbnN0IFNQRUNJQUxfRUxFTUVOVFMgPSB7XG4gICAgW05TLkhUTUxdOiBuZXcgU2V0KFtcbiAgICAgICAgJC5BRERSRVNTLFxuICAgICAgICAkLkFQUExFVCxcbiAgICAgICAgJC5BUkVBLFxuICAgICAgICAkLkFSVElDTEUsXG4gICAgICAgICQuQVNJREUsXG4gICAgICAgICQuQkFTRSxcbiAgICAgICAgJC5CQVNFRk9OVCxcbiAgICAgICAgJC5CR1NPVU5ELFxuICAgICAgICAkLkJMT0NLUVVPVEUsXG4gICAgICAgICQuQk9EWSxcbiAgICAgICAgJC5CUixcbiAgICAgICAgJC5CVVRUT04sXG4gICAgICAgICQuQ0FQVElPTixcbiAgICAgICAgJC5DRU5URVIsXG4gICAgICAgICQuQ09MLFxuICAgICAgICAkLkNPTEdST1VQLFxuICAgICAgICAkLkRELFxuICAgICAgICAkLkRFVEFJTFMsXG4gICAgICAgICQuRElSLFxuICAgICAgICAkLkRJVixcbiAgICAgICAgJC5ETCxcbiAgICAgICAgJC5EVCxcbiAgICAgICAgJC5FTUJFRCxcbiAgICAgICAgJC5GSUVMRFNFVCxcbiAgICAgICAgJC5GSUdDQVBUSU9OLFxuICAgICAgICAkLkZJR1VSRSxcbiAgICAgICAgJC5GT09URVIsXG4gICAgICAgICQuRk9STSxcbiAgICAgICAgJC5GUkFNRSxcbiAgICAgICAgJC5GUkFNRVNFVCxcbiAgICAgICAgJC5IMSxcbiAgICAgICAgJC5IMixcbiAgICAgICAgJC5IMyxcbiAgICAgICAgJC5INCxcbiAgICAgICAgJC5INSxcbiAgICAgICAgJC5INixcbiAgICAgICAgJC5IRUFELFxuICAgICAgICAkLkhFQURFUixcbiAgICAgICAgJC5IR1JPVVAsXG4gICAgICAgICQuSFIsXG4gICAgICAgICQuSFRNTCxcbiAgICAgICAgJC5JRlJBTUUsXG4gICAgICAgICQuSU1HLFxuICAgICAgICAkLklOUFVULFxuICAgICAgICAkLkxJLFxuICAgICAgICAkLkxJTkssXG4gICAgICAgICQuTElTVElORyxcbiAgICAgICAgJC5NQUlOLFxuICAgICAgICAkLk1BUlFVRUUsXG4gICAgICAgICQuTUVOVSxcbiAgICAgICAgJC5NRVRBLFxuICAgICAgICAkLk5BVixcbiAgICAgICAgJC5OT0VNQkVELFxuICAgICAgICAkLk5PRlJBTUVTLFxuICAgICAgICAkLk5PU0NSSVBULFxuICAgICAgICAkLk9CSkVDVCxcbiAgICAgICAgJC5PTCxcbiAgICAgICAgJC5QLFxuICAgICAgICAkLlBBUkFNLFxuICAgICAgICAkLlBMQUlOVEVYVCxcbiAgICAgICAgJC5QUkUsXG4gICAgICAgICQuU0NSSVBULFxuICAgICAgICAkLlNFQ1RJT04sXG4gICAgICAgICQuU0VMRUNULFxuICAgICAgICAkLlNPVVJDRSxcbiAgICAgICAgJC5TVFlMRSxcbiAgICAgICAgJC5TVU1NQVJZLFxuICAgICAgICAkLlRBQkxFLFxuICAgICAgICAkLlRCT0RZLFxuICAgICAgICAkLlRELFxuICAgICAgICAkLlRFTVBMQVRFLFxuICAgICAgICAkLlRFWFRBUkVBLFxuICAgICAgICAkLlRGT09ULFxuICAgICAgICAkLlRILFxuICAgICAgICAkLlRIRUFELFxuICAgICAgICAkLlRJVExFLFxuICAgICAgICAkLlRSLFxuICAgICAgICAkLlRSQUNLLFxuICAgICAgICAkLlVMLFxuICAgICAgICAkLldCUixcbiAgICAgICAgJC5YTVAsXG4gICAgXSksXG4gICAgW05TLk1BVEhNTF06IG5ldyBTZXQoWyQuTUksICQuTU8sICQuTU4sICQuTVMsICQuTVRFWFQsICQuQU5OT1RBVElPTl9YTUxdKSxcbiAgICBbTlMuU1ZHXTogbmV3IFNldChbJC5USVRMRSwgJC5GT1JFSUdOX09CSkVDVCwgJC5ERVNDXSksXG4gICAgW05TLlhMSU5LXTogbmV3IFNldCgpLFxuICAgIFtOUy5YTUxdOiBuZXcgU2V0KCksXG4gICAgW05TLlhNTE5TXTogbmV3IFNldCgpLFxufTtcbmV4cG9ydCBmdW5jdGlvbiBpc051bWJlcmVkSGVhZGVyKHRuKSB7XG4gICAgcmV0dXJuIHRuID09PSAkLkgxIHx8IHRuID09PSAkLkgyIHx8IHRuID09PSAkLkgzIHx8IHRuID09PSAkLkg0IHx8IHRuID09PSAkLkg1IHx8IHRuID09PSAkLkg2O1xufVxuY29uc3QgVU5FU0NBUEVEX1RFWFQgPSBuZXcgU2V0KFtcbiAgICBUQUdfTkFNRVMuU1RZTEUsXG4gICAgVEFHX05BTUVTLlNDUklQVCxcbiAgICBUQUdfTkFNRVMuWE1QLFxuICAgIFRBR19OQU1FUy5JRlJBTUUsXG4gICAgVEFHX05BTUVTLk5PRU1CRUQsXG4gICAgVEFHX05BTUVTLk5PRlJBTUVTLFxuICAgIFRBR19OQU1FUy5QTEFJTlRFWFQsXG5dKTtcbmV4cG9ydCBmdW5jdGlvbiBoYXNVbmVzY2FwZWRUZXh0KHRuLCBzY3JpcHRpbmdFbmFibGVkKSB7XG4gICAgcmV0dXJuIFVORVNDQVBFRF9URVhULmhhcyh0bikgfHwgKHNjcmlwdGluZ0VuYWJsZWQgJiYgdG4gPT09IFRBR19OQU1FUy5OT1NDUklQVCk7XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1odG1sLmpzLm1hcCIsICJpbXBvcnQgeyBQcmVwcm9jZXNzb3IgfSBmcm9tICcuL3ByZXByb2Nlc3Nvci5qcyc7XG5pbXBvcnQgeyBDT0RFX1BPSU5UUyBhcyAkLCBTRVFVRU5DRVMgYXMgJCQsIFJFUExBQ0VNRU5UX0NIQVJBQ1RFUiwgaXNTdXJyb2dhdGUsIGlzVW5kZWZpbmVkQ29kZVBvaW50LCBpc0NvbnRyb2xDb2RlUG9pbnQsIH0gZnJvbSAnLi4vY29tbW9uL3VuaWNvZGUuanMnO1xuaW1wb3J0IHsgVG9rZW5UeXBlLCBnZXRUb2tlbkF0dHIsIH0gZnJvbSAnLi4vY29tbW9uL3Rva2VuLmpzJztcbmltcG9ydCB7IGh0bWxEZWNvZGVUcmVlLCBCaW5UcmllRmxhZ3MsIGRldGVybWluZUJyYW5jaCB9IGZyb20gJ2VudGl0aWVzL2xpYi9kZWNvZGUuanMnO1xuaW1wb3J0IHsgRVJSIH0gZnJvbSAnLi4vY29tbW9uL2Vycm9yLWNvZGVzLmpzJztcbmltcG9ydCB7IFRBR19JRCwgZ2V0VGFnSUQgfSBmcm9tICcuLi9jb21tb24vaHRtbC5qcyc7XG4vL0MxIFVuaWNvZGUgY29udHJvbCBjaGFyYWN0ZXIgcmVmZXJlbmNlIHJlcGxhY2VtZW50c1xuY29uc3QgQzFfQ09OVFJPTFNfUkVGRVJFTkNFX1JFUExBQ0VNRU5UUyA9IG5ldyBNYXAoW1xuICAgIFsweDgwLCA4MzY0XSxcbiAgICBbMHg4MiwgODIxOF0sXG4gICAgWzB4ODMsIDQwMl0sXG4gICAgWzB4ODQsIDgyMjJdLFxuICAgIFsweDg1LCA4MjMwXSxcbiAgICBbMHg4NiwgODIyNF0sXG4gICAgWzB4ODcsIDgyMjVdLFxuICAgIFsweDg4LCA3MTBdLFxuICAgIFsweDg5LCA4MjQwXSxcbiAgICBbMHg4YSwgMzUyXSxcbiAgICBbMHg4YiwgODI0OV0sXG4gICAgWzB4OGMsIDMzOF0sXG4gICAgWzB4OGUsIDM4MV0sXG4gICAgWzB4OTEsIDgyMTZdLFxuICAgIFsweDkyLCA4MjE3XSxcbiAgICBbMHg5MywgODIyMF0sXG4gICAgWzB4OTQsIDgyMjFdLFxuICAgIFsweDk1LCA4MjI2XSxcbiAgICBbMHg5NiwgODIxMV0sXG4gICAgWzB4OTcsIDgyMTJdLFxuICAgIFsweDk4LCA3MzJdLFxuICAgIFsweDk5LCA4NDgyXSxcbiAgICBbMHg5YSwgMzUzXSxcbiAgICBbMHg5YiwgODI1MF0sXG4gICAgWzB4OWMsIDMzOV0sXG4gICAgWzB4OWUsIDM4Ml0sXG4gICAgWzB4OWYsIDM3Nl0sXG5dKTtcbi8vU3RhdGVzXG52YXIgU3RhdGU7XG4oZnVuY3Rpb24gKFN0YXRlKSB7XG4gICAgU3RhdGVbU3RhdGVbXCJEQVRBXCJdID0gMF0gPSBcIkRBVEFcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIlJDREFUQVwiXSA9IDFdID0gXCJSQ0RBVEFcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIlJBV1RFWFRcIl0gPSAyXSA9IFwiUkFXVEVYVFwiO1xuICAgIFN0YXRlW1N0YXRlW1wiU0NSSVBUX0RBVEFcIl0gPSAzXSA9IFwiU0NSSVBUX0RBVEFcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIlBMQUlOVEVYVFwiXSA9IDRdID0gXCJQTEFJTlRFWFRcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIlRBR19PUEVOXCJdID0gNV0gPSBcIlRBR19PUEVOXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJFTkRfVEFHX09QRU5cIl0gPSA2XSA9IFwiRU5EX1RBR19PUEVOXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJUQUdfTkFNRVwiXSA9IDddID0gXCJUQUdfTkFNRVwiO1xuICAgIFN0YXRlW1N0YXRlW1wiUkNEQVRBX0xFU1NfVEhBTl9TSUdOXCJdID0gOF0gPSBcIlJDREFUQV9MRVNTX1RIQU5fU0lHTlwiO1xuICAgIFN0YXRlW1N0YXRlW1wiUkNEQVRBX0VORF9UQUdfT1BFTlwiXSA9IDldID0gXCJSQ0RBVEFfRU5EX1RBR19PUEVOXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJSQ0RBVEFfRU5EX1RBR19OQU1FXCJdID0gMTBdID0gXCJSQ0RBVEFfRU5EX1RBR19OQU1FXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJSQVdURVhUX0xFU1NfVEhBTl9TSUdOXCJdID0gMTFdID0gXCJSQVdURVhUX0xFU1NfVEhBTl9TSUdOXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJSQVdURVhUX0VORF9UQUdfT1BFTlwiXSA9IDEyXSA9IFwiUkFXVEVYVF9FTkRfVEFHX09QRU5cIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIlJBV1RFWFRfRU5EX1RBR19OQU1FXCJdID0gMTNdID0gXCJSQVdURVhUX0VORF9UQUdfTkFNRVwiO1xuICAgIFN0YXRlW1N0YXRlW1wiU0NSSVBUX0RBVEFfTEVTU19USEFOX1NJR05cIl0gPSAxNF0gPSBcIlNDUklQVF9EQVRBX0xFU1NfVEhBTl9TSUdOXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJTQ1JJUFRfREFUQV9FTkRfVEFHX09QRU5cIl0gPSAxNV0gPSBcIlNDUklQVF9EQVRBX0VORF9UQUdfT1BFTlwiO1xuICAgIFN0YXRlW1N0YXRlW1wiU0NSSVBUX0RBVEFfRU5EX1RBR19OQU1FXCJdID0gMTZdID0gXCJTQ1JJUFRfREFUQV9FTkRfVEFHX05BTUVcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIlNDUklQVF9EQVRBX0VTQ0FQRV9TVEFSVFwiXSA9IDE3XSA9IFwiU0NSSVBUX0RBVEFfRVNDQVBFX1NUQVJUXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJTQ1JJUFRfREFUQV9FU0NBUEVfU1RBUlRfREFTSFwiXSA9IDE4XSA9IFwiU0NSSVBUX0RBVEFfRVNDQVBFX1NUQVJUX0RBU0hcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIlNDUklQVF9EQVRBX0VTQ0FQRURcIl0gPSAxOV0gPSBcIlNDUklQVF9EQVRBX0VTQ0FQRURcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIlNDUklQVF9EQVRBX0VTQ0FQRURfREFTSFwiXSA9IDIwXSA9IFwiU0NSSVBUX0RBVEFfRVNDQVBFRF9EQVNIXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJTQ1JJUFRfREFUQV9FU0NBUEVEX0RBU0hfREFTSFwiXSA9IDIxXSA9IFwiU0NSSVBUX0RBVEFfRVNDQVBFRF9EQVNIX0RBU0hcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIlNDUklQVF9EQVRBX0VTQ0FQRURfTEVTU19USEFOX1NJR05cIl0gPSAyMl0gPSBcIlNDUklQVF9EQVRBX0VTQ0FQRURfTEVTU19USEFOX1NJR05cIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIlNDUklQVF9EQVRBX0VTQ0FQRURfRU5EX1RBR19PUEVOXCJdID0gMjNdID0gXCJTQ1JJUFRfREFUQV9FU0NBUEVEX0VORF9UQUdfT1BFTlwiO1xuICAgIFN0YXRlW1N0YXRlW1wiU0NSSVBUX0RBVEFfRVNDQVBFRF9FTkRfVEFHX05BTUVcIl0gPSAyNF0gPSBcIlNDUklQVF9EQVRBX0VTQ0FQRURfRU5EX1RBR19OQU1FXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJTQ1JJUFRfREFUQV9ET1VCTEVfRVNDQVBFX1NUQVJUXCJdID0gMjVdID0gXCJTQ1JJUFRfREFUQV9ET1VCTEVfRVNDQVBFX1NUQVJUXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJTQ1JJUFRfREFUQV9ET1VCTEVfRVNDQVBFRFwiXSA9IDI2XSA9IFwiU0NSSVBUX0RBVEFfRE9VQkxFX0VTQ0FQRURcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIlNDUklQVF9EQVRBX0RPVUJMRV9FU0NBUEVEX0RBU0hcIl0gPSAyN10gPSBcIlNDUklQVF9EQVRBX0RPVUJMRV9FU0NBUEVEX0RBU0hcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIlNDUklQVF9EQVRBX0RPVUJMRV9FU0NBUEVEX0RBU0hfREFTSFwiXSA9IDI4XSA9IFwiU0NSSVBUX0RBVEFfRE9VQkxFX0VTQ0FQRURfREFTSF9EQVNIXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJTQ1JJUFRfREFUQV9ET1VCTEVfRVNDQVBFRF9MRVNTX1RIQU5fU0lHTlwiXSA9IDI5XSA9IFwiU0NSSVBUX0RBVEFfRE9VQkxFX0VTQ0FQRURfTEVTU19USEFOX1NJR05cIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIlNDUklQVF9EQVRBX0RPVUJMRV9FU0NBUEVfRU5EXCJdID0gMzBdID0gXCJTQ1JJUFRfREFUQV9ET1VCTEVfRVNDQVBFX0VORFwiO1xuICAgIFN0YXRlW1N0YXRlW1wiQkVGT1JFX0FUVFJJQlVURV9OQU1FXCJdID0gMzFdID0gXCJCRUZPUkVfQVRUUklCVVRFX05BTUVcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIkFUVFJJQlVURV9OQU1FXCJdID0gMzJdID0gXCJBVFRSSUJVVEVfTkFNRVwiO1xuICAgIFN0YXRlW1N0YXRlW1wiQUZURVJfQVRUUklCVVRFX05BTUVcIl0gPSAzM10gPSBcIkFGVEVSX0FUVFJJQlVURV9OQU1FXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJCRUZPUkVfQVRUUklCVVRFX1ZBTFVFXCJdID0gMzRdID0gXCJCRUZPUkVfQVRUUklCVVRFX1ZBTFVFXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJBVFRSSUJVVEVfVkFMVUVfRE9VQkxFX1FVT1RFRFwiXSA9IDM1XSA9IFwiQVRUUklCVVRFX1ZBTFVFX0RPVUJMRV9RVU9URURcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIkFUVFJJQlVURV9WQUxVRV9TSU5HTEVfUVVPVEVEXCJdID0gMzZdID0gXCJBVFRSSUJVVEVfVkFMVUVfU0lOR0xFX1FVT1RFRFwiO1xuICAgIFN0YXRlW1N0YXRlW1wiQVRUUklCVVRFX1ZBTFVFX1VOUVVPVEVEXCJdID0gMzddID0gXCJBVFRSSUJVVEVfVkFMVUVfVU5RVU9URURcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIkFGVEVSX0FUVFJJQlVURV9WQUxVRV9RVU9URURcIl0gPSAzOF0gPSBcIkFGVEVSX0FUVFJJQlVURV9WQUxVRV9RVU9URURcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIlNFTEZfQ0xPU0lOR19TVEFSVF9UQUdcIl0gPSAzOV0gPSBcIlNFTEZfQ0xPU0lOR19TVEFSVF9UQUdcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIkJPR1VTX0NPTU1FTlRcIl0gPSA0MF0gPSBcIkJPR1VTX0NPTU1FTlRcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIk1BUktVUF9ERUNMQVJBVElPTl9PUEVOXCJdID0gNDFdID0gXCJNQVJLVVBfREVDTEFSQVRJT05fT1BFTlwiO1xuICAgIFN0YXRlW1N0YXRlW1wiQ09NTUVOVF9TVEFSVFwiXSA9IDQyXSA9IFwiQ09NTUVOVF9TVEFSVFwiO1xuICAgIFN0YXRlW1N0YXRlW1wiQ09NTUVOVF9TVEFSVF9EQVNIXCJdID0gNDNdID0gXCJDT01NRU5UX1NUQVJUX0RBU0hcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIkNPTU1FTlRcIl0gPSA0NF0gPSBcIkNPTU1FTlRcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIkNPTU1FTlRfTEVTU19USEFOX1NJR05cIl0gPSA0NV0gPSBcIkNPTU1FTlRfTEVTU19USEFOX1NJR05cIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIkNPTU1FTlRfTEVTU19USEFOX1NJR05fQkFOR1wiXSA9IDQ2XSA9IFwiQ09NTUVOVF9MRVNTX1RIQU5fU0lHTl9CQU5HXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJDT01NRU5UX0xFU1NfVEhBTl9TSUdOX0JBTkdfREFTSFwiXSA9IDQ3XSA9IFwiQ09NTUVOVF9MRVNTX1RIQU5fU0lHTl9CQU5HX0RBU0hcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIkNPTU1FTlRfTEVTU19USEFOX1NJR05fQkFOR19EQVNIX0RBU0hcIl0gPSA0OF0gPSBcIkNPTU1FTlRfTEVTU19USEFOX1NJR05fQkFOR19EQVNIX0RBU0hcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIkNPTU1FTlRfRU5EX0RBU0hcIl0gPSA0OV0gPSBcIkNPTU1FTlRfRU5EX0RBU0hcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIkNPTU1FTlRfRU5EXCJdID0gNTBdID0gXCJDT01NRU5UX0VORFwiO1xuICAgIFN0YXRlW1N0YXRlW1wiQ09NTUVOVF9FTkRfQkFOR1wiXSA9IDUxXSA9IFwiQ09NTUVOVF9FTkRfQkFOR1wiO1xuICAgIFN0YXRlW1N0YXRlW1wiRE9DVFlQRVwiXSA9IDUyXSA9IFwiRE9DVFlQRVwiO1xuICAgIFN0YXRlW1N0YXRlW1wiQkVGT1JFX0RPQ1RZUEVfTkFNRVwiXSA9IDUzXSA9IFwiQkVGT1JFX0RPQ1RZUEVfTkFNRVwiO1xuICAgIFN0YXRlW1N0YXRlW1wiRE9DVFlQRV9OQU1FXCJdID0gNTRdID0gXCJET0NUWVBFX05BTUVcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIkFGVEVSX0RPQ1RZUEVfTkFNRVwiXSA9IDU1XSA9IFwiQUZURVJfRE9DVFlQRV9OQU1FXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJBRlRFUl9ET0NUWVBFX1BVQkxJQ19LRVlXT1JEXCJdID0gNTZdID0gXCJBRlRFUl9ET0NUWVBFX1BVQkxJQ19LRVlXT1JEXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJCRUZPUkVfRE9DVFlQRV9QVUJMSUNfSURFTlRJRklFUlwiXSA9IDU3XSA9IFwiQkVGT1JFX0RPQ1RZUEVfUFVCTElDX0lERU5USUZJRVJcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIkRPQ1RZUEVfUFVCTElDX0lERU5USUZJRVJfRE9VQkxFX1FVT1RFRFwiXSA9IDU4XSA9IFwiRE9DVFlQRV9QVUJMSUNfSURFTlRJRklFUl9ET1VCTEVfUVVPVEVEXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJET0NUWVBFX1BVQkxJQ19JREVOVElGSUVSX1NJTkdMRV9RVU9URURcIl0gPSA1OV0gPSBcIkRPQ1RZUEVfUFVCTElDX0lERU5USUZJRVJfU0lOR0xFX1FVT1RFRFwiO1xuICAgIFN0YXRlW1N0YXRlW1wiQUZURVJfRE9DVFlQRV9QVUJMSUNfSURFTlRJRklFUlwiXSA9IDYwXSA9IFwiQUZURVJfRE9DVFlQRV9QVUJMSUNfSURFTlRJRklFUlwiO1xuICAgIFN0YXRlW1N0YXRlW1wiQkVUV0VFTl9ET0NUWVBFX1BVQkxJQ19BTkRfU1lTVEVNX0lERU5USUZJRVJTXCJdID0gNjFdID0gXCJCRVRXRUVOX0RPQ1RZUEVfUFVCTElDX0FORF9TWVNURU1fSURFTlRJRklFUlNcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIkFGVEVSX0RPQ1RZUEVfU1lTVEVNX0tFWVdPUkRcIl0gPSA2Ml0gPSBcIkFGVEVSX0RPQ1RZUEVfU1lTVEVNX0tFWVdPUkRcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIkJFRk9SRV9ET0NUWVBFX1NZU1RFTV9JREVOVElGSUVSXCJdID0gNjNdID0gXCJCRUZPUkVfRE9DVFlQRV9TWVNURU1fSURFTlRJRklFUlwiO1xuICAgIFN0YXRlW1N0YXRlW1wiRE9DVFlQRV9TWVNURU1fSURFTlRJRklFUl9ET1VCTEVfUVVPVEVEXCJdID0gNjRdID0gXCJET0NUWVBFX1NZU1RFTV9JREVOVElGSUVSX0RPVUJMRV9RVU9URURcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIkRPQ1RZUEVfU1lTVEVNX0lERU5USUZJRVJfU0lOR0xFX1FVT1RFRFwiXSA9IDY1XSA9IFwiRE9DVFlQRV9TWVNURU1fSURFTlRJRklFUl9TSU5HTEVfUVVPVEVEXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJBRlRFUl9ET0NUWVBFX1NZU1RFTV9JREVOVElGSUVSXCJdID0gNjZdID0gXCJBRlRFUl9ET0NUWVBFX1NZU1RFTV9JREVOVElGSUVSXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJCT0dVU19ET0NUWVBFXCJdID0gNjddID0gXCJCT0dVU19ET0NUWVBFXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJDREFUQV9TRUNUSU9OXCJdID0gNjhdID0gXCJDREFUQV9TRUNUSU9OXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJDREFUQV9TRUNUSU9OX0JSQUNLRVRcIl0gPSA2OV0gPSBcIkNEQVRBX1NFQ1RJT05fQlJBQ0tFVFwiO1xuICAgIFN0YXRlW1N0YXRlW1wiQ0RBVEFfU0VDVElPTl9FTkRcIl0gPSA3MF0gPSBcIkNEQVRBX1NFQ1RJT05fRU5EXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJDSEFSQUNURVJfUkVGRVJFTkNFXCJdID0gNzFdID0gXCJDSEFSQUNURVJfUkVGRVJFTkNFXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJOQU1FRF9DSEFSQUNURVJfUkVGRVJFTkNFXCJdID0gNzJdID0gXCJOQU1FRF9DSEFSQUNURVJfUkVGRVJFTkNFXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJBTUJJR1VPVVNfQU1QRVJTQU5EXCJdID0gNzNdID0gXCJBTUJJR1VPVVNfQU1QRVJTQU5EXCI7XG4gICAgU3RhdGVbU3RhdGVbXCJOVU1FUklDX0NIQVJBQ1RFUl9SRUZFUkVOQ0VcIl0gPSA3NF0gPSBcIk5VTUVSSUNfQ0hBUkFDVEVSX1JFRkVSRU5DRVwiO1xuICAgIFN0YXRlW1N0YXRlW1wiSEVYQURFTUlDQUxfQ0hBUkFDVEVSX1JFRkVSRU5DRV9TVEFSVFwiXSA9IDc1XSA9IFwiSEVYQURFTUlDQUxfQ0hBUkFDVEVSX1JFRkVSRU5DRV9TVEFSVFwiO1xuICAgIFN0YXRlW1N0YXRlW1wiSEVYQURFTUlDQUxfQ0hBUkFDVEVSX1JFRkVSRU5DRVwiXSA9IDc2XSA9IFwiSEVYQURFTUlDQUxfQ0hBUkFDVEVSX1JFRkVSRU5DRVwiO1xuICAgIFN0YXRlW1N0YXRlW1wiREVDSU1BTF9DSEFSQUNURVJfUkVGRVJFTkNFXCJdID0gNzddID0gXCJERUNJTUFMX0NIQVJBQ1RFUl9SRUZFUkVOQ0VcIjtcbiAgICBTdGF0ZVtTdGF0ZVtcIk5VTUVSSUNfQ0hBUkFDVEVSX1JFRkVSRU5DRV9FTkRcIl0gPSA3OF0gPSBcIk5VTUVSSUNfQ0hBUkFDVEVSX1JFRkVSRU5DRV9FTkRcIjtcbn0pKFN0YXRlIHx8IChTdGF0ZSA9IHt9KSk7XG4vL1Rva2VuaXplciBpbml0aWFsIHN0YXRlcyBmb3IgZGlmZmVyZW50IG1vZGVzXG5leHBvcnQgY29uc3QgVG9rZW5pemVyTW9kZSA9IHtcbiAgICBEQVRBOiBTdGF0ZS5EQVRBLFxuICAgIFJDREFUQTogU3RhdGUuUkNEQVRBLFxuICAgIFJBV1RFWFQ6IFN0YXRlLlJBV1RFWFQsXG4gICAgU0NSSVBUX0RBVEE6IFN0YXRlLlNDUklQVF9EQVRBLFxuICAgIFBMQUlOVEVYVDogU3RhdGUuUExBSU5URVhULFxuICAgIENEQVRBX1NFQ1RJT046IFN0YXRlLkNEQVRBX1NFQ1RJT04sXG59O1xuLy9VdGlsc1xuLy9PUFRJTUlaQVRJT046IHRoZXNlIHV0aWxpdHkgZnVuY3Rpb25zIHNob3VsZCBub3QgYmUgbW92ZWQgb3V0IG9mIHRoaXMgbW9kdWxlLiBWOCBDcmFua3NoYWZ0IHdpbGwgbm90IGlubGluZVxuLy90aGlzIGZ1bmN0aW9ucyBpZiB0aGV5IHdpbGwgYmUgc2l0dWF0ZWQgaW4gYW5vdGhlciBtb2R1bGUgZHVlIHRvIGNvbnRleHQgc3dpdGNoLlxuLy9BbHdheXMgcGVyZm9ybSBpbmxpbmluZyBjaGVjayBiZWZvcmUgbW9kaWZ5aW5nIHRoaXMgZnVuY3Rpb25zICgnbm9kZSAtLXRyYWNlLWlubGluaW5nJykuXG5mdW5jdGlvbiBpc0FzY2lpRGlnaXQoY3ApIHtcbiAgICByZXR1cm4gY3AgPj0gJC5ESUdJVF8wICYmIGNwIDw9ICQuRElHSVRfOTtcbn1cbmZ1bmN0aW9uIGlzQXNjaWlVcHBlcihjcCkge1xuICAgIHJldHVybiBjcCA+PSAkLkxBVElOX0NBUElUQUxfQSAmJiBjcCA8PSAkLkxBVElOX0NBUElUQUxfWjtcbn1cbmZ1bmN0aW9uIGlzQXNjaWlMb3dlcihjcCkge1xuICAgIHJldHVybiBjcCA+PSAkLkxBVElOX1NNQUxMX0EgJiYgY3AgPD0gJC5MQVRJTl9TTUFMTF9aO1xufVxuZnVuY3Rpb24gaXNBc2NpaUxldHRlcihjcCkge1xuICAgIHJldHVybiBpc0FzY2lpTG93ZXIoY3ApIHx8IGlzQXNjaWlVcHBlcihjcCk7XG59XG5mdW5jdGlvbiBpc0FzY2lpQWxwaGFOdW1lcmljKGNwKSB7XG4gICAgcmV0dXJuIGlzQXNjaWlMZXR0ZXIoY3ApIHx8IGlzQXNjaWlEaWdpdChjcCk7XG59XG5mdW5jdGlvbiBpc0FzY2lpVXBwZXJIZXhEaWdpdChjcCkge1xuICAgIHJldHVybiBjcCA+PSAkLkxBVElOX0NBUElUQUxfQSAmJiBjcCA8PSAkLkxBVElOX0NBUElUQUxfRjtcbn1cbmZ1bmN0aW9uIGlzQXNjaWlMb3dlckhleERpZ2l0KGNwKSB7XG4gICAgcmV0dXJuIGNwID49ICQuTEFUSU5fU01BTExfQSAmJiBjcCA8PSAkLkxBVElOX1NNQUxMX0Y7XG59XG5mdW5jdGlvbiBpc0FzY2lpSGV4RGlnaXQoY3ApIHtcbiAgICByZXR1cm4gaXNBc2NpaURpZ2l0KGNwKSB8fCBpc0FzY2lpVXBwZXJIZXhEaWdpdChjcCkgfHwgaXNBc2NpaUxvd2VySGV4RGlnaXQoY3ApO1xufVxuZnVuY3Rpb24gdG9Bc2NpaUxvd2VyKGNwKSB7XG4gICAgcmV0dXJuIGNwICsgMzI7XG59XG5mdW5jdGlvbiBpc1doaXRlc3BhY2UoY3ApIHtcbiAgICByZXR1cm4gY3AgPT09ICQuU1BBQ0UgfHwgY3AgPT09ICQuTElORV9GRUVEIHx8IGNwID09PSAkLlRBQlVMQVRJT04gfHwgY3AgPT09ICQuRk9STV9GRUVEO1xufVxuZnVuY3Rpb24gaXNFbnRpdHlJbkF0dHJpYnV0ZUludmFsaWRFbmQobmV4dENwKSB7XG4gICAgcmV0dXJuIG5leHRDcCA9PT0gJC5FUVVBTFNfU0lHTiB8fCBpc0FzY2lpQWxwaGFOdW1lcmljKG5leHRDcCk7XG59XG5mdW5jdGlvbiBpc1NjcmlwdERhdGFEb3VibGVFc2NhcGVTZXF1ZW5jZUVuZChjcCkge1xuICAgIHJldHVybiBpc1doaXRlc3BhY2UoY3ApIHx8IGNwID09PSAkLlNPTElEVVMgfHwgY3AgPT09ICQuR1JFQVRFUl9USEFOX1NJR047XG59XG4vL1Rva2VuaXplclxuZXhwb3J0IGNsYXNzIFRva2VuaXplciB7XG4gICAgY29uc3RydWN0b3Iob3B0aW9ucywgaGFuZGxlcikge1xuICAgICAgICB0aGlzLm9wdGlvbnMgPSBvcHRpb25zO1xuICAgICAgICB0aGlzLmhhbmRsZXIgPSBoYW5kbGVyO1xuICAgICAgICB0aGlzLnBhdXNlZCA9IGZhbHNlO1xuICAgICAgICAvKiogRW5zdXJlcyB0aGF0IHRoZSBwYXJzaW5nIGxvb3AgaXNuJ3QgcnVuIG11bHRpcGxlIHRpbWVzIGF0IG9uY2UuICovXG4gICAgICAgIHRoaXMuaW5Mb29wID0gZmFsc2U7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBJbmRpY2F0ZXMgdGhhdCB0aGUgY3VycmVudCBhZGp1c3RlZCBub2RlIGV4aXN0cywgaXMgbm90IGFuIGVsZW1lbnQgaW4gdGhlIEhUTUwgbmFtZXNwYWNlLFxuICAgICAgICAgKiBhbmQgdGhhdCBpdCBpcyBub3QgYW4gaW50ZWdyYXRpb24gcG9pbnQgZm9yIGVpdGhlciBNYXRoTUwgb3IgSFRNTC5cbiAgICAgICAgICpcbiAgICAgICAgICogQHNlZSB7QGxpbmsgaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2UvcGFyc2luZy5odG1sI3RyZWUtY29uc3RydWN0aW9ufVxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5pbkZvcmVpZ25Ob2RlID0gZmFsc2U7XG4gICAgICAgIHRoaXMubGFzdFN0YXJ0VGFnTmFtZSA9ICcnO1xuICAgICAgICB0aGlzLmFjdGl2ZSA9IGZhbHNlO1xuICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuREFUQTtcbiAgICAgICAgdGhpcy5yZXR1cm5TdGF0ZSA9IFN0YXRlLkRBVEE7XG4gICAgICAgIHRoaXMuY2hhclJlZkNvZGUgPSAtMTtcbiAgICAgICAgdGhpcy5jb25zdW1lZEFmdGVyU25hcHNob3QgPSAtMTtcbiAgICAgICAgdGhpcy5jdXJyZW50Q2hhcmFjdGVyVG9rZW4gPSBudWxsO1xuICAgICAgICB0aGlzLmN1cnJlbnRUb2tlbiA9IG51bGw7XG4gICAgICAgIHRoaXMuY3VycmVudEF0dHIgPSB7IG5hbWU6ICcnLCB2YWx1ZTogJycgfTtcbiAgICAgICAgdGhpcy5wcmVwcm9jZXNzb3IgPSBuZXcgUHJlcHJvY2Vzc29yKGhhbmRsZXIpO1xuICAgICAgICB0aGlzLmN1cnJlbnRMb2NhdGlvbiA9IHRoaXMuZ2V0Q3VycmVudExvY2F0aW9uKC0xKTtcbiAgICB9XG4gICAgLy9FcnJvcnNcbiAgICBfZXJyKGNvZGUpIHtcbiAgICAgICAgdmFyIF9hLCBfYjtcbiAgICAgICAgKF9iID0gKF9hID0gdGhpcy5oYW5kbGVyKS5vblBhcnNlRXJyb3IpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5jYWxsKF9hLCB0aGlzLnByZXByb2Nlc3Nvci5nZXRFcnJvcihjb2RlKSk7XG4gICAgfVxuICAgIC8vIE5PVEU6IGBvZmZzZXRgIG1heSBuZXZlciBydW4gYWNyb3NzIGxpbmUgYm91bmRhcmllcy5cbiAgICBnZXRDdXJyZW50TG9jYXRpb24ob2Zmc2V0KSB7XG4gICAgICAgIGlmICghdGhpcy5vcHRpb25zLnNvdXJjZUNvZGVMb2NhdGlvbkluZm8pIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBzdGFydExpbmU6IHRoaXMucHJlcHJvY2Vzc29yLmxpbmUsXG4gICAgICAgICAgICBzdGFydENvbDogdGhpcy5wcmVwcm9jZXNzb3IuY29sIC0gb2Zmc2V0LFxuICAgICAgICAgICAgc3RhcnRPZmZzZXQ6IHRoaXMucHJlcHJvY2Vzc29yLm9mZnNldCAtIG9mZnNldCxcbiAgICAgICAgICAgIGVuZExpbmU6IC0xLFxuICAgICAgICAgICAgZW5kQ29sOiAtMSxcbiAgICAgICAgICAgIGVuZE9mZnNldDogLTEsXG4gICAgICAgIH07XG4gICAgfVxuICAgIF9ydW5QYXJzaW5nTG9vcCgpIHtcbiAgICAgICAgaWYgKHRoaXMuaW5Mb29wKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB0aGlzLmluTG9vcCA9IHRydWU7XG4gICAgICAgIHdoaWxlICh0aGlzLmFjdGl2ZSAmJiAhdGhpcy5wYXVzZWQpIHtcbiAgICAgICAgICAgIHRoaXMuY29uc3VtZWRBZnRlclNuYXBzaG90ID0gMDtcbiAgICAgICAgICAgIGNvbnN0IGNwID0gdGhpcy5fY29uc3VtZSgpO1xuICAgICAgICAgICAgaWYgKCF0aGlzLl9lbnN1cmVIaWJlcm5hdGlvbigpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fY2FsbFN0YXRlKGNwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aGlzLmluTG9vcCA9IGZhbHNlO1xuICAgIH1cbiAgICAvL0FQSVxuICAgIHBhdXNlKCkge1xuICAgICAgICB0aGlzLnBhdXNlZCA9IHRydWU7XG4gICAgfVxuICAgIHJlc3VtZSh3cml0ZUNhbGxiYWNrKSB7XG4gICAgICAgIGlmICghdGhpcy5wYXVzZWQpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignUGFyc2VyIHdhcyBhbHJlYWR5IHJlc3VtZWQnKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnBhdXNlZCA9IGZhbHNlO1xuICAgICAgICAvLyBOZWNlc3NhcnkgZm9yIHN5bmNocm9ub3VzIHJlc3VtZS5cbiAgICAgICAgaWYgKHRoaXMuaW5Mb29wKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB0aGlzLl9ydW5QYXJzaW5nTG9vcCgpO1xuICAgICAgICBpZiAoIXRoaXMucGF1c2VkKSB7XG4gICAgICAgICAgICB3cml0ZUNhbGxiYWNrID09PSBudWxsIHx8IHdyaXRlQ2FsbGJhY2sgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHdyaXRlQ2FsbGJhY2soKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICB3cml0ZShjaHVuaywgaXNMYXN0Q2h1bmssIHdyaXRlQ2FsbGJhY2spIHtcbiAgICAgICAgdGhpcy5hY3RpdmUgPSB0cnVlO1xuICAgICAgICB0aGlzLnByZXByb2Nlc3Nvci53cml0ZShjaHVuaywgaXNMYXN0Q2h1bmspO1xuICAgICAgICB0aGlzLl9ydW5QYXJzaW5nTG9vcCgpO1xuICAgICAgICBpZiAoIXRoaXMucGF1c2VkKSB7XG4gICAgICAgICAgICB3cml0ZUNhbGxiYWNrID09PSBudWxsIHx8IHdyaXRlQ2FsbGJhY2sgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHdyaXRlQ2FsbGJhY2soKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBpbnNlcnRIdG1sQXRDdXJyZW50UG9zKGNodW5rKSB7XG4gICAgICAgIHRoaXMuYWN0aXZlID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5wcmVwcm9jZXNzb3IuaW5zZXJ0SHRtbEF0Q3VycmVudFBvcyhjaHVuayk7XG4gICAgICAgIHRoaXMuX3J1blBhcnNpbmdMb29wKCk7XG4gICAgfVxuICAgIC8vSGliZXJuYXRpb25cbiAgICBfZW5zdXJlSGliZXJuYXRpb24oKSB7XG4gICAgICAgIGlmICh0aGlzLnByZXByb2Nlc3Nvci5lbmRPZkNodW5rSGl0KSB7XG4gICAgICAgICAgICB0aGlzLl91bmNvbnN1bWUodGhpcy5jb25zdW1lZEFmdGVyU25hcHNob3QpO1xuICAgICAgICAgICAgdGhpcy5hY3RpdmUgPSBmYWxzZTtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgLy9Db25zdW1wdGlvblxuICAgIF9jb25zdW1lKCkge1xuICAgICAgICB0aGlzLmNvbnN1bWVkQWZ0ZXJTbmFwc2hvdCsrO1xuICAgICAgICByZXR1cm4gdGhpcy5wcmVwcm9jZXNzb3IuYWR2YW5jZSgpO1xuICAgIH1cbiAgICBfdW5jb25zdW1lKGNvdW50KSB7XG4gICAgICAgIHRoaXMuY29uc3VtZWRBZnRlclNuYXBzaG90IC09IGNvdW50O1xuICAgICAgICB0aGlzLnByZXByb2Nlc3Nvci5yZXRyZWF0KGNvdW50KTtcbiAgICB9XG4gICAgX3JlY29uc3VtZUluU3RhdGUoc3RhdGUsIGNwKSB7XG4gICAgICAgIHRoaXMuc3RhdGUgPSBzdGF0ZTtcbiAgICAgICAgdGhpcy5fY2FsbFN0YXRlKGNwKTtcbiAgICB9XG4gICAgX2FkdmFuY2VCeShjb3VudCkge1xuICAgICAgICB0aGlzLmNvbnN1bWVkQWZ0ZXJTbmFwc2hvdCArPSBjb3VudDtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjb3VudDsgaSsrKSB7XG4gICAgICAgICAgICB0aGlzLnByZXByb2Nlc3Nvci5hZHZhbmNlKCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgX2NvbnN1bWVTZXF1ZW5jZUlmTWF0Y2gocGF0dGVybiwgY2FzZVNlbnNpdGl2ZSkge1xuICAgICAgICBpZiAodGhpcy5wcmVwcm9jZXNzb3Iuc3RhcnRzV2l0aChwYXR0ZXJuLCBjYXNlU2Vuc2l0aXZlKSkge1xuICAgICAgICAgICAgLy8gV2Ugd2lsbCBhbHJlYWR5IGhhdmUgY29uc3VtZWQgb25lIGNoYXJhY3RlciBiZWZvcmUgY2FsbGluZyB0aGlzIG1ldGhvZC5cbiAgICAgICAgICAgIHRoaXMuX2FkdmFuY2VCeShwYXR0ZXJuLmxlbmd0aCAtIDEpO1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICAvL1Rva2VuIGNyZWF0aW9uXG4gICAgX2NyZWF0ZVN0YXJ0VGFnVG9rZW4oKSB7XG4gICAgICAgIHRoaXMuY3VycmVudFRva2VuID0ge1xuICAgICAgICAgICAgdHlwZTogVG9rZW5UeXBlLlNUQVJUX1RBRyxcbiAgICAgICAgICAgIHRhZ05hbWU6ICcnLFxuICAgICAgICAgICAgdGFnSUQ6IFRBR19JRC5VTktOT1dOLFxuICAgICAgICAgICAgc2VsZkNsb3Npbmc6IGZhbHNlLFxuICAgICAgICAgICAgYWNrU2VsZkNsb3Npbmc6IGZhbHNlLFxuICAgICAgICAgICAgYXR0cnM6IFtdLFxuICAgICAgICAgICAgbG9jYXRpb246IHRoaXMuZ2V0Q3VycmVudExvY2F0aW9uKDEpLFxuICAgICAgICB9O1xuICAgIH1cbiAgICBfY3JlYXRlRW5kVGFnVG9rZW4oKSB7XG4gICAgICAgIHRoaXMuY3VycmVudFRva2VuID0ge1xuICAgICAgICAgICAgdHlwZTogVG9rZW5UeXBlLkVORF9UQUcsXG4gICAgICAgICAgICB0YWdOYW1lOiAnJyxcbiAgICAgICAgICAgIHRhZ0lEOiBUQUdfSUQuVU5LTk9XTixcbiAgICAgICAgICAgIHNlbGZDbG9zaW5nOiBmYWxzZSxcbiAgICAgICAgICAgIGFja1NlbGZDbG9zaW5nOiBmYWxzZSxcbiAgICAgICAgICAgIGF0dHJzOiBbXSxcbiAgICAgICAgICAgIGxvY2F0aW9uOiB0aGlzLmdldEN1cnJlbnRMb2NhdGlvbigyKSxcbiAgICAgICAgfTtcbiAgICB9XG4gICAgX2NyZWF0ZUNvbW1lbnRUb2tlbihvZmZzZXQpIHtcbiAgICAgICAgdGhpcy5jdXJyZW50VG9rZW4gPSB7XG4gICAgICAgICAgICB0eXBlOiBUb2tlblR5cGUuQ09NTUVOVCxcbiAgICAgICAgICAgIGRhdGE6ICcnLFxuICAgICAgICAgICAgbG9jYXRpb246IHRoaXMuZ2V0Q3VycmVudExvY2F0aW9uKG9mZnNldCksXG4gICAgICAgIH07XG4gICAgfVxuICAgIF9jcmVhdGVEb2N0eXBlVG9rZW4oaW5pdGlhbE5hbWUpIHtcbiAgICAgICAgdGhpcy5jdXJyZW50VG9rZW4gPSB7XG4gICAgICAgICAgICB0eXBlOiBUb2tlblR5cGUuRE9DVFlQRSxcbiAgICAgICAgICAgIG5hbWU6IGluaXRpYWxOYW1lLFxuICAgICAgICAgICAgZm9yY2VRdWlya3M6IGZhbHNlLFxuICAgICAgICAgICAgcHVibGljSWQ6IG51bGwsXG4gICAgICAgICAgICBzeXN0ZW1JZDogbnVsbCxcbiAgICAgICAgICAgIGxvY2F0aW9uOiB0aGlzLmN1cnJlbnRMb2NhdGlvbixcbiAgICAgICAgfTtcbiAgICB9XG4gICAgX2NyZWF0ZUNoYXJhY3RlclRva2VuKHR5cGUsIGNoYXJzKSB7XG4gICAgICAgIHRoaXMuY3VycmVudENoYXJhY3RlclRva2VuID0ge1xuICAgICAgICAgICAgdHlwZSxcbiAgICAgICAgICAgIGNoYXJzLFxuICAgICAgICAgICAgbG9jYXRpb246IHRoaXMuY3VycmVudExvY2F0aW9uLFxuICAgICAgICB9O1xuICAgIH1cbiAgICAvL1RhZyBhdHRyaWJ1dGVzXG4gICAgX2NyZWF0ZUF0dHIoYXR0ck5hbWVGaXJzdENoKSB7XG4gICAgICAgIHRoaXMuY3VycmVudEF0dHIgPSB7XG4gICAgICAgICAgICBuYW1lOiBhdHRyTmFtZUZpcnN0Q2gsXG4gICAgICAgICAgICB2YWx1ZTogJycsXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuY3VycmVudExvY2F0aW9uID0gdGhpcy5nZXRDdXJyZW50TG9jYXRpb24oMCk7XG4gICAgfVxuICAgIF9sZWF2ZUF0dHJOYW1lKCkge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIHZhciBfYjtcbiAgICAgICAgY29uc3QgdG9rZW4gPSB0aGlzLmN1cnJlbnRUb2tlbjtcbiAgICAgICAgaWYgKGdldFRva2VuQXR0cih0b2tlbiwgdGhpcy5jdXJyZW50QXR0ci5uYW1lKSA9PT0gbnVsbCkge1xuICAgICAgICAgICAgdG9rZW4uYXR0cnMucHVzaCh0aGlzLmN1cnJlbnRBdHRyKTtcbiAgICAgICAgICAgIGlmICh0b2tlbi5sb2NhdGlvbiAmJiB0aGlzLmN1cnJlbnRMb2NhdGlvbikge1xuICAgICAgICAgICAgICAgIGNvbnN0IGF0dHJMb2NhdGlvbnMgPSAoKF9hID0gKF9iID0gdG9rZW4ubG9jYXRpb24pLmF0dHJzKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiAoX2IuYXR0cnMgPSBPYmplY3QuY3JlYXRlKG51bGwpKSk7XG4gICAgICAgICAgICAgICAgYXR0ckxvY2F0aW9uc1t0aGlzLmN1cnJlbnRBdHRyLm5hbWVdID0gdGhpcy5jdXJyZW50TG9jYXRpb247XG4gICAgICAgICAgICAgICAgLy8gU2V0IGVuZCBsb2NhdGlvblxuICAgICAgICAgICAgICAgIHRoaXMuX2xlYXZlQXR0clZhbHVlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmR1cGxpY2F0ZUF0dHJpYnV0ZSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgX2xlYXZlQXR0clZhbHVlKCkge1xuICAgICAgICBpZiAodGhpcy5jdXJyZW50TG9jYXRpb24pIHtcbiAgICAgICAgICAgIHRoaXMuY3VycmVudExvY2F0aW9uLmVuZExpbmUgPSB0aGlzLnByZXByb2Nlc3Nvci5saW5lO1xuICAgICAgICAgICAgdGhpcy5jdXJyZW50TG9jYXRpb24uZW5kQ29sID0gdGhpcy5wcmVwcm9jZXNzb3IuY29sO1xuICAgICAgICAgICAgdGhpcy5jdXJyZW50TG9jYXRpb24uZW5kT2Zmc2V0ID0gdGhpcy5wcmVwcm9jZXNzb3Iub2Zmc2V0O1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vVG9rZW4gZW1pc3Npb25cbiAgICBwcmVwYXJlVG9rZW4oY3QpIHtcbiAgICAgICAgdGhpcy5fZW1pdEN1cnJlbnRDaGFyYWN0ZXJUb2tlbihjdC5sb2NhdGlvbik7XG4gICAgICAgIHRoaXMuY3VycmVudFRva2VuID0gbnVsbDtcbiAgICAgICAgaWYgKGN0LmxvY2F0aW9uKSB7XG4gICAgICAgICAgICBjdC5sb2NhdGlvbi5lbmRMaW5lID0gdGhpcy5wcmVwcm9jZXNzb3IubGluZTtcbiAgICAgICAgICAgIGN0LmxvY2F0aW9uLmVuZENvbCA9IHRoaXMucHJlcHJvY2Vzc29yLmNvbCArIDE7XG4gICAgICAgICAgICBjdC5sb2NhdGlvbi5lbmRPZmZzZXQgPSB0aGlzLnByZXByb2Nlc3Nvci5vZmZzZXQgKyAxO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuY3VycmVudExvY2F0aW9uID0gdGhpcy5nZXRDdXJyZW50TG9jYXRpb24oLTEpO1xuICAgIH1cbiAgICBlbWl0Q3VycmVudFRhZ1Rva2VuKCkge1xuICAgICAgICBjb25zdCBjdCA9IHRoaXMuY3VycmVudFRva2VuO1xuICAgICAgICB0aGlzLnByZXBhcmVUb2tlbihjdCk7XG4gICAgICAgIGN0LnRhZ0lEID0gZ2V0VGFnSUQoY3QudGFnTmFtZSk7XG4gICAgICAgIGlmIChjdC50eXBlID09PSBUb2tlblR5cGUuU1RBUlRfVEFHKSB7XG4gICAgICAgICAgICB0aGlzLmxhc3RTdGFydFRhZ05hbWUgPSBjdC50YWdOYW1lO1xuICAgICAgICAgICAgdGhpcy5oYW5kbGVyLm9uU3RhcnRUYWcoY3QpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgaWYgKGN0LmF0dHJzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmVuZFRhZ1dpdGhBdHRyaWJ1dGVzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChjdC5zZWxmQ2xvc2luZykge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIuZW5kVGFnV2l0aFRyYWlsaW5nU29saWR1cyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmhhbmRsZXIub25FbmRUYWcoY3QpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucHJlcHJvY2Vzc29yLmRyb3BQYXJzZWRDaHVuaygpO1xuICAgIH1cbiAgICBlbWl0Q3VycmVudENvbW1lbnQoY3QpIHtcbiAgICAgICAgdGhpcy5wcmVwYXJlVG9rZW4oY3QpO1xuICAgICAgICB0aGlzLmhhbmRsZXIub25Db21tZW50KGN0KTtcbiAgICAgICAgdGhpcy5wcmVwcm9jZXNzb3IuZHJvcFBhcnNlZENodW5rKCk7XG4gICAgfVxuICAgIGVtaXRDdXJyZW50RG9jdHlwZShjdCkge1xuICAgICAgICB0aGlzLnByZXBhcmVUb2tlbihjdCk7XG4gICAgICAgIHRoaXMuaGFuZGxlci5vbkRvY3R5cGUoY3QpO1xuICAgICAgICB0aGlzLnByZXByb2Nlc3Nvci5kcm9wUGFyc2VkQ2h1bmsoKTtcbiAgICB9XG4gICAgX2VtaXRDdXJyZW50Q2hhcmFjdGVyVG9rZW4obmV4dExvY2F0aW9uKSB7XG4gICAgICAgIGlmICh0aGlzLmN1cnJlbnRDaGFyYWN0ZXJUb2tlbikge1xuICAgICAgICAgICAgLy9OT1RFOiBpZiB3ZSBoYXZlIGEgcGVuZGluZyBjaGFyYWN0ZXIgdG9rZW4sIG1ha2UgaXQncyBlbmQgbG9jYXRpb24gZXF1YWwgdG8gdGhlXG4gICAgICAgICAgICAvL2N1cnJlbnQgdG9rZW4ncyBzdGFydCBsb2NhdGlvbi5cbiAgICAgICAgICAgIGlmIChuZXh0TG9jYXRpb24gJiYgdGhpcy5jdXJyZW50Q2hhcmFjdGVyVG9rZW4ubG9jYXRpb24pIHtcbiAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRDaGFyYWN0ZXJUb2tlbi5sb2NhdGlvbi5lbmRMaW5lID0gbmV4dExvY2F0aW9uLnN0YXJ0TGluZTtcbiAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRDaGFyYWN0ZXJUb2tlbi5sb2NhdGlvbi5lbmRDb2wgPSBuZXh0TG9jYXRpb24uc3RhcnRDb2w7XG4gICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50Q2hhcmFjdGVyVG9rZW4ubG9jYXRpb24uZW5kT2Zmc2V0ID0gbmV4dExvY2F0aW9uLnN0YXJ0T2Zmc2V0O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgc3dpdGNoICh0aGlzLmN1cnJlbnRDaGFyYWN0ZXJUb2tlbi50eXBlKSB7XG4gICAgICAgICAgICAgICAgY2FzZSBUb2tlblR5cGUuQ0hBUkFDVEVSOiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaGFuZGxlci5vbkNoYXJhY3Rlcih0aGlzLmN1cnJlbnRDaGFyYWN0ZXJUb2tlbik7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjYXNlIFRva2VuVHlwZS5OVUxMX0NIQVJBQ1RFUjoge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmhhbmRsZXIub25OdWxsQ2hhcmFjdGVyKHRoaXMuY3VycmVudENoYXJhY3RlclRva2VuKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNhc2UgVG9rZW5UeXBlLldISVRFU1BBQ0VfQ0hBUkFDVEVSOiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaGFuZGxlci5vbldoaXRlc3BhY2VDaGFyYWN0ZXIodGhpcy5jdXJyZW50Q2hhcmFjdGVyVG9rZW4pO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRDaGFyYWN0ZXJUb2tlbiA9IG51bGw7XG4gICAgICAgIH1cbiAgICB9XG4gICAgX2VtaXRFT0ZUb2tlbigpIHtcbiAgICAgICAgY29uc3QgbG9jYXRpb24gPSB0aGlzLmdldEN1cnJlbnRMb2NhdGlvbigwKTtcbiAgICAgICAgaWYgKGxvY2F0aW9uKSB7XG4gICAgICAgICAgICBsb2NhdGlvbi5lbmRMaW5lID0gbG9jYXRpb24uc3RhcnRMaW5lO1xuICAgICAgICAgICAgbG9jYXRpb24uZW5kQ29sID0gbG9jYXRpb24uc3RhcnRDb2w7XG4gICAgICAgICAgICBsb2NhdGlvbi5lbmRPZmZzZXQgPSBsb2NhdGlvbi5zdGFydE9mZnNldDtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9lbWl0Q3VycmVudENoYXJhY3RlclRva2VuKGxvY2F0aW9uKTtcbiAgICAgICAgdGhpcy5oYW5kbGVyLm9uRW9mKHsgdHlwZTogVG9rZW5UeXBlLkVPRiwgbG9jYXRpb24gfSk7XG4gICAgICAgIHRoaXMuYWN0aXZlID0gZmFsc2U7XG4gICAgfVxuICAgIC8vQ2hhcmFjdGVycyBlbWlzc2lvblxuICAgIC8vT1BUSU1JWkFUSU9OOiBzcGVjaWZpY2F0aW9uIHVzZXMgb25seSBvbmUgdHlwZSBvZiBjaGFyYWN0ZXIgdG9rZW5zIChvbmUgdG9rZW4gcGVyIGNoYXJhY3RlcikuXG4gICAgLy9UaGlzIGNhdXNlcyBhIGh1Z2UgbWVtb3J5IG92ZXJoZWFkIGFuZCBhIGxvdCBvZiB1bm5lY2Vzc2FyeSBwYXJzZXIgbG9vcHMuIHBhcnNlNSB1c2VzIDMgZ3JvdXBzIG9mIGNoYXJhY3RlcnMuXG4gICAgLy9JZiB3ZSBoYXZlIGEgc2VxdWVuY2Ugb2YgY2hhcmFjdGVycyB0aGF0IGJlbG9uZyB0byB0aGUgc2FtZSBncm91cCwgdGhlIHBhcnNlciBjYW4gcHJvY2VzcyBpdFxuICAgIC8vYXMgYSBzaW5nbGUgc29saWQgY2hhcmFjdGVyIHRva2VuLlxuICAgIC8vU28sIHRoZXJlIGFyZSAzIHR5cGVzIG9mIGNoYXJhY3RlciB0b2tlbnMgaW4gcGFyc2U1OlxuICAgIC8vMSlUb2tlblR5cGUuTlVMTF9DSEFSQUNURVIgLSBcXHUwMDAwLWNoYXJhY3RlciBzZXF1ZW5jZXMgKGUuZy4gJ1xcdTAwMDBcXHUwMDAwXFx1MDAwMCcpXG4gICAgLy8yKVRva2VuVHlwZS5XSElURVNQQUNFX0NIQVJBQ1RFUiAtIGFueSB3aGl0ZXNwYWNlL25ldy1saW5lIGNoYXJhY3RlciBzZXF1ZW5jZXMgKGUuZy4gJ1xcbiAgXFxyXFx0ICAgXFxmJylcbiAgICAvLzMpVG9rZW5UeXBlLkNIQVJBQ1RFUiAtIGFueSBjaGFyYWN0ZXIgc2VxdWVuY2Ugd2hpY2ggZG9uJ3QgYmVsb25nIHRvIGdyb3VwcyAxIGFuZCAyIChlLmcuICdhYmNkZWYxMjM0QEAjJCVeJylcbiAgICBfYXBwZW5kQ2hhclRvQ3VycmVudENoYXJhY3RlclRva2VuKHR5cGUsIGNoKSB7XG4gICAgICAgIGlmICh0aGlzLmN1cnJlbnRDaGFyYWN0ZXJUb2tlbikge1xuICAgICAgICAgICAgaWYgKHRoaXMuY3VycmVudENoYXJhY3RlclRva2VuLnR5cGUgIT09IHR5cGUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRMb2NhdGlvbiA9IHRoaXMuZ2V0Q3VycmVudExvY2F0aW9uKDApO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRDdXJyZW50Q2hhcmFjdGVyVG9rZW4odGhpcy5jdXJyZW50TG9jYXRpb24pO1xuICAgICAgICAgICAgICAgIHRoaXMucHJlcHJvY2Vzc29yLmRyb3BQYXJzZWRDaHVuaygpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50Q2hhcmFjdGVyVG9rZW4uY2hhcnMgKz0gY2g7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2NyZWF0ZUNoYXJhY3RlclRva2VuKHR5cGUsIGNoKTtcbiAgICB9XG4gICAgX2VtaXRDb2RlUG9pbnQoY3ApIHtcbiAgICAgICAgY29uc3QgdHlwZSA9IGlzV2hpdGVzcGFjZShjcClcbiAgICAgICAgICAgID8gVG9rZW5UeXBlLldISVRFU1BBQ0VfQ0hBUkFDVEVSXG4gICAgICAgICAgICA6IGNwID09PSAkLk5VTExcbiAgICAgICAgICAgICAgICA/IFRva2VuVHlwZS5OVUxMX0NIQVJBQ1RFUlxuICAgICAgICAgICAgICAgIDogVG9rZW5UeXBlLkNIQVJBQ1RFUjtcbiAgICAgICAgdGhpcy5fYXBwZW5kQ2hhclRvQ3VycmVudENoYXJhY3RlclRva2VuKHR5cGUsIFN0cmluZy5mcm9tQ29kZVBvaW50KGNwKSk7XG4gICAgfVxuICAgIC8vTk9URTogdXNlZCB3aGVuIHdlIGVtaXQgY2hhcmFjdGVycyBleHBsaWNpdGx5LlxuICAgIC8vVGhpcyBpcyBhbHdheXMgZm9yIG5vbi13aGl0ZXNwYWNlIGFuZCBub24tbnVsbCBjaGFyYWN0ZXJzLCB3aGljaCBhbGxvd3MgdXMgdG8gYXZvaWQgYWRkaXRpb25hbCBjaGVja3MuXG4gICAgX2VtaXRDaGFycyhjaCkge1xuICAgICAgICB0aGlzLl9hcHBlbmRDaGFyVG9DdXJyZW50Q2hhcmFjdGVyVG9rZW4oVG9rZW5UeXBlLkNIQVJBQ1RFUiwgY2gpO1xuICAgIH1cbiAgICAvLyBDaGFyYWN0ZXIgcmVmZXJlbmNlIGhlbHBlcnNcbiAgICBfbWF0Y2hOYW1lZENoYXJhY3RlclJlZmVyZW5jZShjcCkge1xuICAgICAgICBsZXQgcmVzdWx0ID0gbnVsbDtcbiAgICAgICAgbGV0IGV4Y2VzcyA9IDA7XG4gICAgICAgIGxldCB3aXRob3V0U2VtaWNvbG9uID0gZmFsc2U7XG4gICAgICAgIGZvciAobGV0IGkgPSAwLCBjdXJyZW50ID0gaHRtbERlY29kZVRyZWVbMF07IGkgPj0gMDsgY3AgPSB0aGlzLl9jb25zdW1lKCkpIHtcbiAgICAgICAgICAgIGkgPSBkZXRlcm1pbmVCcmFuY2goaHRtbERlY29kZVRyZWUsIGN1cnJlbnQsIGkgKyAxLCBjcCk7XG4gICAgICAgICAgICBpZiAoaSA8IDApXG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBleGNlc3MgKz0gMTtcbiAgICAgICAgICAgIGN1cnJlbnQgPSBodG1sRGVjb2RlVHJlZVtpXTtcbiAgICAgICAgICAgIGNvbnN0IG1hc2tlZCA9IGN1cnJlbnQgJiBCaW5UcmllRmxhZ3MuVkFMVUVfTEVOR1RIO1xuICAgICAgICAgICAgLy8gSWYgdGhlIGJyYW5jaCBpcyBhIHZhbHVlLCBzdG9yZSBpdCBhbmQgY29udGludWVcbiAgICAgICAgICAgIGlmIChtYXNrZWQpIHtcbiAgICAgICAgICAgICAgICAvLyBUaGUgbWFzayBpcyB0aGUgbnVtYmVyIG9mIGJ5dGVzIG9mIHRoZSB2YWx1ZSwgaW5jbHVkaW5nIHRoZSBjdXJyZW50IGJ5dGUuXG4gICAgICAgICAgICAgICAgY29uc3QgdmFsdWVMZW5ndGggPSAobWFza2VkID4+IDE0KSAtIDE7XG4gICAgICAgICAgICAgICAgLy8gQXR0cmlidXRlIHZhbHVlcyB0aGF0IGFyZW4ndCB0ZXJtaW5hdGVkIHByb3Blcmx5IGFyZW4ndCBwYXJzZWQsIGFuZCBzaG91bGRuJ3QgbGVhZCB0byBhIHBhcnNlciBlcnJvci5cbiAgICAgICAgICAgICAgICAvLyBTZWUgdGhlIGV4YW1wbGUgaW4gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2UvcGFyc2luZy5odG1sI25hbWVkLWNoYXJhY3Rlci1yZWZlcmVuY2Utc3RhdGVcbiAgICAgICAgICAgICAgICBpZiAoY3AgIT09ICQuU0VNSUNPTE9OICYmXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2lzQ2hhcmFjdGVyUmVmZXJlbmNlSW5BdHRyaWJ1dGUoKSAmJlxuICAgICAgICAgICAgICAgICAgICBpc0VudGl0eUluQXR0cmlidXRlSW52YWxpZEVuZCh0aGlzLnByZXByb2Nlc3Nvci5wZWVrKDEpKSkge1xuICAgICAgICAgICAgICAgICAgICAvL05PVEU6IHdlIGRvbid0IGZsdXNoIGFsbCBjb25zdW1lZCBjb2RlIHBvaW50cyBoZXJlLCBhbmQgaW5zdGVhZCBzd2l0Y2ggYmFjayB0byB0aGUgb3JpZ2luYWwgc3RhdGUgYWZ0ZXJcbiAgICAgICAgICAgICAgICAgICAgLy9lbWl0dGluZyBhbiBhbXBlcnNhbmQuIFRoaXMgaXMgZmluZSwgYXMgYWxwaGFudW1lcmljIGNoYXJhY3RlcnMgd29uJ3QgYmUgcGFyc2VkIGRpZmZlcmVudGx5IGluIGF0dHJpYnV0ZXMuXG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IFskLkFNUEVSU0FORF07XG4gICAgICAgICAgICAgICAgICAgIC8vIFNraXAgb3ZlciB0aGUgdmFsdWUuXG4gICAgICAgICAgICAgICAgICAgIGkgKz0gdmFsdWVMZW5ndGg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAvLyBJZiB0aGlzIGlzIGEgc3Vycm9nYXRlIHBhaXIsIGNvbnN1bWUgdGhlIG5leHQgdHdvIGJ5dGVzLlxuICAgICAgICAgICAgICAgICAgICByZXN1bHQgPVxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVMZW5ndGggPT09IDBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IFtodG1sRGVjb2RlVHJlZVtpXSAmIH5CaW5UcmllRmxhZ3MuVkFMVUVfTEVOR1RIXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogdmFsdWVMZW5ndGggPT09IDFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBbaHRtbERlY29kZVRyZWVbKytpXV1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBbaHRtbERlY29kZVRyZWVbKytpXSwgaHRtbERlY29kZVRyZWVbKytpXV07XG4gICAgICAgICAgICAgICAgICAgIGV4Y2VzcyA9IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpdGhvdXRTZW1pY29sb24gPSBjcCAhPT0gJC5TRU1JQ09MT047XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICh2YWx1ZUxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgICAvLyBJZiB0aGUgdmFsdWUgaXMgemVyby1sZW5ndGgsIHdlJ3JlIGRvbmUuXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2NvbnN1bWUoKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRoaXMuX3VuY29uc3VtZShleGNlc3MpO1xuICAgICAgICBpZiAod2l0aG91dFNlbWljb2xvbiAmJiAhdGhpcy5wcmVwcm9jZXNzb3IuZW5kT2ZDaHVua0hpdCkge1xuICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5taXNzaW5nU2VtaWNvbG9uQWZ0ZXJDaGFyYWN0ZXJSZWZlcmVuY2UpO1xuICAgICAgICB9XG4gICAgICAgIC8vIFdlIHdhbnQgdG8gZW1pdCB0aGUgZXJyb3IgYWJvdmUgb24gdGhlIGNvZGUgcG9pbnQgYWZ0ZXIgdGhlIGVudGl0eS5cbiAgICAgICAgLy8gV2UgYWx3YXlzIGNvbnN1bWUgb25lIGNvZGUgcG9pbnQgdG9vIG1hbnkgaW4gdGhlIGxvb3AsIGFuZCB3ZSB3YWl0IHRvXG4gICAgICAgIC8vIHVuY29uc3VtZSBpdCB1bnRpbCBhZnRlciB0aGUgZXJyb3IgaXMgZW1pdHRlZC5cbiAgICAgICAgdGhpcy5fdW5jb25zdW1lKDEpO1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cbiAgICBfaXNDaGFyYWN0ZXJSZWZlcmVuY2VJbkF0dHJpYnV0ZSgpIHtcbiAgICAgICAgcmV0dXJuICh0aGlzLnJldHVyblN0YXRlID09PSBTdGF0ZS5BVFRSSUJVVEVfVkFMVUVfRE9VQkxFX1FVT1RFRCB8fFxuICAgICAgICAgICAgdGhpcy5yZXR1cm5TdGF0ZSA9PT0gU3RhdGUuQVRUUklCVVRFX1ZBTFVFX1NJTkdMRV9RVU9URUQgfHxcbiAgICAgICAgICAgIHRoaXMucmV0dXJuU3RhdGUgPT09IFN0YXRlLkFUVFJJQlVURV9WQUxVRV9VTlFVT1RFRCk7XG4gICAgfVxuICAgIF9mbHVzaENvZGVQb2ludENvbnN1bWVkQXNDaGFyYWN0ZXJSZWZlcmVuY2UoY3ApIHtcbiAgICAgICAgaWYgKHRoaXMuX2lzQ2hhcmFjdGVyUmVmZXJlbmNlSW5BdHRyaWJ1dGUoKSkge1xuICAgICAgICAgICAgdGhpcy5jdXJyZW50QXR0ci52YWx1ZSArPSBTdHJpbmcuZnJvbUNvZGVQb2ludChjcCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9lbWl0Q29kZVBvaW50KGNwKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBDYWxsaW5nIHN0YXRlcyB0aGlzIHdheSB0dXJucyBvdXQgdG8gYmUgbXVjaCBmYXN0ZXIgdGhhbiBhbnkgb3RoZXIgYXBwcm9hY2guXG4gICAgX2NhbGxTdGF0ZShjcCkge1xuICAgICAgICBzd2l0Y2ggKHRoaXMuc3RhdGUpIHtcbiAgICAgICAgICAgIGNhc2UgU3RhdGUuREFUQToge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlRGF0YShjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLlJDREFUQToge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlUmNkYXRhKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuUkFXVEVYVDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlUmF3dGV4dChjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLlNDUklQVF9EQVRBOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVTY3JpcHREYXRhKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuUExBSU5URVhUOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVQbGFpbnRleHQoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5UQUdfT1BFTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlVGFnT3BlbihjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLkVORF9UQUdfT1BFTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlRW5kVGFnT3BlbihjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLlRBR19OQU1FOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVUYWdOYW1lKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuUkNEQVRBX0xFU1NfVEhBTl9TSUdOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVSY2RhdGFMZXNzVGhhblNpZ24oY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5SQ0RBVEFfRU5EX1RBR19PUEVOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVSY2RhdGFFbmRUYWdPcGVuKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuUkNEQVRBX0VORF9UQUdfTkFNRToge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlUmNkYXRhRW5kVGFnTmFtZShjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLlJBV1RFWFRfTEVTU19USEFOX1NJR046IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZVJhd3RleHRMZXNzVGhhblNpZ24oY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5SQVdURVhUX0VORF9UQUdfT1BFTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlUmF3dGV4dEVuZFRhZ09wZW4oY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5SQVdURVhUX0VORF9UQUdfTkFNRToge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlUmF3dGV4dEVuZFRhZ05hbWUoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5TQ1JJUFRfREFUQV9MRVNTX1RIQU5fU0lHTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlU2NyaXB0RGF0YUxlc3NUaGFuU2lnbihjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLlNDUklQVF9EQVRBX0VORF9UQUdfT1BFTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlU2NyaXB0RGF0YUVuZFRhZ09wZW4oY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5TQ1JJUFRfREFUQV9FTkRfVEFHX05BTUU6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZVNjcmlwdERhdGFFbmRUYWdOYW1lKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuU0NSSVBUX0RBVEFfRVNDQVBFX1NUQVJUOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVTY3JpcHREYXRhRXNjYXBlU3RhcnQoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5TQ1JJUFRfREFUQV9FU0NBUEVfU1RBUlRfREFTSDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlU2NyaXB0RGF0YUVzY2FwZVN0YXJ0RGFzaChjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLlNDUklQVF9EQVRBX0VTQ0FQRUQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZVNjcmlwdERhdGFFc2NhcGVkKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuU0NSSVBUX0RBVEFfRVNDQVBFRF9EQVNIOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVTY3JpcHREYXRhRXNjYXBlZERhc2goY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5TQ1JJUFRfREFUQV9FU0NBUEVEX0RBU0hfREFTSDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlU2NyaXB0RGF0YUVzY2FwZWREYXNoRGFzaChjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLlNDUklQVF9EQVRBX0VTQ0FQRURfTEVTU19USEFOX1NJR046IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZVNjcmlwdERhdGFFc2NhcGVkTGVzc1RoYW5TaWduKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuU0NSSVBUX0RBVEFfRVNDQVBFRF9FTkRfVEFHX09QRU46IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZVNjcmlwdERhdGFFc2NhcGVkRW5kVGFnT3BlbihjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLlNDUklQVF9EQVRBX0VTQ0FQRURfRU5EX1RBR19OQU1FOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVTY3JpcHREYXRhRXNjYXBlZEVuZFRhZ05hbWUoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5TQ1JJUFRfREFUQV9ET1VCTEVfRVNDQVBFX1NUQVJUOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVTY3JpcHREYXRhRG91YmxlRXNjYXBlU3RhcnQoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5TQ1JJUFRfREFUQV9ET1VCTEVfRVNDQVBFRDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlU2NyaXB0RGF0YURvdWJsZUVzY2FwZWQoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5TQ1JJUFRfREFUQV9ET1VCTEVfRVNDQVBFRF9EQVNIOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVTY3JpcHREYXRhRG91YmxlRXNjYXBlZERhc2goY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5TQ1JJUFRfREFUQV9ET1VCTEVfRVNDQVBFRF9EQVNIX0RBU0g6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZVNjcmlwdERhdGFEb3VibGVFc2NhcGVkRGFzaERhc2goY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5TQ1JJUFRfREFUQV9ET1VCTEVfRVNDQVBFRF9MRVNTX1RIQU5fU0lHTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlU2NyaXB0RGF0YURvdWJsZUVzY2FwZWRMZXNzVGhhblNpZ24oY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5TQ1JJUFRfREFUQV9ET1VCTEVfRVNDQVBFX0VORDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlU2NyaXB0RGF0YURvdWJsZUVzY2FwZUVuZChjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLkJFRk9SRV9BVFRSSUJVVEVfTkFNRToge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQmVmb3JlQXR0cmlidXRlTmFtZShjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLkFUVFJJQlVURV9OQU1FOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVBdHRyaWJ1dGVOYW1lKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuQUZURVJfQVRUUklCVVRFX05BTUU6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUFmdGVyQXR0cmlidXRlTmFtZShjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLkJFRk9SRV9BVFRSSUJVVEVfVkFMVUU6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUJlZm9yZUF0dHJpYnV0ZVZhbHVlKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuQVRUUklCVVRFX1ZBTFVFX0RPVUJMRV9RVU9URUQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUF0dHJpYnV0ZVZhbHVlRG91YmxlUXVvdGVkKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuQVRUUklCVVRFX1ZBTFVFX1NJTkdMRV9RVU9URUQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUF0dHJpYnV0ZVZhbHVlU2luZ2xlUXVvdGVkKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuQVRUUklCVVRFX1ZBTFVFX1VOUVVPVEVEOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVBdHRyaWJ1dGVWYWx1ZVVucXVvdGVkKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuQUZURVJfQVRUUklCVVRFX1ZBTFVFX1FVT1RFRDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQWZ0ZXJBdHRyaWJ1dGVWYWx1ZVF1b3RlZChjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLlNFTEZfQ0xPU0lOR19TVEFSVF9UQUc6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZVNlbGZDbG9zaW5nU3RhcnRUYWcoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5CT0dVU19DT01NRU5UOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVCb2d1c0NvbW1lbnQoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5NQVJLVVBfREVDTEFSQVRJT05fT1BFTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlTWFya3VwRGVjbGFyYXRpb25PcGVuKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuQ09NTUVOVF9TVEFSVDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQ29tbWVudFN0YXJ0KGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuQ09NTUVOVF9TVEFSVF9EQVNIOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVDb21tZW50U3RhcnREYXNoKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuQ09NTUVOVDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQ29tbWVudChjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLkNPTU1FTlRfTEVTU19USEFOX1NJR046IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUNvbW1lbnRMZXNzVGhhblNpZ24oY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5DT01NRU5UX0xFU1NfVEhBTl9TSUdOX0JBTkc6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUNvbW1lbnRMZXNzVGhhblNpZ25CYW5nKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuQ09NTUVOVF9MRVNTX1RIQU5fU0lHTl9CQU5HX0RBU0g6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUNvbW1lbnRMZXNzVGhhblNpZ25CYW5nRGFzaChjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLkNPTU1FTlRfTEVTU19USEFOX1NJR05fQkFOR19EQVNIX0RBU0g6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUNvbW1lbnRMZXNzVGhhblNpZ25CYW5nRGFzaERhc2goY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5DT01NRU5UX0VORF9EQVNIOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVDb21tZW50RW5kRGFzaChjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLkNPTU1FTlRfRU5EOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVDb21tZW50RW5kKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuQ09NTUVOVF9FTkRfQkFORzoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQ29tbWVudEVuZEJhbmcoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5ET0NUWVBFOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVEb2N0eXBlKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuQkVGT1JFX0RPQ1RZUEVfTkFNRToge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQmVmb3JlRG9jdHlwZU5hbWUoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5ET0NUWVBFX05BTUU6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZURvY3R5cGVOYW1lKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuQUZURVJfRE9DVFlQRV9OQU1FOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVBZnRlckRvY3R5cGVOYW1lKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuQUZURVJfRE9DVFlQRV9QVUJMSUNfS0VZV09SRDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQWZ0ZXJEb2N0eXBlUHVibGljS2V5d29yZChjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLkJFRk9SRV9ET0NUWVBFX1BVQkxJQ19JREVOVElGSUVSOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVCZWZvcmVEb2N0eXBlUHVibGljSWRlbnRpZmllcihjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLkRPQ1RZUEVfUFVCTElDX0lERU5USUZJRVJfRE9VQkxFX1FVT1RFRDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlRG9jdHlwZVB1YmxpY0lkZW50aWZpZXJEb3VibGVRdW90ZWQoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5ET0NUWVBFX1BVQkxJQ19JREVOVElGSUVSX1NJTkdMRV9RVU9URUQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZURvY3R5cGVQdWJsaWNJZGVudGlmaWVyU2luZ2xlUXVvdGVkKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuQUZURVJfRE9DVFlQRV9QVUJMSUNfSURFTlRJRklFUjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQWZ0ZXJEb2N0eXBlUHVibGljSWRlbnRpZmllcihjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLkJFVFdFRU5fRE9DVFlQRV9QVUJMSUNfQU5EX1NZU1RFTV9JREVOVElGSUVSUzoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQmV0d2VlbkRvY3R5cGVQdWJsaWNBbmRTeXN0ZW1JZGVudGlmaWVycyhjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLkFGVEVSX0RPQ1RZUEVfU1lTVEVNX0tFWVdPUkQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUFmdGVyRG9jdHlwZVN5c3RlbUtleXdvcmQoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5CRUZPUkVfRE9DVFlQRV9TWVNURU1fSURFTlRJRklFUjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQmVmb3JlRG9jdHlwZVN5c3RlbUlkZW50aWZpZXIoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5ET0NUWVBFX1NZU1RFTV9JREVOVElGSUVSX0RPVUJMRV9RVU9URUQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZURvY3R5cGVTeXN0ZW1JZGVudGlmaWVyRG91YmxlUXVvdGVkKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuRE9DVFlQRV9TWVNURU1fSURFTlRJRklFUl9TSU5HTEVfUVVPVEVEOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVEb2N0eXBlU3lzdGVtSWRlbnRpZmllclNpbmdsZVF1b3RlZChjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFN0YXRlLkFGVEVSX0RPQ1RZUEVfU1lTVEVNX0lERU5USUZJRVI6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUFmdGVyRG9jdHlwZVN5c3RlbUlkZW50aWZpZXIoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5CT0dVU19ET0NUWVBFOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVCb2d1c0RvY3R5cGUoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5DREFUQV9TRUNUSU9OOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVDZGF0YVNlY3Rpb24oY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5DREFUQV9TRUNUSU9OX0JSQUNLRVQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUNkYXRhU2VjdGlvbkJyYWNrZXQoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5DREFUQV9TRUNUSU9OX0VORDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQ2RhdGFTZWN0aW9uRW5kKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuQ0hBUkFDVEVSX1JFRkVSRU5DRToge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQ2hhcmFjdGVyUmVmZXJlbmNlKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuTkFNRURfQ0hBUkFDVEVSX1JFRkVSRU5DRToge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlTmFtZWRDaGFyYWN0ZXJSZWZlcmVuY2UoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5BTUJJR1VPVVNfQU1QRVJTQU5EOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVBbWJpZ3VvdXNBbXBlcnNhbmQoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5OVU1FUklDX0NIQVJBQ1RFUl9SRUZFUkVOQ0U6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZU51bWVyaWNDaGFyYWN0ZXJSZWZlcmVuY2UoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5IRVhBREVNSUNBTF9DSEFSQUNURVJfUkVGRVJFTkNFX1NUQVJUOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVIZXhhZGVtaWNhbENoYXJhY3RlclJlZmVyZW5jZVN0YXJ0KGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU3RhdGUuSEVYQURFTUlDQUxfQ0hBUkFDVEVSX1JFRkVSRU5DRToge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlSGV4YWRlbWljYWxDaGFyYWN0ZXJSZWZlcmVuY2UoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5ERUNJTUFMX0NIQVJBQ1RFUl9SRUZFUkVOQ0U6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZURlY2ltYWxDaGFyYWN0ZXJSZWZlcmVuY2UoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTdGF0ZS5OVU1FUklDX0NIQVJBQ1RFUl9SRUZFUkVOQ0VfRU5EOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVOdW1lcmljQ2hhcmFjdGVyUmVmZXJlbmNlRW5kKGNwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1Vua25vd24gc3RhdGUnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBTdGF0ZSBtYWNoaW5lXG4gICAgLy8gRGF0YSBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlRGF0YShjcCkge1xuICAgICAgICBzd2l0Y2ggKGNwKSB7XG4gICAgICAgICAgICBjYXNlICQuTEVTU19USEFOX1NJR046IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuVEFHX09QRU47XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuQU1QRVJTQU5EOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5yZXR1cm5TdGF0ZSA9IFN0YXRlLkRBVEE7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkNIQVJBQ1RFUl9SRUZFUkVOQ0U7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuTlVMTDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIudW5leHBlY3RlZE51bGxDaGFyYWN0ZXIpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRDb2RlUG9pbnQoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkVPRjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRFT0ZUb2tlbigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRDb2RlUG9pbnQoY3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vICBSQ0RBVEEgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZVJjZGF0YShjcCkge1xuICAgICAgICBzd2l0Y2ggKGNwKSB7XG4gICAgICAgICAgICBjYXNlICQuQU1QRVJTQU5EOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5yZXR1cm5TdGF0ZSA9IFN0YXRlLlJDREFUQTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQ0hBUkFDVEVSX1JFRkVSRU5DRTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5MRVNTX1RIQU5fU0lHTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5SQ0RBVEFfTEVTU19USEFOX1NJR047XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuTlVMTDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIudW5leHBlY3RlZE51bGxDaGFyYWN0ZXIpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRDaGFycyhSRVBMQUNFTUVOVF9DSEFSQUNURVIpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkVPRjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRFT0ZUb2tlbigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRDb2RlUG9pbnQoY3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIFJBV1RFWFQgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZVJhd3RleHQoY3ApIHtcbiAgICAgICAgc3dpdGNoIChjcCkge1xuICAgICAgICAgICAgY2FzZSAkLkxFU1NfVEhBTl9TSUdOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlJBV1RFWFRfTEVTU19USEFOX1NJR047XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuTlVMTDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIudW5leHBlY3RlZE51bGxDaGFyYWN0ZXIpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRDaGFycyhSRVBMQUNFTUVOVF9DSEFSQUNURVIpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkVPRjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRFT0ZUb2tlbigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRDb2RlUG9pbnQoY3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIFNjcmlwdCBkYXRhIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVTY3JpcHREYXRhKGNwKSB7XG4gICAgICAgIHN3aXRjaCAoY3ApIHtcbiAgICAgICAgICAgIGNhc2UgJC5MRVNTX1RIQU5fU0lHTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5TQ1JJUFRfREFUQV9MRVNTX1RIQU5fU0lHTjtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5OVUxMOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi51bmV4cGVjdGVkTnVsbENoYXJhY3Rlcik7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdENoYXJzKFJFUExBQ0VNRU5UX0NIQVJBQ1RFUik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuRU9GOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdEVPRlRva2VuKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdENvZGVQb2ludChjcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gUExBSU5URVhUIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVQbGFpbnRleHQoY3ApIHtcbiAgICAgICAgc3dpdGNoIChjcCkge1xuICAgICAgICAgICAgY2FzZSAkLk5VTEw6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLnVuZXhwZWN0ZWROdWxsQ2hhcmFjdGVyKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0Q2hhcnMoUkVQTEFDRU1FTlRfQ0hBUkFDVEVSKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5FT0Y6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0RU9GVG9rZW4oKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0Q29kZVBvaW50KGNwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBUYWcgb3BlbiBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlVGFnT3BlbihjcCkge1xuICAgICAgICBpZiAoaXNBc2NpaUxldHRlcihjcCkpIHtcbiAgICAgICAgICAgIHRoaXMuX2NyZWF0ZVN0YXJ0VGFnVG9rZW4oKTtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5UQUdfTkFNRTtcbiAgICAgICAgICAgIHRoaXMuX3N0YXRlVGFnTmFtZShjcCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZVxuICAgICAgICAgICAgc3dpdGNoIChjcCkge1xuICAgICAgICAgICAgICAgIGNhc2UgJC5FWENMQU1BVElPTl9NQVJLOiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5NQVJLVVBfREVDTEFSQVRJT05fT1BFTjtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNhc2UgJC5TT0xJRFVTOiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5FTkRfVEFHX09QRU47XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjYXNlICQuUVVFU1RJT05fTUFSSzoge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLnVuZXhwZWN0ZWRRdWVzdGlvbk1hcmtJbnN0ZWFkT2ZUYWdOYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fY3JlYXRlQ29tbWVudFRva2VuKDEpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQk9HVVNfQ09NTUVOVDtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVCb2d1c0NvbW1lbnQoY3ApO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2FzZSAkLkVPRjoge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmVvZkJlZm9yZVRhZ05hbWUpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9lbWl0Q2hhcnMoJzwnKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZW1pdEVPRlRva2VuKCk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIuaW52YWxpZEZpcnN0Q2hhcmFjdGVyT2ZUYWdOYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZW1pdENoYXJzKCc8Jyk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5EQVRBO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZURhdGEoY3ApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICB9XG4gICAgLy8gRW5kIHRhZyBvcGVuIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVFbmRUYWdPcGVuKGNwKSB7XG4gICAgICAgIGlmIChpc0FzY2lpTGV0dGVyKGNwKSkge1xuICAgICAgICAgICAgdGhpcy5fY3JlYXRlRW5kVGFnVG9rZW4oKTtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5UQUdfTkFNRTtcbiAgICAgICAgICAgIHRoaXMuX3N0YXRlVGFnTmFtZShjcCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZVxuICAgICAgICAgICAgc3dpdGNoIChjcCkge1xuICAgICAgICAgICAgICAgIGNhc2UgJC5HUkVBVEVSX1RIQU5fU0lHTjoge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLm1pc3NpbmdFbmRUYWdOYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkRBVEE7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjYXNlICQuRU9GOiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIuZW9mQmVmb3JlVGFnTmFtZSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRDaGFycygnPC8nKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZW1pdEVPRlRva2VuKCk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIuaW52YWxpZEZpcnN0Q2hhcmFjdGVyT2ZUYWdOYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fY3JlYXRlQ29tbWVudFRva2VuKDIpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQk9HVVNfQ09NTUVOVDtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVCb2d1c0NvbW1lbnQoY3ApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICB9XG4gICAgLy8gVGFnIG5hbWUgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZVRhZ05hbWUoY3ApIHtcbiAgICAgICAgY29uc3QgdG9rZW4gPSB0aGlzLmN1cnJlbnRUb2tlbjtcbiAgICAgICAgc3dpdGNoIChjcCkge1xuICAgICAgICAgICAgY2FzZSAkLlNQQUNFOlxuICAgICAgICAgICAgY2FzZSAkLkxJTkVfRkVFRDpcbiAgICAgICAgICAgIGNhc2UgJC5UQUJVTEFUSU9OOlxuICAgICAgICAgICAgY2FzZSAkLkZPUk1fRkVFRDoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5CRUZPUkVfQVRUUklCVVRFX05BTUU7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuU09MSURVUzoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5TRUxGX0NMT1NJTkdfU1RBUlRfVEFHO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkdSRUFURVJfVEhBTl9TSUdOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkRBVEE7XG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0Q3VycmVudFRhZ1Rva2VuKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuTlVMTDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIudW5leHBlY3RlZE51bGxDaGFyYWN0ZXIpO1xuICAgICAgICAgICAgICAgIHRva2VuLnRhZ05hbWUgKz0gUkVQTEFDRU1FTlRfQ0hBUkFDVEVSO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkVPRjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIuZW9mSW5UYWcpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRFT0ZUb2tlbigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIHRva2VuLnRhZ05hbWUgKz0gU3RyaW5nLmZyb21Db2RlUG9pbnQoaXNBc2NpaVVwcGVyKGNwKSA/IHRvQXNjaWlMb3dlcihjcCkgOiBjcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gUkNEQVRBIGxlc3MtdGhhbiBzaWduIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVSY2RhdGFMZXNzVGhhblNpZ24oY3ApIHtcbiAgICAgICAgaWYgKGNwID09PSAkLlNPTElEVVMpIHtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5SQ0RBVEFfRU5EX1RBR19PUEVOO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fZW1pdENoYXJzKCc8Jyk7XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuUkNEQVRBO1xuICAgICAgICAgICAgdGhpcy5fc3RhdGVSY2RhdGEoY3ApO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vIFJDREFUQSBlbmQgdGFnIG9wZW4gc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZVJjZGF0YUVuZFRhZ09wZW4oY3ApIHtcbiAgICAgICAgaWYgKGlzQXNjaWlMZXR0ZXIoY3ApKSB7XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuUkNEQVRBX0VORF9UQUdfTkFNRTtcbiAgICAgICAgICAgIHRoaXMuX3N0YXRlUmNkYXRhRW5kVGFnTmFtZShjcCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9lbWl0Q2hhcnMoJzwvJyk7XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuUkNEQVRBO1xuICAgICAgICAgICAgdGhpcy5fc3RhdGVSY2RhdGEoY3ApO1xuICAgICAgICB9XG4gICAgfVxuICAgIGhhbmRsZVNwZWNpYWxFbmRUYWcoX2NwKSB7XG4gICAgICAgIGlmICghdGhpcy5wcmVwcm9jZXNzb3Iuc3RhcnRzV2l0aCh0aGlzLmxhc3RTdGFydFRhZ05hbWUsIGZhbHNlKSkge1xuICAgICAgICAgICAgcmV0dXJuICF0aGlzLl9lbnN1cmVIaWJlcm5hdGlvbigpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2NyZWF0ZUVuZFRhZ1Rva2VuKCk7XG4gICAgICAgIGNvbnN0IHRva2VuID0gdGhpcy5jdXJyZW50VG9rZW47XG4gICAgICAgIHRva2VuLnRhZ05hbWUgPSB0aGlzLmxhc3RTdGFydFRhZ05hbWU7XG4gICAgICAgIGNvbnN0IGNwID0gdGhpcy5wcmVwcm9jZXNzb3IucGVlayh0aGlzLmxhc3RTdGFydFRhZ05hbWUubGVuZ3RoKTtcbiAgICAgICAgc3dpdGNoIChjcCkge1xuICAgICAgICAgICAgY2FzZSAkLlNQQUNFOlxuICAgICAgICAgICAgY2FzZSAkLkxJTkVfRkVFRDpcbiAgICAgICAgICAgIGNhc2UgJC5UQUJVTEFUSU9OOlxuICAgICAgICAgICAgY2FzZSAkLkZPUk1fRkVFRDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2FkdmFuY2VCeSh0aGlzLmxhc3RTdGFydFRhZ05hbWUubGVuZ3RoKTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQkVGT1JFX0FUVFJJQlVURV9OQU1FO1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5TT0xJRFVTOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fYWR2YW5jZUJ5KHRoaXMubGFzdFN0YXJ0VGFnTmFtZS5sZW5ndGgpO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5TRUxGX0NMT1NJTkdfU1RBUlRfVEFHO1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5HUkVBVEVSX1RIQU5fU0lHTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2FkdmFuY2VCeSh0aGlzLmxhc3RTdGFydFRhZ05hbWUubGVuZ3RoKTtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRDdXJyZW50VGFnVG9rZW4oKTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuREFUQTtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICF0aGlzLl9lbnN1cmVIaWJlcm5hdGlvbigpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIFJDREFUQSBlbmQgdGFnIG5hbWUgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZVJjZGF0YUVuZFRhZ05hbWUoY3ApIHtcbiAgICAgICAgaWYgKHRoaXMuaGFuZGxlU3BlY2lhbEVuZFRhZyhjcCkpIHtcbiAgICAgICAgICAgIHRoaXMuX2VtaXRDaGFycygnPC8nKTtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5SQ0RBVEE7XG4gICAgICAgICAgICB0aGlzLl9zdGF0ZVJjZGF0YShjcCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gUkFXVEVYVCBsZXNzLXRoYW4gc2lnbiBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlUmF3dGV4dExlc3NUaGFuU2lnbihjcCkge1xuICAgICAgICBpZiAoY3AgPT09ICQuU09MSURVUykge1xuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlJBV1RFWFRfRU5EX1RBR19PUEVOO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fZW1pdENoYXJzKCc8Jyk7XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuUkFXVEVYVDtcbiAgICAgICAgICAgIHRoaXMuX3N0YXRlUmF3dGV4dChjcCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gUkFXVEVYVCBlbmQgdGFnIG9wZW4gc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZVJhd3RleHRFbmRUYWdPcGVuKGNwKSB7XG4gICAgICAgIGlmIChpc0FzY2lpTGV0dGVyKGNwKSkge1xuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlJBV1RFWFRfRU5EX1RBR19OQU1FO1xuICAgICAgICAgICAgdGhpcy5fc3RhdGVSYXd0ZXh0RW5kVGFnTmFtZShjcCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9lbWl0Q2hhcnMoJzwvJyk7XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuUkFXVEVYVDtcbiAgICAgICAgICAgIHRoaXMuX3N0YXRlUmF3dGV4dChjcCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gUkFXVEVYVCBlbmQgdGFnIG5hbWUgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZVJhd3RleHRFbmRUYWdOYW1lKGNwKSB7XG4gICAgICAgIGlmICh0aGlzLmhhbmRsZVNwZWNpYWxFbmRUYWcoY3ApKSB7XG4gICAgICAgICAgICB0aGlzLl9lbWl0Q2hhcnMoJzwvJyk7XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuUkFXVEVYVDtcbiAgICAgICAgICAgIHRoaXMuX3N0YXRlUmF3dGV4dChjcCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gU2NyaXB0IGRhdGEgbGVzcy10aGFuIHNpZ24gc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZVNjcmlwdERhdGFMZXNzVGhhblNpZ24oY3ApIHtcbiAgICAgICAgc3dpdGNoIChjcCkge1xuICAgICAgICAgICAgY2FzZSAkLlNPTElEVVM6IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuU0NSSVBUX0RBVEFfRU5EX1RBR19PUEVOO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkVYQ0xBTUFUSU9OX01BUks6IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuU0NSSVBUX0RBVEFfRVNDQVBFX1NUQVJUO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRDaGFycygnPCEnKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0Q2hhcnMoJzwnKTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuU0NSSVBUX0RBVEE7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVTY3JpcHREYXRhKGNwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBTY3JpcHQgZGF0YSBlbmQgdGFnIG9wZW4gc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZVNjcmlwdERhdGFFbmRUYWdPcGVuKGNwKSB7XG4gICAgICAgIGlmIChpc0FzY2lpTGV0dGVyKGNwKSkge1xuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlNDUklQVF9EQVRBX0VORF9UQUdfTkFNRTtcbiAgICAgICAgICAgIHRoaXMuX3N0YXRlU2NyaXB0RGF0YUVuZFRhZ05hbWUoY3ApO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fZW1pdENoYXJzKCc8LycpO1xuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlNDUklQVF9EQVRBO1xuICAgICAgICAgICAgdGhpcy5fc3RhdGVTY3JpcHREYXRhKGNwKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBTY3JpcHQgZGF0YSBlbmQgdGFnIG5hbWUgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZVNjcmlwdERhdGFFbmRUYWdOYW1lKGNwKSB7XG4gICAgICAgIGlmICh0aGlzLmhhbmRsZVNwZWNpYWxFbmRUYWcoY3ApKSB7XG4gICAgICAgICAgICB0aGlzLl9lbWl0Q2hhcnMoJzwvJyk7XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuU0NSSVBUX0RBVEE7XG4gICAgICAgICAgICB0aGlzLl9zdGF0ZVNjcmlwdERhdGEoY3ApO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vIFNjcmlwdCBkYXRhIGVzY2FwZSBzdGFydCBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlU2NyaXB0RGF0YUVzY2FwZVN0YXJ0KGNwKSB7XG4gICAgICAgIGlmIChjcCA9PT0gJC5IWVBIRU5fTUlOVVMpIHtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5TQ1JJUFRfREFUQV9FU0NBUEVfU1RBUlRfREFTSDtcbiAgICAgICAgICAgIHRoaXMuX2VtaXRDaGFycygnLScpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlNDUklQVF9EQVRBO1xuICAgICAgICAgICAgdGhpcy5fc3RhdGVTY3JpcHREYXRhKGNwKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBTY3JpcHQgZGF0YSBlc2NhcGUgc3RhcnQgZGFzaCBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlU2NyaXB0RGF0YUVzY2FwZVN0YXJ0RGFzaChjcCkge1xuICAgICAgICBpZiAoY3AgPT09ICQuSFlQSEVOX01JTlVTKSB7XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuU0NSSVBUX0RBVEFfRVNDQVBFRF9EQVNIX0RBU0g7XG4gICAgICAgICAgICB0aGlzLl9lbWl0Q2hhcnMoJy0nKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5TQ1JJUFRfREFUQTtcbiAgICAgICAgICAgIHRoaXMuX3N0YXRlU2NyaXB0RGF0YShjcCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gU2NyaXB0IGRhdGEgZXNjYXBlZCBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlU2NyaXB0RGF0YUVzY2FwZWQoY3ApIHtcbiAgICAgICAgc3dpdGNoIChjcCkge1xuICAgICAgICAgICAgY2FzZSAkLkhZUEhFTl9NSU5VUzoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5TQ1JJUFRfREFUQV9FU0NBUEVEX0RBU0g7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdENoYXJzKCctJyk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuTEVTU19USEFOX1NJR046IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuU0NSSVBUX0RBVEFfRVNDQVBFRF9MRVNTX1RIQU5fU0lHTjtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5OVUxMOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi51bmV4cGVjdGVkTnVsbENoYXJhY3Rlcik7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdENoYXJzKFJFUExBQ0VNRU5UX0NIQVJBQ1RFUik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuRU9GOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5lb2ZJblNjcmlwdEh0bWxDb21tZW50TGlrZVRleHQpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRFT0ZUb2tlbigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRDb2RlUG9pbnQoY3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIFNjcmlwdCBkYXRhIGVzY2FwZWQgZGFzaCBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlU2NyaXB0RGF0YUVzY2FwZWREYXNoKGNwKSB7XG4gICAgICAgIHN3aXRjaCAoY3ApIHtcbiAgICAgICAgICAgIGNhc2UgJC5IWVBIRU5fTUlOVVM6IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuU0NSSVBUX0RBVEFfRVNDQVBFRF9EQVNIX0RBU0g7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdENoYXJzKCctJyk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuTEVTU19USEFOX1NJR046IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuU0NSSVBUX0RBVEFfRVNDQVBFRF9MRVNTX1RIQU5fU0lHTjtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5OVUxMOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi51bmV4cGVjdGVkTnVsbENoYXJhY3Rlcik7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlNDUklQVF9EQVRBX0VTQ0FQRUQ7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdENoYXJzKFJFUExBQ0VNRU5UX0NIQVJBQ1RFUik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuRU9GOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5lb2ZJblNjcmlwdEh0bWxDb21tZW50TGlrZVRleHQpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRFT0ZUb2tlbigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5TQ1JJUFRfREFUQV9FU0NBUEVEO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRDb2RlUG9pbnQoY3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIFNjcmlwdCBkYXRhIGVzY2FwZWQgZGFzaCBkYXNoIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVTY3JpcHREYXRhRXNjYXBlZERhc2hEYXNoKGNwKSB7XG4gICAgICAgIHN3aXRjaCAoY3ApIHtcbiAgICAgICAgICAgIGNhc2UgJC5IWVBIRU5fTUlOVVM6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0Q2hhcnMoJy0nKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5MRVNTX1RIQU5fU0lHTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5TQ1JJUFRfREFUQV9FU0NBUEVEX0xFU1NfVEhBTl9TSUdOO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkdSRUFURVJfVEhBTl9TSUdOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlNDUklQVF9EQVRBO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRDaGFycygnPicpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLk5VTEw6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLnVuZXhwZWN0ZWROdWxsQ2hhcmFjdGVyKTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuU0NSSVBUX0RBVEFfRVNDQVBFRDtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0Q2hhcnMoUkVQTEFDRU1FTlRfQ0hBUkFDVEVSKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5FT0Y6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmVvZkluU2NyaXB0SHRtbENvbW1lbnRMaWtlVGV4dCk7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdEVPRlRva2VuKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlNDUklQVF9EQVRBX0VTQ0FQRUQ7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdENvZGVQb2ludChjcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gU2NyaXB0IGRhdGEgZXNjYXBlZCBsZXNzLXRoYW4gc2lnbiBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlU2NyaXB0RGF0YUVzY2FwZWRMZXNzVGhhblNpZ24oY3ApIHtcbiAgICAgICAgaWYgKGNwID09PSAkLlNPTElEVVMpIHtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5TQ1JJUFRfREFUQV9FU0NBUEVEX0VORF9UQUdfT1BFTjtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChpc0FzY2lpTGV0dGVyKGNwKSkge1xuICAgICAgICAgICAgdGhpcy5fZW1pdENoYXJzKCc8Jyk7XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuU0NSSVBUX0RBVEFfRE9VQkxFX0VTQ0FQRV9TVEFSVDtcbiAgICAgICAgICAgIHRoaXMuX3N0YXRlU2NyaXB0RGF0YURvdWJsZUVzY2FwZVN0YXJ0KGNwKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX2VtaXRDaGFycygnPCcpO1xuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlNDUklQVF9EQVRBX0VTQ0FQRUQ7XG4gICAgICAgICAgICB0aGlzLl9zdGF0ZVNjcmlwdERhdGFFc2NhcGVkKGNwKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBTY3JpcHQgZGF0YSBlc2NhcGVkIGVuZCB0YWcgb3BlbiBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlU2NyaXB0RGF0YUVzY2FwZWRFbmRUYWdPcGVuKGNwKSB7XG4gICAgICAgIGlmIChpc0FzY2lpTGV0dGVyKGNwKSkge1xuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlNDUklQVF9EQVRBX0VTQ0FQRURfRU5EX1RBR19OQU1FO1xuICAgICAgICAgICAgdGhpcy5fc3RhdGVTY3JpcHREYXRhRXNjYXBlZEVuZFRhZ05hbWUoY3ApO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fZW1pdENoYXJzKCc8LycpO1xuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlNDUklQVF9EQVRBX0VTQ0FQRUQ7XG4gICAgICAgICAgICB0aGlzLl9zdGF0ZVNjcmlwdERhdGFFc2NhcGVkKGNwKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBTY3JpcHQgZGF0YSBlc2NhcGVkIGVuZCB0YWcgbmFtZSBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlU2NyaXB0RGF0YUVzY2FwZWRFbmRUYWdOYW1lKGNwKSB7XG4gICAgICAgIGlmICh0aGlzLmhhbmRsZVNwZWNpYWxFbmRUYWcoY3ApKSB7XG4gICAgICAgICAgICB0aGlzLl9lbWl0Q2hhcnMoJzwvJyk7XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuU0NSSVBUX0RBVEFfRVNDQVBFRDtcbiAgICAgICAgICAgIHRoaXMuX3N0YXRlU2NyaXB0RGF0YUVzY2FwZWQoY3ApO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vIFNjcmlwdCBkYXRhIGRvdWJsZSBlc2NhcGUgc3RhcnQgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZVNjcmlwdERhdGFEb3VibGVFc2NhcGVTdGFydChjcCkge1xuICAgICAgICBpZiAodGhpcy5wcmVwcm9jZXNzb3Iuc3RhcnRzV2l0aCgkJC5TQ1JJUFQsIGZhbHNlKSAmJlxuICAgICAgICAgICAgaXNTY3JpcHREYXRhRG91YmxlRXNjYXBlU2VxdWVuY2VFbmQodGhpcy5wcmVwcm9jZXNzb3IucGVlaygkJC5TQ1JJUFQubGVuZ3RoKSkpIHtcbiAgICAgICAgICAgIHRoaXMuX2VtaXRDb2RlUG9pbnQoY3ApO1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCAkJC5TQ1JJUFQubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0Q29kZVBvaW50KHRoaXMuX2NvbnN1bWUoKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuU0NSSVBUX0RBVEFfRE9VQkxFX0VTQ0FQRUQ7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoIXRoaXMuX2Vuc3VyZUhpYmVybmF0aW9uKCkpIHtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5TQ1JJUFRfREFUQV9FU0NBUEVEO1xuICAgICAgICAgICAgdGhpcy5fc3RhdGVTY3JpcHREYXRhRXNjYXBlZChjcCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gU2NyaXB0IGRhdGEgZG91YmxlIGVzY2FwZWQgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZVNjcmlwdERhdGFEb3VibGVFc2NhcGVkKGNwKSB7XG4gICAgICAgIHN3aXRjaCAoY3ApIHtcbiAgICAgICAgICAgIGNhc2UgJC5IWVBIRU5fTUlOVVM6IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuU0NSSVBUX0RBVEFfRE9VQkxFX0VTQ0FQRURfREFTSDtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0Q2hhcnMoJy0nKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5MRVNTX1RIQU5fU0lHTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5TQ1JJUFRfREFUQV9ET1VCTEVfRVNDQVBFRF9MRVNTX1RIQU5fU0lHTjtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0Q2hhcnMoJzwnKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5OVUxMOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi51bmV4cGVjdGVkTnVsbENoYXJhY3Rlcik7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdENoYXJzKFJFUExBQ0VNRU5UX0NIQVJBQ1RFUik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuRU9GOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5lb2ZJblNjcmlwdEh0bWxDb21tZW50TGlrZVRleHQpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRFT0ZUb2tlbigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRDb2RlUG9pbnQoY3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIFNjcmlwdCBkYXRhIGRvdWJsZSBlc2NhcGVkIGRhc2ggc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZVNjcmlwdERhdGFEb3VibGVFc2NhcGVkRGFzaChjcCkge1xuICAgICAgICBzd2l0Y2ggKGNwKSB7XG4gICAgICAgICAgICBjYXNlICQuSFlQSEVOX01JTlVTOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlNDUklQVF9EQVRBX0RPVUJMRV9FU0NBUEVEX0RBU0hfREFTSDtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0Q2hhcnMoJy0nKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5MRVNTX1RIQU5fU0lHTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5TQ1JJUFRfREFUQV9ET1VCTEVfRVNDQVBFRF9MRVNTX1RIQU5fU0lHTjtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0Q2hhcnMoJzwnKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5OVUxMOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi51bmV4cGVjdGVkTnVsbENoYXJhY3Rlcik7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlNDUklQVF9EQVRBX0RPVUJMRV9FU0NBUEVEO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRDaGFycyhSRVBMQUNFTUVOVF9DSEFSQUNURVIpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkVPRjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIuZW9mSW5TY3JpcHRIdG1sQ29tbWVudExpa2VUZXh0KTtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0RU9GVG9rZW4oKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuU0NSSVBUX0RBVEFfRE9VQkxFX0VTQ0FQRUQ7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdENvZGVQb2ludChjcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gU2NyaXB0IGRhdGEgZG91YmxlIGVzY2FwZWQgZGFzaCBkYXNoIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVTY3JpcHREYXRhRG91YmxlRXNjYXBlZERhc2hEYXNoKGNwKSB7XG4gICAgICAgIHN3aXRjaCAoY3ApIHtcbiAgICAgICAgICAgIGNhc2UgJC5IWVBIRU5fTUlOVVM6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0Q2hhcnMoJy0nKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5MRVNTX1RIQU5fU0lHTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5TQ1JJUFRfREFUQV9ET1VCTEVfRVNDQVBFRF9MRVNTX1RIQU5fU0lHTjtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0Q2hhcnMoJzwnKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5HUkVBVEVSX1RIQU5fU0lHTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5TQ1JJUFRfREFUQTtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0Q2hhcnMoJz4nKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5OVUxMOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi51bmV4cGVjdGVkTnVsbENoYXJhY3Rlcik7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlNDUklQVF9EQVRBX0RPVUJMRV9FU0NBUEVEO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRDaGFycyhSRVBMQUNFTUVOVF9DSEFSQUNURVIpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkVPRjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIuZW9mSW5TY3JpcHRIdG1sQ29tbWVudExpa2VUZXh0KTtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0RU9GVG9rZW4oKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuU0NSSVBUX0RBVEFfRE9VQkxFX0VTQ0FQRUQ7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdENvZGVQb2ludChjcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gU2NyaXB0IGRhdGEgZG91YmxlIGVzY2FwZWQgbGVzcy10aGFuIHNpZ24gc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZVNjcmlwdERhdGFEb3VibGVFc2NhcGVkTGVzc1RoYW5TaWduKGNwKSB7XG4gICAgICAgIGlmIChjcCA9PT0gJC5TT0xJRFVTKSB7XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuU0NSSVBUX0RBVEFfRE9VQkxFX0VTQ0FQRV9FTkQ7XG4gICAgICAgICAgICB0aGlzLl9lbWl0Q2hhcnMoJy8nKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5TQ1JJUFRfREFUQV9ET1VCTEVfRVNDQVBFRDtcbiAgICAgICAgICAgIHRoaXMuX3N0YXRlU2NyaXB0RGF0YURvdWJsZUVzY2FwZWQoY3ApO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vIFNjcmlwdCBkYXRhIGRvdWJsZSBlc2NhcGUgZW5kIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVTY3JpcHREYXRhRG91YmxlRXNjYXBlRW5kKGNwKSB7XG4gICAgICAgIGlmICh0aGlzLnByZXByb2Nlc3Nvci5zdGFydHNXaXRoKCQkLlNDUklQVCwgZmFsc2UpICYmXG4gICAgICAgICAgICBpc1NjcmlwdERhdGFEb3VibGVFc2NhcGVTZXF1ZW5jZUVuZCh0aGlzLnByZXByb2Nlc3Nvci5wZWVrKCQkLlNDUklQVC5sZW5ndGgpKSkge1xuICAgICAgICAgICAgdGhpcy5fZW1pdENvZGVQb2ludChjcCk7XG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8ICQkLlNDUklQVC5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRDb2RlUG9pbnQodGhpcy5fY29uc3VtZSgpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5TQ1JJUFRfREFUQV9FU0NBUEVEO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKCF0aGlzLl9lbnN1cmVIaWJlcm5hdGlvbigpKSB7XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuU0NSSVBUX0RBVEFfRE9VQkxFX0VTQ0FQRUQ7XG4gICAgICAgICAgICB0aGlzLl9zdGF0ZVNjcmlwdERhdGFEb3VibGVFc2NhcGVkKGNwKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBCZWZvcmUgYXR0cmlidXRlIG5hbWUgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZUJlZm9yZUF0dHJpYnV0ZU5hbWUoY3ApIHtcbiAgICAgICAgc3dpdGNoIChjcCkge1xuICAgICAgICAgICAgY2FzZSAkLlNQQUNFOlxuICAgICAgICAgICAgY2FzZSAkLkxJTkVfRkVFRDpcbiAgICAgICAgICAgIGNhc2UgJC5UQUJVTEFUSU9OOlxuICAgICAgICAgICAgY2FzZSAkLkZPUk1fRkVFRDoge1xuICAgICAgICAgICAgICAgIC8vIElnbm9yZSB3aGl0ZXNwYWNlXG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuU09MSURVUzpcbiAgICAgICAgICAgIGNhc2UgJC5HUkVBVEVSX1RIQU5fU0lHTjpcbiAgICAgICAgICAgIGNhc2UgJC5FT0Y6IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQUZURVJfQVRUUklCVVRFX05BTUU7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVBZnRlckF0dHJpYnV0ZU5hbWUoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkVRVUFMU19TSUdOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi51bmV4cGVjdGVkRXF1YWxzU2lnbkJlZm9yZUF0dHJpYnV0ZU5hbWUpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2NyZWF0ZUF0dHIoJz0nKTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQVRUUklCVVRFX05BTUU7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fY3JlYXRlQXR0cignJyk7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkFUVFJJQlVURV9OQU1FO1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQXR0cmlidXRlTmFtZShjcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gQXR0cmlidXRlIG5hbWUgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZUF0dHJpYnV0ZU5hbWUoY3ApIHtcbiAgICAgICAgc3dpdGNoIChjcCkge1xuICAgICAgICAgICAgY2FzZSAkLlNQQUNFOlxuICAgICAgICAgICAgY2FzZSAkLkxJTkVfRkVFRDpcbiAgICAgICAgICAgIGNhc2UgJC5UQUJVTEFUSU9OOlxuICAgICAgICAgICAgY2FzZSAkLkZPUk1fRkVFRDpcbiAgICAgICAgICAgIGNhc2UgJC5TT0xJRFVTOlxuICAgICAgICAgICAgY2FzZSAkLkdSRUFURVJfVEhBTl9TSUdOOlxuICAgICAgICAgICAgY2FzZSAkLkVPRjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2xlYXZlQXR0ck5hbWUoKTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQUZURVJfQVRUUklCVVRFX05BTUU7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVBZnRlckF0dHJpYnV0ZU5hbWUoY3ApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkVRVUFMU19TSUdOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fbGVhdmVBdHRyTmFtZSgpO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5CRUZPUkVfQVRUUklCVVRFX1ZBTFVFO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLlFVT1RBVElPTl9NQVJLOlxuICAgICAgICAgICAgY2FzZSAkLkFQT1NUUk9QSEU6XG4gICAgICAgICAgICBjYXNlICQuTEVTU19USEFOX1NJR046IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLnVuZXhwZWN0ZWRDaGFyYWN0ZXJJbkF0dHJpYnV0ZU5hbWUpO1xuICAgICAgICAgICAgICAgIHRoaXMuY3VycmVudEF0dHIubmFtZSArPSBTdHJpbmcuZnJvbUNvZGVQb2ludChjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuTlVMTDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIudW5leHBlY3RlZE51bGxDaGFyYWN0ZXIpO1xuICAgICAgICAgICAgICAgIHRoaXMuY3VycmVudEF0dHIubmFtZSArPSBSRVBMQUNFTUVOVF9DSEFSQUNURVI7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50QXR0ci5uYW1lICs9IFN0cmluZy5mcm9tQ29kZVBvaW50KGlzQXNjaWlVcHBlcihjcCkgPyB0b0FzY2lpTG93ZXIoY3ApIDogY3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIEFmdGVyIGF0dHJpYnV0ZSBuYW1lIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVBZnRlckF0dHJpYnV0ZU5hbWUoY3ApIHtcbiAgICAgICAgc3dpdGNoIChjcCkge1xuICAgICAgICAgICAgY2FzZSAkLlNQQUNFOlxuICAgICAgICAgICAgY2FzZSAkLkxJTkVfRkVFRDpcbiAgICAgICAgICAgIGNhc2UgJC5UQUJVTEFUSU9OOlxuICAgICAgICAgICAgY2FzZSAkLkZPUk1fRkVFRDoge1xuICAgICAgICAgICAgICAgIC8vIElnbm9yZSB3aGl0ZXNwYWNlXG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuU09MSURVUzoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5TRUxGX0NMT1NJTkdfU1RBUlRfVEFHO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkVRVUFMU19TSUdOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkJFRk9SRV9BVFRSSUJVVEVfVkFMVUU7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuR1JFQVRFUl9USEFOX1NJR046IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuREFUQTtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRDdXJyZW50VGFnVG9rZW4oKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5FT0Y6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmVvZkluVGFnKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0RU9GVG9rZW4oKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9jcmVhdGVBdHRyKCcnKTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQVRUUklCVVRFX05BTUU7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVBdHRyaWJ1dGVOYW1lKGNwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBCZWZvcmUgYXR0cmlidXRlIHZhbHVlIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVCZWZvcmVBdHRyaWJ1dGVWYWx1ZShjcCkge1xuICAgICAgICBzd2l0Y2ggKGNwKSB7XG4gICAgICAgICAgICBjYXNlICQuU1BBQ0U6XG4gICAgICAgICAgICBjYXNlICQuTElORV9GRUVEOlxuICAgICAgICAgICAgY2FzZSAkLlRBQlVMQVRJT046XG4gICAgICAgICAgICBjYXNlICQuRk9STV9GRUVEOiB7XG4gICAgICAgICAgICAgICAgLy8gSWdub3JlIHdoaXRlc3BhY2VcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5RVU9UQVRJT05fTUFSSzoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5BVFRSSUJVVEVfVkFMVUVfRE9VQkxFX1FVT1RFRDtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5BUE9TVFJPUEhFOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkFUVFJJQlVURV9WQUxVRV9TSU5HTEVfUVVPVEVEO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkdSRUFURVJfVEhBTl9TSUdOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5taXNzaW5nQXR0cmlidXRlVmFsdWUpO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5EQVRBO1xuICAgICAgICAgICAgICAgIHRoaXMuZW1pdEN1cnJlbnRUYWdUb2tlbigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5BVFRSSUJVVEVfVkFMVUVfVU5RVU9URUQ7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVBdHRyaWJ1dGVWYWx1ZVVucXVvdGVkKGNwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBBdHRyaWJ1dGUgdmFsdWUgKGRvdWJsZS1xdW90ZWQpIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVBdHRyaWJ1dGVWYWx1ZURvdWJsZVF1b3RlZChjcCkge1xuICAgICAgICBzd2l0Y2ggKGNwKSB7XG4gICAgICAgICAgICBjYXNlICQuUVVPVEFUSU9OX01BUks6IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQUZURVJfQVRUUklCVVRFX1ZBTFVFX1FVT1RFRDtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5BTVBFUlNBTkQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLnJldHVyblN0YXRlID0gU3RhdGUuQVRUUklCVVRFX1ZBTFVFX0RPVUJMRV9RVU9URUQ7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkNIQVJBQ1RFUl9SRUZFUkVOQ0U7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuTlVMTDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIudW5leHBlY3RlZE51bGxDaGFyYWN0ZXIpO1xuICAgICAgICAgICAgICAgIHRoaXMuY3VycmVudEF0dHIudmFsdWUgKz0gUkVQTEFDRU1FTlRfQ0hBUkFDVEVSO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkVPRjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIuZW9mSW5UYWcpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRFT0ZUb2tlbigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIHRoaXMuY3VycmVudEF0dHIudmFsdWUgKz0gU3RyaW5nLmZyb21Db2RlUG9pbnQoY3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIEF0dHJpYnV0ZSB2YWx1ZSAoc2luZ2xlLXF1b3RlZCkgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZUF0dHJpYnV0ZVZhbHVlU2luZ2xlUXVvdGVkKGNwKSB7XG4gICAgICAgIHN3aXRjaCAoY3ApIHtcbiAgICAgICAgICAgIGNhc2UgJC5BUE9TVFJPUEhFOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkFGVEVSX0FUVFJJQlVURV9WQUxVRV9RVU9URUQ7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuQU1QRVJTQU5EOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5yZXR1cm5TdGF0ZSA9IFN0YXRlLkFUVFJJQlVURV9WQUxVRV9TSU5HTEVfUVVPVEVEO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5DSEFSQUNURVJfUkVGRVJFTkNFO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLk5VTEw6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLnVuZXhwZWN0ZWROdWxsQ2hhcmFjdGVyKTtcbiAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRBdHRyLnZhbHVlICs9IFJFUExBQ0VNRU5UX0NIQVJBQ1RFUjtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5FT0Y6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmVvZkluVGFnKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0RU9GVG9rZW4oKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRBdHRyLnZhbHVlICs9IFN0cmluZy5mcm9tQ29kZVBvaW50KGNwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBBdHRyaWJ1dGUgdmFsdWUgKHVucXVvdGVkKSBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlQXR0cmlidXRlVmFsdWVVbnF1b3RlZChjcCkge1xuICAgICAgICBzd2l0Y2ggKGNwKSB7XG4gICAgICAgICAgICBjYXNlICQuU1BBQ0U6XG4gICAgICAgICAgICBjYXNlICQuTElORV9GRUVEOlxuICAgICAgICAgICAgY2FzZSAkLlRBQlVMQVRJT046XG4gICAgICAgICAgICBjYXNlICQuRk9STV9GRUVEOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fbGVhdmVBdHRyVmFsdWUoKTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQkVGT1JFX0FUVFJJQlVURV9OQU1FO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkFNUEVSU0FORDoge1xuICAgICAgICAgICAgICAgIHRoaXMucmV0dXJuU3RhdGUgPSBTdGF0ZS5BVFRSSUJVVEVfVkFMVUVfVU5RVU9URUQ7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkNIQVJBQ1RFUl9SRUZFUkVOQ0U7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuR1JFQVRFUl9USEFOX1NJR046IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9sZWF2ZUF0dHJWYWx1ZSgpO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5EQVRBO1xuICAgICAgICAgICAgICAgIHRoaXMuZW1pdEN1cnJlbnRUYWdUb2tlbigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLk5VTEw6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLnVuZXhwZWN0ZWROdWxsQ2hhcmFjdGVyKTtcbiAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRBdHRyLnZhbHVlICs9IFJFUExBQ0VNRU5UX0NIQVJBQ1RFUjtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5RVU9UQVRJT05fTUFSSzpcbiAgICAgICAgICAgIGNhc2UgJC5BUE9TVFJPUEhFOlxuICAgICAgICAgICAgY2FzZSAkLkxFU1NfVEhBTl9TSUdOOlxuICAgICAgICAgICAgY2FzZSAkLkVRVUFMU19TSUdOOlxuICAgICAgICAgICAgY2FzZSAkLkdSQVZFX0FDQ0VOVDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIudW5leHBlY3RlZENoYXJhY3RlckluVW5xdW90ZWRBdHRyaWJ1dGVWYWx1ZSk7XG4gICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50QXR0ci52YWx1ZSArPSBTdHJpbmcuZnJvbUNvZGVQb2ludChjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuRU9GOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5lb2ZJblRhZyk7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdEVPRlRva2VuKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50QXR0ci52YWx1ZSArPSBTdHJpbmcuZnJvbUNvZGVQb2ludChjcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gQWZ0ZXIgYXR0cmlidXRlIHZhbHVlIChxdW90ZWQpIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVBZnRlckF0dHJpYnV0ZVZhbHVlUXVvdGVkKGNwKSB7XG4gICAgICAgIHN3aXRjaCAoY3ApIHtcbiAgICAgICAgICAgIGNhc2UgJC5TUEFDRTpcbiAgICAgICAgICAgIGNhc2UgJC5MSU5FX0ZFRUQ6XG4gICAgICAgICAgICBjYXNlICQuVEFCVUxBVElPTjpcbiAgICAgICAgICAgIGNhc2UgJC5GT1JNX0ZFRUQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9sZWF2ZUF0dHJWYWx1ZSgpO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5CRUZPUkVfQVRUUklCVVRFX05BTUU7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuU09MSURVUzoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2xlYXZlQXR0clZhbHVlKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLlNFTEZfQ0xPU0lOR19TVEFSVF9UQUc7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuR1JFQVRFUl9USEFOX1NJR046IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9sZWF2ZUF0dHJWYWx1ZSgpO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5EQVRBO1xuICAgICAgICAgICAgICAgIHRoaXMuZW1pdEN1cnJlbnRUYWdUb2tlbigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkVPRjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIuZW9mSW5UYWcpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRFT0ZUb2tlbigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIubWlzc2luZ1doaXRlc3BhY2VCZXR3ZWVuQXR0cmlidXRlcyk7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkJFRk9SRV9BVFRSSUJVVEVfTkFNRTtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUJlZm9yZUF0dHJpYnV0ZU5hbWUoY3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIFNlbGYtY2xvc2luZyBzdGFydCB0YWcgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZVNlbGZDbG9zaW5nU3RhcnRUYWcoY3ApIHtcbiAgICAgICAgc3dpdGNoIChjcCkge1xuICAgICAgICAgICAgY2FzZSAkLkdSRUFURVJfVEhBTl9TSUdOOiB7XG4gICAgICAgICAgICAgICAgY29uc3QgdG9rZW4gPSB0aGlzLmN1cnJlbnRUb2tlbjtcbiAgICAgICAgICAgICAgICB0b2tlbi5zZWxmQ2xvc2luZyA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkRBVEE7XG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0Q3VycmVudFRhZ1Rva2VuKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuRU9GOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5lb2ZJblRhZyk7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdEVPRlRva2VuKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi51bmV4cGVjdGVkU29saWR1c0luVGFnKTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQkVGT1JFX0FUVFJJQlVURV9OQU1FO1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQmVmb3JlQXR0cmlidXRlTmFtZShjcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gQm9ndXMgY29tbWVudCBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlQm9ndXNDb21tZW50KGNwKSB7XG4gICAgICAgIGNvbnN0IHRva2VuID0gdGhpcy5jdXJyZW50VG9rZW47XG4gICAgICAgIHN3aXRjaCAoY3ApIHtcbiAgICAgICAgICAgIGNhc2UgJC5HUkVBVEVSX1RIQU5fU0lHTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5EQVRBO1xuICAgICAgICAgICAgICAgIHRoaXMuZW1pdEN1cnJlbnRDb21tZW50KHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5FT0Y6IHtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRDdXJyZW50Q29tbWVudCh0b2tlbik7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdEVPRlRva2VuKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuTlVMTDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIudW5leHBlY3RlZE51bGxDaGFyYWN0ZXIpO1xuICAgICAgICAgICAgICAgIHRva2VuLmRhdGEgKz0gUkVQTEFDRU1FTlRfQ0hBUkFDVEVSO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIHRva2VuLmRhdGEgKz0gU3RyaW5nLmZyb21Db2RlUG9pbnQoY3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIE1hcmt1cCBkZWNsYXJhdGlvbiBvcGVuIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVNYXJrdXBEZWNsYXJhdGlvbk9wZW4oY3ApIHtcbiAgICAgICAgaWYgKHRoaXMuX2NvbnN1bWVTZXF1ZW5jZUlmTWF0Y2goJCQuREFTSF9EQVNILCB0cnVlKSkge1xuICAgICAgICAgICAgdGhpcy5fY3JlYXRlQ29tbWVudFRva2VuKCQkLkRBU0hfREFTSC5sZW5ndGggKyAxKTtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5DT01NRU5UX1NUQVJUO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKHRoaXMuX2NvbnN1bWVTZXF1ZW5jZUlmTWF0Y2goJCQuRE9DVFlQRSwgZmFsc2UpKSB7XG4gICAgICAgICAgICAvLyBOT1RFOiBEb2N0eXBlcyB0b2tlbnMgYXJlIGNyZWF0ZWQgd2l0aG91dCBmaXhlZCBvZmZzZXRzLiBXZSBrZWVwIHRyYWNrIG9mIHRoZSBtb21lbnQgYSBkb2N0eXBlICptaWdodCogc3RhcnQgaGVyZS5cbiAgICAgICAgICAgIHRoaXMuY3VycmVudExvY2F0aW9uID0gdGhpcy5nZXRDdXJyZW50TG9jYXRpb24oJCQuRE9DVFlQRS5sZW5ndGggKyAxKTtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5ET0NUWVBFO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKHRoaXMuX2NvbnN1bWVTZXF1ZW5jZUlmTWF0Y2goJCQuQ0RBVEFfU1RBUlQsIHRydWUpKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5pbkZvcmVpZ25Ob2RlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkNEQVRBX1NFQ1RJT047XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmNkYXRhSW5IdG1sQ29udGVudCk7XG4gICAgICAgICAgICAgICAgdGhpcy5fY3JlYXRlQ29tbWVudFRva2VuKCQkLkNEQVRBX1NUQVJULmxlbmd0aCArIDEpO1xuICAgICAgICAgICAgICAgIHRoaXMuY3VycmVudFRva2VuLmRhdGEgPSAnW0NEQVRBWyc7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkJPR1VTX0NPTU1FTlQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLy9OT1RFOiBTZXF1ZW5jZSBsb29rdXBzIGNhbiBiZSBhYnJ1cHRlZCBieSBoaWJlcm5hdGlvbi4gSW4gdGhhdCBjYXNlLCBsb29rdXBcbiAgICAgICAgLy9yZXN1bHRzIGFyZSBubyBsb25nZXIgdmFsaWQgYW5kIHdlIHdpbGwgbmVlZCB0byBzdGFydCBvdmVyLlxuICAgICAgICBlbHNlIGlmICghdGhpcy5fZW5zdXJlSGliZXJuYXRpb24oKSkge1xuICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5pbmNvcnJlY3RseU9wZW5lZENvbW1lbnQpO1xuICAgICAgICAgICAgdGhpcy5fY3JlYXRlQ29tbWVudFRva2VuKDIpO1xuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkJPR1VTX0NPTU1FTlQ7XG4gICAgICAgICAgICB0aGlzLl9zdGF0ZUJvZ3VzQ29tbWVudChjcCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gQ29tbWVudCBzdGFydCBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlQ29tbWVudFN0YXJ0KGNwKSB7XG4gICAgICAgIHN3aXRjaCAoY3ApIHtcbiAgICAgICAgICAgIGNhc2UgJC5IWVBIRU5fTUlOVVM6IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQ09NTUVOVF9TVEFSVF9EQVNIO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkdSRUFURVJfVEhBTl9TSUdOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5hYnJ1cHRDbG9zaW5nT2ZFbXB0eUNvbW1lbnQpO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5EQVRBO1xuICAgICAgICAgICAgICAgIGNvbnN0IHRva2VuID0gdGhpcy5jdXJyZW50VG9rZW47XG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0Q3VycmVudENvbW1lbnQodG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5DT01NRU5UO1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQ29tbWVudChjcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gQ29tbWVudCBzdGFydCBkYXNoIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVDb21tZW50U3RhcnREYXNoKGNwKSB7XG4gICAgICAgIGNvbnN0IHRva2VuID0gdGhpcy5jdXJyZW50VG9rZW47XG4gICAgICAgIHN3aXRjaCAoY3ApIHtcbiAgICAgICAgICAgIGNhc2UgJC5IWVBIRU5fTUlOVVM6IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQ09NTUVOVF9FTkQ7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuR1JFQVRFUl9USEFOX1NJR046IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmFicnVwdENsb3NpbmdPZkVtcHR5Q29tbWVudCk7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkRBVEE7XG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0Q3VycmVudENvbW1lbnQodG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkVPRjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIuZW9mSW5Db21tZW50KTtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRDdXJyZW50Q29tbWVudCh0b2tlbik7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdEVPRlRva2VuKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgdG9rZW4uZGF0YSArPSAnLSc7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkNPTU1FTlQ7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVDb21tZW50KGNwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBDb21tZW50IHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVDb21tZW50KGNwKSB7XG4gICAgICAgIGNvbnN0IHRva2VuID0gdGhpcy5jdXJyZW50VG9rZW47XG4gICAgICAgIHN3aXRjaCAoY3ApIHtcbiAgICAgICAgICAgIGNhc2UgJC5IWVBIRU5fTUlOVVM6IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQ09NTUVOVF9FTkRfREFTSDtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5MRVNTX1RIQU5fU0lHTjoge1xuICAgICAgICAgICAgICAgIHRva2VuLmRhdGEgKz0gJzwnO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5DT01NRU5UX0xFU1NfVEhBTl9TSUdOO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLk5VTEw6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLnVuZXhwZWN0ZWROdWxsQ2hhcmFjdGVyKTtcbiAgICAgICAgICAgICAgICB0b2tlbi5kYXRhICs9IFJFUExBQ0VNRU5UX0NIQVJBQ1RFUjtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5FT0Y6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmVvZkluQ29tbWVudCk7XG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0Q3VycmVudENvbW1lbnQodG9rZW4pO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRFT0ZUb2tlbigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIHRva2VuLmRhdGEgKz0gU3RyaW5nLmZyb21Db2RlUG9pbnQoY3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIENvbW1lbnQgbGVzcy10aGFuIHNpZ24gc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZUNvbW1lbnRMZXNzVGhhblNpZ24oY3ApIHtcbiAgICAgICAgY29uc3QgdG9rZW4gPSB0aGlzLmN1cnJlbnRUb2tlbjtcbiAgICAgICAgc3dpdGNoIChjcCkge1xuICAgICAgICAgICAgY2FzZSAkLkVYQ0xBTUFUSU9OX01BUks6IHtcbiAgICAgICAgICAgICAgICB0b2tlbi5kYXRhICs9ICchJztcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQ09NTUVOVF9MRVNTX1RIQU5fU0lHTl9CQU5HO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkxFU1NfVEhBTl9TSUdOOiB7XG4gICAgICAgICAgICAgICAgdG9rZW4uZGF0YSArPSAnPCc7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkNPTU1FTlQ7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVDb21tZW50KGNwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBDb21tZW50IGxlc3MtdGhhbiBzaWduIGJhbmcgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZUNvbW1lbnRMZXNzVGhhblNpZ25CYW5nKGNwKSB7XG4gICAgICAgIGlmIChjcCA9PT0gJC5IWVBIRU5fTUlOVVMpIHtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5DT01NRU5UX0xFU1NfVEhBTl9TSUdOX0JBTkdfREFTSDtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5DT01NRU5UO1xuICAgICAgICAgICAgdGhpcy5fc3RhdGVDb21tZW50KGNwKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBDb21tZW50IGxlc3MtdGhhbiBzaWduIGJhbmcgZGFzaCBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlQ29tbWVudExlc3NUaGFuU2lnbkJhbmdEYXNoKGNwKSB7XG4gICAgICAgIGlmIChjcCA9PT0gJC5IWVBIRU5fTUlOVVMpIHtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5DT01NRU5UX0xFU1NfVEhBTl9TSUdOX0JBTkdfREFTSF9EQVNIO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkNPTU1FTlRfRU5EX0RBU0g7XG4gICAgICAgICAgICB0aGlzLl9zdGF0ZUNvbW1lbnRFbmREYXNoKGNwKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBDb21tZW50IGxlc3MtdGhhbiBzaWduIGJhbmcgZGFzaCBkYXNoIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVDb21tZW50TGVzc1RoYW5TaWduQmFuZ0Rhc2hEYXNoKGNwKSB7XG4gICAgICAgIGlmIChjcCAhPT0gJC5HUkVBVEVSX1RIQU5fU0lHTiAmJiBjcCAhPT0gJC5FT0YpIHtcbiAgICAgICAgICAgIHRoaXMuX2VycihFUlIubmVzdGVkQ29tbWVudCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkNPTU1FTlRfRU5EO1xuICAgICAgICB0aGlzLl9zdGF0ZUNvbW1lbnRFbmQoY3ApO1xuICAgIH1cbiAgICAvLyBDb21tZW50IGVuZCBkYXNoIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVDb21tZW50RW5kRGFzaChjcCkge1xuICAgICAgICBjb25zdCB0b2tlbiA9IHRoaXMuY3VycmVudFRva2VuO1xuICAgICAgICBzd2l0Y2ggKGNwKSB7XG4gICAgICAgICAgICBjYXNlICQuSFlQSEVOX01JTlVTOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkNPTU1FTlRfRU5EO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkVPRjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIuZW9mSW5Db21tZW50KTtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRDdXJyZW50Q29tbWVudCh0b2tlbik7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdEVPRlRva2VuKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgdG9rZW4uZGF0YSArPSAnLSc7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkNPTU1FTlQ7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVDb21tZW50KGNwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBDb21tZW50IGVuZCBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlQ29tbWVudEVuZChjcCkge1xuICAgICAgICBjb25zdCB0b2tlbiA9IHRoaXMuY3VycmVudFRva2VuO1xuICAgICAgICBzd2l0Y2ggKGNwKSB7XG4gICAgICAgICAgICBjYXNlICQuR1JFQVRFUl9USEFOX1NJR046IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuREFUQTtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRDdXJyZW50Q29tbWVudCh0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuRVhDTEFNQVRJT05fTUFSSzoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5DT01NRU5UX0VORF9CQU5HO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkhZUEhFTl9NSU5VUzoge1xuICAgICAgICAgICAgICAgIHRva2VuLmRhdGEgKz0gJy0nO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkVPRjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIuZW9mSW5Db21tZW50KTtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRDdXJyZW50Q29tbWVudCh0b2tlbik7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdEVPRlRva2VuKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgdG9rZW4uZGF0YSArPSAnLS0nO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5DT01NRU5UO1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQ29tbWVudChjcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gQ29tbWVudCBlbmQgYmFuZyBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlQ29tbWVudEVuZEJhbmcoY3ApIHtcbiAgICAgICAgY29uc3QgdG9rZW4gPSB0aGlzLmN1cnJlbnRUb2tlbjtcbiAgICAgICAgc3dpdGNoIChjcCkge1xuICAgICAgICAgICAgY2FzZSAkLkhZUEhFTl9NSU5VUzoge1xuICAgICAgICAgICAgICAgIHRva2VuLmRhdGEgKz0gJy0tISc7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkNPTU1FTlRfRU5EX0RBU0g7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuR1JFQVRFUl9USEFOX1NJR046IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmluY29ycmVjdGx5Q2xvc2VkQ29tbWVudCk7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkRBVEE7XG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0Q3VycmVudENvbW1lbnQodG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkVPRjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIuZW9mSW5Db21tZW50KTtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRDdXJyZW50Q29tbWVudCh0b2tlbik7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdEVPRlRva2VuKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgdG9rZW4uZGF0YSArPSAnLS0hJztcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQ09NTUVOVDtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUNvbW1lbnQoY3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIERPQ1RZUEUgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZURvY3R5cGUoY3ApIHtcbiAgICAgICAgc3dpdGNoIChjcCkge1xuICAgICAgICAgICAgY2FzZSAkLlNQQUNFOlxuICAgICAgICAgICAgY2FzZSAkLkxJTkVfRkVFRDpcbiAgICAgICAgICAgIGNhc2UgJC5UQUJVTEFUSU9OOlxuICAgICAgICAgICAgY2FzZSAkLkZPUk1fRkVFRDoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5CRUZPUkVfRE9DVFlQRV9OQU1FO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkdSRUFURVJfVEhBTl9TSUdOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkJFRk9SRV9ET0NUWVBFX05BTUU7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVCZWZvcmVEb2N0eXBlTmFtZShjcCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuRU9GOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5lb2ZJbkRvY3R5cGUpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2NyZWF0ZURvY3R5cGVUb2tlbihudWxsKTtcbiAgICAgICAgICAgICAgICBjb25zdCB0b2tlbiA9IHRoaXMuY3VycmVudFRva2VuO1xuICAgICAgICAgICAgICAgIHRva2VuLmZvcmNlUXVpcmtzID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRDdXJyZW50RG9jdHlwZSh0b2tlbik7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdEVPRlRva2VuKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5taXNzaW5nV2hpdGVzcGFjZUJlZm9yZURvY3R5cGVOYW1lKTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQkVGT1JFX0RPQ1RZUEVfTkFNRTtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUJlZm9yZURvY3R5cGVOYW1lKGNwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBCZWZvcmUgRE9DVFlQRSBuYW1lIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVCZWZvcmVEb2N0eXBlTmFtZShjcCkge1xuICAgICAgICBpZiAoaXNBc2NpaVVwcGVyKGNwKSkge1xuICAgICAgICAgICAgdGhpcy5fY3JlYXRlRG9jdHlwZVRva2VuKFN0cmluZy5mcm9tQ2hhckNvZGUodG9Bc2NpaUxvd2VyKGNwKSkpO1xuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkRPQ1RZUEVfTkFNRTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlXG4gICAgICAgICAgICBzd2l0Y2ggKGNwKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAkLlNQQUNFOlxuICAgICAgICAgICAgICAgIGNhc2UgJC5MSU5FX0ZFRUQ6XG4gICAgICAgICAgICAgICAgY2FzZSAkLlRBQlVMQVRJT046XG4gICAgICAgICAgICAgICAgY2FzZSAkLkZPUk1fRkVFRDoge1xuICAgICAgICAgICAgICAgICAgICAvLyBJZ25vcmUgd2hpdGVzcGFjZVxuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2FzZSAkLk5VTEw6IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi51bmV4cGVjdGVkTnVsbENoYXJhY3Rlcik7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2NyZWF0ZURvY3R5cGVUb2tlbihSRVBMQUNFTUVOVF9DSEFSQUNURVIpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuRE9DVFlQRV9OQU1FO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2FzZSAkLkdSRUFURVJfVEhBTl9TSUdOOiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIubWlzc2luZ0RvY3R5cGVOYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fY3JlYXRlRG9jdHlwZVRva2VuKG51bGwpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB0b2tlbiA9IHRoaXMuY3VycmVudFRva2VuO1xuICAgICAgICAgICAgICAgICAgICB0b2tlbi5mb3JjZVF1aXJrcyA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZW1pdEN1cnJlbnREb2N0eXBlKHRva2VuKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkRBVEE7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjYXNlICQuRU9GOiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIuZW9mSW5Eb2N0eXBlKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fY3JlYXRlRG9jdHlwZVRva2VuKG51bGwpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB0b2tlbiA9IHRoaXMuY3VycmVudFRva2VuO1xuICAgICAgICAgICAgICAgICAgICB0b2tlbi5mb3JjZVF1aXJrcyA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZW1pdEN1cnJlbnREb2N0eXBlKHRva2VuKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZW1pdEVPRlRva2VuKCk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2NyZWF0ZURvY3R5cGVUb2tlbihTdHJpbmcuZnJvbUNvZGVQb2ludChjcCkpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuRE9DVFlQRV9OQU1FO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICB9XG4gICAgLy8gRE9DVFlQRSBuYW1lIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVEb2N0eXBlTmFtZShjcCkge1xuICAgICAgICBjb25zdCB0b2tlbiA9IHRoaXMuY3VycmVudFRva2VuO1xuICAgICAgICBzd2l0Y2ggKGNwKSB7XG4gICAgICAgICAgICBjYXNlICQuU1BBQ0U6XG4gICAgICAgICAgICBjYXNlICQuTElORV9GRUVEOlxuICAgICAgICAgICAgY2FzZSAkLlRBQlVMQVRJT046XG4gICAgICAgICAgICBjYXNlICQuRk9STV9GRUVEOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkFGVEVSX0RPQ1RZUEVfTkFNRTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5HUkVBVEVSX1RIQU5fU0lHTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5EQVRBO1xuICAgICAgICAgICAgICAgIHRoaXMuZW1pdEN1cnJlbnREb2N0eXBlKHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5OVUxMOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi51bmV4cGVjdGVkTnVsbENoYXJhY3Rlcik7XG4gICAgICAgICAgICAgICAgdG9rZW4ubmFtZSArPSBSRVBMQUNFTUVOVF9DSEFSQUNURVI7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuRU9GOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5lb2ZJbkRvY3R5cGUpO1xuICAgICAgICAgICAgICAgIHRva2VuLmZvcmNlUXVpcmtzID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRDdXJyZW50RG9jdHlwZSh0b2tlbik7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdEVPRlRva2VuKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgdG9rZW4ubmFtZSArPSBTdHJpbmcuZnJvbUNvZGVQb2ludChpc0FzY2lpVXBwZXIoY3ApID8gdG9Bc2NpaUxvd2VyKGNwKSA6IGNwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBBZnRlciBET0NUWVBFIG5hbWUgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZUFmdGVyRG9jdHlwZU5hbWUoY3ApIHtcbiAgICAgICAgY29uc3QgdG9rZW4gPSB0aGlzLmN1cnJlbnRUb2tlbjtcbiAgICAgICAgc3dpdGNoIChjcCkge1xuICAgICAgICAgICAgY2FzZSAkLlNQQUNFOlxuICAgICAgICAgICAgY2FzZSAkLkxJTkVfRkVFRDpcbiAgICAgICAgICAgIGNhc2UgJC5UQUJVTEFUSU9OOlxuICAgICAgICAgICAgY2FzZSAkLkZPUk1fRkVFRDoge1xuICAgICAgICAgICAgICAgIC8vIElnbm9yZSB3aGl0ZXNwYWNlXG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuR1JFQVRFUl9USEFOX1NJR046IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuREFUQTtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRDdXJyZW50RG9jdHlwZSh0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuRU9GOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5lb2ZJbkRvY3R5cGUpO1xuICAgICAgICAgICAgICAgIHRva2VuLmZvcmNlUXVpcmtzID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRDdXJyZW50RG9jdHlwZSh0b2tlbik7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdEVPRlRva2VuKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuX2NvbnN1bWVTZXF1ZW5jZUlmTWF0Y2goJCQuUFVCTElDLCBmYWxzZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkFGVEVSX0RPQ1RZUEVfUFVCTElDX0tFWVdPUkQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKHRoaXMuX2NvbnN1bWVTZXF1ZW5jZUlmTWF0Y2goJCQuU1lTVEVNLCBmYWxzZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkFGVEVSX0RPQ1RZUEVfU1lTVEVNX0tFWVdPUkQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC8vTk9URTogc2VxdWVuY2UgbG9va3VwIGNhbiBiZSBhYnJ1cHRlZCBieSBoaWJlcm5hdGlvbi4gSW4gdGhhdCBjYXNlIGxvb2t1cFxuICAgICAgICAgICAgICAgIC8vcmVzdWx0cyBhcmUgbm8gbG9uZ2VyIHZhbGlkIGFuZCB3ZSB3aWxsIG5lZWQgdG8gc3RhcnQgb3Zlci5cbiAgICAgICAgICAgICAgICBlbHNlIGlmICghdGhpcy5fZW5zdXJlSGliZXJuYXRpb24oKSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmludmFsaWRDaGFyYWN0ZXJTZXF1ZW5jZUFmdGVyRG9jdHlwZU5hbWUpO1xuICAgICAgICAgICAgICAgICAgICB0b2tlbi5mb3JjZVF1aXJrcyA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5CT0dVU19ET0NUWVBFO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUJvZ3VzRG9jdHlwZShjcCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIEFmdGVyIERPQ1RZUEUgcHVibGljIGtleXdvcmQgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZUFmdGVyRG9jdHlwZVB1YmxpY0tleXdvcmQoY3ApIHtcbiAgICAgICAgY29uc3QgdG9rZW4gPSB0aGlzLmN1cnJlbnRUb2tlbjtcbiAgICAgICAgc3dpdGNoIChjcCkge1xuICAgICAgICAgICAgY2FzZSAkLlNQQUNFOlxuICAgICAgICAgICAgY2FzZSAkLkxJTkVfRkVFRDpcbiAgICAgICAgICAgIGNhc2UgJC5UQUJVTEFUSU9OOlxuICAgICAgICAgICAgY2FzZSAkLkZPUk1fRkVFRDoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5CRUZPUkVfRE9DVFlQRV9QVUJMSUNfSURFTlRJRklFUjtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5RVU9UQVRJT05fTUFSSzoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIubWlzc2luZ1doaXRlc3BhY2VBZnRlckRvY3R5cGVQdWJsaWNLZXl3b3JkKTtcbiAgICAgICAgICAgICAgICB0b2tlbi5wdWJsaWNJZCA9ICcnO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5ET0NUWVBFX1BVQkxJQ19JREVOVElGSUVSX0RPVUJMRV9RVU9URUQ7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuQVBPU1RST1BIRToge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIubWlzc2luZ1doaXRlc3BhY2VBZnRlckRvY3R5cGVQdWJsaWNLZXl3b3JkKTtcbiAgICAgICAgICAgICAgICB0b2tlbi5wdWJsaWNJZCA9ICcnO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5ET0NUWVBFX1BVQkxJQ19JREVOVElGSUVSX1NJTkdMRV9RVU9URUQ7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuR1JFQVRFUl9USEFOX1NJR046IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLm1pc3NpbmdEb2N0eXBlUHVibGljSWRlbnRpZmllcik7XG4gICAgICAgICAgICAgICAgdG9rZW4uZm9yY2VRdWlya3MgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5EQVRBO1xuICAgICAgICAgICAgICAgIHRoaXMuZW1pdEN1cnJlbnREb2N0eXBlKHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5FT0Y6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmVvZkluRG9jdHlwZSk7XG4gICAgICAgICAgICAgICAgdG9rZW4uZm9yY2VRdWlya3MgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRoaXMuZW1pdEN1cnJlbnREb2N0eXBlKHRva2VuKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0RU9GVG9rZW4oKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLm1pc3NpbmdRdW90ZUJlZm9yZURvY3R5cGVQdWJsaWNJZGVudGlmaWVyKTtcbiAgICAgICAgICAgICAgICB0b2tlbi5mb3JjZVF1aXJrcyA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkJPR1VTX0RPQ1RZUEU7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVCb2d1c0RvY3R5cGUoY3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIEJlZm9yZSBET0NUWVBFIHB1YmxpYyBpZGVudGlmaWVyIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVCZWZvcmVEb2N0eXBlUHVibGljSWRlbnRpZmllcihjcCkge1xuICAgICAgICBjb25zdCB0b2tlbiA9IHRoaXMuY3VycmVudFRva2VuO1xuICAgICAgICBzd2l0Y2ggKGNwKSB7XG4gICAgICAgICAgICBjYXNlICQuU1BBQ0U6XG4gICAgICAgICAgICBjYXNlICQuTElORV9GRUVEOlxuICAgICAgICAgICAgY2FzZSAkLlRBQlVMQVRJT046XG4gICAgICAgICAgICBjYXNlICQuRk9STV9GRUVEOiB7XG4gICAgICAgICAgICAgICAgLy8gSWdub3JlIHdoaXRlc3BhY2VcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5RVU9UQVRJT05fTUFSSzoge1xuICAgICAgICAgICAgICAgIHRva2VuLnB1YmxpY0lkID0gJyc7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkRPQ1RZUEVfUFVCTElDX0lERU5USUZJRVJfRE9VQkxFX1FVT1RFRDtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5BUE9TVFJPUEhFOiB7XG4gICAgICAgICAgICAgICAgdG9rZW4ucHVibGljSWQgPSAnJztcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuRE9DVFlQRV9QVUJMSUNfSURFTlRJRklFUl9TSU5HTEVfUVVPVEVEO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkdSRUFURVJfVEhBTl9TSUdOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5taXNzaW5nRG9jdHlwZVB1YmxpY0lkZW50aWZpZXIpO1xuICAgICAgICAgICAgICAgIHRva2VuLmZvcmNlUXVpcmtzID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuREFUQTtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRDdXJyZW50RG9jdHlwZSh0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuRU9GOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5lb2ZJbkRvY3R5cGUpO1xuICAgICAgICAgICAgICAgIHRva2VuLmZvcmNlUXVpcmtzID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRDdXJyZW50RG9jdHlwZSh0b2tlbik7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdEVPRlRva2VuKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5taXNzaW5nUXVvdGVCZWZvcmVEb2N0eXBlUHVibGljSWRlbnRpZmllcik7XG4gICAgICAgICAgICAgICAgdG9rZW4uZm9yY2VRdWlya3MgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5CT0dVU19ET0NUWVBFO1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlQm9ndXNEb2N0eXBlKGNwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBET0NUWVBFIHB1YmxpYyBpZGVudGlmaWVyIChkb3VibGUtcXVvdGVkKSBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlRG9jdHlwZVB1YmxpY0lkZW50aWZpZXJEb3VibGVRdW90ZWQoY3ApIHtcbiAgICAgICAgY29uc3QgdG9rZW4gPSB0aGlzLmN1cnJlbnRUb2tlbjtcbiAgICAgICAgc3dpdGNoIChjcCkge1xuICAgICAgICAgICAgY2FzZSAkLlFVT1RBVElPTl9NQVJLOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkFGVEVSX0RPQ1RZUEVfUFVCTElDX0lERU5USUZJRVI7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuTlVMTDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIudW5leHBlY3RlZE51bGxDaGFyYWN0ZXIpO1xuICAgICAgICAgICAgICAgIHRva2VuLnB1YmxpY0lkICs9IFJFUExBQ0VNRU5UX0NIQVJBQ1RFUjtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5HUkVBVEVSX1RIQU5fU0lHTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIuYWJydXB0RG9jdHlwZVB1YmxpY0lkZW50aWZpZXIpO1xuICAgICAgICAgICAgICAgIHRva2VuLmZvcmNlUXVpcmtzID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRDdXJyZW50RG9jdHlwZSh0b2tlbik7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkRBVEE7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuRU9GOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5lb2ZJbkRvY3R5cGUpO1xuICAgICAgICAgICAgICAgIHRva2VuLmZvcmNlUXVpcmtzID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRDdXJyZW50RG9jdHlwZSh0b2tlbik7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdEVPRlRva2VuKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgdG9rZW4ucHVibGljSWQgKz0gU3RyaW5nLmZyb21Db2RlUG9pbnQoY3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIERPQ1RZUEUgcHVibGljIGlkZW50aWZpZXIgKHNpbmdsZS1xdW90ZWQpIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVEb2N0eXBlUHVibGljSWRlbnRpZmllclNpbmdsZVF1b3RlZChjcCkge1xuICAgICAgICBjb25zdCB0b2tlbiA9IHRoaXMuY3VycmVudFRva2VuO1xuICAgICAgICBzd2l0Y2ggKGNwKSB7XG4gICAgICAgICAgICBjYXNlICQuQVBPU1RST1BIRToge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5BRlRFUl9ET0NUWVBFX1BVQkxJQ19JREVOVElGSUVSO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLk5VTEw6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLnVuZXhwZWN0ZWROdWxsQ2hhcmFjdGVyKTtcbiAgICAgICAgICAgICAgICB0b2tlbi5wdWJsaWNJZCArPSBSRVBMQUNFTUVOVF9DSEFSQUNURVI7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuR1JFQVRFUl9USEFOX1NJR046IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmFicnVwdERvY3R5cGVQdWJsaWNJZGVudGlmaWVyKTtcbiAgICAgICAgICAgICAgICB0b2tlbi5mb3JjZVF1aXJrcyA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0Q3VycmVudERvY3R5cGUodG9rZW4pO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5EQVRBO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkVPRjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIuZW9mSW5Eb2N0eXBlKTtcbiAgICAgICAgICAgICAgICB0b2tlbi5mb3JjZVF1aXJrcyA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0Q3VycmVudERvY3R5cGUodG9rZW4pO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRFT0ZUb2tlbigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIHRva2VuLnB1YmxpY0lkICs9IFN0cmluZy5mcm9tQ29kZVBvaW50KGNwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBBZnRlciBET0NUWVBFIHB1YmxpYyBpZGVudGlmaWVyIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVBZnRlckRvY3R5cGVQdWJsaWNJZGVudGlmaWVyKGNwKSB7XG4gICAgICAgIGNvbnN0IHRva2VuID0gdGhpcy5jdXJyZW50VG9rZW47XG4gICAgICAgIHN3aXRjaCAoY3ApIHtcbiAgICAgICAgICAgIGNhc2UgJC5TUEFDRTpcbiAgICAgICAgICAgIGNhc2UgJC5MSU5FX0ZFRUQ6XG4gICAgICAgICAgICBjYXNlICQuVEFCVUxBVElPTjpcbiAgICAgICAgICAgIGNhc2UgJC5GT1JNX0ZFRUQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQkVUV0VFTl9ET0NUWVBFX1BVQkxJQ19BTkRfU1lTVEVNX0lERU5USUZJRVJTO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkdSRUFURVJfVEhBTl9TSUdOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkRBVEE7XG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0Q3VycmVudERvY3R5cGUodG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLlFVT1RBVElPTl9NQVJLOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5taXNzaW5nV2hpdGVzcGFjZUJldHdlZW5Eb2N0eXBlUHVibGljQW5kU3lzdGVtSWRlbnRpZmllcnMpO1xuICAgICAgICAgICAgICAgIHRva2VuLnN5c3RlbUlkID0gJyc7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkRPQ1RZUEVfU1lTVEVNX0lERU5USUZJRVJfRE9VQkxFX1FVT1RFRDtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5BUE9TVFJPUEhFOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5taXNzaW5nV2hpdGVzcGFjZUJldHdlZW5Eb2N0eXBlUHVibGljQW5kU3lzdGVtSWRlbnRpZmllcnMpO1xuICAgICAgICAgICAgICAgIHRva2VuLnN5c3RlbUlkID0gJyc7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkRPQ1RZUEVfU1lTVEVNX0lERU5USUZJRVJfU0lOR0xFX1FVT1RFRDtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5FT0Y6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmVvZkluRG9jdHlwZSk7XG4gICAgICAgICAgICAgICAgdG9rZW4uZm9yY2VRdWlya3MgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRoaXMuZW1pdEN1cnJlbnREb2N0eXBlKHRva2VuKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0RU9GVG9rZW4oKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLm1pc3NpbmdRdW90ZUJlZm9yZURvY3R5cGVTeXN0ZW1JZGVudGlmaWVyKTtcbiAgICAgICAgICAgICAgICB0b2tlbi5mb3JjZVF1aXJrcyA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkJPR1VTX0RPQ1RZUEU7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVCb2d1c0RvY3R5cGUoY3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIEJldHdlZW4gRE9DVFlQRSBwdWJsaWMgYW5kIHN5c3RlbSBpZGVudGlmaWVycyBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlQmV0d2VlbkRvY3R5cGVQdWJsaWNBbmRTeXN0ZW1JZGVudGlmaWVycyhjcCkge1xuICAgICAgICBjb25zdCB0b2tlbiA9IHRoaXMuY3VycmVudFRva2VuO1xuICAgICAgICBzd2l0Y2ggKGNwKSB7XG4gICAgICAgICAgICBjYXNlICQuU1BBQ0U6XG4gICAgICAgICAgICBjYXNlICQuTElORV9GRUVEOlxuICAgICAgICAgICAgY2FzZSAkLlRBQlVMQVRJT046XG4gICAgICAgICAgICBjYXNlICQuRk9STV9GRUVEOiB7XG4gICAgICAgICAgICAgICAgLy8gSWdub3JlIHdoaXRlc3BhY2VcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5HUkVBVEVSX1RIQU5fU0lHTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuZW1pdEN1cnJlbnREb2N0eXBlKHRva2VuKTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuREFUQTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5RVU9UQVRJT05fTUFSSzoge1xuICAgICAgICAgICAgICAgIHRva2VuLnN5c3RlbUlkID0gJyc7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkRPQ1RZUEVfU1lTVEVNX0lERU5USUZJRVJfRE9VQkxFX1FVT1RFRDtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5BUE9TVFJPUEhFOiB7XG4gICAgICAgICAgICAgICAgdG9rZW4uc3lzdGVtSWQgPSAnJztcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuRE9DVFlQRV9TWVNURU1fSURFTlRJRklFUl9TSU5HTEVfUVVPVEVEO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkVPRjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIuZW9mSW5Eb2N0eXBlKTtcbiAgICAgICAgICAgICAgICB0b2tlbi5mb3JjZVF1aXJrcyA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0Q3VycmVudERvY3R5cGUodG9rZW4pO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRFT0ZUb2tlbigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIubWlzc2luZ1F1b3RlQmVmb3JlRG9jdHlwZVN5c3RlbUlkZW50aWZpZXIpO1xuICAgICAgICAgICAgICAgIHRva2VuLmZvcmNlUXVpcmtzID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQk9HVVNfRE9DVFlQRTtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUJvZ3VzRG9jdHlwZShjcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gQWZ0ZXIgRE9DVFlQRSBzeXN0ZW0ga2V5d29yZCBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlQWZ0ZXJEb2N0eXBlU3lzdGVtS2V5d29yZChjcCkge1xuICAgICAgICBjb25zdCB0b2tlbiA9IHRoaXMuY3VycmVudFRva2VuO1xuICAgICAgICBzd2l0Y2ggKGNwKSB7XG4gICAgICAgICAgICBjYXNlICQuU1BBQ0U6XG4gICAgICAgICAgICBjYXNlICQuTElORV9GRUVEOlxuICAgICAgICAgICAgY2FzZSAkLlRBQlVMQVRJT046XG4gICAgICAgICAgICBjYXNlICQuRk9STV9GRUVEOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkJFRk9SRV9ET0NUWVBFX1NZU1RFTV9JREVOVElGSUVSO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLlFVT1RBVElPTl9NQVJLOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5taXNzaW5nV2hpdGVzcGFjZUFmdGVyRG9jdHlwZVN5c3RlbUtleXdvcmQpO1xuICAgICAgICAgICAgICAgIHRva2VuLnN5c3RlbUlkID0gJyc7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkRPQ1RZUEVfU1lTVEVNX0lERU5USUZJRVJfRE9VQkxFX1FVT1RFRDtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5BUE9TVFJPUEhFOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5taXNzaW5nV2hpdGVzcGFjZUFmdGVyRG9jdHlwZVN5c3RlbUtleXdvcmQpO1xuICAgICAgICAgICAgICAgIHRva2VuLnN5c3RlbUlkID0gJyc7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkRPQ1RZUEVfU1lTVEVNX0lERU5USUZJRVJfU0lOR0xFX1FVT1RFRDtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5HUkVBVEVSX1RIQU5fU0lHTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIubWlzc2luZ0RvY3R5cGVTeXN0ZW1JZGVudGlmaWVyKTtcbiAgICAgICAgICAgICAgICB0b2tlbi5mb3JjZVF1aXJrcyA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkRBVEE7XG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0Q3VycmVudERvY3R5cGUodG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkVPRjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIuZW9mSW5Eb2N0eXBlKTtcbiAgICAgICAgICAgICAgICB0b2tlbi5mb3JjZVF1aXJrcyA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0Q3VycmVudERvY3R5cGUodG9rZW4pO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRFT0ZUb2tlbigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIubWlzc2luZ1F1b3RlQmVmb3JlRG9jdHlwZVN5c3RlbUlkZW50aWZpZXIpO1xuICAgICAgICAgICAgICAgIHRva2VuLmZvcmNlUXVpcmtzID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQk9HVVNfRE9DVFlQRTtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZUJvZ3VzRG9jdHlwZShjcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gQmVmb3JlIERPQ1RZUEUgc3lzdGVtIGlkZW50aWZpZXIgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZUJlZm9yZURvY3R5cGVTeXN0ZW1JZGVudGlmaWVyKGNwKSB7XG4gICAgICAgIGNvbnN0IHRva2VuID0gdGhpcy5jdXJyZW50VG9rZW47XG4gICAgICAgIHN3aXRjaCAoY3ApIHtcbiAgICAgICAgICAgIGNhc2UgJC5TUEFDRTpcbiAgICAgICAgICAgIGNhc2UgJC5MSU5FX0ZFRUQ6XG4gICAgICAgICAgICBjYXNlICQuVEFCVUxBVElPTjpcbiAgICAgICAgICAgIGNhc2UgJC5GT1JNX0ZFRUQ6IHtcbiAgICAgICAgICAgICAgICAvLyBJZ25vcmUgd2hpdGVzcGFjZVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLlFVT1RBVElPTl9NQVJLOiB7XG4gICAgICAgICAgICAgICAgdG9rZW4uc3lzdGVtSWQgPSAnJztcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuRE9DVFlQRV9TWVNURU1fSURFTlRJRklFUl9ET1VCTEVfUVVPVEVEO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkFQT1NUUk9QSEU6IHtcbiAgICAgICAgICAgICAgICB0b2tlbi5zeXN0ZW1JZCA9ICcnO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5ET0NUWVBFX1NZU1RFTV9JREVOVElGSUVSX1NJTkdMRV9RVU9URUQ7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuR1JFQVRFUl9USEFOX1NJR046IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLm1pc3NpbmdEb2N0eXBlU3lzdGVtSWRlbnRpZmllcik7XG4gICAgICAgICAgICAgICAgdG9rZW4uZm9yY2VRdWlya3MgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5EQVRBO1xuICAgICAgICAgICAgICAgIHRoaXMuZW1pdEN1cnJlbnREb2N0eXBlKHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5FT0Y6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmVvZkluRG9jdHlwZSk7XG4gICAgICAgICAgICAgICAgdG9rZW4uZm9yY2VRdWlya3MgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRoaXMuZW1pdEN1cnJlbnREb2N0eXBlKHRva2VuKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0RU9GVG9rZW4oKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLm1pc3NpbmdRdW90ZUJlZm9yZURvY3R5cGVTeXN0ZW1JZGVudGlmaWVyKTtcbiAgICAgICAgICAgICAgICB0b2tlbi5mb3JjZVF1aXJrcyA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkJPR1VTX0RPQ1RZUEU7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVCb2d1c0RvY3R5cGUoY3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIERPQ1RZUEUgc3lzdGVtIGlkZW50aWZpZXIgKGRvdWJsZS1xdW90ZWQpIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVEb2N0eXBlU3lzdGVtSWRlbnRpZmllckRvdWJsZVF1b3RlZChjcCkge1xuICAgICAgICBjb25zdCB0b2tlbiA9IHRoaXMuY3VycmVudFRva2VuO1xuICAgICAgICBzd2l0Y2ggKGNwKSB7XG4gICAgICAgICAgICBjYXNlICQuUVVPVEFUSU9OX01BUks6IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQUZURVJfRE9DVFlQRV9TWVNURU1fSURFTlRJRklFUjtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5OVUxMOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi51bmV4cGVjdGVkTnVsbENoYXJhY3Rlcik7XG4gICAgICAgICAgICAgICAgdG9rZW4uc3lzdGVtSWQgKz0gUkVQTEFDRU1FTlRfQ0hBUkFDVEVSO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkdSRUFURVJfVEhBTl9TSUdOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5hYnJ1cHREb2N0eXBlU3lzdGVtSWRlbnRpZmllcik7XG4gICAgICAgICAgICAgICAgdG9rZW4uZm9yY2VRdWlya3MgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRoaXMuZW1pdEN1cnJlbnREb2N0eXBlKHRva2VuKTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuREFUQTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5FT0Y6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmVvZkluRG9jdHlwZSk7XG4gICAgICAgICAgICAgICAgdG9rZW4uZm9yY2VRdWlya3MgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRoaXMuZW1pdEN1cnJlbnREb2N0eXBlKHRva2VuKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0RU9GVG9rZW4oKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICB0b2tlbi5zeXN0ZW1JZCArPSBTdHJpbmcuZnJvbUNvZGVQb2ludChjcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gRE9DVFlQRSBzeXN0ZW0gaWRlbnRpZmllciAoc2luZ2xlLXF1b3RlZCkgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZURvY3R5cGVTeXN0ZW1JZGVudGlmaWVyU2luZ2xlUXVvdGVkKGNwKSB7XG4gICAgICAgIGNvbnN0IHRva2VuID0gdGhpcy5jdXJyZW50VG9rZW47XG4gICAgICAgIHN3aXRjaCAoY3ApIHtcbiAgICAgICAgICAgIGNhc2UgJC5BUE9TVFJPUEhFOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkFGVEVSX0RPQ1RZUEVfU1lTVEVNX0lERU5USUZJRVI7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuTlVMTDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIudW5leHBlY3RlZE51bGxDaGFyYWN0ZXIpO1xuICAgICAgICAgICAgICAgIHRva2VuLnN5c3RlbUlkICs9IFJFUExBQ0VNRU5UX0NIQVJBQ1RFUjtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5HUkVBVEVSX1RIQU5fU0lHTjoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIuYWJydXB0RG9jdHlwZVN5c3RlbUlkZW50aWZpZXIpO1xuICAgICAgICAgICAgICAgIHRva2VuLmZvcmNlUXVpcmtzID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRDdXJyZW50RG9jdHlwZSh0b2tlbik7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkRBVEE7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuRU9GOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5lb2ZJbkRvY3R5cGUpO1xuICAgICAgICAgICAgICAgIHRva2VuLmZvcmNlUXVpcmtzID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRDdXJyZW50RG9jdHlwZSh0b2tlbik7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdEVPRlRva2VuKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgdG9rZW4uc3lzdGVtSWQgKz0gU3RyaW5nLmZyb21Db2RlUG9pbnQoY3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIEFmdGVyIERPQ1RZUEUgc3lzdGVtIGlkZW50aWZpZXIgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZUFmdGVyRG9jdHlwZVN5c3RlbUlkZW50aWZpZXIoY3ApIHtcbiAgICAgICAgY29uc3QgdG9rZW4gPSB0aGlzLmN1cnJlbnRUb2tlbjtcbiAgICAgICAgc3dpdGNoIChjcCkge1xuICAgICAgICAgICAgY2FzZSAkLlNQQUNFOlxuICAgICAgICAgICAgY2FzZSAkLkxJTkVfRkVFRDpcbiAgICAgICAgICAgIGNhc2UgJC5UQUJVTEFUSU9OOlxuICAgICAgICAgICAgY2FzZSAkLkZPUk1fRkVFRDoge1xuICAgICAgICAgICAgICAgIC8vIElnbm9yZSB3aGl0ZXNwYWNlXG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuR1JFQVRFUl9USEFOX1NJR046IHtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRDdXJyZW50RG9jdHlwZSh0b2tlbik7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkRBVEE7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuRU9GOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5lb2ZJbkRvY3R5cGUpO1xuICAgICAgICAgICAgICAgIHRva2VuLmZvcmNlUXVpcmtzID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRDdXJyZW50RG9jdHlwZSh0b2tlbik7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdEVPRlRva2VuKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi51bmV4cGVjdGVkQ2hhcmFjdGVyQWZ0ZXJEb2N0eXBlU3lzdGVtSWRlbnRpZmllcik7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkJPR1VTX0RPQ1RZUEU7XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVCb2d1c0RvY3R5cGUoY3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIEJvZ3VzIERPQ1RZUEUgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZUJvZ3VzRG9jdHlwZShjcCkge1xuICAgICAgICBjb25zdCB0b2tlbiA9IHRoaXMuY3VycmVudFRva2VuO1xuICAgICAgICBzd2l0Y2ggKGNwKSB7XG4gICAgICAgICAgICBjYXNlICQuR1JFQVRFUl9USEFOX1NJR046IHtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRDdXJyZW50RG9jdHlwZSh0b2tlbik7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkRBVEE7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuTlVMTDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VycihFUlIudW5leHBlY3RlZE51bGxDaGFyYWN0ZXIpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLkVPRjoge1xuICAgICAgICAgICAgICAgIHRoaXMuZW1pdEN1cnJlbnREb2N0eXBlKHRva2VuKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0RU9GVG9rZW4oKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAvLyBEbyBub3RoaW5nXG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gQ0RBVEEgc2VjdGlvbiBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlQ2RhdGFTZWN0aW9uKGNwKSB7XG4gICAgICAgIHN3aXRjaCAoY3ApIHtcbiAgICAgICAgICAgIGNhc2UgJC5SSUdIVF9TUVVBUkVfQlJBQ0tFVDoge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5DREFUQV9TRUNUSU9OX0JSQUNLRVQ7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuRU9GOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5lb2ZJbkNkYXRhKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0RU9GVG9rZW4oKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0Q29kZVBvaW50KGNwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBDREFUQSBzZWN0aW9uIGJyYWNrZXQgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZUNkYXRhU2VjdGlvbkJyYWNrZXQoY3ApIHtcbiAgICAgICAgaWYgKGNwID09PSAkLlJJR0hUX1NRVUFSRV9CUkFDS0VUKSB7XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQ0RBVEFfU0VDVElPTl9FTkQ7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9lbWl0Q2hhcnMoJ10nKTtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5DREFUQV9TRUNUSU9OO1xuICAgICAgICAgICAgdGhpcy5fc3RhdGVDZGF0YVNlY3Rpb24oY3ApO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vIENEQVRBIHNlY3Rpb24gZW5kIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVDZGF0YVNlY3Rpb25FbmQoY3ApIHtcbiAgICAgICAgc3dpdGNoIChjcCkge1xuICAgICAgICAgICAgY2FzZSAkLkdSRUFURVJfVEhBTl9TSUdOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkRBVEE7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICQuUklHSFRfU1FVQVJFX0JSQUNLRVQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0Q2hhcnMoJ10nKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0Q2hhcnMoJ11dJyk7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLkNEQVRBX1NFQ1RJT047XG4gICAgICAgICAgICAgICAgdGhpcy5fc3RhdGVDZGF0YVNlY3Rpb24oY3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIENoYXJhY3RlciByZWZlcmVuY2Ugc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZUNoYXJhY3RlclJlZmVyZW5jZShjcCkge1xuICAgICAgICBpZiAoY3AgPT09ICQuTlVNQkVSX1NJR04pIHtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5OVU1FUklDX0NIQVJBQ1RFUl9SRUZFUkVOQ0U7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoaXNBc2NpaUFscGhhTnVtZXJpYyhjcCkpIHtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5OQU1FRF9DSEFSQUNURVJfUkVGRVJFTkNFO1xuICAgICAgICAgICAgdGhpcy5fc3RhdGVOYW1lZENoYXJhY3RlclJlZmVyZW5jZShjcCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9mbHVzaENvZGVQb2ludENvbnN1bWVkQXNDaGFyYWN0ZXJSZWZlcmVuY2UoJC5BTVBFUlNBTkQpO1xuICAgICAgICAgICAgdGhpcy5fcmVjb25zdW1lSW5TdGF0ZSh0aGlzLnJldHVyblN0YXRlLCBjcCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gTmFtZWQgY2hhcmFjdGVyIHJlZmVyZW5jZSBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlTmFtZWRDaGFyYWN0ZXJSZWZlcmVuY2UoY3ApIHtcbiAgICAgICAgY29uc3QgbWF0Y2hSZXN1bHQgPSB0aGlzLl9tYXRjaE5hbWVkQ2hhcmFjdGVyUmVmZXJlbmNlKGNwKTtcbiAgICAgICAgLy9OT1RFOiBNYXRjaGluZyBjYW4gYmUgYWJydXB0ZWQgYnkgaGliZXJuYXRpb24uIEluIHRoYXQgY2FzZSwgbWF0Y2hcbiAgICAgICAgLy9yZXN1bHRzIGFyZSBubyBsb25nZXIgdmFsaWQgYW5kIHdlIHdpbGwgbmVlZCB0byBzdGFydCBvdmVyLlxuICAgICAgICBpZiAodGhpcy5fZW5zdXJlSGliZXJuYXRpb24oKSkge1xuICAgICAgICAgICAgLy8gU3RheSBpbiB0aGUgc3RhdGUsIHRyeSBhZ2Fpbi5cbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChtYXRjaFJlc3VsdCkge1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBtYXRjaFJlc3VsdC5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgIHRoaXMuX2ZsdXNoQ29kZVBvaW50Q29uc3VtZWRBc0NoYXJhY3RlclJlZmVyZW5jZShtYXRjaFJlc3VsdFtpXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gdGhpcy5yZXR1cm5TdGF0ZTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX2ZsdXNoQ29kZVBvaW50Q29uc3VtZWRBc0NoYXJhY3RlclJlZmVyZW5jZSgkLkFNUEVSU0FORCk7XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gU3RhdGUuQU1CSUdVT1VTX0FNUEVSU0FORDtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBBbWJpZ3VvcyBhbXBlcnNhbmQgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZUFtYmlndW91c0FtcGVyc2FuZChjcCkge1xuICAgICAgICBpZiAoaXNBc2NpaUFscGhhTnVtZXJpYyhjcCkpIHtcbiAgICAgICAgICAgIHRoaXMuX2ZsdXNoQ29kZVBvaW50Q29uc3VtZWRBc0NoYXJhY3RlclJlZmVyZW5jZShjcCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBpZiAoY3AgPT09ICQuU0VNSUNPTE9OKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi51bmtub3duTmFtZWRDaGFyYWN0ZXJSZWZlcmVuY2UpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5fcmVjb25zdW1lSW5TdGF0ZSh0aGlzLnJldHVyblN0YXRlLCBjcCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gTnVtZXJpYyBjaGFyYWN0ZXIgcmVmZXJlbmNlIHN0YXRlXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBfc3RhdGVOdW1lcmljQ2hhcmFjdGVyUmVmZXJlbmNlKGNwKSB7XG4gICAgICAgIHRoaXMuY2hhclJlZkNvZGUgPSAwO1xuICAgICAgICBpZiAoY3AgPT09ICQuTEFUSU5fU01BTExfWCB8fCBjcCA9PT0gJC5MQVRJTl9DQVBJVEFMX1gpIHtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5IRVhBREVNSUNBTF9DSEFSQUNURVJfUkVGRVJFTkNFX1NUQVJUO1xuICAgICAgICB9XG4gICAgICAgIC8vIElubGluZWQgZGVjaW1hbCBjaGFyYWN0ZXIgcmVmZXJlbmNlIHN0YXJ0IHN0YXRlXG4gICAgICAgIGVsc2UgaWYgKGlzQXNjaWlEaWdpdChjcCkpIHtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5ERUNJTUFMX0NIQVJBQ1RFUl9SRUZFUkVOQ0U7XG4gICAgICAgICAgICB0aGlzLl9zdGF0ZURlY2ltYWxDaGFyYWN0ZXJSZWZlcmVuY2UoY3ApO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5hYnNlbmNlT2ZEaWdpdHNJbk51bWVyaWNDaGFyYWN0ZXJSZWZlcmVuY2UpO1xuICAgICAgICAgICAgdGhpcy5fZmx1c2hDb2RlUG9pbnRDb25zdW1lZEFzQ2hhcmFjdGVyUmVmZXJlbmNlKCQuQU1QRVJTQU5EKTtcbiAgICAgICAgICAgIHRoaXMuX2ZsdXNoQ29kZVBvaW50Q29uc3VtZWRBc0NoYXJhY3RlclJlZmVyZW5jZSgkLk5VTUJFUl9TSUdOKTtcbiAgICAgICAgICAgIHRoaXMuX3JlY29uc3VtZUluU3RhdGUodGhpcy5yZXR1cm5TdGF0ZSwgY3ApO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vIEhleGFkZW1pY2FsIGNoYXJhY3RlciByZWZlcmVuY2Ugc3RhcnQgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZUhleGFkZW1pY2FsQ2hhcmFjdGVyUmVmZXJlbmNlU3RhcnQoY3ApIHtcbiAgICAgICAgaWYgKGlzQXNjaWlIZXhEaWdpdChjcCkpIHtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5IRVhBREVNSUNBTF9DSEFSQUNURVJfUkVGRVJFTkNFO1xuICAgICAgICAgICAgdGhpcy5fc3RhdGVIZXhhZGVtaWNhbENoYXJhY3RlclJlZmVyZW5jZShjcCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmFic2VuY2VPZkRpZ2l0c0luTnVtZXJpY0NoYXJhY3RlclJlZmVyZW5jZSk7XG4gICAgICAgICAgICB0aGlzLl9mbHVzaENvZGVQb2ludENvbnN1bWVkQXNDaGFyYWN0ZXJSZWZlcmVuY2UoJC5BTVBFUlNBTkQpO1xuICAgICAgICAgICAgdGhpcy5fZmx1c2hDb2RlUG9pbnRDb25zdW1lZEFzQ2hhcmFjdGVyUmVmZXJlbmNlKCQuTlVNQkVSX1NJR04pO1xuICAgICAgICAgICAgdGhpcy5fdW5jb25zdW1lKDIpO1xuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IHRoaXMucmV0dXJuU3RhdGU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gSGV4YWRlbWljYWwgY2hhcmFjdGVyIHJlZmVyZW5jZSBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlSGV4YWRlbWljYWxDaGFyYWN0ZXJSZWZlcmVuY2UoY3ApIHtcbiAgICAgICAgaWYgKGlzQXNjaWlVcHBlckhleERpZ2l0KGNwKSkge1xuICAgICAgICAgICAgdGhpcy5jaGFyUmVmQ29kZSA9IHRoaXMuY2hhclJlZkNvZGUgKiAxNiArIGNwIC0gMHgzNztcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChpc0FzY2lpTG93ZXJIZXhEaWdpdChjcCkpIHtcbiAgICAgICAgICAgIHRoaXMuY2hhclJlZkNvZGUgPSB0aGlzLmNoYXJSZWZDb2RlICogMTYgKyBjcCAtIDB4NTc7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoaXNBc2NpaURpZ2l0KGNwKSkge1xuICAgICAgICAgICAgdGhpcy5jaGFyUmVmQ29kZSA9IHRoaXMuY2hhclJlZkNvZGUgKiAxNiArIGNwIC0gMHgzMDtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChjcCA9PT0gJC5TRU1JQ09MT04pIHtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5OVU1FUklDX0NIQVJBQ1RFUl9SRUZFUkVOQ0VfRU5EO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5taXNzaW5nU2VtaWNvbG9uQWZ0ZXJDaGFyYWN0ZXJSZWZlcmVuY2UpO1xuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLk5VTUVSSUNfQ0hBUkFDVEVSX1JFRkVSRU5DRV9FTkQ7XG4gICAgICAgICAgICB0aGlzLl9zdGF0ZU51bWVyaWNDaGFyYWN0ZXJSZWZlcmVuY2VFbmQoY3ApO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vIERlY2ltYWwgY2hhcmFjdGVyIHJlZmVyZW5jZSBzdGF0ZVxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgX3N0YXRlRGVjaW1hbENoYXJhY3RlclJlZmVyZW5jZShjcCkge1xuICAgICAgICBpZiAoaXNBc2NpaURpZ2l0KGNwKSkge1xuICAgICAgICAgICAgdGhpcy5jaGFyUmVmQ29kZSA9IHRoaXMuY2hhclJlZkNvZGUgKiAxMCArIGNwIC0gMHgzMDtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChjcCA9PT0gJC5TRU1JQ09MT04pIHtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTdGF0ZS5OVU1FUklDX0NIQVJBQ1RFUl9SRUZFUkVOQ0VfRU5EO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5taXNzaW5nU2VtaWNvbG9uQWZ0ZXJDaGFyYWN0ZXJSZWZlcmVuY2UpO1xuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFN0YXRlLk5VTUVSSUNfQ0hBUkFDVEVSX1JFRkVSRU5DRV9FTkQ7XG4gICAgICAgICAgICB0aGlzLl9zdGF0ZU51bWVyaWNDaGFyYWN0ZXJSZWZlcmVuY2VFbmQoY3ApO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vIE51bWVyaWMgY2hhcmFjdGVyIHJlZmVyZW5jZSBlbmQgc3RhdGVcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIF9zdGF0ZU51bWVyaWNDaGFyYWN0ZXJSZWZlcmVuY2VFbmQoY3ApIHtcbiAgICAgICAgaWYgKHRoaXMuY2hhclJlZkNvZGUgPT09ICQuTlVMTCkge1xuICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5udWxsQ2hhcmFjdGVyUmVmZXJlbmNlKTtcbiAgICAgICAgICAgIHRoaXMuY2hhclJlZkNvZGUgPSAkLlJFUExBQ0VNRU5UX0NIQVJBQ1RFUjtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmICh0aGlzLmNoYXJSZWZDb2RlID4gMTExNDExMSkge1xuICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5jaGFyYWN0ZXJSZWZlcmVuY2VPdXRzaWRlVW5pY29kZVJhbmdlKTtcbiAgICAgICAgICAgIHRoaXMuY2hhclJlZkNvZGUgPSAkLlJFUExBQ0VNRU5UX0NIQVJBQ1RFUjtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChpc1N1cnJvZ2F0ZSh0aGlzLmNoYXJSZWZDb2RlKSkge1xuICAgICAgICAgICAgdGhpcy5fZXJyKEVSUi5zdXJyb2dhdGVDaGFyYWN0ZXJSZWZlcmVuY2UpO1xuICAgICAgICAgICAgdGhpcy5jaGFyUmVmQ29kZSA9ICQuUkVQTEFDRU1FTlRfQ0hBUkFDVEVSO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKGlzVW5kZWZpbmVkQ29kZVBvaW50KHRoaXMuY2hhclJlZkNvZGUpKSB7XG4gICAgICAgICAgICB0aGlzLl9lcnIoRVJSLm5vbmNoYXJhY3RlckNoYXJhY3RlclJlZmVyZW5jZSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoaXNDb250cm9sQ29kZVBvaW50KHRoaXMuY2hhclJlZkNvZGUpIHx8IHRoaXMuY2hhclJlZkNvZGUgPT09ICQuQ0FSUklBR0VfUkVUVVJOKSB7XG4gICAgICAgICAgICB0aGlzLl9lcnIoRVJSLmNvbnRyb2xDaGFyYWN0ZXJSZWZlcmVuY2UpO1xuICAgICAgICAgICAgY29uc3QgcmVwbGFjZW1lbnQgPSBDMV9DT05UUk9MU19SRUZFUkVOQ0VfUkVQTEFDRU1FTlRTLmdldCh0aGlzLmNoYXJSZWZDb2RlKTtcbiAgICAgICAgICAgIGlmIChyZXBsYWNlbWVudCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jaGFyUmVmQ29kZSA9IHJlcGxhY2VtZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2ZsdXNoQ29kZVBvaW50Q29uc3VtZWRBc0NoYXJhY3RlclJlZmVyZW5jZSh0aGlzLmNoYXJSZWZDb2RlKTtcbiAgICAgICAgdGhpcy5fcmVjb25zdW1lSW5TdGF0ZSh0aGlzLnJldHVyblN0YXRlLCBjcCk7XG4gICAgfVxufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW5kZXguanMubWFwIiwgImltcG9ydCB7IFRBR19JRCBhcyAkLCBOUywgaXNOdW1iZXJlZEhlYWRlciB9IGZyb20gJy4uL2NvbW1vbi9odG1sLmpzJztcbi8vRWxlbWVudCB1dGlsc1xuY29uc3QgSU1QTElDSVRfRU5EX1RBR19SRVFVSVJFRCA9IG5ldyBTZXQoWyQuREQsICQuRFQsICQuTEksICQuT1BUR1JPVVAsICQuT1BUSU9OLCAkLlAsICQuUkIsICQuUlAsICQuUlQsICQuUlRDXSk7XG5jb25zdCBJTVBMSUNJVF9FTkRfVEFHX1JFUVVJUkVEX1RIT1JPVUdITFkgPSBuZXcgU2V0KFtcbiAgICAuLi5JTVBMSUNJVF9FTkRfVEFHX1JFUVVJUkVELFxuICAgICQuQ0FQVElPTixcbiAgICAkLkNPTEdST1VQLFxuICAgICQuVEJPRFksXG4gICAgJC5URCxcbiAgICAkLlRGT09ULFxuICAgICQuVEgsXG4gICAgJC5USEVBRCxcbiAgICAkLlRSLFxuXSk7XG5jb25zdCBTQ09QSU5HX0VMRU1FTlRfTlMgPSBuZXcgTWFwKFtcbiAgICBbJC5BUFBMRVQsIE5TLkhUTUxdLFxuICAgIFskLkNBUFRJT04sIE5TLkhUTUxdLFxuICAgIFskLkhUTUwsIE5TLkhUTUxdLFxuICAgIFskLk1BUlFVRUUsIE5TLkhUTUxdLFxuICAgIFskLk9CSkVDVCwgTlMuSFRNTF0sXG4gICAgWyQuVEFCTEUsIE5TLkhUTUxdLFxuICAgIFskLlRELCBOUy5IVE1MXSxcbiAgICBbJC5URU1QTEFURSwgTlMuSFRNTF0sXG4gICAgWyQuVEgsIE5TLkhUTUxdLFxuICAgIFskLkFOTk9UQVRJT05fWE1MLCBOUy5NQVRITUxdLFxuICAgIFskLk1JLCBOUy5NQVRITUxdLFxuICAgIFskLk1OLCBOUy5NQVRITUxdLFxuICAgIFskLk1PLCBOUy5NQVRITUxdLFxuICAgIFskLk1TLCBOUy5NQVRITUxdLFxuICAgIFskLk1URVhULCBOUy5NQVRITUxdLFxuICAgIFskLkRFU0MsIE5TLlNWR10sXG4gICAgWyQuRk9SRUlHTl9PQkpFQ1QsIE5TLlNWR10sXG4gICAgWyQuVElUTEUsIE5TLlNWR10sXG5dKTtcbmNvbnN0IE5BTUVEX0hFQURFUlMgPSBbJC5IMSwgJC5IMiwgJC5IMywgJC5INCwgJC5INSwgJC5INl07XG5jb25zdCBUQUJMRV9ST1dfQ09OVEVYVCA9IFskLlRSLCAkLlRFTVBMQVRFLCAkLkhUTUxdO1xuY29uc3QgVEFCTEVfQk9EWV9DT05URVhUID0gWyQuVEJPRFksICQuVEZPT1QsICQuVEhFQUQsICQuVEVNUExBVEUsICQuSFRNTF07XG5jb25zdCBUQUJMRV9DT05URVhUID0gWyQuVEFCTEUsICQuVEVNUExBVEUsICQuSFRNTF07XG5jb25zdCBUQUJMRV9DRUxMUyA9IFskLlRELCAkLlRIXTtcbi8vU3RhY2sgb2Ygb3BlbiBlbGVtZW50c1xuZXhwb3J0IGNsYXNzIE9wZW5FbGVtZW50U3RhY2sge1xuICAgIGdldCBjdXJyZW50VG1wbENvbnRlbnRPck5vZGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc0luVGVtcGxhdGUoKSA/IHRoaXMudHJlZUFkYXB0ZXIuZ2V0VGVtcGxhdGVDb250ZW50KHRoaXMuY3VycmVudCkgOiB0aGlzLmN1cnJlbnQ7XG4gICAgfVxuICAgIGNvbnN0cnVjdG9yKGRvY3VtZW50LCB0cmVlQWRhcHRlciwgaGFuZGxlcikge1xuICAgICAgICB0aGlzLnRyZWVBZGFwdGVyID0gdHJlZUFkYXB0ZXI7XG4gICAgICAgIHRoaXMuaGFuZGxlciA9IGhhbmRsZXI7XG4gICAgICAgIHRoaXMuaXRlbXMgPSBbXTtcbiAgICAgICAgdGhpcy50YWdJRHMgPSBbXTtcbiAgICAgICAgdGhpcy5zdGFja1RvcCA9IC0xO1xuICAgICAgICB0aGlzLnRtcGxDb3VudCA9IDA7XG4gICAgICAgIHRoaXMuY3VycmVudFRhZ0lkID0gJC5VTktOT1dOO1xuICAgICAgICB0aGlzLmN1cnJlbnQgPSBkb2N1bWVudDtcbiAgICB9XG4gICAgLy9JbmRleCBvZiBlbGVtZW50XG4gICAgX2luZGV4T2YoZWxlbWVudCkge1xuICAgICAgICByZXR1cm4gdGhpcy5pdGVtcy5sYXN0SW5kZXhPZihlbGVtZW50LCB0aGlzLnN0YWNrVG9wKTtcbiAgICB9XG4gICAgLy9VcGRhdGUgY3VycmVudCBlbGVtZW50XG4gICAgX2lzSW5UZW1wbGF0ZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY3VycmVudFRhZ0lkID09PSAkLlRFTVBMQVRFICYmIHRoaXMudHJlZUFkYXB0ZXIuZ2V0TmFtZXNwYWNlVVJJKHRoaXMuY3VycmVudCkgPT09IE5TLkhUTUw7XG4gICAgfVxuICAgIF91cGRhdGVDdXJyZW50RWxlbWVudCgpIHtcbiAgICAgICAgdGhpcy5jdXJyZW50ID0gdGhpcy5pdGVtc1t0aGlzLnN0YWNrVG9wXTtcbiAgICAgICAgdGhpcy5jdXJyZW50VGFnSWQgPSB0aGlzLnRhZ0lEc1t0aGlzLnN0YWNrVG9wXTtcbiAgICB9XG4gICAgLy9NdXRhdGlvbnNcbiAgICBwdXNoKGVsZW1lbnQsIHRhZ0lEKSB7XG4gICAgICAgIHRoaXMuc3RhY2tUb3ArKztcbiAgICAgICAgdGhpcy5pdGVtc1t0aGlzLnN0YWNrVG9wXSA9IGVsZW1lbnQ7XG4gICAgICAgIHRoaXMuY3VycmVudCA9IGVsZW1lbnQ7XG4gICAgICAgIHRoaXMudGFnSURzW3RoaXMuc3RhY2tUb3BdID0gdGFnSUQ7XG4gICAgICAgIHRoaXMuY3VycmVudFRhZ0lkID0gdGFnSUQ7XG4gICAgICAgIGlmICh0aGlzLl9pc0luVGVtcGxhdGUoKSkge1xuICAgICAgICAgICAgdGhpcy50bXBsQ291bnQrKztcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmhhbmRsZXIub25JdGVtUHVzaChlbGVtZW50LCB0YWdJRCwgdHJ1ZSk7XG4gICAgfVxuICAgIHBvcCgpIHtcbiAgICAgICAgY29uc3QgcG9wcGVkID0gdGhpcy5jdXJyZW50O1xuICAgICAgICBpZiAodGhpcy50bXBsQ291bnQgPiAwICYmIHRoaXMuX2lzSW5UZW1wbGF0ZSgpKSB7XG4gICAgICAgICAgICB0aGlzLnRtcGxDb3VudC0tO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc3RhY2tUb3AtLTtcbiAgICAgICAgdGhpcy5fdXBkYXRlQ3VycmVudEVsZW1lbnQoKTtcbiAgICAgICAgdGhpcy5oYW5kbGVyLm9uSXRlbVBvcChwb3BwZWQsIHRydWUpO1xuICAgIH1cbiAgICByZXBsYWNlKG9sZEVsZW1lbnQsIG5ld0VsZW1lbnQpIHtcbiAgICAgICAgY29uc3QgaWR4ID0gdGhpcy5faW5kZXhPZihvbGRFbGVtZW50KTtcbiAgICAgICAgdGhpcy5pdGVtc1tpZHhdID0gbmV3RWxlbWVudDtcbiAgICAgICAgaWYgKGlkeCA9PT0gdGhpcy5zdGFja1RvcCkge1xuICAgICAgICAgICAgdGhpcy5jdXJyZW50ID0gbmV3RWxlbWVudDtcbiAgICAgICAgfVxuICAgIH1cbiAgICBpbnNlcnRBZnRlcihyZWZlcmVuY2VFbGVtZW50LCBuZXdFbGVtZW50LCBuZXdFbGVtZW50SUQpIHtcbiAgICAgICAgY29uc3QgaW5zZXJ0aW9uSWR4ID0gdGhpcy5faW5kZXhPZihyZWZlcmVuY2VFbGVtZW50KSArIDE7XG4gICAgICAgIHRoaXMuaXRlbXMuc3BsaWNlKGluc2VydGlvbklkeCwgMCwgbmV3RWxlbWVudCk7XG4gICAgICAgIHRoaXMudGFnSURzLnNwbGljZShpbnNlcnRpb25JZHgsIDAsIG5ld0VsZW1lbnRJRCk7XG4gICAgICAgIHRoaXMuc3RhY2tUb3ArKztcbiAgICAgICAgaWYgKGluc2VydGlvbklkeCA9PT0gdGhpcy5zdGFja1RvcCkge1xuICAgICAgICAgICAgdGhpcy5fdXBkYXRlQ3VycmVudEVsZW1lbnQoKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmhhbmRsZXIub25JdGVtUHVzaCh0aGlzLmN1cnJlbnQsIHRoaXMuY3VycmVudFRhZ0lkLCBpbnNlcnRpb25JZHggPT09IHRoaXMuc3RhY2tUb3ApO1xuICAgIH1cbiAgICBwb3BVbnRpbFRhZ05hbWVQb3BwZWQodGFnTmFtZSkge1xuICAgICAgICBsZXQgdGFyZ2V0SWR4ID0gdGhpcy5zdGFja1RvcCArIDE7XG4gICAgICAgIGRvIHtcbiAgICAgICAgICAgIHRhcmdldElkeCA9IHRoaXMudGFnSURzLmxhc3RJbmRleE9mKHRhZ05hbWUsIHRhcmdldElkeCAtIDEpO1xuICAgICAgICB9IHdoaWxlICh0YXJnZXRJZHggPiAwICYmIHRoaXMudHJlZUFkYXB0ZXIuZ2V0TmFtZXNwYWNlVVJJKHRoaXMuaXRlbXNbdGFyZ2V0SWR4XSkgIT09IE5TLkhUTUwpO1xuICAgICAgICB0aGlzLnNob3J0ZW5Ub0xlbmd0aCh0YXJnZXRJZHggPCAwID8gMCA6IHRhcmdldElkeCk7XG4gICAgfVxuICAgIHNob3J0ZW5Ub0xlbmd0aChpZHgpIHtcbiAgICAgICAgd2hpbGUgKHRoaXMuc3RhY2tUb3AgPj0gaWR4KSB7XG4gICAgICAgICAgICBjb25zdCBwb3BwZWQgPSB0aGlzLmN1cnJlbnQ7XG4gICAgICAgICAgICBpZiAodGhpcy50bXBsQ291bnQgPiAwICYmIHRoaXMuX2lzSW5UZW1wbGF0ZSgpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy50bXBsQ291bnQgLT0gMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuc3RhY2tUb3AtLTtcbiAgICAgICAgICAgIHRoaXMuX3VwZGF0ZUN1cnJlbnRFbGVtZW50KCk7XG4gICAgICAgICAgICB0aGlzLmhhbmRsZXIub25JdGVtUG9wKHBvcHBlZCwgdGhpcy5zdGFja1RvcCA8IGlkeCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcG9wVW50aWxFbGVtZW50UG9wcGVkKGVsZW1lbnQpIHtcbiAgICAgICAgY29uc3QgaWR4ID0gdGhpcy5faW5kZXhPZihlbGVtZW50KTtcbiAgICAgICAgdGhpcy5zaG9ydGVuVG9MZW5ndGgoaWR4IDwgMCA/IDAgOiBpZHgpO1xuICAgIH1cbiAgICBwb3BVbnRpbFBvcHBlZCh0YWdOYW1lcywgdGFyZ2V0TlMpIHtcbiAgICAgICAgY29uc3QgaWR4ID0gdGhpcy5faW5kZXhPZlRhZ05hbWVzKHRhZ05hbWVzLCB0YXJnZXROUyk7XG4gICAgICAgIHRoaXMuc2hvcnRlblRvTGVuZ3RoKGlkeCA8IDAgPyAwIDogaWR4KTtcbiAgICB9XG4gICAgcG9wVW50aWxOdW1iZXJlZEhlYWRlclBvcHBlZCgpIHtcbiAgICAgICAgdGhpcy5wb3BVbnRpbFBvcHBlZChOQU1FRF9IRUFERVJTLCBOUy5IVE1MKTtcbiAgICB9XG4gICAgcG9wVW50aWxUYWJsZUNlbGxQb3BwZWQoKSB7XG4gICAgICAgIHRoaXMucG9wVW50aWxQb3BwZWQoVEFCTEVfQ0VMTFMsIE5TLkhUTUwpO1xuICAgIH1cbiAgICBwb3BBbGxVcFRvSHRtbEVsZW1lbnQoKSB7XG4gICAgICAgIC8vTk9URTogaGVyZSB3ZSBhc3N1bWUgdGhhdCB0aGUgcm9vdCA8aHRtbD4gZWxlbWVudCBpcyBhbHdheXMgZmlyc3QgaW4gdGhlIG9wZW4gZWxlbWVudCBzdGFjaywgc29cbiAgICAgICAgLy93ZSBwZXJmb3JtIHRoaXMgZmFzdCBzdGFjayBjbGVhbiB1cC5cbiAgICAgICAgdGhpcy50bXBsQ291bnQgPSAwO1xuICAgICAgICB0aGlzLnNob3J0ZW5Ub0xlbmd0aCgxKTtcbiAgICB9XG4gICAgX2luZGV4T2ZUYWdOYW1lcyh0YWdOYW1lcywgbmFtZXNwYWNlKSB7XG4gICAgICAgIGZvciAobGV0IGkgPSB0aGlzLnN0YWNrVG9wOyBpID49IDA7IGktLSkge1xuICAgICAgICAgICAgaWYgKHRhZ05hbWVzLmluY2x1ZGVzKHRoaXMudGFnSURzW2ldKSAmJiB0aGlzLnRyZWVBZGFwdGVyLmdldE5hbWVzcGFjZVVSSSh0aGlzLml0ZW1zW2ldKSA9PT0gbmFtZXNwYWNlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIC0xO1xuICAgIH1cbiAgICBjbGVhckJhY2tUbyh0YWdOYW1lcywgdGFyZ2V0TlMpIHtcbiAgICAgICAgY29uc3QgaWR4ID0gdGhpcy5faW5kZXhPZlRhZ05hbWVzKHRhZ05hbWVzLCB0YXJnZXROUyk7XG4gICAgICAgIHRoaXMuc2hvcnRlblRvTGVuZ3RoKGlkeCArIDEpO1xuICAgIH1cbiAgICBjbGVhckJhY2tUb1RhYmxlQ29udGV4dCgpIHtcbiAgICAgICAgdGhpcy5jbGVhckJhY2tUbyhUQUJMRV9DT05URVhULCBOUy5IVE1MKTtcbiAgICB9XG4gICAgY2xlYXJCYWNrVG9UYWJsZUJvZHlDb250ZXh0KCkge1xuICAgICAgICB0aGlzLmNsZWFyQmFja1RvKFRBQkxFX0JPRFlfQ09OVEVYVCwgTlMuSFRNTCk7XG4gICAgfVxuICAgIGNsZWFyQmFja1RvVGFibGVSb3dDb250ZXh0KCkge1xuICAgICAgICB0aGlzLmNsZWFyQmFja1RvKFRBQkxFX1JPV19DT05URVhULCBOUy5IVE1MKTtcbiAgICB9XG4gICAgcmVtb3ZlKGVsZW1lbnQpIHtcbiAgICAgICAgY29uc3QgaWR4ID0gdGhpcy5faW5kZXhPZihlbGVtZW50KTtcbiAgICAgICAgaWYgKGlkeCA+PSAwKSB7XG4gICAgICAgICAgICBpZiAoaWR4ID09PSB0aGlzLnN0YWNrVG9wKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5wb3AoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuaXRlbXMuc3BsaWNlKGlkeCwgMSk7XG4gICAgICAgICAgICAgICAgdGhpcy50YWdJRHMuc3BsaWNlKGlkeCwgMSk7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGFja1RvcC0tO1xuICAgICAgICAgICAgICAgIHRoaXMuX3VwZGF0ZUN1cnJlbnRFbGVtZW50KCk7XG4gICAgICAgICAgICAgICAgdGhpcy5oYW5kbGVyLm9uSXRlbVBvcChlbGVtZW50LCBmYWxzZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy9TZWFyY2hcbiAgICB0cnlQZWVrUHJvcGVybHlOZXN0ZWRCb2R5RWxlbWVudCgpIHtcbiAgICAgICAgLy9Qcm9wZXJseSBuZXN0ZWQgPGJvZHk+IGVsZW1lbnQgKHNob3VsZCBiZSBzZWNvbmQgZWxlbWVudCBpbiBzdGFjaykuXG4gICAgICAgIHJldHVybiB0aGlzLnN0YWNrVG9wID49IDEgJiYgdGhpcy50YWdJRHNbMV0gPT09ICQuQk9EWSA/IHRoaXMuaXRlbXNbMV0gOiBudWxsO1xuICAgIH1cbiAgICBjb250YWlucyhlbGVtZW50KSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pbmRleE9mKGVsZW1lbnQpID4gLTE7XG4gICAgfVxuICAgIGdldENvbW1vbkFuY2VzdG9yKGVsZW1lbnQpIHtcbiAgICAgICAgY29uc3QgZWxlbWVudElkeCA9IHRoaXMuX2luZGV4T2YoZWxlbWVudCkgLSAxO1xuICAgICAgICByZXR1cm4gZWxlbWVudElkeCA+PSAwID8gdGhpcy5pdGVtc1tlbGVtZW50SWR4XSA6IG51bGw7XG4gICAgfVxuICAgIGlzUm9vdEh0bWxFbGVtZW50Q3VycmVudCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc3RhY2tUb3AgPT09IDAgJiYgdGhpcy50YWdJRHNbMF0gPT09ICQuSFRNTDtcbiAgICB9XG4gICAgLy9FbGVtZW50IGluIHNjb3BlXG4gICAgaGFzSW5TY29wZSh0YWdOYW1lKSB7XG4gICAgICAgIGZvciAobGV0IGkgPSB0aGlzLnN0YWNrVG9wOyBpID49IDA7IGktLSkge1xuICAgICAgICAgICAgY29uc3QgdG4gPSB0aGlzLnRhZ0lEc1tpXTtcbiAgICAgICAgICAgIGNvbnN0IG5zID0gdGhpcy50cmVlQWRhcHRlci5nZXROYW1lc3BhY2VVUkkodGhpcy5pdGVtc1tpXSk7XG4gICAgICAgICAgICBpZiAodG4gPT09IHRhZ05hbWUgJiYgbnMgPT09IE5TLkhUTUwpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChTQ09QSU5HX0VMRU1FTlRfTlMuZ2V0KHRuKSA9PT0gbnMpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGhhc051bWJlcmVkSGVhZGVySW5TY29wZSgpIHtcbiAgICAgICAgZm9yIChsZXQgaSA9IHRoaXMuc3RhY2tUb3A7IGkgPj0gMDsgaS0tKSB7XG4gICAgICAgICAgICBjb25zdCB0biA9IHRoaXMudGFnSURzW2ldO1xuICAgICAgICAgICAgY29uc3QgbnMgPSB0aGlzLnRyZWVBZGFwdGVyLmdldE5hbWVzcGFjZVVSSSh0aGlzLml0ZW1zW2ldKTtcbiAgICAgICAgICAgIGlmIChpc051bWJlcmVkSGVhZGVyKHRuKSAmJiBucyA9PT0gTlMuSFRNTCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKFNDT1BJTkdfRUxFTUVOVF9OUy5nZXQodG4pID09PSBucykge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgaGFzSW5MaXN0SXRlbVNjb3BlKHRhZ05hbWUpIHtcbiAgICAgICAgZm9yIChsZXQgaSA9IHRoaXMuc3RhY2tUb3A7IGkgPj0gMDsgaS0tKSB7XG4gICAgICAgICAgICBjb25zdCB0biA9IHRoaXMudGFnSURzW2ldO1xuICAgICAgICAgICAgY29uc3QgbnMgPSB0aGlzLnRyZWVBZGFwdGVyLmdldE5hbWVzcGFjZVVSSSh0aGlzLml0ZW1zW2ldKTtcbiAgICAgICAgICAgIGlmICh0biA9PT0gdGFnTmFtZSAmJiBucyA9PT0gTlMuSFRNTCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCgodG4gPT09ICQuVUwgfHwgdG4gPT09ICQuT0wpICYmIG5zID09PSBOUy5IVE1MKSB8fCBTQ09QSU5HX0VMRU1FTlRfTlMuZ2V0KHRuKSA9PT0gbnMpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGhhc0luQnV0dG9uU2NvcGUodGFnTmFtZSkge1xuICAgICAgICBmb3IgKGxldCBpID0gdGhpcy5zdGFja1RvcDsgaSA+PSAwOyBpLS0pIHtcbiAgICAgICAgICAgIGNvbnN0IHRuID0gdGhpcy50YWdJRHNbaV07XG4gICAgICAgICAgICBjb25zdCBucyA9IHRoaXMudHJlZUFkYXB0ZXIuZ2V0TmFtZXNwYWNlVVJJKHRoaXMuaXRlbXNbaV0pO1xuICAgICAgICAgICAgaWYgKHRuID09PSB0YWdOYW1lICYmIG5zID09PSBOUy5IVE1MKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoKHRuID09PSAkLkJVVFRPTiAmJiBucyA9PT0gTlMuSFRNTCkgfHwgU0NPUElOR19FTEVNRU5UX05TLmdldCh0bikgPT09IG5zKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBoYXNJblRhYmxlU2NvcGUodGFnTmFtZSkge1xuICAgICAgICBmb3IgKGxldCBpID0gdGhpcy5zdGFja1RvcDsgaSA+PSAwOyBpLS0pIHtcbiAgICAgICAgICAgIGNvbnN0IHRuID0gdGhpcy50YWdJRHNbaV07XG4gICAgICAgICAgICBjb25zdCBucyA9IHRoaXMudHJlZUFkYXB0ZXIuZ2V0TmFtZXNwYWNlVVJJKHRoaXMuaXRlbXNbaV0pO1xuICAgICAgICAgICAgaWYgKG5zICE9PSBOUy5IVE1MKSB7XG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodG4gPT09IHRhZ05hbWUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0biA9PT0gJC5UQUJMRSB8fCB0biA9PT0gJC5URU1QTEFURSB8fCB0biA9PT0gJC5IVE1MKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBoYXNUYWJsZUJvZHlDb250ZXh0SW5UYWJsZVNjb3BlKCkge1xuICAgICAgICBmb3IgKGxldCBpID0gdGhpcy5zdGFja1RvcDsgaSA+PSAwOyBpLS0pIHtcbiAgICAgICAgICAgIGNvbnN0IHRuID0gdGhpcy50YWdJRHNbaV07XG4gICAgICAgICAgICBjb25zdCBucyA9IHRoaXMudHJlZUFkYXB0ZXIuZ2V0TmFtZXNwYWNlVVJJKHRoaXMuaXRlbXNbaV0pO1xuICAgICAgICAgICAgaWYgKG5zICE9PSBOUy5IVE1MKSB7XG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodG4gPT09ICQuVEJPRFkgfHwgdG4gPT09ICQuVEhFQUQgfHwgdG4gPT09ICQuVEZPT1QpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0biA9PT0gJC5UQUJMRSB8fCB0biA9PT0gJC5IVE1MKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBoYXNJblNlbGVjdFNjb3BlKHRhZ05hbWUpIHtcbiAgICAgICAgZm9yIChsZXQgaSA9IHRoaXMuc3RhY2tUb3A7IGkgPj0gMDsgaS0tKSB7XG4gICAgICAgICAgICBjb25zdCB0biA9IHRoaXMudGFnSURzW2ldO1xuICAgICAgICAgICAgY29uc3QgbnMgPSB0aGlzLnRyZWVBZGFwdGVyLmdldE5hbWVzcGFjZVVSSSh0aGlzLml0ZW1zW2ldKTtcbiAgICAgICAgICAgIGlmIChucyAhPT0gTlMuSFRNTCkge1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHRuID09PSB0YWdOYW1lKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodG4gIT09ICQuT1BUSU9OICYmIHRuICE9PSAkLk9QVEdST1VQKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICAvL0ltcGxpZWQgZW5kIHRhZ3NcbiAgICBnZW5lcmF0ZUltcGxpZWRFbmRUYWdzKCkge1xuICAgICAgICB3aGlsZSAoSU1QTElDSVRfRU5EX1RBR19SRVFVSVJFRC5oYXModGhpcy5jdXJyZW50VGFnSWQpKSB7XG4gICAgICAgICAgICB0aGlzLnBvcCgpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGdlbmVyYXRlSW1wbGllZEVuZFRhZ3NUaG9yb3VnaGx5KCkge1xuICAgICAgICB3aGlsZSAoSU1QTElDSVRfRU5EX1RBR19SRVFVSVJFRF9USE9ST1VHSExZLmhhcyh0aGlzLmN1cnJlbnRUYWdJZCkpIHtcbiAgICAgICAgICAgIHRoaXMucG9wKCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZ2VuZXJhdGVJbXBsaWVkRW5kVGFnc1dpdGhFeGNsdXNpb24oZXhjbHVzaW9uSWQpIHtcbiAgICAgICAgd2hpbGUgKHRoaXMuY3VycmVudFRhZ0lkICE9PSBleGNsdXNpb25JZCAmJiBJTVBMSUNJVF9FTkRfVEFHX1JFUVVJUkVEX1RIT1JPVUdITFkuaGFzKHRoaXMuY3VycmVudFRhZ0lkKSkge1xuICAgICAgICAgICAgdGhpcy5wb3AoKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPW9wZW4tZWxlbWVudC1zdGFjay5qcy5tYXAiLCAiLy9Db25zdFxuY29uc3QgTk9BSF9BUktfQ0FQQUNJVFkgPSAzO1xuZXhwb3J0IHZhciBFbnRyeVR5cGU7XG4oZnVuY3Rpb24gKEVudHJ5VHlwZSkge1xuICAgIEVudHJ5VHlwZVtFbnRyeVR5cGVbXCJNYXJrZXJcIl0gPSAwXSA9IFwiTWFya2VyXCI7XG4gICAgRW50cnlUeXBlW0VudHJ5VHlwZVtcIkVsZW1lbnRcIl0gPSAxXSA9IFwiRWxlbWVudFwiO1xufSkoRW50cnlUeXBlID0gRW50cnlUeXBlIHx8IChFbnRyeVR5cGUgPSB7fSkpO1xuY29uc3QgTUFSS0VSID0geyB0eXBlOiBFbnRyeVR5cGUuTWFya2VyIH07XG4vL0xpc3Qgb2YgZm9ybWF0dGluZyBlbGVtZW50c1xuZXhwb3J0IGNsYXNzIEZvcm1hdHRpbmdFbGVtZW50TGlzdCB7XG4gICAgY29uc3RydWN0b3IodHJlZUFkYXB0ZXIpIHtcbiAgICAgICAgdGhpcy50cmVlQWRhcHRlciA9IHRyZWVBZGFwdGVyO1xuICAgICAgICB0aGlzLmVudHJpZXMgPSBbXTtcbiAgICAgICAgdGhpcy5ib29rbWFyayA9IG51bGw7XG4gICAgfVxuICAgIC8vTm9haCBBcmsncyBjb25kaXRpb25cbiAgICAvL09QVElNSVpBVElPTjogYXQgZmlyc3Qgd2UgdHJ5IHRvIGZpbmQgcG9zc2libGUgY2FuZGlkYXRlcyBmb3IgZXhjbHVzaW9uIHVzaW5nXG4gICAgLy9saWdodHdlaWdodCBoZXVyaXN0aWNzIHdpdGhvdXQgdGhvcm91Z2ggYXR0cmlidXRlcyBjaGVjay5cbiAgICBfZ2V0Tm9haEFya0NvbmRpdGlvbkNhbmRpZGF0ZXMobmV3RWxlbWVudCwgbmVBdHRycykge1xuICAgICAgICBjb25zdCBjYW5kaWRhdGVzID0gW107XG4gICAgICAgIGNvbnN0IG5lQXR0cnNMZW5ndGggPSBuZUF0dHJzLmxlbmd0aDtcbiAgICAgICAgY29uc3QgbmVUYWdOYW1lID0gdGhpcy50cmVlQWRhcHRlci5nZXRUYWdOYW1lKG5ld0VsZW1lbnQpO1xuICAgICAgICBjb25zdCBuZU5hbWVzcGFjZVVSSSA9IHRoaXMudHJlZUFkYXB0ZXIuZ2V0TmFtZXNwYWNlVVJJKG5ld0VsZW1lbnQpO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuZW50cmllcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgY29uc3QgZW50cnkgPSB0aGlzLmVudHJpZXNbaV07XG4gICAgICAgICAgICBpZiAoZW50cnkudHlwZSA9PT0gRW50cnlUeXBlLk1hcmtlcikge1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgeyBlbGVtZW50IH0gPSBlbnRyeTtcbiAgICAgICAgICAgIGlmICh0aGlzLnRyZWVBZGFwdGVyLmdldFRhZ05hbWUoZWxlbWVudCkgPT09IG5lVGFnTmFtZSAmJlxuICAgICAgICAgICAgICAgIHRoaXMudHJlZUFkYXB0ZXIuZ2V0TmFtZXNwYWNlVVJJKGVsZW1lbnQpID09PSBuZU5hbWVzcGFjZVVSSSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGVsZW1lbnRBdHRycyA9IHRoaXMudHJlZUFkYXB0ZXIuZ2V0QXR0ckxpc3QoZWxlbWVudCk7XG4gICAgICAgICAgICAgICAgaWYgKGVsZW1lbnRBdHRycy5sZW5ndGggPT09IG5lQXR0cnNMZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgY2FuZGlkYXRlcy5wdXNoKHsgaWR4OiBpLCBhdHRyczogZWxlbWVudEF0dHJzIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gY2FuZGlkYXRlcztcbiAgICB9XG4gICAgX2Vuc3VyZU5vYWhBcmtDb25kaXRpb24obmV3RWxlbWVudCkge1xuICAgICAgICBpZiAodGhpcy5lbnRyaWVzLmxlbmd0aCA8IE5PQUhfQVJLX0NBUEFDSVRZKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBjb25zdCBuZUF0dHJzID0gdGhpcy50cmVlQWRhcHRlci5nZXRBdHRyTGlzdChuZXdFbGVtZW50KTtcbiAgICAgICAgY29uc3QgY2FuZGlkYXRlcyA9IHRoaXMuX2dldE5vYWhBcmtDb25kaXRpb25DYW5kaWRhdGVzKG5ld0VsZW1lbnQsIG5lQXR0cnMpO1xuICAgICAgICBpZiAoY2FuZGlkYXRlcy5sZW5ndGggPCBOT0FIX0FSS19DQVBBQ0lUWSlcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgLy9OT1RFOiBidWlsZCBhdHRycyBtYXAgZm9yIHRoZSBuZXcgZWxlbWVudCwgc28gd2UgY2FuIHBlcmZvcm0gZmFzdCBsb29rdXBzXG4gICAgICAgIGNvbnN0IG5lQXR0cnNNYXAgPSBuZXcgTWFwKG5lQXR0cnMubWFwKChuZUF0dHIpID0+IFtuZUF0dHIubmFtZSwgbmVBdHRyLnZhbHVlXSkpO1xuICAgICAgICBsZXQgdmFsaWRDYW5kaWRhdGVzID0gMDtcbiAgICAgICAgLy9OT1RFOiByZW1vdmUgYm90dG9tbW9zdCBjYW5kaWRhdGVzLCB1bnRpbCBOb2FoJ3MgQXJrIGNvbmRpdGlvbiB3aWxsIG5vdCBiZSBtZXRcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjYW5kaWRhdGVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBjb25zdCBjYW5kaWRhdGUgPSBjYW5kaWRhdGVzW2ldO1xuICAgICAgICAgICAgLy8gV2Uga25vdyB0aGF0IGBjYW5kaWRhdGUuYXR0cnMubGVuZ3RoID09PSBuZUF0dHJzLmxlbmd0aGBcbiAgICAgICAgICAgIGlmIChjYW5kaWRhdGUuYXR0cnMuZXZlcnkoKGNBdHRyKSA9PiBuZUF0dHJzTWFwLmdldChjQXR0ci5uYW1lKSA9PT0gY0F0dHIudmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgdmFsaWRDYW5kaWRhdGVzICs9IDE7XG4gICAgICAgICAgICAgICAgaWYgKHZhbGlkQ2FuZGlkYXRlcyA+PSBOT0FIX0FSS19DQVBBQ0lUWSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmVudHJpZXMuc3BsaWNlKGNhbmRpZGF0ZS5pZHgsIDEpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvL011dGF0aW9uc1xuICAgIGluc2VydE1hcmtlcigpIHtcbiAgICAgICAgdGhpcy5lbnRyaWVzLnVuc2hpZnQoTUFSS0VSKTtcbiAgICB9XG4gICAgcHVzaEVsZW1lbnQoZWxlbWVudCwgdG9rZW4pIHtcbiAgICAgICAgdGhpcy5fZW5zdXJlTm9haEFya0NvbmRpdGlvbihlbGVtZW50KTtcbiAgICAgICAgdGhpcy5lbnRyaWVzLnVuc2hpZnQoe1xuICAgICAgICAgICAgdHlwZTogRW50cnlUeXBlLkVsZW1lbnQsXG4gICAgICAgICAgICBlbGVtZW50LFxuICAgICAgICAgICAgdG9rZW4sXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBpbnNlcnRFbGVtZW50QWZ0ZXJCb29rbWFyayhlbGVtZW50LCB0b2tlbikge1xuICAgICAgICBjb25zdCBib29rbWFya0lkeCA9IHRoaXMuZW50cmllcy5pbmRleE9mKHRoaXMuYm9va21hcmspO1xuICAgICAgICB0aGlzLmVudHJpZXMuc3BsaWNlKGJvb2ttYXJrSWR4LCAwLCB7XG4gICAgICAgICAgICB0eXBlOiBFbnRyeVR5cGUuRWxlbWVudCxcbiAgICAgICAgICAgIGVsZW1lbnQsXG4gICAgICAgICAgICB0b2tlbixcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIHJlbW92ZUVudHJ5KGVudHJ5KSB7XG4gICAgICAgIGNvbnN0IGVudHJ5SW5kZXggPSB0aGlzLmVudHJpZXMuaW5kZXhPZihlbnRyeSk7XG4gICAgICAgIGlmIChlbnRyeUluZGV4ID49IDApIHtcbiAgICAgICAgICAgIHRoaXMuZW50cmllcy5zcGxpY2UoZW50cnlJbmRleCwgMSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogQ2xlYXJzIHRoZSBsaXN0IG9mIGZvcm1hdHRpbmcgZWxlbWVudHMgdXAgdG8gdGhlIGxhc3QgbWFya2VyLlxuICAgICAqXG4gICAgICogQHNlZSBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS9wYXJzaW5nLmh0bWwjY2xlYXItdGhlLWxpc3Qtb2YtYWN0aXZlLWZvcm1hdHRpbmctZWxlbWVudHMtdXAtdG8tdGhlLWxhc3QtbWFya2VyXG4gICAgICovXG4gICAgY2xlYXJUb0xhc3RNYXJrZXIoKSB7XG4gICAgICAgIGNvbnN0IG1hcmtlcklkeCA9IHRoaXMuZW50cmllcy5pbmRleE9mKE1BUktFUik7XG4gICAgICAgIGlmIChtYXJrZXJJZHggPj0gMCkge1xuICAgICAgICAgICAgdGhpcy5lbnRyaWVzLnNwbGljZSgwLCBtYXJrZXJJZHggKyAxKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZW50cmllcy5sZW5ndGggPSAwO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vU2VhcmNoXG4gICAgZ2V0RWxlbWVudEVudHJ5SW5TY29wZVdpdGhUYWdOYW1lKHRhZ05hbWUpIHtcbiAgICAgICAgY29uc3QgZW50cnkgPSB0aGlzLmVudHJpZXMuZmluZCgoZW50cnkpID0+IGVudHJ5LnR5cGUgPT09IEVudHJ5VHlwZS5NYXJrZXIgfHwgdGhpcy50cmVlQWRhcHRlci5nZXRUYWdOYW1lKGVudHJ5LmVsZW1lbnQpID09PSB0YWdOYW1lKTtcbiAgICAgICAgcmV0dXJuIGVudHJ5ICYmIGVudHJ5LnR5cGUgPT09IEVudHJ5VHlwZS5FbGVtZW50ID8gZW50cnkgOiBudWxsO1xuICAgIH1cbiAgICBnZXRFbGVtZW50RW50cnkoZWxlbWVudCkge1xuICAgICAgICByZXR1cm4gdGhpcy5lbnRyaWVzLmZpbmQoKGVudHJ5KSA9PiBlbnRyeS50eXBlID09PSBFbnRyeVR5cGUuRWxlbWVudCAmJiBlbnRyeS5lbGVtZW50ID09PSBlbGVtZW50KTtcbiAgICB9XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1mb3JtYXR0aW5nLWVsZW1lbnQtbGlzdC5qcy5tYXAiLCAiaW1wb3J0IHsgRE9DVU1FTlRfTU9ERSB9IGZyb20gJy4uL2NvbW1vbi9odG1sLmpzJztcbmZ1bmN0aW9uIGNyZWF0ZVRleHROb2RlKHZhbHVlKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgbm9kZU5hbWU6ICcjdGV4dCcsXG4gICAgICAgIHZhbHVlLFxuICAgICAgICBwYXJlbnROb2RlOiBudWxsLFxuICAgIH07XG59XG5leHBvcnQgY29uc3QgZGVmYXVsdFRyZWVBZGFwdGVyID0ge1xuICAgIC8vTm9kZSBjb25zdHJ1Y3Rpb25cbiAgICBjcmVhdGVEb2N1bWVudCgpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIG5vZGVOYW1lOiAnI2RvY3VtZW50JyxcbiAgICAgICAgICAgIG1vZGU6IERPQ1VNRU5UX01PREUuTk9fUVVJUktTLFxuICAgICAgICAgICAgY2hpbGROb2RlczogW10sXG4gICAgICAgIH07XG4gICAgfSxcbiAgICBjcmVhdGVEb2N1bWVudEZyYWdtZW50KCkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgbm9kZU5hbWU6ICcjZG9jdW1lbnQtZnJhZ21lbnQnLFxuICAgICAgICAgICAgY2hpbGROb2RlczogW10sXG4gICAgICAgIH07XG4gICAgfSxcbiAgICBjcmVhdGVFbGVtZW50KHRhZ05hbWUsIG5hbWVzcGFjZVVSSSwgYXR0cnMpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIG5vZGVOYW1lOiB0YWdOYW1lLFxuICAgICAgICAgICAgdGFnTmFtZSxcbiAgICAgICAgICAgIGF0dHJzLFxuICAgICAgICAgICAgbmFtZXNwYWNlVVJJLFxuICAgICAgICAgICAgY2hpbGROb2RlczogW10sXG4gICAgICAgICAgICBwYXJlbnROb2RlOiBudWxsLFxuICAgICAgICB9O1xuICAgIH0sXG4gICAgY3JlYXRlQ29tbWVudE5vZGUoZGF0YSkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgbm9kZU5hbWU6ICcjY29tbWVudCcsXG4gICAgICAgICAgICBkYXRhLFxuICAgICAgICAgICAgcGFyZW50Tm9kZTogbnVsbCxcbiAgICAgICAgfTtcbiAgICB9LFxuICAgIC8vVHJlZSBtdXRhdGlvblxuICAgIGFwcGVuZENoaWxkKHBhcmVudE5vZGUsIG5ld05vZGUpIHtcbiAgICAgICAgcGFyZW50Tm9kZS5jaGlsZE5vZGVzLnB1c2gobmV3Tm9kZSk7XG4gICAgICAgIG5ld05vZGUucGFyZW50Tm9kZSA9IHBhcmVudE5vZGU7XG4gICAgfSxcbiAgICBpbnNlcnRCZWZvcmUocGFyZW50Tm9kZSwgbmV3Tm9kZSwgcmVmZXJlbmNlTm9kZSkge1xuICAgICAgICBjb25zdCBpbnNlcnRpb25JZHggPSBwYXJlbnROb2RlLmNoaWxkTm9kZXMuaW5kZXhPZihyZWZlcmVuY2VOb2RlKTtcbiAgICAgICAgcGFyZW50Tm9kZS5jaGlsZE5vZGVzLnNwbGljZShpbnNlcnRpb25JZHgsIDAsIG5ld05vZGUpO1xuICAgICAgICBuZXdOb2RlLnBhcmVudE5vZGUgPSBwYXJlbnROb2RlO1xuICAgIH0sXG4gICAgc2V0VGVtcGxhdGVDb250ZW50KHRlbXBsYXRlRWxlbWVudCwgY29udGVudEVsZW1lbnQpIHtcbiAgICAgICAgdGVtcGxhdGVFbGVtZW50LmNvbnRlbnQgPSBjb250ZW50RWxlbWVudDtcbiAgICB9LFxuICAgIGdldFRlbXBsYXRlQ29udGVudCh0ZW1wbGF0ZUVsZW1lbnQpIHtcbiAgICAgICAgcmV0dXJuIHRlbXBsYXRlRWxlbWVudC5jb250ZW50O1xuICAgIH0sXG4gICAgc2V0RG9jdW1lbnRUeXBlKGRvY3VtZW50LCBuYW1lLCBwdWJsaWNJZCwgc3lzdGVtSWQpIHtcbiAgICAgICAgY29uc3QgZG9jdHlwZU5vZGUgPSBkb2N1bWVudC5jaGlsZE5vZGVzLmZpbmQoKG5vZGUpID0+IG5vZGUubm9kZU5hbWUgPT09ICcjZG9jdW1lbnRUeXBlJyk7XG4gICAgICAgIGlmIChkb2N0eXBlTm9kZSkge1xuICAgICAgICAgICAgZG9jdHlwZU5vZGUubmFtZSA9IG5hbWU7XG4gICAgICAgICAgICBkb2N0eXBlTm9kZS5wdWJsaWNJZCA9IHB1YmxpY0lkO1xuICAgICAgICAgICAgZG9jdHlwZU5vZGUuc3lzdGVtSWQgPSBzeXN0ZW1JZDtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IG5vZGUgPSB7XG4gICAgICAgICAgICAgICAgbm9kZU5hbWU6ICcjZG9jdW1lbnRUeXBlJyxcbiAgICAgICAgICAgICAgICBuYW1lLFxuICAgICAgICAgICAgICAgIHB1YmxpY0lkLFxuICAgICAgICAgICAgICAgIHN5c3RlbUlkLFxuICAgICAgICAgICAgICAgIHBhcmVudE5vZGU6IG51bGwsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgZGVmYXVsdFRyZWVBZGFwdGVyLmFwcGVuZENoaWxkKGRvY3VtZW50LCBub2RlKTtcbiAgICAgICAgfVxuICAgIH0sXG4gICAgc2V0RG9jdW1lbnRNb2RlKGRvY3VtZW50LCBtb2RlKSB7XG4gICAgICAgIGRvY3VtZW50Lm1vZGUgPSBtb2RlO1xuICAgIH0sXG4gICAgZ2V0RG9jdW1lbnRNb2RlKGRvY3VtZW50KSB7XG4gICAgICAgIHJldHVybiBkb2N1bWVudC5tb2RlO1xuICAgIH0sXG4gICAgZGV0YWNoTm9kZShub2RlKSB7XG4gICAgICAgIGlmIChub2RlLnBhcmVudE5vZGUpIHtcbiAgICAgICAgICAgIGNvbnN0IGlkeCA9IG5vZGUucGFyZW50Tm9kZS5jaGlsZE5vZGVzLmluZGV4T2Yobm9kZSk7XG4gICAgICAgICAgICBub2RlLnBhcmVudE5vZGUuY2hpbGROb2Rlcy5zcGxpY2UoaWR4LCAxKTtcbiAgICAgICAgICAgIG5vZGUucGFyZW50Tm9kZSA9IG51bGw7XG4gICAgICAgIH1cbiAgICB9LFxuICAgIGluc2VydFRleHQocGFyZW50Tm9kZSwgdGV4dCkge1xuICAgICAgICBpZiAocGFyZW50Tm9kZS5jaGlsZE5vZGVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGNvbnN0IHByZXZOb2RlID0gcGFyZW50Tm9kZS5jaGlsZE5vZGVzW3BhcmVudE5vZGUuY2hpbGROb2Rlcy5sZW5ndGggLSAxXTtcbiAgICAgICAgICAgIGlmIChkZWZhdWx0VHJlZUFkYXB0ZXIuaXNUZXh0Tm9kZShwcmV2Tm9kZSkpIHtcbiAgICAgICAgICAgICAgICBwcmV2Tm9kZS52YWx1ZSArPSB0ZXh0O1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBkZWZhdWx0VHJlZUFkYXB0ZXIuYXBwZW5kQ2hpbGQocGFyZW50Tm9kZSwgY3JlYXRlVGV4dE5vZGUodGV4dCkpO1xuICAgIH0sXG4gICAgaW5zZXJ0VGV4dEJlZm9yZShwYXJlbnROb2RlLCB0ZXh0LCByZWZlcmVuY2VOb2RlKSB7XG4gICAgICAgIGNvbnN0IHByZXZOb2RlID0gcGFyZW50Tm9kZS5jaGlsZE5vZGVzW3BhcmVudE5vZGUuY2hpbGROb2Rlcy5pbmRleE9mKHJlZmVyZW5jZU5vZGUpIC0gMV07XG4gICAgICAgIGlmIChwcmV2Tm9kZSAmJiBkZWZhdWx0VHJlZUFkYXB0ZXIuaXNUZXh0Tm9kZShwcmV2Tm9kZSkpIHtcbiAgICAgICAgICAgIHByZXZOb2RlLnZhbHVlICs9IHRleHQ7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBkZWZhdWx0VHJlZUFkYXB0ZXIuaW5zZXJ0QmVmb3JlKHBhcmVudE5vZGUsIGNyZWF0ZVRleHROb2RlKHRleHQpLCByZWZlcmVuY2VOb2RlKTtcbiAgICAgICAgfVxuICAgIH0sXG4gICAgYWRvcHRBdHRyaWJ1dGVzKHJlY2lwaWVudCwgYXR0cnMpIHtcbiAgICAgICAgY29uc3QgcmVjaXBpZW50QXR0cnNNYXAgPSBuZXcgU2V0KHJlY2lwaWVudC5hdHRycy5tYXAoKGF0dHIpID0+IGF0dHIubmFtZSkpO1xuICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IGF0dHJzLmxlbmd0aDsgaisrKSB7XG4gICAgICAgICAgICBpZiAoIXJlY2lwaWVudEF0dHJzTWFwLmhhcyhhdHRyc1tqXS5uYW1lKSkge1xuICAgICAgICAgICAgICAgIHJlY2lwaWVudC5hdHRycy5wdXNoKGF0dHJzW2pdKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0sXG4gICAgLy9UcmVlIHRyYXZlcnNpbmdcbiAgICBnZXRGaXJzdENoaWxkKG5vZGUpIHtcbiAgICAgICAgcmV0dXJuIG5vZGUuY2hpbGROb2Rlc1swXTtcbiAgICB9LFxuICAgIGdldENoaWxkTm9kZXMobm9kZSkge1xuICAgICAgICByZXR1cm4gbm9kZS5jaGlsZE5vZGVzO1xuICAgIH0sXG4gICAgZ2V0UGFyZW50Tm9kZShub2RlKSB7XG4gICAgICAgIHJldHVybiBub2RlLnBhcmVudE5vZGU7XG4gICAgfSxcbiAgICBnZXRBdHRyTGlzdChlbGVtZW50KSB7XG4gICAgICAgIHJldHVybiBlbGVtZW50LmF0dHJzO1xuICAgIH0sXG4gICAgLy9Ob2RlIGRhdGFcbiAgICBnZXRUYWdOYW1lKGVsZW1lbnQpIHtcbiAgICAgICAgcmV0dXJuIGVsZW1lbnQudGFnTmFtZTtcbiAgICB9LFxuICAgIGdldE5hbWVzcGFjZVVSSShlbGVtZW50KSB7XG4gICAgICAgIHJldHVybiBlbGVtZW50Lm5hbWVzcGFjZVVSSTtcbiAgICB9LFxuICAgIGdldFRleHROb2RlQ29udGVudCh0ZXh0Tm9kZSkge1xuICAgICAgICByZXR1cm4gdGV4dE5vZGUudmFsdWU7XG4gICAgfSxcbiAgICBnZXRDb21tZW50Tm9kZUNvbnRlbnQoY29tbWVudE5vZGUpIHtcbiAgICAgICAgcmV0dXJuIGNvbW1lbnROb2RlLmRhdGE7XG4gICAgfSxcbiAgICBnZXREb2N1bWVudFR5cGVOb2RlTmFtZShkb2N0eXBlTm9kZSkge1xuICAgICAgICByZXR1cm4gZG9jdHlwZU5vZGUubmFtZTtcbiAgICB9LFxuICAgIGdldERvY3VtZW50VHlwZU5vZGVQdWJsaWNJZChkb2N0eXBlTm9kZSkge1xuICAgICAgICByZXR1cm4gZG9jdHlwZU5vZGUucHVibGljSWQ7XG4gICAgfSxcbiAgICBnZXREb2N1bWVudFR5cGVOb2RlU3lzdGVtSWQoZG9jdHlwZU5vZGUpIHtcbiAgICAgICAgcmV0dXJuIGRvY3R5cGVOb2RlLnN5c3RlbUlkO1xuICAgIH0sXG4gICAgLy9Ob2RlIHR5cGVzXG4gICAgaXNUZXh0Tm9kZShub2RlKSB7XG4gICAgICAgIHJldHVybiBub2RlLm5vZGVOYW1lID09PSAnI3RleHQnO1xuICAgIH0sXG4gICAgaXNDb21tZW50Tm9kZShub2RlKSB7XG4gICAgICAgIHJldHVybiBub2RlLm5vZGVOYW1lID09PSAnI2NvbW1lbnQnO1xuICAgIH0sXG4gICAgaXNEb2N1bWVudFR5cGVOb2RlKG5vZGUpIHtcbiAgICAgICAgcmV0dXJuIG5vZGUubm9kZU5hbWUgPT09ICcjZG9jdW1lbnRUeXBlJztcbiAgICB9LFxuICAgIGlzRWxlbWVudE5vZGUobm9kZSkge1xuICAgICAgICByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG5vZGUsICd0YWdOYW1lJyk7XG4gICAgfSxcbiAgICAvLyBTb3VyY2UgY29kZSBsb2NhdGlvblxuICAgIHNldE5vZGVTb3VyY2VDb2RlTG9jYXRpb24obm9kZSwgbG9jYXRpb24pIHtcbiAgICAgICAgbm9kZS5zb3VyY2VDb2RlTG9jYXRpb24gPSBsb2NhdGlvbjtcbiAgICB9LFxuICAgIGdldE5vZGVTb3VyY2VDb2RlTG9jYXRpb24obm9kZSkge1xuICAgICAgICByZXR1cm4gbm9kZS5zb3VyY2VDb2RlTG9jYXRpb247XG4gICAgfSxcbiAgICB1cGRhdGVOb2RlU291cmNlQ29kZUxvY2F0aW9uKG5vZGUsIGVuZExvY2F0aW9uKSB7XG4gICAgICAgIG5vZGUuc291cmNlQ29kZUxvY2F0aW9uID0geyAuLi5ub2RlLnNvdXJjZUNvZGVMb2NhdGlvbiwgLi4uZW5kTG9jYXRpb24gfTtcbiAgICB9LFxufTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRlZmF1bHQuanMubWFwIiwgImltcG9ydCB7IERPQ1VNRU5UX01PREUgfSBmcm9tICcuL2h0bWwuanMnO1xuLy9Db25zdFxuY29uc3QgVkFMSURfRE9DVFlQRV9OQU1FID0gJ2h0bWwnO1xuY29uc3QgVkFMSURfU1lTVEVNX0lEID0gJ2Fib3V0OmxlZ2FjeS1jb21wYXQnO1xuY29uc3QgUVVJUktTX01PREVfU1lTVEVNX0lEID0gJ2h0dHA6Ly93d3cuaWJtLmNvbS9kYXRhL2R0ZC92MTEvaWJteGh0bWwxLXRyYW5zaXRpb25hbC5kdGQnO1xuY29uc3QgUVVJUktTX01PREVfUFVCTElDX0lEX1BSRUZJWEVTID0gW1xuICAgICcrLy9zaWxtYXJpbC8vZHRkIGh0bWwgcHJvIHYwcjExIDE5OTcwMTAxLy8nLFxuICAgICctLy9hcy8vZHRkIGh0bWwgMy4wIGFzd2VkaXQgKyBleHRlbnNpb25zLy8nLFxuICAgICctLy9hZHZhc29mdCBsdGQvL2R0ZCBodG1sIDMuMCBhc3dlZGl0ICsgZXh0ZW5zaW9ucy8vJyxcbiAgICAnLS8vaWV0Zi8vZHRkIGh0bWwgMi4wIGxldmVsIDEvLycsXG4gICAgJy0vL2lldGYvL2R0ZCBodG1sIDIuMCBsZXZlbCAyLy8nLFxuICAgICctLy9pZXRmLy9kdGQgaHRtbCAyLjAgc3RyaWN0IGxldmVsIDEvLycsXG4gICAgJy0vL2lldGYvL2R0ZCBodG1sIDIuMCBzdHJpY3QgbGV2ZWwgMi8vJyxcbiAgICAnLS8vaWV0Zi8vZHRkIGh0bWwgMi4wIHN0cmljdC8vJyxcbiAgICAnLS8vaWV0Zi8vZHRkIGh0bWwgMi4wLy8nLFxuICAgICctLy9pZXRmLy9kdGQgaHRtbCAyLjFlLy8nLFxuICAgICctLy9pZXRmLy9kdGQgaHRtbCAzLjAvLycsXG4gICAgJy0vL2lldGYvL2R0ZCBodG1sIDMuMiBmaW5hbC8vJyxcbiAgICAnLS8vaWV0Zi8vZHRkIGh0bWwgMy4yLy8nLFxuICAgICctLy9pZXRmLy9kdGQgaHRtbCAzLy8nLFxuICAgICctLy9pZXRmLy9kdGQgaHRtbCBsZXZlbCAwLy8nLFxuICAgICctLy9pZXRmLy9kdGQgaHRtbCBsZXZlbCAxLy8nLFxuICAgICctLy9pZXRmLy9kdGQgaHRtbCBsZXZlbCAyLy8nLFxuICAgICctLy9pZXRmLy9kdGQgaHRtbCBsZXZlbCAzLy8nLFxuICAgICctLy9pZXRmLy9kdGQgaHRtbCBzdHJpY3QgbGV2ZWwgMC8vJyxcbiAgICAnLS8vaWV0Zi8vZHRkIGh0bWwgc3RyaWN0IGxldmVsIDEvLycsXG4gICAgJy0vL2lldGYvL2R0ZCBodG1sIHN0cmljdCBsZXZlbCAyLy8nLFxuICAgICctLy9pZXRmLy9kdGQgaHRtbCBzdHJpY3QgbGV2ZWwgMy8vJyxcbiAgICAnLS8vaWV0Zi8vZHRkIGh0bWwgc3RyaWN0Ly8nLFxuICAgICctLy9pZXRmLy9kdGQgaHRtbC8vJyxcbiAgICAnLS8vbWV0cml1cy8vZHRkIG1ldHJpdXMgcHJlc2VudGF0aW9uYWwvLycsXG4gICAgJy0vL21pY3Jvc29mdC8vZHRkIGludGVybmV0IGV4cGxvcmVyIDIuMCBodG1sIHN0cmljdC8vJyxcbiAgICAnLS8vbWljcm9zb2Z0Ly9kdGQgaW50ZXJuZXQgZXhwbG9yZXIgMi4wIGh0bWwvLycsXG4gICAgJy0vL21pY3Jvc29mdC8vZHRkIGludGVybmV0IGV4cGxvcmVyIDIuMCB0YWJsZXMvLycsXG4gICAgJy0vL21pY3Jvc29mdC8vZHRkIGludGVybmV0IGV4cGxvcmVyIDMuMCBodG1sIHN0cmljdC8vJyxcbiAgICAnLS8vbWljcm9zb2Z0Ly9kdGQgaW50ZXJuZXQgZXhwbG9yZXIgMy4wIGh0bWwvLycsXG4gICAgJy0vL21pY3Jvc29mdC8vZHRkIGludGVybmV0IGV4cGxvcmVyIDMuMCB0YWJsZXMvLycsXG4gICAgJy0vL25ldHNjYXBlIGNvbW0uIGNvcnAuLy9kdGQgaHRtbC8vJyxcbiAgICAnLS8vbmV0c2NhcGUgY29tbS4gY29ycC4vL2R0ZCBzdHJpY3QgaHRtbC8vJyxcbiAgICBcIi0vL28ncmVpbGx5IGFuZCBhc3NvY2lhdGVzLy9kdGQgaHRtbCAyLjAvL1wiLFxuICAgIFwiLS8vbydyZWlsbHkgYW5kIGFzc29jaWF0ZXMvL2R0ZCBodG1sIGV4dGVuZGVkIDEuMC8vXCIsXG4gICAgXCItLy9vJ3JlaWxseSBhbmQgYXNzb2NpYXRlcy8vZHRkIGh0bWwgZXh0ZW5kZWQgcmVsYXhlZCAxLjAvL1wiLFxuICAgICctLy9zcS8vZHRkIGh0bWwgMi4wIGhvdG1ldGFsICsgZXh0ZW5zaW9ucy8vJyxcbiAgICAnLS8vc29mdHF1YWQgc29mdHdhcmUvL2R0ZCBob3RtZXRhbCBwcm8gNi4wOjoxOTk5MDYwMTo6ZXh0ZW5zaW9ucyB0byBodG1sIDQuMC8vJyxcbiAgICAnLS8vc29mdHF1YWQvL2R0ZCBob3RtZXRhbCBwcm8gNC4wOjoxOTk3MTAxMDo6ZXh0ZW5zaW9ucyB0byBodG1sIDQuMC8vJyxcbiAgICAnLS8vc3B5Z2xhc3MvL2R0ZCBodG1sIDIuMCBleHRlbmRlZC8vJyxcbiAgICAnLS8vc3VuIG1pY3Jvc3lzdGVtcyBjb3JwLi8vZHRkIGhvdGphdmEgaHRtbC8vJyxcbiAgICAnLS8vc3VuIG1pY3Jvc3lzdGVtcyBjb3JwLi8vZHRkIGhvdGphdmEgc3RyaWN0IGh0bWwvLycsXG4gICAgJy0vL3czYy8vZHRkIGh0bWwgMyAxOTk1LTAzLTI0Ly8nLFxuICAgICctLy93M2MvL2R0ZCBodG1sIDMuMiBkcmFmdC8vJyxcbiAgICAnLS8vdzNjLy9kdGQgaHRtbCAzLjIgZmluYWwvLycsXG4gICAgJy0vL3czYy8vZHRkIGh0bWwgMy4yLy8nLFxuICAgICctLy93M2MvL2R0ZCBodG1sIDMuMnMgZHJhZnQvLycsXG4gICAgJy0vL3czYy8vZHRkIGh0bWwgNC4wIGZyYW1lc2V0Ly8nLFxuICAgICctLy93M2MvL2R0ZCBodG1sIDQuMCB0cmFuc2l0aW9uYWwvLycsXG4gICAgJy0vL3czYy8vZHRkIGh0bWwgZXhwZXJpbWVudGFsIDE5OTYwNzEyLy8nLFxuICAgICctLy93M2MvL2R0ZCBodG1sIGV4cGVyaW1lbnRhbCA5NzA0MjEvLycsXG4gICAgJy0vL3czYy8vZHRkIHczIGh0bWwvLycsXG4gICAgJy0vL3czby8vZHRkIHczIGh0bWwgMy4wLy8nLFxuICAgICctLy93ZWJ0ZWNocy8vZHRkIG1vemlsbGEgaHRtbCAyLjAvLycsXG4gICAgJy0vL3dlYnRlY2hzLy9kdGQgbW96aWxsYSBodG1sLy8nLFxuXTtcbmNvbnN0IFFVSVJLU19NT0RFX05PX1NZU1RFTV9JRF9QVUJMSUNfSURfUFJFRklYRVMgPSBbXG4gICAgLi4uUVVJUktTX01PREVfUFVCTElDX0lEX1BSRUZJWEVTLFxuICAgICctLy93M2MvL2R0ZCBodG1sIDQuMDEgZnJhbWVzZXQvLycsXG4gICAgJy0vL3czYy8vZHRkIGh0bWwgNC4wMSB0cmFuc2l0aW9uYWwvLycsXG5dO1xuY29uc3QgUVVJUktTX01PREVfUFVCTElDX0lEUyA9IG5ldyBTZXQoW1xuICAgICctLy93M28vL2R0ZCB3MyBodG1sIHN0cmljdCAzLjAvL2VuLy8nLFxuICAgICctL3czYy9kdGQgaHRtbCA0LjAgdHJhbnNpdGlvbmFsL2VuJyxcbiAgICAnaHRtbCcsXG5dKTtcbmNvbnN0IExJTUlURURfUVVJUktTX1BVQkxJQ19JRF9QUkVGSVhFUyA9IFsnLS8vdzNjLy9kdGQgeGh0bWwgMS4wIGZyYW1lc2V0Ly8nLCAnLS8vdzNjLy9kdGQgeGh0bWwgMS4wIHRyYW5zaXRpb25hbC8vJ107XG5jb25zdCBMSU1JVEVEX1FVSVJLU19XSVRIX1NZU1RFTV9JRF9QVUJMSUNfSURfUFJFRklYRVMgPSBbXG4gICAgLi4uTElNSVRFRF9RVUlSS1NfUFVCTElDX0lEX1BSRUZJWEVTLFxuICAgICctLy93M2MvL2R0ZCBodG1sIDQuMDEgZnJhbWVzZXQvLycsXG4gICAgJy0vL3czYy8vZHRkIGh0bWwgNC4wMSB0cmFuc2l0aW9uYWwvLycsXG5dO1xuLy9VdGlsc1xuZnVuY3Rpb24gaGFzUHJlZml4KHB1YmxpY0lkLCBwcmVmaXhlcykge1xuICAgIHJldHVybiBwcmVmaXhlcy5zb21lKChwcmVmaXgpID0+IHB1YmxpY0lkLnN0YXJ0c1dpdGgocHJlZml4KSk7XG59XG4vL0FQSVxuZXhwb3J0IGZ1bmN0aW9uIGlzQ29uZm9ybWluZyh0b2tlbikge1xuICAgIHJldHVybiAodG9rZW4ubmFtZSA9PT0gVkFMSURfRE9DVFlQRV9OQU1FICYmXG4gICAgICAgIHRva2VuLnB1YmxpY0lkID09PSBudWxsICYmXG4gICAgICAgICh0b2tlbi5zeXN0ZW1JZCA9PT0gbnVsbCB8fCB0b2tlbi5zeXN0ZW1JZCA9PT0gVkFMSURfU1lTVEVNX0lEKSk7XG59XG5leHBvcnQgZnVuY3Rpb24gZ2V0RG9jdW1lbnRNb2RlKHRva2VuKSB7XG4gICAgaWYgKHRva2VuLm5hbWUgIT09IFZBTElEX0RPQ1RZUEVfTkFNRSkge1xuICAgICAgICByZXR1cm4gRE9DVU1FTlRfTU9ERS5RVUlSS1M7XG4gICAgfVxuICAgIGNvbnN0IHsgc3lzdGVtSWQgfSA9IHRva2VuO1xuICAgIGlmIChzeXN0ZW1JZCAmJiBzeXN0ZW1JZC50b0xvd2VyQ2FzZSgpID09PSBRVUlSS1NfTU9ERV9TWVNURU1fSUQpIHtcbiAgICAgICAgcmV0dXJuIERPQ1VNRU5UX01PREUuUVVJUktTO1xuICAgIH1cbiAgICBsZXQgeyBwdWJsaWNJZCB9ID0gdG9rZW47XG4gICAgaWYgKHB1YmxpY0lkICE9PSBudWxsKSB7XG4gICAgICAgIHB1YmxpY0lkID0gcHVibGljSWQudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgaWYgKFFVSVJLU19NT0RFX1BVQkxJQ19JRFMuaGFzKHB1YmxpY0lkKSkge1xuICAgICAgICAgICAgcmV0dXJuIERPQ1VNRU5UX01PREUuUVVJUktTO1xuICAgICAgICB9XG4gICAgICAgIGxldCBwcmVmaXhlcyA9IHN5c3RlbUlkID09PSBudWxsID8gUVVJUktTX01PREVfTk9fU1lTVEVNX0lEX1BVQkxJQ19JRF9QUkVGSVhFUyA6IFFVSVJLU19NT0RFX1BVQkxJQ19JRF9QUkVGSVhFUztcbiAgICAgICAgaWYgKGhhc1ByZWZpeChwdWJsaWNJZCwgcHJlZml4ZXMpKSB7XG4gICAgICAgICAgICByZXR1cm4gRE9DVU1FTlRfTU9ERS5RVUlSS1M7XG4gICAgICAgIH1cbiAgICAgICAgcHJlZml4ZXMgPVxuICAgICAgICAgICAgc3lzdGVtSWQgPT09IG51bGwgPyBMSU1JVEVEX1FVSVJLU19QVUJMSUNfSURfUFJFRklYRVMgOiBMSU1JVEVEX1FVSVJLU19XSVRIX1NZU1RFTV9JRF9QVUJMSUNfSURfUFJFRklYRVM7XG4gICAgICAgIGlmIChoYXNQcmVmaXgocHVibGljSWQsIHByZWZpeGVzKSkge1xuICAgICAgICAgICAgcmV0dXJuIERPQ1VNRU5UX01PREUuTElNSVRFRF9RVUlSS1M7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIERPQ1VNRU5UX01PREUuTk9fUVVJUktTO1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZG9jdHlwZS5qcy5tYXAiLCAiaW1wb3J0IHsgVEFHX0lEIGFzICQsIE5TLCBBVFRSUywgZ2V0VGFnSUQgfSBmcm9tICcuL2h0bWwuanMnO1xuLy9NSU1FIHR5cGVzXG5jb25zdCBNSU1FX1RZUEVTID0ge1xuICAgIFRFWFRfSFRNTDogJ3RleHQvaHRtbCcsXG4gICAgQVBQTElDQVRJT05fWE1MOiAnYXBwbGljYXRpb24veGh0bWwreG1sJyxcbn07XG4vL0F0dHJpYnV0ZXNcbmNvbnN0IERFRklOSVRJT05fVVJMX0FUVFIgPSAnZGVmaW5pdGlvbnVybCc7XG5jb25zdCBBREpVU1RFRF9ERUZJTklUSU9OX1VSTF9BVFRSID0gJ2RlZmluaXRpb25VUkwnO1xuY29uc3QgU1ZHX0FUVFJTX0FESlVTVE1FTlRfTUFQID0gbmV3IE1hcChbXG4gICAgJ2F0dHJpYnV0ZU5hbWUnLFxuICAgICdhdHRyaWJ1dGVUeXBlJyxcbiAgICAnYmFzZUZyZXF1ZW5jeScsXG4gICAgJ2Jhc2VQcm9maWxlJyxcbiAgICAnY2FsY01vZGUnLFxuICAgICdjbGlwUGF0aFVuaXRzJyxcbiAgICAnZGlmZnVzZUNvbnN0YW50JyxcbiAgICAnZWRnZU1vZGUnLFxuICAgICdmaWx0ZXJVbml0cycsXG4gICAgJ2dseXBoUmVmJyxcbiAgICAnZ3JhZGllbnRUcmFuc2Zvcm0nLFxuICAgICdncmFkaWVudFVuaXRzJyxcbiAgICAna2VybmVsTWF0cml4JyxcbiAgICAna2VybmVsVW5pdExlbmd0aCcsXG4gICAgJ2tleVBvaW50cycsXG4gICAgJ2tleVNwbGluZXMnLFxuICAgICdrZXlUaW1lcycsXG4gICAgJ2xlbmd0aEFkanVzdCcsXG4gICAgJ2xpbWl0aW5nQ29uZUFuZ2xlJyxcbiAgICAnbWFya2VySGVpZ2h0JyxcbiAgICAnbWFya2VyVW5pdHMnLFxuICAgICdtYXJrZXJXaWR0aCcsXG4gICAgJ21hc2tDb250ZW50VW5pdHMnLFxuICAgICdtYXNrVW5pdHMnLFxuICAgICdudW1PY3RhdmVzJyxcbiAgICAncGF0aExlbmd0aCcsXG4gICAgJ3BhdHRlcm5Db250ZW50VW5pdHMnLFxuICAgICdwYXR0ZXJuVHJhbnNmb3JtJyxcbiAgICAncGF0dGVyblVuaXRzJyxcbiAgICAncG9pbnRzQXRYJyxcbiAgICAncG9pbnRzQXRZJyxcbiAgICAncG9pbnRzQXRaJyxcbiAgICAncHJlc2VydmVBbHBoYScsXG4gICAgJ3ByZXNlcnZlQXNwZWN0UmF0aW8nLFxuICAgICdwcmltaXRpdmVVbml0cycsXG4gICAgJ3JlZlgnLFxuICAgICdyZWZZJyxcbiAgICAncmVwZWF0Q291bnQnLFxuICAgICdyZXBlYXREdXInLFxuICAgICdyZXF1aXJlZEV4dGVuc2lvbnMnLFxuICAgICdyZXF1aXJlZEZlYXR1cmVzJyxcbiAgICAnc3BlY3VsYXJDb25zdGFudCcsXG4gICAgJ3NwZWN1bGFyRXhwb25lbnQnLFxuICAgICdzcHJlYWRNZXRob2QnLFxuICAgICdzdGFydE9mZnNldCcsXG4gICAgJ3N0ZERldmlhdGlvbicsXG4gICAgJ3N0aXRjaFRpbGVzJyxcbiAgICAnc3VyZmFjZVNjYWxlJyxcbiAgICAnc3lzdGVtTGFuZ3VhZ2UnLFxuICAgICd0YWJsZVZhbHVlcycsXG4gICAgJ3RhcmdldFgnLFxuICAgICd0YXJnZXRZJyxcbiAgICAndGV4dExlbmd0aCcsXG4gICAgJ3ZpZXdCb3gnLFxuICAgICd2aWV3VGFyZ2V0JyxcbiAgICAneENoYW5uZWxTZWxlY3RvcicsXG4gICAgJ3lDaGFubmVsU2VsZWN0b3InLFxuICAgICd6b29tQW5kUGFuJyxcbl0ubWFwKChhdHRyKSA9PiBbYXR0ci50b0xvd2VyQ2FzZSgpLCBhdHRyXSkpO1xuY29uc3QgWE1MX0FUVFJTX0FESlVTVE1FTlRfTUFQID0gbmV3IE1hcChbXG4gICAgWyd4bGluazphY3R1YXRlJywgeyBwcmVmaXg6ICd4bGluaycsIG5hbWU6ICdhY3R1YXRlJywgbmFtZXNwYWNlOiBOUy5YTElOSyB9XSxcbiAgICBbJ3hsaW5rOmFyY3JvbGUnLCB7IHByZWZpeDogJ3hsaW5rJywgbmFtZTogJ2FyY3JvbGUnLCBuYW1lc3BhY2U6IE5TLlhMSU5LIH1dLFxuICAgIFsneGxpbms6aHJlZicsIHsgcHJlZml4OiAneGxpbmsnLCBuYW1lOiAnaHJlZicsIG5hbWVzcGFjZTogTlMuWExJTksgfV0sXG4gICAgWyd4bGluazpyb2xlJywgeyBwcmVmaXg6ICd4bGluaycsIG5hbWU6ICdyb2xlJywgbmFtZXNwYWNlOiBOUy5YTElOSyB9XSxcbiAgICBbJ3hsaW5rOnNob3cnLCB7IHByZWZpeDogJ3hsaW5rJywgbmFtZTogJ3Nob3cnLCBuYW1lc3BhY2U6IE5TLlhMSU5LIH1dLFxuICAgIFsneGxpbms6dGl0bGUnLCB7IHByZWZpeDogJ3hsaW5rJywgbmFtZTogJ3RpdGxlJywgbmFtZXNwYWNlOiBOUy5YTElOSyB9XSxcbiAgICBbJ3hsaW5rOnR5cGUnLCB7IHByZWZpeDogJ3hsaW5rJywgbmFtZTogJ3R5cGUnLCBuYW1lc3BhY2U6IE5TLlhMSU5LIH1dLFxuICAgIFsneG1sOmJhc2UnLCB7IHByZWZpeDogJ3htbCcsIG5hbWU6ICdiYXNlJywgbmFtZXNwYWNlOiBOUy5YTUwgfV0sXG4gICAgWyd4bWw6bGFuZycsIHsgcHJlZml4OiAneG1sJywgbmFtZTogJ2xhbmcnLCBuYW1lc3BhY2U6IE5TLlhNTCB9XSxcbiAgICBbJ3htbDpzcGFjZScsIHsgcHJlZml4OiAneG1sJywgbmFtZTogJ3NwYWNlJywgbmFtZXNwYWNlOiBOUy5YTUwgfV0sXG4gICAgWyd4bWxucycsIHsgcHJlZml4OiAnJywgbmFtZTogJ3htbG5zJywgbmFtZXNwYWNlOiBOUy5YTUxOUyB9XSxcbiAgICBbJ3htbG5zOnhsaW5rJywgeyBwcmVmaXg6ICd4bWxucycsIG5hbWU6ICd4bGluaycsIG5hbWVzcGFjZTogTlMuWE1MTlMgfV0sXG5dKTtcbi8vU1ZHIHRhZyBuYW1lcyBhZGp1c3RtZW50IG1hcFxuZXhwb3J0IGNvbnN0IFNWR19UQUdfTkFNRVNfQURKVVNUTUVOVF9NQVAgPSBuZXcgTWFwKFtcbiAgICAnYWx0R2x5cGgnLFxuICAgICdhbHRHbHlwaERlZicsXG4gICAgJ2FsdEdseXBoSXRlbScsXG4gICAgJ2FuaW1hdGVDb2xvcicsXG4gICAgJ2FuaW1hdGVNb3Rpb24nLFxuICAgICdhbmltYXRlVHJhbnNmb3JtJyxcbiAgICAnY2xpcFBhdGgnLFxuICAgICdmZUJsZW5kJyxcbiAgICAnZmVDb2xvck1hdHJpeCcsXG4gICAgJ2ZlQ29tcG9uZW50VHJhbnNmZXInLFxuICAgICdmZUNvbXBvc2l0ZScsXG4gICAgJ2ZlQ29udm9sdmVNYXRyaXgnLFxuICAgICdmZURpZmZ1c2VMaWdodGluZycsXG4gICAgJ2ZlRGlzcGxhY2VtZW50TWFwJyxcbiAgICAnZmVEaXN0YW50TGlnaHQnLFxuICAgICdmZUZsb29kJyxcbiAgICAnZmVGdW5jQScsXG4gICAgJ2ZlRnVuY0InLFxuICAgICdmZUZ1bmNHJyxcbiAgICAnZmVGdW5jUicsXG4gICAgJ2ZlR2F1c3NpYW5CbHVyJyxcbiAgICAnZmVJbWFnZScsXG4gICAgJ2ZlTWVyZ2UnLFxuICAgICdmZU1lcmdlTm9kZScsXG4gICAgJ2ZlTW9ycGhvbG9neScsXG4gICAgJ2ZlT2Zmc2V0JyxcbiAgICAnZmVQb2ludExpZ2h0JyxcbiAgICAnZmVTcGVjdWxhckxpZ2h0aW5nJyxcbiAgICAnZmVTcG90TGlnaHQnLFxuICAgICdmZVRpbGUnLFxuICAgICdmZVR1cmJ1bGVuY2UnLFxuICAgICdmb3JlaWduT2JqZWN0JyxcbiAgICAnZ2x5cGhSZWYnLFxuICAgICdsaW5lYXJHcmFkaWVudCcsXG4gICAgJ3JhZGlhbEdyYWRpZW50JyxcbiAgICAndGV4dFBhdGgnLFxuXS5tYXAoKHRuKSA9PiBbdG4udG9Mb3dlckNhc2UoKSwgdG5dKSk7XG4vL1RhZ3MgdGhhdCBjYXVzZXMgZXhpdCBmcm9tIGZvcmVpZ24gY29udGVudFxuY29uc3QgRVhJVFNfRk9SRUlHTl9DT05URU5UID0gbmV3IFNldChbXG4gICAgJC5CLFxuICAgICQuQklHLFxuICAgICQuQkxPQ0tRVU9URSxcbiAgICAkLkJPRFksXG4gICAgJC5CUixcbiAgICAkLkNFTlRFUixcbiAgICAkLkNPREUsXG4gICAgJC5ERCxcbiAgICAkLkRJVixcbiAgICAkLkRMLFxuICAgICQuRFQsXG4gICAgJC5FTSxcbiAgICAkLkVNQkVELFxuICAgICQuSDEsXG4gICAgJC5IMixcbiAgICAkLkgzLFxuICAgICQuSDQsXG4gICAgJC5INSxcbiAgICAkLkg2LFxuICAgICQuSEVBRCxcbiAgICAkLkhSLFxuICAgICQuSSxcbiAgICAkLklNRyxcbiAgICAkLkxJLFxuICAgICQuTElTVElORyxcbiAgICAkLk1FTlUsXG4gICAgJC5NRVRBLFxuICAgICQuTk9CUixcbiAgICAkLk9MLFxuICAgICQuUCxcbiAgICAkLlBSRSxcbiAgICAkLlJVQlksXG4gICAgJC5TLFxuICAgICQuU01BTEwsXG4gICAgJC5TUEFOLFxuICAgICQuU1RST05HLFxuICAgICQuU1RSSUtFLFxuICAgICQuU1VCLFxuICAgICQuU1VQLFxuICAgICQuVEFCTEUsXG4gICAgJC5UVCxcbiAgICAkLlUsXG4gICAgJC5VTCxcbiAgICAkLlZBUixcbl0pO1xuLy9DaGVjayBleGl0IGZyb20gZm9yZWlnbiBjb250ZW50XG5leHBvcnQgZnVuY3Rpb24gY2F1c2VzRXhpdChzdGFydFRhZ1Rva2VuKSB7XG4gICAgY29uc3QgdG4gPSBzdGFydFRhZ1Rva2VuLnRhZ0lEO1xuICAgIGNvbnN0IGlzRm9udFdpdGhBdHRycyA9IHRuID09PSAkLkZPTlQgJiZcbiAgICAgICAgc3RhcnRUYWdUb2tlbi5hdHRycy5zb21lKCh7IG5hbWUgfSkgPT4gbmFtZSA9PT0gQVRUUlMuQ09MT1IgfHwgbmFtZSA9PT0gQVRUUlMuU0laRSB8fCBuYW1lID09PSBBVFRSUy5GQUNFKTtcbiAgICByZXR1cm4gaXNGb250V2l0aEF0dHJzIHx8IEVYSVRTX0ZPUkVJR05fQ09OVEVOVC5oYXModG4pO1xufVxuLy9Ub2tlbiBhZGp1c3RtZW50c1xuZXhwb3J0IGZ1bmN0aW9uIGFkanVzdFRva2VuTWF0aE1MQXR0cnModG9rZW4pIHtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRva2VuLmF0dHJzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGlmICh0b2tlbi5hdHRyc1tpXS5uYW1lID09PSBERUZJTklUSU9OX1VSTF9BVFRSKSB7XG4gICAgICAgICAgICB0b2tlbi5hdHRyc1tpXS5uYW1lID0gQURKVVNURURfREVGSU5JVElPTl9VUkxfQVRUUjtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgfVxufVxuZXhwb3J0IGZ1bmN0aW9uIGFkanVzdFRva2VuU1ZHQXR0cnModG9rZW4pIHtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRva2VuLmF0dHJzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGNvbnN0IGFkanVzdGVkQXR0ck5hbWUgPSBTVkdfQVRUUlNfQURKVVNUTUVOVF9NQVAuZ2V0KHRva2VuLmF0dHJzW2ldLm5hbWUpO1xuICAgICAgICBpZiAoYWRqdXN0ZWRBdHRyTmFtZSAhPSBudWxsKSB7XG4gICAgICAgICAgICB0b2tlbi5hdHRyc1tpXS5uYW1lID0gYWRqdXN0ZWRBdHRyTmFtZTtcbiAgICAgICAgfVxuICAgIH1cbn1cbmV4cG9ydCBmdW5jdGlvbiBhZGp1c3RUb2tlblhNTEF0dHJzKHRva2VuKSB7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0b2tlbi5hdHRycy5sZW5ndGg7IGkrKykge1xuICAgICAgICBjb25zdCBhZGp1c3RlZEF0dHJFbnRyeSA9IFhNTF9BVFRSU19BREpVU1RNRU5UX01BUC5nZXQodG9rZW4uYXR0cnNbaV0ubmFtZSk7XG4gICAgICAgIGlmIChhZGp1c3RlZEF0dHJFbnRyeSkge1xuICAgICAgICAgICAgdG9rZW4uYXR0cnNbaV0ucHJlZml4ID0gYWRqdXN0ZWRBdHRyRW50cnkucHJlZml4O1xuICAgICAgICAgICAgdG9rZW4uYXR0cnNbaV0ubmFtZSA9IGFkanVzdGVkQXR0ckVudHJ5Lm5hbWU7XG4gICAgICAgICAgICB0b2tlbi5hdHRyc1tpXS5uYW1lc3BhY2UgPSBhZGp1c3RlZEF0dHJFbnRyeS5uYW1lc3BhY2U7XG4gICAgICAgIH1cbiAgICB9XG59XG5leHBvcnQgZnVuY3Rpb24gYWRqdXN0VG9rZW5TVkdUYWdOYW1lKHRva2VuKSB7XG4gICAgY29uc3QgYWRqdXN0ZWRUYWdOYW1lID0gU1ZHX1RBR19OQU1FU19BREpVU1RNRU5UX01BUC5nZXQodG9rZW4udGFnTmFtZSk7XG4gICAgaWYgKGFkanVzdGVkVGFnTmFtZSAhPSBudWxsKSB7XG4gICAgICAgIHRva2VuLnRhZ05hbWUgPSBhZGp1c3RlZFRhZ05hbWU7XG4gICAgICAgIHRva2VuLnRhZ0lEID0gZ2V0VGFnSUQodG9rZW4udGFnTmFtZSk7XG4gICAgfVxufVxuLy9JbnRlZ3JhdGlvbiBwb2ludHNcbmZ1bmN0aW9uIGlzTWF0aE1MVGV4dEludGVncmF0aW9uUG9pbnQodG4sIG5zKSB7XG4gICAgcmV0dXJuIG5zID09PSBOUy5NQVRITUwgJiYgKHRuID09PSAkLk1JIHx8IHRuID09PSAkLk1PIHx8IHRuID09PSAkLk1OIHx8IHRuID09PSAkLk1TIHx8IHRuID09PSAkLk1URVhUKTtcbn1cbmZ1bmN0aW9uIGlzSHRtbEludGVncmF0aW9uUG9pbnQodG4sIG5zLCBhdHRycykge1xuICAgIGlmIChucyA9PT0gTlMuTUFUSE1MICYmIHRuID09PSAkLkFOTk9UQVRJT05fWE1MKSB7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYXR0cnMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChhdHRyc1tpXS5uYW1lID09PSBBVFRSUy5FTkNPRElORykge1xuICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gYXR0cnNbaV0udmFsdWUudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWUgPT09IE1JTUVfVFlQRVMuVEVYVF9IVE1MIHx8IHZhbHVlID09PSBNSU1FX1RZUEVTLkFQUExJQ0FUSU9OX1hNTDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbnMgPT09IE5TLlNWRyAmJiAodG4gPT09ICQuRk9SRUlHTl9PQkpFQ1QgfHwgdG4gPT09ICQuREVTQyB8fCB0biA9PT0gJC5USVRMRSk7XG59XG5leHBvcnQgZnVuY3Rpb24gaXNJbnRlZ3JhdGlvblBvaW50KHRuLCBucywgYXR0cnMsIGZvcmVpZ25OUykge1xuICAgIHJldHVybiAoKCghZm9yZWlnbk5TIHx8IGZvcmVpZ25OUyA9PT0gTlMuSFRNTCkgJiYgaXNIdG1sSW50ZWdyYXRpb25Qb2ludCh0biwgbnMsIGF0dHJzKSkgfHxcbiAgICAgICAgKCghZm9yZWlnbk5TIHx8IGZvcmVpZ25OUyA9PT0gTlMuTUFUSE1MKSAmJiBpc01hdGhNTFRleHRJbnRlZ3JhdGlvblBvaW50KHRuLCBucykpKTtcbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWZvcmVpZ24tY29udGVudC5qcy5tYXAiLCAiaW1wb3J0IHsgVG9rZW5pemVyLCBUb2tlbml6ZXJNb2RlIH0gZnJvbSAnLi4vdG9rZW5pemVyL2luZGV4LmpzJztcbmltcG9ydCB7IE9wZW5FbGVtZW50U3RhY2sgfSBmcm9tICcuL29wZW4tZWxlbWVudC1zdGFjay5qcyc7XG5pbXBvcnQgeyBGb3JtYXR0aW5nRWxlbWVudExpc3QsIEVudHJ5VHlwZSB9IGZyb20gJy4vZm9ybWF0dGluZy1lbGVtZW50LWxpc3QuanMnO1xuaW1wb3J0IHsgZGVmYXVsdFRyZWVBZGFwdGVyIH0gZnJvbSAnLi4vdHJlZS1hZGFwdGVycy9kZWZhdWx0LmpzJztcbmltcG9ydCAqIGFzIGRvY3R5cGUgZnJvbSAnLi4vY29tbW9uL2RvY3R5cGUuanMnO1xuaW1wb3J0ICogYXMgZm9yZWlnbkNvbnRlbnQgZnJvbSAnLi4vY29tbW9uL2ZvcmVpZ24tY29udGVudC5qcyc7XG5pbXBvcnQgeyBFUlIgfSBmcm9tICcuLi9jb21tb24vZXJyb3ItY29kZXMuanMnO1xuaW1wb3J0ICogYXMgdW5pY29kZSBmcm9tICcuLi9jb21tb24vdW5pY29kZS5qcyc7XG5pbXBvcnQgeyBUQUdfSUQgYXMgJCwgVEFHX05BTUVTIGFzIFROLCBOUywgQVRUUlMsIFNQRUNJQUxfRUxFTUVOVFMsIERPQ1VNRU5UX01PREUsIGlzTnVtYmVyZWRIZWFkZXIsIGdldFRhZ0lELCB9IGZyb20gJy4uL2NvbW1vbi9odG1sLmpzJztcbmltcG9ydCB7IFRva2VuVHlwZSwgZ2V0VG9rZW5BdHRyLCB9IGZyb20gJy4uL2NvbW1vbi90b2tlbi5qcyc7XG4vL01pc2MgY29uc3RhbnRzXG5jb25zdCBISURERU5fSU5QVVRfVFlQRSA9ICdoaWRkZW4nO1xuLy9BZG9wdGlvbiBhZ2VuY3kgbG9vcHMgaXRlcmF0aW9uIGNvdW50XG5jb25zdCBBQV9PVVRFUl9MT09QX0lURVIgPSA4O1xuY29uc3QgQUFfSU5ORVJfTE9PUF9JVEVSID0gMztcbi8vSW5zZXJ0aW9uIG1vZGVzXG52YXIgSW5zZXJ0aW9uTW9kZTtcbihmdW5jdGlvbiAoSW5zZXJ0aW9uTW9kZSkge1xuICAgIEluc2VydGlvbk1vZGVbSW5zZXJ0aW9uTW9kZVtcIklOSVRJQUxcIl0gPSAwXSA9IFwiSU5JVElBTFwiO1xuICAgIEluc2VydGlvbk1vZGVbSW5zZXJ0aW9uTW9kZVtcIkJFRk9SRV9IVE1MXCJdID0gMV0gPSBcIkJFRk9SRV9IVE1MXCI7XG4gICAgSW5zZXJ0aW9uTW9kZVtJbnNlcnRpb25Nb2RlW1wiQkVGT1JFX0hFQURcIl0gPSAyXSA9IFwiQkVGT1JFX0hFQURcIjtcbiAgICBJbnNlcnRpb25Nb2RlW0luc2VydGlvbk1vZGVbXCJJTl9IRUFEXCJdID0gM10gPSBcIklOX0hFQURcIjtcbiAgICBJbnNlcnRpb25Nb2RlW0luc2VydGlvbk1vZGVbXCJJTl9IRUFEX05PX1NDUklQVFwiXSA9IDRdID0gXCJJTl9IRUFEX05PX1NDUklQVFwiO1xuICAgIEluc2VydGlvbk1vZGVbSW5zZXJ0aW9uTW9kZVtcIkFGVEVSX0hFQURcIl0gPSA1XSA9IFwiQUZURVJfSEVBRFwiO1xuICAgIEluc2VydGlvbk1vZGVbSW5zZXJ0aW9uTW9kZVtcIklOX0JPRFlcIl0gPSA2XSA9IFwiSU5fQk9EWVwiO1xuICAgIEluc2VydGlvbk1vZGVbSW5zZXJ0aW9uTW9kZVtcIlRFWFRcIl0gPSA3XSA9IFwiVEVYVFwiO1xuICAgIEluc2VydGlvbk1vZGVbSW5zZXJ0aW9uTW9kZVtcIklOX1RBQkxFXCJdID0gOF0gPSBcIklOX1RBQkxFXCI7XG4gICAgSW5zZXJ0aW9uTW9kZVtJbnNlcnRpb25Nb2RlW1wiSU5fVEFCTEVfVEVYVFwiXSA9IDldID0gXCJJTl9UQUJMRV9URVhUXCI7XG4gICAgSW5zZXJ0aW9uTW9kZVtJbnNlcnRpb25Nb2RlW1wiSU5fQ0FQVElPTlwiXSA9IDEwXSA9IFwiSU5fQ0FQVElPTlwiO1xuICAgIEluc2VydGlvbk1vZGVbSW5zZXJ0aW9uTW9kZVtcIklOX0NPTFVNTl9HUk9VUFwiXSA9IDExXSA9IFwiSU5fQ09MVU1OX0dST1VQXCI7XG4gICAgSW5zZXJ0aW9uTW9kZVtJbnNlcnRpb25Nb2RlW1wiSU5fVEFCTEVfQk9EWVwiXSA9IDEyXSA9IFwiSU5fVEFCTEVfQk9EWVwiO1xuICAgIEluc2VydGlvbk1vZGVbSW5zZXJ0aW9uTW9kZVtcIklOX1JPV1wiXSA9IDEzXSA9IFwiSU5fUk9XXCI7XG4gICAgSW5zZXJ0aW9uTW9kZVtJbnNlcnRpb25Nb2RlW1wiSU5fQ0VMTFwiXSA9IDE0XSA9IFwiSU5fQ0VMTFwiO1xuICAgIEluc2VydGlvbk1vZGVbSW5zZXJ0aW9uTW9kZVtcIklOX1NFTEVDVFwiXSA9IDE1XSA9IFwiSU5fU0VMRUNUXCI7XG4gICAgSW5zZXJ0aW9uTW9kZVtJbnNlcnRpb25Nb2RlW1wiSU5fU0VMRUNUX0lOX1RBQkxFXCJdID0gMTZdID0gXCJJTl9TRUxFQ1RfSU5fVEFCTEVcIjtcbiAgICBJbnNlcnRpb25Nb2RlW0luc2VydGlvbk1vZGVbXCJJTl9URU1QTEFURVwiXSA9IDE3XSA9IFwiSU5fVEVNUExBVEVcIjtcbiAgICBJbnNlcnRpb25Nb2RlW0luc2VydGlvbk1vZGVbXCJBRlRFUl9CT0RZXCJdID0gMThdID0gXCJBRlRFUl9CT0RZXCI7XG4gICAgSW5zZXJ0aW9uTW9kZVtJbnNlcnRpb25Nb2RlW1wiSU5fRlJBTUVTRVRcIl0gPSAxOV0gPSBcIklOX0ZSQU1FU0VUXCI7XG4gICAgSW5zZXJ0aW9uTW9kZVtJbnNlcnRpb25Nb2RlW1wiQUZURVJfRlJBTUVTRVRcIl0gPSAyMF0gPSBcIkFGVEVSX0ZSQU1FU0VUXCI7XG4gICAgSW5zZXJ0aW9uTW9kZVtJbnNlcnRpb25Nb2RlW1wiQUZURVJfQUZURVJfQk9EWVwiXSA9IDIxXSA9IFwiQUZURVJfQUZURVJfQk9EWVwiO1xuICAgIEluc2VydGlvbk1vZGVbSW5zZXJ0aW9uTW9kZVtcIkFGVEVSX0FGVEVSX0ZSQU1FU0VUXCJdID0gMjJdID0gXCJBRlRFUl9BRlRFUl9GUkFNRVNFVFwiO1xufSkoSW5zZXJ0aW9uTW9kZSB8fCAoSW5zZXJ0aW9uTW9kZSA9IHt9KSk7XG5jb25zdCBCQVNFX0xPQyA9IHtcbiAgICBzdGFydExpbmU6IC0xLFxuICAgIHN0YXJ0Q29sOiAtMSxcbiAgICBzdGFydE9mZnNldDogLTEsXG4gICAgZW5kTGluZTogLTEsXG4gICAgZW5kQ29sOiAtMSxcbiAgICBlbmRPZmZzZXQ6IC0xLFxufTtcbmNvbnN0IFRBQkxFX1NUUlVDVFVSRV9UQUdTID0gbmV3IFNldChbJC5UQUJMRSwgJC5UQk9EWSwgJC5URk9PVCwgJC5USEVBRCwgJC5UUl0pO1xuY29uc3QgZGVmYXVsdFBhcnNlck9wdGlvbnMgPSB7XG4gICAgc2NyaXB0aW5nRW5hYmxlZDogdHJ1ZSxcbiAgICBzb3VyY2VDb2RlTG9jYXRpb25JbmZvOiBmYWxzZSxcbiAgICB0cmVlQWRhcHRlcjogZGVmYXVsdFRyZWVBZGFwdGVyLFxuICAgIG9uUGFyc2VFcnJvcjogbnVsbCxcbn07XG4vL1BhcnNlclxuZXhwb3J0IGNsYXNzIFBhcnNlciB7XG4gICAgY29uc3RydWN0b3Iob3B0aW9ucywgZG9jdW1lbnQsIGZyYWdtZW50Q29udGV4dCA9IG51bGwsIHNjcmlwdEhhbmRsZXIgPSBudWxsKSB7XG4gICAgICAgIHRoaXMuZnJhZ21lbnRDb250ZXh0ID0gZnJhZ21lbnRDb250ZXh0O1xuICAgICAgICB0aGlzLnNjcmlwdEhhbmRsZXIgPSBzY3JpcHRIYW5kbGVyO1xuICAgICAgICB0aGlzLmN1cnJlbnRUb2tlbiA9IG51bGw7XG4gICAgICAgIHRoaXMuc3RvcHBlZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLklOSVRJQUw7XG4gICAgICAgIHRoaXMub3JpZ2luYWxJbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTklUSUFMO1xuICAgICAgICB0aGlzLmhlYWRFbGVtZW50ID0gbnVsbDtcbiAgICAgICAgdGhpcy5mb3JtRWxlbWVudCA9IG51bGw7XG4gICAgICAgIC8qKiBJbmRpY2F0ZXMgdGhhdCB0aGUgY3VycmVudCBub2RlIGlzIG5vdCBhbiBlbGVtZW50IGluIHRoZSBIVE1MIG5hbWVzcGFjZSAqL1xuICAgICAgICB0aGlzLmN1cnJlbnROb3RJbkhUTUwgPSBmYWxzZTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFRoZSB0ZW1wbGF0ZSBpbnNlcnRpb24gbW9kZSBzdGFjayBpcyBtYWludGFpbmVkIGZyb20gdGhlIGxlZnQuXG4gICAgICAgICAqIEllLiB0aGUgdG9wbW9zdCBlbGVtZW50IHdpbGwgYWx3YXlzIGhhdmUgaW5kZXggMC5cbiAgICAgICAgICovXG4gICAgICAgIHRoaXMudG1wbEluc2VydGlvbk1vZGVTdGFjayA9IFtdO1xuICAgICAgICB0aGlzLnBlbmRpbmdDaGFyYWN0ZXJUb2tlbnMgPSBbXTtcbiAgICAgICAgdGhpcy5oYXNOb25XaGl0ZXNwYWNlUGVuZGluZ0NoYXJhY3RlclRva2VuID0gZmFsc2U7XG4gICAgICAgIHRoaXMuZnJhbWVzZXRPayA9IHRydWU7XG4gICAgICAgIHRoaXMuc2tpcE5leHROZXdMaW5lID0gZmFsc2U7XG4gICAgICAgIHRoaXMuZm9zdGVyUGFyZW50aW5nRW5hYmxlZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLm9wdGlvbnMgPSB7XG4gICAgICAgICAgICAuLi5kZWZhdWx0UGFyc2VyT3B0aW9ucyxcbiAgICAgICAgICAgIC4uLm9wdGlvbnMsXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMudHJlZUFkYXB0ZXIgPSB0aGlzLm9wdGlvbnMudHJlZUFkYXB0ZXI7XG4gICAgICAgIHRoaXMub25QYXJzZUVycm9yID0gdGhpcy5vcHRpb25zLm9uUGFyc2VFcnJvcjtcbiAgICAgICAgLy8gQWx3YXlzIGVuYWJsZSBsb2NhdGlvbiBpbmZvIGlmIHdlIHJlcG9ydCBwYXJzZSBlcnJvcnMuXG4gICAgICAgIGlmICh0aGlzLm9uUGFyc2VFcnJvcikge1xuICAgICAgICAgICAgdGhpcy5vcHRpb25zLnNvdXJjZUNvZGVMb2NhdGlvbkluZm8gPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZG9jdW1lbnQgPSBkb2N1bWVudCAhPT0gbnVsbCAmJiBkb2N1bWVudCAhPT0gdm9pZCAwID8gZG9jdW1lbnQgOiB0aGlzLnRyZWVBZGFwdGVyLmNyZWF0ZURvY3VtZW50KCk7XG4gICAgICAgIHRoaXMudG9rZW5pemVyID0gbmV3IFRva2VuaXplcih0aGlzLm9wdGlvbnMsIHRoaXMpO1xuICAgICAgICB0aGlzLmFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cyA9IG5ldyBGb3JtYXR0aW5nRWxlbWVudExpc3QodGhpcy50cmVlQWRhcHRlcik7XG4gICAgICAgIHRoaXMuZnJhZ21lbnRDb250ZXh0SUQgPSBmcmFnbWVudENvbnRleHQgPyBnZXRUYWdJRCh0aGlzLnRyZWVBZGFwdGVyLmdldFRhZ05hbWUoZnJhZ21lbnRDb250ZXh0KSkgOiAkLlVOS05PV047XG4gICAgICAgIHRoaXMuX3NldENvbnRleHRNb2RlcyhmcmFnbWVudENvbnRleHQgIT09IG51bGwgJiYgZnJhZ21lbnRDb250ZXh0ICE9PSB2b2lkIDAgPyBmcmFnbWVudENvbnRleHQgOiB0aGlzLmRvY3VtZW50LCB0aGlzLmZyYWdtZW50Q29udGV4dElEKTtcbiAgICAgICAgdGhpcy5vcGVuRWxlbWVudHMgPSBuZXcgT3BlbkVsZW1lbnRTdGFjayh0aGlzLmRvY3VtZW50LCB0aGlzLnRyZWVBZGFwdGVyLCB0aGlzKTtcbiAgICB9XG4gICAgLy8gQVBJXG4gICAgc3RhdGljIHBhcnNlKGh0bWwsIG9wdGlvbnMpIHtcbiAgICAgICAgY29uc3QgcGFyc2VyID0gbmV3IHRoaXMob3B0aW9ucyk7XG4gICAgICAgIHBhcnNlci50b2tlbml6ZXIud3JpdGUoaHRtbCwgdHJ1ZSk7XG4gICAgICAgIHJldHVybiBwYXJzZXIuZG9jdW1lbnQ7XG4gICAgfVxuICAgIHN0YXRpYyBnZXRGcmFnbWVudFBhcnNlcihmcmFnbWVudENvbnRleHQsIG9wdGlvbnMpIHtcbiAgICAgICAgY29uc3Qgb3B0cyA9IHtcbiAgICAgICAgICAgIC4uLmRlZmF1bHRQYXJzZXJPcHRpb25zLFxuICAgICAgICAgICAgLi4ub3B0aW9ucyxcbiAgICAgICAgfTtcbiAgICAgICAgLy9OT1RFOiB1c2UgYSA8dGVtcGxhdGU+IGVsZW1lbnQgYXMgdGhlIGZyYWdtZW50IGNvbnRleHQgaWYgbm8gY29udGV4dCBlbGVtZW50IHdhcyBwcm92aWRlZCxcbiAgICAgICAgLy9zbyB3ZSB3aWxsIHBhcnNlIGluIGEgXCJmb3JnaXZpbmdcIiBtYW5uZXJcbiAgICAgICAgZnJhZ21lbnRDb250ZXh0ICE9PSBudWxsICYmIGZyYWdtZW50Q29udGV4dCAhPT0gdm9pZCAwID8gZnJhZ21lbnRDb250ZXh0IDogKGZyYWdtZW50Q29udGV4dCA9IG9wdHMudHJlZUFkYXB0ZXIuY3JlYXRlRWxlbWVudChUTi5URU1QTEFURSwgTlMuSFRNTCwgW10pKTtcbiAgICAgICAgLy9OT1RFOiBjcmVhdGUgYSBmYWtlIGVsZW1lbnQgd2hpY2ggd2lsbCBiZSB1c2VkIGFzIHRoZSBgZG9jdW1lbnRgIGZvciBmcmFnbWVudCBwYXJzaW5nLlxuICAgICAgICAvL1RoaXMgaXMgaW1wb3J0YW50IGZvciBqc2RvbSwgd2hlcmUgYSBuZXcgYGRvY3VtZW50YCBjYW5ub3QgYmUgY3JlYXRlZC4gVGhpcyBsZWQgdG9cbiAgICAgICAgLy9mcmFnbWVudCBwYXJzaW5nIG1lc3Npbmcgd2l0aCB0aGUgbWFpbiBgZG9jdW1lbnRgLlxuICAgICAgICBjb25zdCBkb2N1bWVudE1vY2sgPSBvcHRzLnRyZWVBZGFwdGVyLmNyZWF0ZUVsZW1lbnQoJ2RvY3VtZW50bW9jaycsIE5TLkhUTUwsIFtdKTtcbiAgICAgICAgY29uc3QgcGFyc2VyID0gbmV3IHRoaXMob3B0cywgZG9jdW1lbnRNb2NrLCBmcmFnbWVudENvbnRleHQpO1xuICAgICAgICBpZiAocGFyc2VyLmZyYWdtZW50Q29udGV4dElEID09PSAkLlRFTVBMQVRFKSB7XG4gICAgICAgICAgICBwYXJzZXIudG1wbEluc2VydGlvbk1vZGVTdGFjay51bnNoaWZ0KEluc2VydGlvbk1vZGUuSU5fVEVNUExBVEUpO1xuICAgICAgICB9XG4gICAgICAgIHBhcnNlci5faW5pdFRva2VuaXplckZvckZyYWdtZW50UGFyc2luZygpO1xuICAgICAgICBwYXJzZXIuX2luc2VydEZha2VSb290RWxlbWVudCgpO1xuICAgICAgICBwYXJzZXIuX3Jlc2V0SW5zZXJ0aW9uTW9kZSgpO1xuICAgICAgICBwYXJzZXIuX2ZpbmRGb3JtSW5GcmFnbWVudENvbnRleHQoKTtcbiAgICAgICAgcmV0dXJuIHBhcnNlcjtcbiAgICB9XG4gICAgZ2V0RnJhZ21lbnQoKSB7XG4gICAgICAgIGNvbnN0IHJvb3RFbGVtZW50ID0gdGhpcy50cmVlQWRhcHRlci5nZXRGaXJzdENoaWxkKHRoaXMuZG9jdW1lbnQpO1xuICAgICAgICBjb25zdCBmcmFnbWVudCA9IHRoaXMudHJlZUFkYXB0ZXIuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpO1xuICAgICAgICB0aGlzLl9hZG9wdE5vZGVzKHJvb3RFbGVtZW50LCBmcmFnbWVudCk7XG4gICAgICAgIHJldHVybiBmcmFnbWVudDtcbiAgICB9XG4gICAgLy9FcnJvcnNcbiAgICBfZXJyKHRva2VuLCBjb2RlLCBiZWZvcmVUb2tlbikge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIGlmICghdGhpcy5vblBhcnNlRXJyb3IpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGNvbnN0IGxvYyA9IChfYSA9IHRva2VuLmxvY2F0aW9uKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiBCQVNFX0xPQztcbiAgICAgICAgY29uc3QgZXJyID0ge1xuICAgICAgICAgICAgY29kZSxcbiAgICAgICAgICAgIHN0YXJ0TGluZTogbG9jLnN0YXJ0TGluZSxcbiAgICAgICAgICAgIHN0YXJ0Q29sOiBsb2Muc3RhcnRDb2wsXG4gICAgICAgICAgICBzdGFydE9mZnNldDogbG9jLnN0YXJ0T2Zmc2V0LFxuICAgICAgICAgICAgZW5kTGluZTogYmVmb3JlVG9rZW4gPyBsb2Muc3RhcnRMaW5lIDogbG9jLmVuZExpbmUsXG4gICAgICAgICAgICBlbmRDb2w6IGJlZm9yZVRva2VuID8gbG9jLnN0YXJ0Q29sIDogbG9jLmVuZENvbCxcbiAgICAgICAgICAgIGVuZE9mZnNldDogYmVmb3JlVG9rZW4gPyBsb2Muc3RhcnRPZmZzZXQgOiBsb2MuZW5kT2Zmc2V0LFxuICAgICAgICB9O1xuICAgICAgICB0aGlzLm9uUGFyc2VFcnJvcihlcnIpO1xuICAgIH1cbiAgICAvL1N0YWNrIGV2ZW50c1xuICAgIG9uSXRlbVB1c2gobm9kZSwgdGlkLCBpc1RvcCkge1xuICAgICAgICB2YXIgX2EsIF9iO1xuICAgICAgICAoX2IgPSAoX2EgPSB0aGlzLnRyZWVBZGFwdGVyKS5vbkl0ZW1QdXNoKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IuY2FsbChfYSwgbm9kZSk7XG4gICAgICAgIGlmIChpc1RvcCAmJiB0aGlzLm9wZW5FbGVtZW50cy5zdGFja1RvcCA+IDApXG4gICAgICAgICAgICB0aGlzLl9zZXRDb250ZXh0TW9kZXMobm9kZSwgdGlkKTtcbiAgICB9XG4gICAgb25JdGVtUG9wKG5vZGUsIGlzVG9wKSB7XG4gICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgIGlmICh0aGlzLm9wdGlvbnMuc291cmNlQ29kZUxvY2F0aW9uSW5mbykge1xuICAgICAgICAgICAgdGhpcy5fc2V0RW5kTG9jYXRpb24obm9kZSwgdGhpcy5jdXJyZW50VG9rZW4pO1xuICAgICAgICB9XG4gICAgICAgIChfYiA9IChfYSA9IHRoaXMudHJlZUFkYXB0ZXIpLm9uSXRlbVBvcCkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLmNhbGwoX2EsIG5vZGUsIHRoaXMub3BlbkVsZW1lbnRzLmN1cnJlbnQpO1xuICAgICAgICBpZiAoaXNUb3ApIHtcbiAgICAgICAgICAgIGxldCBjdXJyZW50O1xuICAgICAgICAgICAgbGV0IGN1cnJlbnRUYWdJZDtcbiAgICAgICAgICAgIGlmICh0aGlzLm9wZW5FbGVtZW50cy5zdGFja1RvcCA9PT0gMCAmJiB0aGlzLmZyYWdtZW50Q29udGV4dCkge1xuICAgICAgICAgICAgICAgIGN1cnJlbnQgPSB0aGlzLmZyYWdtZW50Q29udGV4dDtcbiAgICAgICAgICAgICAgICBjdXJyZW50VGFnSWQgPSB0aGlzLmZyYWdtZW50Q29udGV4dElEO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgKHsgY3VycmVudCwgY3VycmVudFRhZ0lkIH0gPSB0aGlzLm9wZW5FbGVtZW50cyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLl9zZXRDb250ZXh0TW9kZXMoY3VycmVudCwgY3VycmVudFRhZ0lkKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBfc2V0Q29udGV4dE1vZGVzKGN1cnJlbnQsIHRpZCkge1xuICAgICAgICBjb25zdCBpc0hUTUwgPSBjdXJyZW50ID09PSB0aGlzLmRvY3VtZW50IHx8IHRoaXMudHJlZUFkYXB0ZXIuZ2V0TmFtZXNwYWNlVVJJKGN1cnJlbnQpID09PSBOUy5IVE1MO1xuICAgICAgICB0aGlzLmN1cnJlbnROb3RJbkhUTUwgPSAhaXNIVE1MO1xuICAgICAgICB0aGlzLnRva2VuaXplci5pbkZvcmVpZ25Ob2RlID0gIWlzSFRNTCAmJiAhdGhpcy5faXNJbnRlZ3JhdGlvblBvaW50KHRpZCwgY3VycmVudCk7XG4gICAgfVxuICAgIF9zd2l0Y2hUb1RleHRQYXJzaW5nKGN1cnJlbnRUb2tlbiwgbmV4dFRva2VuaXplclN0YXRlKSB7XG4gICAgICAgIHRoaXMuX2luc2VydEVsZW1lbnQoY3VycmVudFRva2VuLCBOUy5IVE1MKTtcbiAgICAgICAgdGhpcy50b2tlbml6ZXIuc3RhdGUgPSBuZXh0VG9rZW5pemVyU3RhdGU7XG4gICAgICAgIHRoaXMub3JpZ2luYWxJbnNlcnRpb25Nb2RlID0gdGhpcy5pbnNlcnRpb25Nb2RlO1xuICAgICAgICB0aGlzLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLlRFWFQ7XG4gICAgfVxuICAgIHN3aXRjaFRvUGxhaW50ZXh0UGFyc2luZygpIHtcbiAgICAgICAgdGhpcy5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5URVhUO1xuICAgICAgICB0aGlzLm9yaWdpbmFsSW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5fQk9EWTtcbiAgICAgICAgdGhpcy50b2tlbml6ZXIuc3RhdGUgPSBUb2tlbml6ZXJNb2RlLlBMQUlOVEVYVDtcbiAgICB9XG4gICAgLy9GcmFnbWVudCBwYXJzaW5nXG4gICAgX2dldEFkanVzdGVkQ3VycmVudEVsZW1lbnQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm9wZW5FbGVtZW50cy5zdGFja1RvcCA9PT0gMCAmJiB0aGlzLmZyYWdtZW50Q29udGV4dFxuICAgICAgICAgICAgPyB0aGlzLmZyYWdtZW50Q29udGV4dFxuICAgICAgICAgICAgOiB0aGlzLm9wZW5FbGVtZW50cy5jdXJyZW50O1xuICAgIH1cbiAgICBfZmluZEZvcm1JbkZyYWdtZW50Q29udGV4dCgpIHtcbiAgICAgICAgbGV0IG5vZGUgPSB0aGlzLmZyYWdtZW50Q29udGV4dDtcbiAgICAgICAgd2hpbGUgKG5vZGUpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLnRyZWVBZGFwdGVyLmdldFRhZ05hbWUobm9kZSkgPT09IFROLkZPUk0pIHtcbiAgICAgICAgICAgICAgICB0aGlzLmZvcm1FbGVtZW50ID0gbm9kZTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG5vZGUgPSB0aGlzLnRyZWVBZGFwdGVyLmdldFBhcmVudE5vZGUobm9kZSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgX2luaXRUb2tlbml6ZXJGb3JGcmFnbWVudFBhcnNpbmcoKSB7XG4gICAgICAgIGlmICghdGhpcy5mcmFnbWVudENvbnRleHQgfHwgdGhpcy50cmVlQWRhcHRlci5nZXROYW1lc3BhY2VVUkkodGhpcy5mcmFnbWVudENvbnRleHQpICE9PSBOUy5IVE1MKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgc3dpdGNoICh0aGlzLmZyYWdtZW50Q29udGV4dElEKSB7XG4gICAgICAgICAgICBjYXNlICQuVElUTEU6XG4gICAgICAgICAgICBjYXNlICQuVEVYVEFSRUE6IHtcbiAgICAgICAgICAgICAgICB0aGlzLnRva2VuaXplci5zdGF0ZSA9IFRva2VuaXplck1vZGUuUkNEQVRBO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLlNUWUxFOlxuICAgICAgICAgICAgY2FzZSAkLlhNUDpcbiAgICAgICAgICAgIGNhc2UgJC5JRlJBTUU6XG4gICAgICAgICAgICBjYXNlICQuTk9FTUJFRDpcbiAgICAgICAgICAgIGNhc2UgJC5OT0ZSQU1FUzpcbiAgICAgICAgICAgIGNhc2UgJC5OT1NDUklQVDoge1xuICAgICAgICAgICAgICAgIHRoaXMudG9rZW5pemVyLnN0YXRlID0gVG9rZW5pemVyTW9kZS5SQVdURVhUO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAkLlNDUklQVDoge1xuICAgICAgICAgICAgICAgIHRoaXMudG9rZW5pemVyLnN0YXRlID0gVG9rZW5pemVyTW9kZS5TQ1JJUFRfREFUQTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJC5QTEFJTlRFWFQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLnRva2VuaXplci5zdGF0ZSA9IFRva2VuaXplck1vZGUuUExBSU5URVhUO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIC8vIERvIG5vdGhpbmdcbiAgICAgICAgfVxuICAgIH1cbiAgICAvL1RyZWUgbXV0YXRpb25cbiAgICBfc2V0RG9jdW1lbnRUeXBlKHRva2VuKSB7XG4gICAgICAgIGNvbnN0IG5hbWUgPSB0b2tlbi5uYW1lIHx8ICcnO1xuICAgICAgICBjb25zdCBwdWJsaWNJZCA9IHRva2VuLnB1YmxpY0lkIHx8ICcnO1xuICAgICAgICBjb25zdCBzeXN0ZW1JZCA9IHRva2VuLnN5c3RlbUlkIHx8ICcnO1xuICAgICAgICB0aGlzLnRyZWVBZGFwdGVyLnNldERvY3VtZW50VHlwZSh0aGlzLmRvY3VtZW50LCBuYW1lLCBwdWJsaWNJZCwgc3lzdGVtSWQpO1xuICAgICAgICBpZiAodG9rZW4ubG9jYXRpb24pIHtcbiAgICAgICAgICAgIGNvbnN0IGRvY3VtZW50Q2hpbGRyZW4gPSB0aGlzLnRyZWVBZGFwdGVyLmdldENoaWxkTm9kZXModGhpcy5kb2N1bWVudCk7XG4gICAgICAgICAgICBjb25zdCBkb2NUeXBlTm9kZSA9IGRvY3VtZW50Q2hpbGRyZW4uZmluZCgobm9kZSkgPT4gdGhpcy50cmVlQWRhcHRlci5pc0RvY3VtZW50VHlwZU5vZGUobm9kZSkpO1xuICAgICAgICAgICAgaWYgKGRvY1R5cGVOb2RlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy50cmVlQWRhcHRlci5zZXROb2RlU291cmNlQ29kZUxvY2F0aW9uKGRvY1R5cGVOb2RlLCB0b2tlbi5sb2NhdGlvbik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgX2F0dGFjaEVsZW1lbnRUb1RyZWUoZWxlbWVudCwgbG9jYXRpb24pIHtcbiAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5zb3VyY2VDb2RlTG9jYXRpb25JbmZvKSB7XG4gICAgICAgICAgICBjb25zdCBsb2MgPSBsb2NhdGlvbiAmJiB7XG4gICAgICAgICAgICAgICAgLi4ubG9jYXRpb24sXG4gICAgICAgICAgICAgICAgc3RhcnRUYWc6IGxvY2F0aW9uLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHRoaXMudHJlZUFkYXB0ZXIuc2V0Tm9kZVNvdXJjZUNvZGVMb2NhdGlvbihlbGVtZW50LCBsb2MpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLl9zaG91bGRGb3N0ZXJQYXJlbnRPbkluc2VydGlvbigpKSB7XG4gICAgICAgICAgICB0aGlzLl9mb3N0ZXJQYXJlbnRFbGVtZW50KGVsZW1lbnQpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgcGFyZW50ID0gdGhpcy5vcGVuRWxlbWVudHMuY3VycmVudFRtcGxDb250ZW50T3JOb2RlO1xuICAgICAgICAgICAgdGhpcy50cmVlQWRhcHRlci5hcHBlbmRDaGlsZChwYXJlbnQsIGVsZW1lbnQpO1xuICAgICAgICB9XG4gICAgfVxuICAgIF9hcHBlbmRFbGVtZW50KHRva2VuLCBuYW1lc3BhY2VVUkkpIHtcbiAgICAgICAgY29uc3QgZWxlbWVudCA9IHRoaXMudHJlZUFkYXB0ZXIuY3JlYXRlRWxlbWVudCh0b2tlbi50YWdOYW1lLCBuYW1lc3BhY2VVUkksIHRva2VuLmF0dHJzKTtcbiAgICAgICAgdGhpcy5fYXR0YWNoRWxlbWVudFRvVHJlZShlbGVtZW50LCB0b2tlbi5sb2NhdGlvbik7XG4gICAgfVxuICAgIF9pbnNlcnRFbGVtZW50KHRva2VuLCBuYW1lc3BhY2VVUkkpIHtcbiAgICAgICAgY29uc3QgZWxlbWVudCA9IHRoaXMudHJlZUFkYXB0ZXIuY3JlYXRlRWxlbWVudCh0b2tlbi50YWdOYW1lLCBuYW1lc3BhY2VVUkksIHRva2VuLmF0dHJzKTtcbiAgICAgICAgdGhpcy5fYXR0YWNoRWxlbWVudFRvVHJlZShlbGVtZW50LCB0b2tlbi5sb2NhdGlvbik7XG4gICAgICAgIHRoaXMub3BlbkVsZW1lbnRzLnB1c2goZWxlbWVudCwgdG9rZW4udGFnSUQpO1xuICAgIH1cbiAgICBfaW5zZXJ0RmFrZUVsZW1lbnQodGFnTmFtZSwgdGFnSUQpIHtcbiAgICAgICAgY29uc3QgZWxlbWVudCA9IHRoaXMudHJlZUFkYXB0ZXIuY3JlYXRlRWxlbWVudCh0YWdOYW1lLCBOUy5IVE1MLCBbXSk7XG4gICAgICAgIHRoaXMuX2F0dGFjaEVsZW1lbnRUb1RyZWUoZWxlbWVudCwgbnVsbCk7XG4gICAgICAgIHRoaXMub3BlbkVsZW1lbnRzLnB1c2goZWxlbWVudCwgdGFnSUQpO1xuICAgIH1cbiAgICBfaW5zZXJ0VGVtcGxhdGUodG9rZW4pIHtcbiAgICAgICAgY29uc3QgdG1wbCA9IHRoaXMudHJlZUFkYXB0ZXIuY3JlYXRlRWxlbWVudCh0b2tlbi50YWdOYW1lLCBOUy5IVE1MLCB0b2tlbi5hdHRycyk7XG4gICAgICAgIGNvbnN0IGNvbnRlbnQgPSB0aGlzLnRyZWVBZGFwdGVyLmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTtcbiAgICAgICAgdGhpcy50cmVlQWRhcHRlci5zZXRUZW1wbGF0ZUNvbnRlbnQodG1wbCwgY29udGVudCk7XG4gICAgICAgIHRoaXMuX2F0dGFjaEVsZW1lbnRUb1RyZWUodG1wbCwgdG9rZW4ubG9jYXRpb24pO1xuICAgICAgICB0aGlzLm9wZW5FbGVtZW50cy5wdXNoKHRtcGwsIHRva2VuLnRhZ0lEKTtcbiAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5zb3VyY2VDb2RlTG9jYXRpb25JbmZvKVxuICAgICAgICAgICAgdGhpcy50cmVlQWRhcHRlci5zZXROb2RlU291cmNlQ29kZUxvY2F0aW9uKGNvbnRlbnQsIG51bGwpO1xuICAgIH1cbiAgICBfaW5zZXJ0RmFrZVJvb3RFbGVtZW50KCkge1xuICAgICAgICBjb25zdCBlbGVtZW50ID0gdGhpcy50cmVlQWRhcHRlci5jcmVhdGVFbGVtZW50KFROLkhUTUwsIE5TLkhUTUwsIFtdKTtcbiAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5zb3VyY2VDb2RlTG9jYXRpb25JbmZvKVxuICAgICAgICAgICAgdGhpcy50cmVlQWRhcHRlci5zZXROb2RlU291cmNlQ29kZUxvY2F0aW9uKGVsZW1lbnQsIG51bGwpO1xuICAgICAgICB0aGlzLnRyZWVBZGFwdGVyLmFwcGVuZENoaWxkKHRoaXMub3BlbkVsZW1lbnRzLmN1cnJlbnQsIGVsZW1lbnQpO1xuICAgICAgICB0aGlzLm9wZW5FbGVtZW50cy5wdXNoKGVsZW1lbnQsICQuSFRNTCk7XG4gICAgfVxuICAgIF9hcHBlbmRDb21tZW50Tm9kZSh0b2tlbiwgcGFyZW50KSB7XG4gICAgICAgIGNvbnN0IGNvbW1lbnROb2RlID0gdGhpcy50cmVlQWRhcHRlci5jcmVhdGVDb21tZW50Tm9kZSh0b2tlbi5kYXRhKTtcbiAgICAgICAgdGhpcy50cmVlQWRhcHRlci5hcHBlbmRDaGlsZChwYXJlbnQsIGNvbW1lbnROb2RlKTtcbiAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5zb3VyY2VDb2RlTG9jYXRpb25JbmZvKSB7XG4gICAgICAgICAgICB0aGlzLnRyZWVBZGFwdGVyLnNldE5vZGVTb3VyY2VDb2RlTG9jYXRpb24oY29tbWVudE5vZGUsIHRva2VuLmxvY2F0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBfaW5zZXJ0Q2hhcmFjdGVycyh0b2tlbikge1xuICAgICAgICBsZXQgcGFyZW50O1xuICAgICAgICBsZXQgYmVmb3JlRWxlbWVudDtcbiAgICAgICAgaWYgKHRoaXMuX3Nob3VsZEZvc3RlclBhcmVudE9uSW5zZXJ0aW9uKCkpIHtcbiAgICAgICAgICAgICh7IHBhcmVudCwgYmVmb3JlRWxlbWVudCB9ID0gdGhpcy5fZmluZEZvc3RlclBhcmVudGluZ0xvY2F0aW9uKCkpO1xuICAgICAgICAgICAgaWYgKGJlZm9yZUVsZW1lbnQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnRyZWVBZGFwdGVyLmluc2VydFRleHRCZWZvcmUocGFyZW50LCB0b2tlbi5jaGFycywgYmVmb3JlRWxlbWVudCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLnRyZWVBZGFwdGVyLmluc2VydFRleHQocGFyZW50LCB0b2tlbi5jaGFycyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBwYXJlbnQgPSB0aGlzLm9wZW5FbGVtZW50cy5jdXJyZW50VG1wbENvbnRlbnRPck5vZGU7XG4gICAgICAgICAgICB0aGlzLnRyZWVBZGFwdGVyLmluc2VydFRleHQocGFyZW50LCB0b2tlbi5jaGFycyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCF0b2tlbi5sb2NhdGlvbilcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgY29uc3Qgc2libGluZ3MgPSB0aGlzLnRyZWVBZGFwdGVyLmdldENoaWxkTm9kZXMocGFyZW50KTtcbiAgICAgICAgY29uc3QgdGV4dE5vZGVJZHggPSBiZWZvcmVFbGVtZW50ID8gc2libGluZ3MubGFzdEluZGV4T2YoYmVmb3JlRWxlbWVudCkgOiBzaWJsaW5ncy5sZW5ndGg7XG4gICAgICAgIGNvbnN0IHRleHROb2RlID0gc2libGluZ3NbdGV4dE5vZGVJZHggLSAxXTtcbiAgICAgICAgLy9OT1RFOiBpZiB3ZSBoYXZlIGEgbG9jYXRpb24gYXNzaWduZWQgYnkgYW5vdGhlciB0b2tlbiwgdGhlbiBqdXN0IHVwZGF0ZSB0aGUgZW5kIHBvc2l0aW9uXG4gICAgICAgIGNvbnN0IHRuTG9jID0gdGhpcy50cmVlQWRhcHRlci5nZXROb2RlU291cmNlQ29kZUxvY2F0aW9uKHRleHROb2RlKTtcbiAgICAgICAgaWYgKHRuTG9jKSB7XG4gICAgICAgICAgICBjb25zdCB7IGVuZExpbmUsIGVuZENvbCwgZW5kT2Zmc2V0IH0gPSB0b2tlbi5sb2NhdGlvbjtcbiAgICAgICAgICAgIHRoaXMudHJlZUFkYXB0ZXIudXBkYXRlTm9kZVNvdXJjZUNvZGVMb2NhdGlvbih0ZXh0Tm9kZSwgeyBlbmRMaW5lLCBlbmRDb2wsIGVuZE9mZnNldCB9KTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmICh0aGlzLm9wdGlvbnMuc291cmNlQ29kZUxvY2F0aW9uSW5mbykge1xuICAgICAgICAgICAgdGhpcy50cmVlQWRhcHRlci5zZXROb2RlU291cmNlQ29kZUxvY2F0aW9uKHRleHROb2RlLCB0b2tlbi5sb2NhdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG4gICAgX2Fkb3B0Tm9kZXMoZG9ub3IsIHJlY2lwaWVudCkge1xuICAgICAgICBmb3IgKGxldCBjaGlsZCA9IHRoaXMudHJlZUFkYXB0ZXIuZ2V0Rmlyc3RDaGlsZChkb25vcik7IGNoaWxkOyBjaGlsZCA9IHRoaXMudHJlZUFkYXB0ZXIuZ2V0Rmlyc3RDaGlsZChkb25vcikpIHtcbiAgICAgICAgICAgIHRoaXMudHJlZUFkYXB0ZXIuZGV0YWNoTm9kZShjaGlsZCk7XG4gICAgICAgICAgICB0aGlzLnRyZWVBZGFwdGVyLmFwcGVuZENoaWxkKHJlY2lwaWVudCwgY2hpbGQpO1xuICAgICAgICB9XG4gICAgfVxuICAgIF9zZXRFbmRMb2NhdGlvbihlbGVtZW50LCBjbG9zaW5nVG9rZW4pIHtcbiAgICAgICAgaWYgKHRoaXMudHJlZUFkYXB0ZXIuZ2V0Tm9kZVNvdXJjZUNvZGVMb2NhdGlvbihlbGVtZW50KSAmJiBjbG9zaW5nVG9rZW4ubG9jYXRpb24pIHtcbiAgICAgICAgICAgIGNvbnN0IGN0TG9jID0gY2xvc2luZ1Rva2VuLmxvY2F0aW9uO1xuICAgICAgICAgICAgY29uc3QgdG4gPSB0aGlzLnRyZWVBZGFwdGVyLmdldFRhZ05hbWUoZWxlbWVudCk7XG4gICAgICAgICAgICBjb25zdCBlbmRMb2MgPSBcbiAgICAgICAgICAgIC8vIE5PVEU6IEZvciBjYXNlcyBsaWtlIDxwPiA8cD4gPC9wPiAtIEZpcnN0ICdwJyBjbG9zZXMgd2l0aG91dCBhIGNsb3NpbmdcbiAgICAgICAgICAgIC8vIHRhZyBhbmQgZm9yIGNhc2VzIGxpa2UgPHRkPiA8cD4gPC90ZD4gLSAncCcgY2xvc2VzIHdpdGhvdXQgYSBjbG9zaW5nIHRhZy5cbiAgICAgICAgICAgIGNsb3NpbmdUb2tlbi50eXBlID09PSBUb2tlblR5cGUuRU5EX1RBRyAmJiB0biA9PT0gY2xvc2luZ1Rva2VuLnRhZ05hbWVcbiAgICAgICAgICAgICAgICA/IHtcbiAgICAgICAgICAgICAgICAgICAgZW5kVGFnOiB7IC4uLmN0TG9jIH0sXG4gICAgICAgICAgICAgICAgICAgIGVuZExpbmU6IGN0TG9jLmVuZExpbmUsXG4gICAgICAgICAgICAgICAgICAgIGVuZENvbDogY3RMb2MuZW5kQ29sLFxuICAgICAgICAgICAgICAgICAgICBlbmRPZmZzZXQ6IGN0TG9jLmVuZE9mZnNldCxcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgOiB7XG4gICAgICAgICAgICAgICAgICAgIGVuZExpbmU6IGN0TG9jLnN0YXJ0TGluZSxcbiAgICAgICAgICAgICAgICAgICAgZW5kQ29sOiBjdExvYy5zdGFydENvbCxcbiAgICAgICAgICAgICAgICAgICAgZW5kT2Zmc2V0OiBjdExvYy5zdGFydE9mZnNldCxcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgdGhpcy50cmVlQWRhcHRlci51cGRhdGVOb2RlU291cmNlQ29kZUxvY2F0aW9uKGVsZW1lbnQsIGVuZExvYyk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy9Ub2tlbiBwcm9jZXNzaW5nXG4gICAgc2hvdWxkUHJvY2Vzc1N0YXJ0VGFnVG9rZW5JbkZvcmVpZ25Db250ZW50KHRva2VuKSB7XG4gICAgICAgIC8vIENoZWNrIHRoYXQgbmVpdGhlciBjdXJyZW50ID09PSBkb2N1bWVudCwgb3IgbnMgPT09IE5TLkhUTUxcbiAgICAgICAgaWYgKCF0aGlzLmN1cnJlbnROb3RJbkhUTUwpXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIGxldCBjdXJyZW50O1xuICAgICAgICBsZXQgY3VycmVudFRhZ0lkO1xuICAgICAgICBpZiAodGhpcy5vcGVuRWxlbWVudHMuc3RhY2tUb3AgPT09IDAgJiYgdGhpcy5mcmFnbWVudENvbnRleHQpIHtcbiAgICAgICAgICAgIGN1cnJlbnQgPSB0aGlzLmZyYWdtZW50Q29udGV4dDtcbiAgICAgICAgICAgIGN1cnJlbnRUYWdJZCA9IHRoaXMuZnJhZ21lbnRDb250ZXh0SUQ7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAoeyBjdXJyZW50LCBjdXJyZW50VGFnSWQgfSA9IHRoaXMub3BlbkVsZW1lbnRzKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodG9rZW4udGFnSUQgPT09ICQuU1ZHICYmXG4gICAgICAgICAgICB0aGlzLnRyZWVBZGFwdGVyLmdldFRhZ05hbWUoY3VycmVudCkgPT09IFROLkFOTk9UQVRJT05fWE1MICYmXG4gICAgICAgICAgICB0aGlzLnRyZWVBZGFwdGVyLmdldE5hbWVzcGFjZVVSSShjdXJyZW50KSA9PT0gTlMuTUFUSE1MKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgLy8gQ2hlY2sgdGhhdCBgY3VycmVudGAgaXMgbm90IGFuIGludGVncmF0aW9uIHBvaW50IGZvciBIVE1MIG9yIE1hdGhNTCBlbGVtZW50cy5cbiAgICAgICAgdGhpcy50b2tlbml6ZXIuaW5Gb3JlaWduTm9kZSB8fFxuICAgICAgICAgICAgLy8gSWYgaXQgX2lzXyBhbiBpbnRlZ3JhdGlvbiBwb2ludCwgdGhlbiB3ZSBtaWdodCBoYXZlIHRvIGNoZWNrIHRoYXQgaXQgaXMgbm90IGFuIEhUTUxcbiAgICAgICAgICAgIC8vIGludGVncmF0aW9uIHBvaW50LlxuICAgICAgICAgICAgKCh0b2tlbi50YWdJRCA9PT0gJC5NR0xZUEggfHwgdG9rZW4udGFnSUQgPT09ICQuTUFMSUdOTUFSSykgJiZcbiAgICAgICAgICAgICAgICAhdGhpcy5faXNJbnRlZ3JhdGlvblBvaW50KGN1cnJlbnRUYWdJZCwgY3VycmVudCwgTlMuSFRNTCkpKTtcbiAgICB9XG4gICAgX3Byb2Nlc3NUb2tlbih0b2tlbikge1xuICAgICAgICBzd2l0Y2ggKHRva2VuLnR5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgVG9rZW5UeXBlLkNIQVJBQ1RFUjoge1xuICAgICAgICAgICAgICAgIHRoaXMub25DaGFyYWN0ZXIodG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBUb2tlblR5cGUuTlVMTF9DSEFSQUNURVI6IHtcbiAgICAgICAgICAgICAgICB0aGlzLm9uTnVsbENoYXJhY3Rlcih0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFRva2VuVHlwZS5DT01NRU5UOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5vbkNvbW1lbnQodG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBUb2tlblR5cGUuRE9DVFlQRToge1xuICAgICAgICAgICAgICAgIHRoaXMub25Eb2N0eXBlKHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgVG9rZW5UeXBlLlNUQVJUX1RBRzoge1xuICAgICAgICAgICAgICAgIHRoaXMuX3Byb2Nlc3NTdGFydFRhZyh0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFRva2VuVHlwZS5FTkRfVEFHOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5vbkVuZFRhZyh0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFRva2VuVHlwZS5FT0Y6IHtcbiAgICAgICAgICAgICAgICB0aGlzLm9uRW9mKHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgVG9rZW5UeXBlLldISVRFU1BBQ0VfQ0hBUkFDVEVSOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5vbldoaXRlc3BhY2VDaGFyYWN0ZXIodG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vSW50ZWdyYXRpb24gcG9pbnRzXG4gICAgX2lzSW50ZWdyYXRpb25Qb2ludCh0aWQsIGVsZW1lbnQsIGZvcmVpZ25OUykge1xuICAgICAgICBjb25zdCBucyA9IHRoaXMudHJlZUFkYXB0ZXIuZ2V0TmFtZXNwYWNlVVJJKGVsZW1lbnQpO1xuICAgICAgICBjb25zdCBhdHRycyA9IHRoaXMudHJlZUFkYXB0ZXIuZ2V0QXR0ckxpc3QoZWxlbWVudCk7XG4gICAgICAgIHJldHVybiBmb3JlaWduQ29udGVudC5pc0ludGVncmF0aW9uUG9pbnQodGlkLCBucywgYXR0cnMsIGZvcmVpZ25OUyk7XG4gICAgfVxuICAgIC8vQWN0aXZlIGZvcm1hdHRpbmcgZWxlbWVudHMgcmVjb25zdHJ1Y3Rpb25cbiAgICBfcmVjb25zdHJ1Y3RBY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMoKSB7XG4gICAgICAgIGNvbnN0IGxpc3RMZW5ndGggPSB0aGlzLmFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cy5lbnRyaWVzLmxlbmd0aDtcbiAgICAgICAgaWYgKGxpc3RMZW5ndGgpIHtcbiAgICAgICAgICAgIGNvbnN0IGVuZEluZGV4ID0gdGhpcy5hY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMuZW50cmllcy5maW5kSW5kZXgoKGVudHJ5KSA9PiBlbnRyeS50eXBlID09PSBFbnRyeVR5cGUuTWFya2VyIHx8IHRoaXMub3BlbkVsZW1lbnRzLmNvbnRhaW5zKGVudHJ5LmVsZW1lbnQpKTtcbiAgICAgICAgICAgIGNvbnN0IHVub3BlbklkeCA9IGVuZEluZGV4IDwgMCA/IGxpc3RMZW5ndGggLSAxIDogZW5kSW5kZXggLSAxO1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IHVub3BlbklkeDsgaSA+PSAwOyBpLS0pIHtcbiAgICAgICAgICAgICAgICBjb25zdCBlbnRyeSA9IHRoaXMuYWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzLmVudHJpZXNbaV07XG4gICAgICAgICAgICAgICAgdGhpcy5faW5zZXJ0RWxlbWVudChlbnRyeS50b2tlbiwgdGhpcy50cmVlQWRhcHRlci5nZXROYW1lc3BhY2VVUkkoZW50cnkuZWxlbWVudCkpO1xuICAgICAgICAgICAgICAgIGVudHJ5LmVsZW1lbnQgPSB0aGlzLm9wZW5FbGVtZW50cy5jdXJyZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vQ2xvc2UgZWxlbWVudHNcbiAgICBfY2xvc2VUYWJsZUNlbGwoKSB7XG4gICAgICAgIHRoaXMub3BlbkVsZW1lbnRzLmdlbmVyYXRlSW1wbGllZEVuZFRhZ3MoKTtcbiAgICAgICAgdGhpcy5vcGVuRWxlbWVudHMucG9wVW50aWxUYWJsZUNlbGxQb3BwZWQoKTtcbiAgICAgICAgdGhpcy5hY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMuY2xlYXJUb0xhc3RNYXJrZXIoKTtcbiAgICAgICAgdGhpcy5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9ST1c7XG4gICAgfVxuICAgIF9jbG9zZVBFbGVtZW50KCkge1xuICAgICAgICB0aGlzLm9wZW5FbGVtZW50cy5nZW5lcmF0ZUltcGxpZWRFbmRUYWdzV2l0aEV4Y2x1c2lvbigkLlApO1xuICAgICAgICB0aGlzLm9wZW5FbGVtZW50cy5wb3BVbnRpbFRhZ05hbWVQb3BwZWQoJC5QKTtcbiAgICB9XG4gICAgLy9JbnNlcnRpb24gbW9kZXNcbiAgICBfcmVzZXRJbnNlcnRpb25Nb2RlKCkge1xuICAgICAgICBmb3IgKGxldCBpID0gdGhpcy5vcGVuRWxlbWVudHMuc3RhY2tUb3A7IGkgPj0gMDsgaS0tKSB7XG4gICAgICAgICAgICAvL0luc2VydGlvbiBtb2RlIHJlc2V0IG1hcFxuICAgICAgICAgICAgc3dpdGNoIChpID09PSAwICYmIHRoaXMuZnJhZ21lbnRDb250ZXh0ID8gdGhpcy5mcmFnbWVudENvbnRleHRJRCA6IHRoaXMub3BlbkVsZW1lbnRzLnRhZ0lEc1tpXSkge1xuICAgICAgICAgICAgICAgIGNhc2UgJC5UUjoge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLklOX1JPVztcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjYXNlICQuVEJPRFk6XG4gICAgICAgICAgICAgICAgY2FzZSAkLlRIRUFEOlxuICAgICAgICAgICAgICAgIGNhc2UgJC5URk9PVDoge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLklOX1RBQkxFX0JPRFk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2FzZSAkLkNBUFRJT046IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9DQVBUSU9OO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNhc2UgJC5DT0xHUk9VUDoge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLklOX0NPTFVNTl9HUk9VUDtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjYXNlICQuVEFCTEU6IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9UQUJMRTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjYXNlICQuQk9EWToge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLklOX0JPRFk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2FzZSAkLkZSQU1FU0VUOiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5fRlJBTUVTRVQ7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2FzZSAkLlNFTEVDVDoge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9yZXNldEluc2VydGlvbk1vZGVGb3JTZWxlY3QoaSk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2FzZSAkLlRFTVBMQVRFOiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5zZXJ0aW9uTW9kZSA9IHRoaXMudG1wbEluc2VydGlvbk1vZGVTdGFja1swXTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjYXNlICQuSFRNTDoge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmluc2VydGlvbk1vZGUgPSB0aGlzLmhlYWRFbGVtZW50ID8gSW5zZXJ0aW9uTW9kZS5BRlRFUl9IRUFEIDogSW5zZXJ0aW9uTW9kZS5CRUZPUkVfSEVBRDtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjYXNlICQuVEQ6XG4gICAgICAgICAgICAgICAgY2FzZSAkLlRIOiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChpID4gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9DRUxMO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjYXNlICQuSEVBRDoge1xuICAgICAgICAgICAgICAgICAgICBpZiAoaSA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5fSEVBRDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9CT0RZO1xuICAgIH1cbiAgICBfcmVzZXRJbnNlcnRpb25Nb2RlRm9yU2VsZWN0KHNlbGVjdElkeCkge1xuICAgICAgICBpZiAoc2VsZWN0SWR4ID4gMCkge1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IHNlbGVjdElkeCAtIDE7IGkgPiAwOyBpLS0pIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0biA9IHRoaXMub3BlbkVsZW1lbnRzLnRhZ0lEc1tpXTtcbiAgICAgICAgICAgICAgICBpZiAodG4gPT09ICQuVEVNUExBVEUpIHtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKHRuID09PSAkLlRBQkxFKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5fU0VMRUNUX0lOX1RBQkxFO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRoaXMuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5fU0VMRUNUO1xuICAgIH1cbiAgICAvL0Zvc3RlciBwYXJlbnRpbmdcbiAgICBfaXNFbGVtZW50Q2F1c2VzRm9zdGVyUGFyZW50aW5nKHRuKSB7XG4gICAgICAgIHJldHVybiBUQUJMRV9TVFJVQ1RVUkVfVEFHUy5oYXModG4pO1xuICAgIH1cbiAgICBfc2hvdWxkRm9zdGVyUGFyZW50T25JbnNlcnRpb24oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmZvc3RlclBhcmVudGluZ0VuYWJsZWQgJiYgdGhpcy5faXNFbGVtZW50Q2F1c2VzRm9zdGVyUGFyZW50aW5nKHRoaXMub3BlbkVsZW1lbnRzLmN1cnJlbnRUYWdJZCk7XG4gICAgfVxuICAgIF9maW5kRm9zdGVyUGFyZW50aW5nTG9jYXRpb24oKSB7XG4gICAgICAgIGZvciAobGV0IGkgPSB0aGlzLm9wZW5FbGVtZW50cy5zdGFja1RvcDsgaSA+PSAwOyBpLS0pIHtcbiAgICAgICAgICAgIGNvbnN0IG9wZW5FbGVtZW50ID0gdGhpcy5vcGVuRWxlbWVudHMuaXRlbXNbaV07XG4gICAgICAgICAgICBzd2l0Y2ggKHRoaXMub3BlbkVsZW1lbnRzLnRhZ0lEc1tpXSkge1xuICAgICAgICAgICAgICAgIGNhc2UgJC5URU1QTEFURToge1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy50cmVlQWRhcHRlci5nZXROYW1lc3BhY2VVUkkob3BlbkVsZW1lbnQpID09PSBOUy5IVE1MKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBwYXJlbnQ6IHRoaXMudHJlZUFkYXB0ZXIuZ2V0VGVtcGxhdGVDb250ZW50KG9wZW5FbGVtZW50KSwgYmVmb3JlRWxlbWVudDogbnVsbCB9O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjYXNlICQuVEFCTEU6IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcGFyZW50ID0gdGhpcy50cmVlQWRhcHRlci5nZXRQYXJlbnROb2RlKG9wZW5FbGVtZW50KTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHBhcmVudCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgcGFyZW50LCBiZWZvcmVFbGVtZW50OiBvcGVuRWxlbWVudCB9O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IHBhcmVudDogdGhpcy5vcGVuRWxlbWVudHMuaXRlbXNbaSAtIDFdLCBiZWZvcmVFbGVtZW50OiBudWxsIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgLy8gRG8gbm90aGluZ1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7IHBhcmVudDogdGhpcy5vcGVuRWxlbWVudHMuaXRlbXNbMF0sIGJlZm9yZUVsZW1lbnQ6IG51bGwgfTtcbiAgICB9XG4gICAgX2Zvc3RlclBhcmVudEVsZW1lbnQoZWxlbWVudCkge1xuICAgICAgICBjb25zdCBsb2NhdGlvbiA9IHRoaXMuX2ZpbmRGb3N0ZXJQYXJlbnRpbmdMb2NhdGlvbigpO1xuICAgICAgICBpZiAobG9jYXRpb24uYmVmb3JlRWxlbWVudCkge1xuICAgICAgICAgICAgdGhpcy50cmVlQWRhcHRlci5pbnNlcnRCZWZvcmUobG9jYXRpb24ucGFyZW50LCBlbGVtZW50LCBsb2NhdGlvbi5iZWZvcmVFbGVtZW50KTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMudHJlZUFkYXB0ZXIuYXBwZW5kQ2hpbGQobG9jYXRpb24ucGFyZW50LCBlbGVtZW50KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvL1NwZWNpYWwgZWxlbWVudHNcbiAgICBfaXNTcGVjaWFsRWxlbWVudChlbGVtZW50LCBpZCkge1xuICAgICAgICBjb25zdCBucyA9IHRoaXMudHJlZUFkYXB0ZXIuZ2V0TmFtZXNwYWNlVVJJKGVsZW1lbnQpO1xuICAgICAgICByZXR1cm4gU1BFQ0lBTF9FTEVNRU5UU1tuc10uaGFzKGlkKTtcbiAgICB9XG4gICAgb25DaGFyYWN0ZXIodG9rZW4pIHtcbiAgICAgICAgdGhpcy5za2lwTmV4dE5ld0xpbmUgPSBmYWxzZTtcbiAgICAgICAgaWYgKHRoaXMudG9rZW5pemVyLmluRm9yZWlnbk5vZGUpIHtcbiAgICAgICAgICAgIGNoYXJhY3RlckluRm9yZWlnbkNvbnRlbnQodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHN3aXRjaCAodGhpcy5pbnNlcnRpb25Nb2RlKSB7XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5JVElBTDoge1xuICAgICAgICAgICAgICAgIHRva2VuSW5Jbml0aWFsTW9kZSh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuQkVGT1JFX0hUTUw6IHtcbiAgICAgICAgICAgICAgICB0b2tlbkJlZm9yZUh0bWwodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLkJFRk9SRV9IRUFEOiB7XG4gICAgICAgICAgICAgICAgdG9rZW5CZWZvcmVIZWFkKHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9IRUFEOiB7XG4gICAgICAgICAgICAgICAgdG9rZW5JbkhlYWQodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX0hFQURfTk9fU0NSSVBUOiB7XG4gICAgICAgICAgICAgICAgdG9rZW5JbkhlYWROb1NjcmlwdCh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuQUZURVJfSEVBRDoge1xuICAgICAgICAgICAgICAgIHRva2VuQWZ0ZXJIZWFkKHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9CT0RZOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX0NBUFRJT046XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fQ0VMTDpcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9URU1QTEFURToge1xuICAgICAgICAgICAgICAgIGNoYXJhY3RlckluQm9keSh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuVEVYVDpcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9TRUxFQ1Q6XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fU0VMRUNUX0lOX1RBQkxFOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5faW5zZXJ0Q2hhcmFjdGVycyh0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fVEFCTEU6XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fVEFCTEVfQk9EWTpcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9ST1c6IHtcbiAgICAgICAgICAgICAgICBjaGFyYWN0ZXJJblRhYmxlKHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9UQUJMRV9URVhUOiB7XG4gICAgICAgICAgICAgICAgY2hhcmFjdGVySW5UYWJsZVRleHQodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX0NPTFVNTl9HUk9VUDoge1xuICAgICAgICAgICAgICAgIHRva2VuSW5Db2x1bW5Hcm91cCh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuQUZURVJfQk9EWToge1xuICAgICAgICAgICAgICAgIHRva2VuQWZ0ZXJCb2R5KHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5BRlRFUl9BRlRFUl9CT0RZOiB7XG4gICAgICAgICAgICAgICAgdG9rZW5BZnRlckFmdGVyQm9keSh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgLy8gRG8gbm90aGluZ1xuICAgICAgICB9XG4gICAgfVxuICAgIG9uTnVsbENoYXJhY3Rlcih0b2tlbikge1xuICAgICAgICB0aGlzLnNraXBOZXh0TmV3TGluZSA9IGZhbHNlO1xuICAgICAgICBpZiAodGhpcy50b2tlbml6ZXIuaW5Gb3JlaWduTm9kZSkge1xuICAgICAgICAgICAgbnVsbENoYXJhY3RlckluRm9yZWlnbkNvbnRlbnQodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHN3aXRjaCAodGhpcy5pbnNlcnRpb25Nb2RlKSB7XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5JVElBTDoge1xuICAgICAgICAgICAgICAgIHRva2VuSW5Jbml0aWFsTW9kZSh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuQkVGT1JFX0hUTUw6IHtcbiAgICAgICAgICAgICAgICB0b2tlbkJlZm9yZUh0bWwodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLkJFRk9SRV9IRUFEOiB7XG4gICAgICAgICAgICAgICAgdG9rZW5CZWZvcmVIZWFkKHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9IRUFEOiB7XG4gICAgICAgICAgICAgICAgdG9rZW5JbkhlYWQodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX0hFQURfTk9fU0NSSVBUOiB7XG4gICAgICAgICAgICAgICAgdG9rZW5JbkhlYWROb1NjcmlwdCh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuQUZURVJfSEVBRDoge1xuICAgICAgICAgICAgICAgIHRva2VuQWZ0ZXJIZWFkKHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5URVhUOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5faW5zZXJ0Q2hhcmFjdGVycyh0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fVEFCTEU6XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fVEFCTEVfQk9EWTpcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9ST1c6IHtcbiAgICAgICAgICAgICAgICBjaGFyYWN0ZXJJblRhYmxlKHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9DT0xVTU5fR1JPVVA6IHtcbiAgICAgICAgICAgICAgICB0b2tlbkluQ29sdW1uR3JvdXAodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLkFGVEVSX0JPRFk6IHtcbiAgICAgICAgICAgICAgICB0b2tlbkFmdGVyQm9keSh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuQUZURVJfQUZURVJfQk9EWToge1xuICAgICAgICAgICAgICAgIHRva2VuQWZ0ZXJBZnRlckJvZHkodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIC8vIERvIG5vdGhpbmdcbiAgICAgICAgfVxuICAgIH1cbiAgICBvbkNvbW1lbnQodG9rZW4pIHtcbiAgICAgICAgdGhpcy5za2lwTmV4dE5ld0xpbmUgPSBmYWxzZTtcbiAgICAgICAgaWYgKHRoaXMuY3VycmVudE5vdEluSFRNTCkge1xuICAgICAgICAgICAgYXBwZW5kQ29tbWVudCh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgc3dpdGNoICh0aGlzLmluc2VydGlvbk1vZGUpIHtcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTklUSUFMOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLkJFRk9SRV9IVE1MOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLkJFRk9SRV9IRUFEOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX0hFQUQ6XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fSEVBRF9OT19TQ1JJUFQ6XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuQUZURVJfSEVBRDpcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9CT0RZOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX1RBQkxFOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX0NBUFRJT046XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fQ09MVU1OX0dST1VQOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX1RBQkxFX0JPRFk6XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fUk9XOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX0NFTEw6XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fU0VMRUNUOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX1NFTEVDVF9JTl9UQUJMRTpcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9URU1QTEFURTpcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9GUkFNRVNFVDpcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5BRlRFUl9GUkFNRVNFVDoge1xuICAgICAgICAgICAgICAgIGFwcGVuZENvbW1lbnQodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX1RBQkxFX1RFWFQ6IHtcbiAgICAgICAgICAgICAgICB0b2tlbkluVGFibGVUZXh0KHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5BRlRFUl9CT0RZOiB7XG4gICAgICAgICAgICAgICAgYXBwZW5kQ29tbWVudFRvUm9vdEh0bWxFbGVtZW50KHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5BRlRFUl9BRlRFUl9CT0RZOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLkFGVEVSX0FGVEVSX0ZSQU1FU0VUOiB7XG4gICAgICAgICAgICAgICAgYXBwZW5kQ29tbWVudFRvRG9jdW1lbnQodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIC8vIERvIG5vdGhpbmdcbiAgICAgICAgfVxuICAgIH1cbiAgICBvbkRvY3R5cGUodG9rZW4pIHtcbiAgICAgICAgdGhpcy5za2lwTmV4dE5ld0xpbmUgPSBmYWxzZTtcbiAgICAgICAgc3dpdGNoICh0aGlzLmluc2VydGlvbk1vZGUpIHtcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTklUSUFMOiB7XG4gICAgICAgICAgICAgICAgZG9jdHlwZUluSW5pdGlhbE1vZGUodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLkJFRk9SRV9IRUFEOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX0hFQUQ6XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fSEVBRF9OT19TQ1JJUFQ6XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuQUZURVJfSEVBRDoge1xuICAgICAgICAgICAgICAgIHRoaXMuX2Vycih0b2tlbiwgRVJSLm1pc3BsYWNlZERvY3R5cGUpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX1RBQkxFX1RFWFQ6IHtcbiAgICAgICAgICAgICAgICB0b2tlbkluVGFibGVUZXh0KHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAvLyBEbyBub3RoaW5nXG4gICAgICAgIH1cbiAgICB9XG4gICAgb25TdGFydFRhZyh0b2tlbikge1xuICAgICAgICB0aGlzLnNraXBOZXh0TmV3TGluZSA9IGZhbHNlO1xuICAgICAgICB0aGlzLmN1cnJlbnRUb2tlbiA9IHRva2VuO1xuICAgICAgICB0aGlzLl9wcm9jZXNzU3RhcnRUYWcodG9rZW4pO1xuICAgICAgICBpZiAodG9rZW4uc2VsZkNsb3NpbmcgJiYgIXRva2VuLmFja1NlbGZDbG9zaW5nKSB7XG4gICAgICAgICAgICB0aGlzLl9lcnIodG9rZW4sIEVSUi5ub25Wb2lkSHRtbEVsZW1lbnRTdGFydFRhZ1dpdGhUcmFpbGluZ1NvbGlkdXMpO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFByb2Nlc3NlcyBhIGdpdmVuIHN0YXJ0IHRhZy5cbiAgICAgKlxuICAgICAqIGBvblN0YXJ0VGFnYCBjaGVja3MgaWYgYSBzZWxmLWNsb3NpbmcgdGFnIHdhcyByZWNvZ25pemVkLiBXaGVuIGEgdG9rZW5cbiAgICAgKiBpcyBtb3ZlZCBpbmJldHdlZW4gbXVsdGlwbGUgaW5zZXJ0aW9uIG1vZGVzLCB0aGlzIGNoZWNrIGZvciBzZWxmLWNsb3NpbmdcbiAgICAgKiBjb3VsZCBsZWFkIHRvIGZhbHNlIHBvc2l0aXZlcy4gVG8gYXZvaWQgdGhpcywgYF9wcm9jZXNzU3RhcnRUYWdgIGlzIHVzZWRcbiAgICAgKiBmb3IgbmVzdGVkIGNhbGxzLlxuICAgICAqXG4gICAgICogQHBhcmFtIHRva2VuIFRoZSB0b2tlbiB0byBwcm9jZXNzLlxuICAgICAqL1xuICAgIF9wcm9jZXNzU3RhcnRUYWcodG9rZW4pIHtcbiAgICAgICAgaWYgKHRoaXMuc2hvdWxkUHJvY2Vzc1N0YXJ0VGFnVG9rZW5JbkZvcmVpZ25Db250ZW50KHRva2VuKSkge1xuICAgICAgICAgICAgc3RhcnRUYWdJbkZvcmVpZ25Db250ZW50KHRoaXMsIHRva2VuKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX3N0YXJ0VGFnT3V0c2lkZUZvcmVpZ25Db250ZW50KHRva2VuKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBfc3RhcnRUYWdPdXRzaWRlRm9yZWlnbkNvbnRlbnQodG9rZW4pIHtcbiAgICAgICAgc3dpdGNoICh0aGlzLmluc2VydGlvbk1vZGUpIHtcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTklUSUFMOiB7XG4gICAgICAgICAgICAgICAgdG9rZW5JbkluaXRpYWxNb2RlKHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5CRUZPUkVfSFRNTDoge1xuICAgICAgICAgICAgICAgIHN0YXJ0VGFnQmVmb3JlSHRtbCh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuQkVGT1JFX0hFQUQ6IHtcbiAgICAgICAgICAgICAgICBzdGFydFRhZ0JlZm9yZUhlYWQodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX0hFQUQ6IHtcbiAgICAgICAgICAgICAgICBzdGFydFRhZ0luSGVhZCh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fSEVBRF9OT19TQ1JJUFQ6IHtcbiAgICAgICAgICAgICAgICBzdGFydFRhZ0luSGVhZE5vU2NyaXB0KHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5BRlRFUl9IRUFEOiB7XG4gICAgICAgICAgICAgICAgc3RhcnRUYWdBZnRlckhlYWQodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX0JPRFk6IHtcbiAgICAgICAgICAgICAgICBzdGFydFRhZ0luQm9keSh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fVEFCTEU6IHtcbiAgICAgICAgICAgICAgICBzdGFydFRhZ0luVGFibGUodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX1RBQkxFX1RFWFQ6IHtcbiAgICAgICAgICAgICAgICB0b2tlbkluVGFibGVUZXh0KHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9DQVBUSU9OOiB7XG4gICAgICAgICAgICAgICAgc3RhcnRUYWdJbkNhcHRpb24odGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX0NPTFVNTl9HUk9VUDoge1xuICAgICAgICAgICAgICAgIHN0YXJ0VGFnSW5Db2x1bW5Hcm91cCh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fVEFCTEVfQk9EWToge1xuICAgICAgICAgICAgICAgIHN0YXJ0VGFnSW5UYWJsZUJvZHkodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX1JPVzoge1xuICAgICAgICAgICAgICAgIHN0YXJ0VGFnSW5Sb3codGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX0NFTEw6IHtcbiAgICAgICAgICAgICAgICBzdGFydFRhZ0luQ2VsbCh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fU0VMRUNUOiB7XG4gICAgICAgICAgICAgICAgc3RhcnRUYWdJblNlbGVjdCh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fU0VMRUNUX0lOX1RBQkxFOiB7XG4gICAgICAgICAgICAgICAgc3RhcnRUYWdJblNlbGVjdEluVGFibGUodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX1RFTVBMQVRFOiB7XG4gICAgICAgICAgICAgICAgc3RhcnRUYWdJblRlbXBsYXRlKHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5BRlRFUl9CT0RZOiB7XG4gICAgICAgICAgICAgICAgc3RhcnRUYWdBZnRlckJvZHkodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX0ZSQU1FU0VUOiB7XG4gICAgICAgICAgICAgICAgc3RhcnRUYWdJbkZyYW1lc2V0KHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5BRlRFUl9GUkFNRVNFVDoge1xuICAgICAgICAgICAgICAgIHN0YXJ0VGFnQWZ0ZXJGcmFtZXNldCh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuQUZURVJfQUZURVJfQk9EWToge1xuICAgICAgICAgICAgICAgIHN0YXJ0VGFnQWZ0ZXJBZnRlckJvZHkodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLkFGVEVSX0FGVEVSX0ZSQU1FU0VUOiB7XG4gICAgICAgICAgICAgICAgc3RhcnRUYWdBZnRlckFmdGVyRnJhbWVzZXQodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIC8vIERvIG5vdGhpbmdcbiAgICAgICAgfVxuICAgIH1cbiAgICBvbkVuZFRhZyh0b2tlbikge1xuICAgICAgICB0aGlzLnNraXBOZXh0TmV3TGluZSA9IGZhbHNlO1xuICAgICAgICB0aGlzLmN1cnJlbnRUb2tlbiA9IHRva2VuO1xuICAgICAgICBpZiAodGhpcy5jdXJyZW50Tm90SW5IVE1MKSB7XG4gICAgICAgICAgICBlbmRUYWdJbkZvcmVpZ25Db250ZW50KHRoaXMsIHRva2VuKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX2VuZFRhZ091dHNpZGVGb3JlaWduQ29udGVudCh0b2tlbik7XG4gICAgICAgIH1cbiAgICB9XG4gICAgX2VuZFRhZ091dHNpZGVGb3JlaWduQ29udGVudCh0b2tlbikge1xuICAgICAgICBzd2l0Y2ggKHRoaXMuaW5zZXJ0aW9uTW9kZSkge1xuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOSVRJQUw6IHtcbiAgICAgICAgICAgICAgICB0b2tlbkluSW5pdGlhbE1vZGUodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLkJFRk9SRV9IVE1MOiB7XG4gICAgICAgICAgICAgICAgZW5kVGFnQmVmb3JlSHRtbCh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuQkVGT1JFX0hFQUQ6IHtcbiAgICAgICAgICAgICAgICBlbmRUYWdCZWZvcmVIZWFkKHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9IRUFEOiB7XG4gICAgICAgICAgICAgICAgZW5kVGFnSW5IZWFkKHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9IRUFEX05PX1NDUklQVDoge1xuICAgICAgICAgICAgICAgIGVuZFRhZ0luSGVhZE5vU2NyaXB0KHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5BRlRFUl9IRUFEOiB7XG4gICAgICAgICAgICAgICAgZW5kVGFnQWZ0ZXJIZWFkKHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9CT0RZOiB7XG4gICAgICAgICAgICAgICAgZW5kVGFnSW5Cb2R5KHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5URVhUOiB7XG4gICAgICAgICAgICAgICAgZW5kVGFnSW5UZXh0KHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9UQUJMRToge1xuICAgICAgICAgICAgICAgIGVuZFRhZ0luVGFibGUodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX1RBQkxFX1RFWFQ6IHtcbiAgICAgICAgICAgICAgICB0b2tlbkluVGFibGVUZXh0KHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9DQVBUSU9OOiB7XG4gICAgICAgICAgICAgICAgZW5kVGFnSW5DYXB0aW9uKHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9DT0xVTU5fR1JPVVA6IHtcbiAgICAgICAgICAgICAgICBlbmRUYWdJbkNvbHVtbkdyb3VwKHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9UQUJMRV9CT0RZOiB7XG4gICAgICAgICAgICAgICAgZW5kVGFnSW5UYWJsZUJvZHkodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX1JPVzoge1xuICAgICAgICAgICAgICAgIGVuZFRhZ0luUm93KHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9DRUxMOiB7XG4gICAgICAgICAgICAgICAgZW5kVGFnSW5DZWxsKHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9TRUxFQ1Q6IHtcbiAgICAgICAgICAgICAgICBlbmRUYWdJblNlbGVjdCh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fU0VMRUNUX0lOX1RBQkxFOiB7XG4gICAgICAgICAgICAgICAgZW5kVGFnSW5TZWxlY3RJblRhYmxlKHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9URU1QTEFURToge1xuICAgICAgICAgICAgICAgIGVuZFRhZ0luVGVtcGxhdGUodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLkFGVEVSX0JPRFk6IHtcbiAgICAgICAgICAgICAgICBlbmRUYWdBZnRlckJvZHkodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX0ZSQU1FU0VUOiB7XG4gICAgICAgICAgICAgICAgZW5kVGFnSW5GcmFtZXNldCh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuQUZURVJfRlJBTUVTRVQ6IHtcbiAgICAgICAgICAgICAgICBlbmRUYWdBZnRlckZyYW1lc2V0KHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5BRlRFUl9BRlRFUl9CT0RZOiB7XG4gICAgICAgICAgICAgICAgdG9rZW5BZnRlckFmdGVyQm9keSh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgLy8gRG8gbm90aGluZ1xuICAgICAgICB9XG4gICAgfVxuICAgIG9uRW9mKHRva2VuKSB7XG4gICAgICAgIHN3aXRjaCAodGhpcy5pbnNlcnRpb25Nb2RlKSB7XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5JVElBTDoge1xuICAgICAgICAgICAgICAgIHRva2VuSW5Jbml0aWFsTW9kZSh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuQkVGT1JFX0hUTUw6IHtcbiAgICAgICAgICAgICAgICB0b2tlbkJlZm9yZUh0bWwodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLkJFRk9SRV9IRUFEOiB7XG4gICAgICAgICAgICAgICAgdG9rZW5CZWZvcmVIZWFkKHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9IRUFEOiB7XG4gICAgICAgICAgICAgICAgdG9rZW5JbkhlYWQodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX0hFQURfTk9fU0NSSVBUOiB7XG4gICAgICAgICAgICAgICAgdG9rZW5JbkhlYWROb1NjcmlwdCh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuQUZURVJfSEVBRDoge1xuICAgICAgICAgICAgICAgIHRva2VuQWZ0ZXJIZWFkKHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9CT0RZOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX1RBQkxFOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX0NBUFRJT046XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fQ09MVU1OX0dST1VQOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX1RBQkxFX0JPRFk6XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fUk9XOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX0NFTEw6XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fU0VMRUNUOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX1NFTEVDVF9JTl9UQUJMRToge1xuICAgICAgICAgICAgICAgIGVvZkluQm9keSh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuVEVYVDoge1xuICAgICAgICAgICAgICAgIGVvZkluVGV4dCh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fVEFCTEVfVEVYVDoge1xuICAgICAgICAgICAgICAgIHRva2VuSW5UYWJsZVRleHQodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX1RFTVBMQVRFOiB7XG4gICAgICAgICAgICAgICAgZW9mSW5UZW1wbGF0ZSh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuQUZURVJfQk9EWTpcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9GUkFNRVNFVDpcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5BRlRFUl9GUkFNRVNFVDpcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5BRlRFUl9BRlRFUl9CT0RZOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLkFGVEVSX0FGVEVSX0ZSQU1FU0VUOiB7XG4gICAgICAgICAgICAgICAgc3RvcFBhcnNpbmcodGhpcywgdG9rZW4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIC8vIERvIG5vdGhpbmdcbiAgICAgICAgfVxuICAgIH1cbiAgICBvbldoaXRlc3BhY2VDaGFyYWN0ZXIodG9rZW4pIHtcbiAgICAgICAgaWYgKHRoaXMuc2tpcE5leHROZXdMaW5lKSB7XG4gICAgICAgICAgICB0aGlzLnNraXBOZXh0TmV3TGluZSA9IGZhbHNlO1xuICAgICAgICAgICAgaWYgKHRva2VuLmNoYXJzLmNoYXJDb2RlQXQoMCkgPT09IHVuaWNvZGUuQ09ERV9QT0lOVFMuTElORV9GRUVEKSB7XG4gICAgICAgICAgICAgICAgaWYgKHRva2VuLmNoYXJzLmxlbmd0aCA9PT0gMSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRva2VuLmNoYXJzID0gdG9rZW4uY2hhcnMuc3Vic3RyKDEpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLnRva2VuaXplci5pbkZvcmVpZ25Ob2RlKSB7XG4gICAgICAgICAgICB0aGlzLl9pbnNlcnRDaGFyYWN0ZXJzKHRva2VuKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBzd2l0Y2ggKHRoaXMuaW5zZXJ0aW9uTW9kZSkge1xuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX0hFQUQ6XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fSEVBRF9OT19TQ1JJUFQ6XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuQUZURVJfSEVBRDpcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5URVhUOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX0NPTFVNTl9HUk9VUDpcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9TRUxFQ1Q6XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fU0VMRUNUX0lOX1RBQkxFOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX0ZSQU1FU0VUOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLkFGVEVSX0ZSQU1FU0VUOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5faW5zZXJ0Q2hhcmFjdGVycyh0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fQk9EWTpcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9DQVBUSU9OOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLklOX0NFTEw6XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fVEVNUExBVEU6XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuQUZURVJfQk9EWTpcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5BRlRFUl9BRlRFUl9CT0RZOlxuICAgICAgICAgICAgY2FzZSBJbnNlcnRpb25Nb2RlLkFGVEVSX0FGVEVSX0ZSQU1FU0VUOiB7XG4gICAgICAgICAgICAgICAgd2hpdGVzcGFjZUNoYXJhY3RlckluQm9keSh0aGlzLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fVEFCTEU6XG4gICAgICAgICAgICBjYXNlIEluc2VydGlvbk1vZGUuSU5fVEFCTEVfQk9EWTpcbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9ST1c6IHtcbiAgICAgICAgICAgICAgICBjaGFyYWN0ZXJJblRhYmxlKHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgSW5zZXJ0aW9uTW9kZS5JTl9UQUJMRV9URVhUOiB7XG4gICAgICAgICAgICAgICAgd2hpdGVzcGFjZUNoYXJhY3RlckluVGFibGVUZXh0KHRoaXMsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAvLyBEbyBub3RoaW5nXG4gICAgICAgIH1cbiAgICB9XG59XG4vL0Fkb3B0aW9uIGFnZW5jeSBhbGdvcml0aG1cbi8vKHNlZTogaHR0cDovL3d3dy53aGF0d2cub3JnL3NwZWNzL3dlYi1hcHBzL2N1cnJlbnQtd29yay9tdWx0aXBhZ2UvdHJlZS1jb25zdHJ1Y3Rpb24uaHRtbCNhZG9wdGlvbkFnZW5jeSlcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vL1N0ZXBzIDUtOCBvZiB0aGUgYWxnb3JpdGhtXG5mdW5jdGlvbiBhYU9idGFpbkZvcm1hdHRpbmdFbGVtZW50RW50cnkocCwgdG9rZW4pIHtcbiAgICBsZXQgZm9ybWF0dGluZ0VsZW1lbnRFbnRyeSA9IHAuYWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzLmdldEVsZW1lbnRFbnRyeUluU2NvcGVXaXRoVGFnTmFtZSh0b2tlbi50YWdOYW1lKTtcbiAgICBpZiAoZm9ybWF0dGluZ0VsZW1lbnRFbnRyeSkge1xuICAgICAgICBpZiAoIXAub3BlbkVsZW1lbnRzLmNvbnRhaW5zKGZvcm1hdHRpbmdFbGVtZW50RW50cnkuZWxlbWVudCkpIHtcbiAgICAgICAgICAgIHAuYWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzLnJlbW92ZUVudHJ5KGZvcm1hdHRpbmdFbGVtZW50RW50cnkpO1xuICAgICAgICAgICAgZm9ybWF0dGluZ0VsZW1lbnRFbnRyeSA9IG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoIXAub3BlbkVsZW1lbnRzLmhhc0luU2NvcGUodG9rZW4udGFnSUQpKSB7XG4gICAgICAgICAgICBmb3JtYXR0aW5nRWxlbWVudEVudHJ5ID0gbnVsbDtcbiAgICAgICAgfVxuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgZ2VuZXJpY0VuZFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgfVxuICAgIHJldHVybiBmb3JtYXR0aW5nRWxlbWVudEVudHJ5O1xufVxuLy9TdGVwcyA5IGFuZCAxMCBvZiB0aGUgYWxnb3JpdGhtXG5mdW5jdGlvbiBhYU9idGFpbkZ1cnRoZXN0QmxvY2socCwgZm9ybWF0dGluZ0VsZW1lbnRFbnRyeSkge1xuICAgIGxldCBmdXJ0aGVzdEJsb2NrID0gbnVsbDtcbiAgICBsZXQgaWR4ID0gcC5vcGVuRWxlbWVudHMuc3RhY2tUb3A7XG4gICAgZm9yICg7IGlkeCA+PSAwOyBpZHgtLSkge1xuICAgICAgICBjb25zdCBlbGVtZW50ID0gcC5vcGVuRWxlbWVudHMuaXRlbXNbaWR4XTtcbiAgICAgICAgaWYgKGVsZW1lbnQgPT09IGZvcm1hdHRpbmdFbGVtZW50RW50cnkuZWxlbWVudCkge1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHAuX2lzU3BlY2lhbEVsZW1lbnQoZWxlbWVudCwgcC5vcGVuRWxlbWVudHMudGFnSURzW2lkeF0pKSB7XG4gICAgICAgICAgICBmdXJ0aGVzdEJsb2NrID0gZWxlbWVudDtcbiAgICAgICAgfVxuICAgIH1cbiAgICBpZiAoIWZ1cnRoZXN0QmxvY2spIHtcbiAgICAgICAgcC5vcGVuRWxlbWVudHMuc2hvcnRlblRvTGVuZ3RoKGlkeCA8IDAgPyAwIDogaWR4KTtcbiAgICAgICAgcC5hY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMucmVtb3ZlRW50cnkoZm9ybWF0dGluZ0VsZW1lbnRFbnRyeSk7XG4gICAgfVxuICAgIHJldHVybiBmdXJ0aGVzdEJsb2NrO1xufVxuLy9TdGVwIDEzIG9mIHRoZSBhbGdvcml0aG1cbmZ1bmN0aW9uIGFhSW5uZXJMb29wKHAsIGZ1cnRoZXN0QmxvY2ssIGZvcm1hdHRpbmdFbGVtZW50KSB7XG4gICAgbGV0IGxhc3RFbGVtZW50ID0gZnVydGhlc3RCbG9jaztcbiAgICBsZXQgbmV4dEVsZW1lbnQgPSBwLm9wZW5FbGVtZW50cy5nZXRDb21tb25BbmNlc3RvcihmdXJ0aGVzdEJsb2NrKTtcbiAgICBmb3IgKGxldCBpID0gMCwgZWxlbWVudCA9IG5leHRFbGVtZW50OyBlbGVtZW50ICE9PSBmb3JtYXR0aW5nRWxlbWVudDsgaSsrLCBlbGVtZW50ID0gbmV4dEVsZW1lbnQpIHtcbiAgICAgICAgLy9OT1RFOiBzdG9yZSB0aGUgbmV4dCBlbGVtZW50IGZvciB0aGUgbmV4dCBsb29wIGl0ZXJhdGlvbiAoaXQgbWF5IGJlIGRlbGV0ZWQgZnJvbSB0aGUgc3RhY2sgYnkgc3RlcCA5LjUpXG4gICAgICAgIG5leHRFbGVtZW50ID0gcC5vcGVuRWxlbWVudHMuZ2V0Q29tbW9uQW5jZXN0b3IoZWxlbWVudCk7XG4gICAgICAgIGNvbnN0IGVsZW1lbnRFbnRyeSA9IHAuYWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzLmdldEVsZW1lbnRFbnRyeShlbGVtZW50KTtcbiAgICAgICAgY29uc3QgY291bnRlck92ZXJmbG93ID0gZWxlbWVudEVudHJ5ICYmIGkgPj0gQUFfSU5ORVJfTE9PUF9JVEVSO1xuICAgICAgICBjb25zdCBzaG91bGRSZW1vdmVGcm9tT3BlbkVsZW1lbnRzID0gIWVsZW1lbnRFbnRyeSB8fCBjb3VudGVyT3ZlcmZsb3c7XG4gICAgICAgIGlmIChzaG91bGRSZW1vdmVGcm9tT3BlbkVsZW1lbnRzKSB7XG4gICAgICAgICAgICBpZiAoY291bnRlck92ZXJmbG93KSB7XG4gICAgICAgICAgICAgICAgcC5hY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMucmVtb3ZlRW50cnkoZWxlbWVudEVudHJ5KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLnJlbW92ZShlbGVtZW50KTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGVsZW1lbnQgPSBhYVJlY3JlYXRlRWxlbWVudEZyb21FbnRyeShwLCBlbGVtZW50RW50cnkpO1xuICAgICAgICAgICAgaWYgKGxhc3RFbGVtZW50ID09PSBmdXJ0aGVzdEJsb2NrKSB7XG4gICAgICAgICAgICAgICAgcC5hY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMuYm9va21hcmsgPSBlbGVtZW50RW50cnk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBwLnRyZWVBZGFwdGVyLmRldGFjaE5vZGUobGFzdEVsZW1lbnQpO1xuICAgICAgICAgICAgcC50cmVlQWRhcHRlci5hcHBlbmRDaGlsZChlbGVtZW50LCBsYXN0RWxlbWVudCk7XG4gICAgICAgICAgICBsYXN0RWxlbWVudCA9IGVsZW1lbnQ7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGxhc3RFbGVtZW50O1xufVxuLy9TdGVwIDEzLjcgb2YgdGhlIGFsZ29yaXRobVxuZnVuY3Rpb24gYWFSZWNyZWF0ZUVsZW1lbnRGcm9tRW50cnkocCwgZWxlbWVudEVudHJ5KSB7XG4gICAgY29uc3QgbnMgPSBwLnRyZWVBZGFwdGVyLmdldE5hbWVzcGFjZVVSSShlbGVtZW50RW50cnkuZWxlbWVudCk7XG4gICAgY29uc3QgbmV3RWxlbWVudCA9IHAudHJlZUFkYXB0ZXIuY3JlYXRlRWxlbWVudChlbGVtZW50RW50cnkudG9rZW4udGFnTmFtZSwgbnMsIGVsZW1lbnRFbnRyeS50b2tlbi5hdHRycyk7XG4gICAgcC5vcGVuRWxlbWVudHMucmVwbGFjZShlbGVtZW50RW50cnkuZWxlbWVudCwgbmV3RWxlbWVudCk7XG4gICAgZWxlbWVudEVudHJ5LmVsZW1lbnQgPSBuZXdFbGVtZW50O1xuICAgIHJldHVybiBuZXdFbGVtZW50O1xufVxuLy9TdGVwIDE0IG9mIHRoZSBhbGdvcml0aG1cbmZ1bmN0aW9uIGFhSW5zZXJ0TGFzdE5vZGVJbkNvbW1vbkFuY2VzdG9yKHAsIGNvbW1vbkFuY2VzdG9yLCBsYXN0RWxlbWVudCkge1xuICAgIGNvbnN0IHRuID0gcC50cmVlQWRhcHRlci5nZXRUYWdOYW1lKGNvbW1vbkFuY2VzdG9yKTtcbiAgICBjb25zdCB0aWQgPSBnZXRUYWdJRCh0bik7XG4gICAgaWYgKHAuX2lzRWxlbWVudENhdXNlc0Zvc3RlclBhcmVudGluZyh0aWQpKSB7XG4gICAgICAgIHAuX2Zvc3RlclBhcmVudEVsZW1lbnQobGFzdEVsZW1lbnQpO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgY29uc3QgbnMgPSBwLnRyZWVBZGFwdGVyLmdldE5hbWVzcGFjZVVSSShjb21tb25BbmNlc3Rvcik7XG4gICAgICAgIGlmICh0aWQgPT09ICQuVEVNUExBVEUgJiYgbnMgPT09IE5TLkhUTUwpIHtcbiAgICAgICAgICAgIGNvbW1vbkFuY2VzdG9yID0gcC50cmVlQWRhcHRlci5nZXRUZW1wbGF0ZUNvbnRlbnQoY29tbW9uQW5jZXN0b3IpO1xuICAgICAgICB9XG4gICAgICAgIHAudHJlZUFkYXB0ZXIuYXBwZW5kQ2hpbGQoY29tbW9uQW5jZXN0b3IsIGxhc3RFbGVtZW50KTtcbiAgICB9XG59XG4vL1N0ZXBzIDE1LTE5IG9mIHRoZSBhbGdvcml0aG1cbmZ1bmN0aW9uIGFhUmVwbGFjZUZvcm1hdHRpbmdFbGVtZW50KHAsIGZ1cnRoZXN0QmxvY2ssIGZvcm1hdHRpbmdFbGVtZW50RW50cnkpIHtcbiAgICBjb25zdCBucyA9IHAudHJlZUFkYXB0ZXIuZ2V0TmFtZXNwYWNlVVJJKGZvcm1hdHRpbmdFbGVtZW50RW50cnkuZWxlbWVudCk7XG4gICAgY29uc3QgeyB0b2tlbiB9ID0gZm9ybWF0dGluZ0VsZW1lbnRFbnRyeTtcbiAgICBjb25zdCBuZXdFbGVtZW50ID0gcC50cmVlQWRhcHRlci5jcmVhdGVFbGVtZW50KHRva2VuLnRhZ05hbWUsIG5zLCB0b2tlbi5hdHRycyk7XG4gICAgcC5fYWRvcHROb2RlcyhmdXJ0aGVzdEJsb2NrLCBuZXdFbGVtZW50KTtcbiAgICBwLnRyZWVBZGFwdGVyLmFwcGVuZENoaWxkKGZ1cnRoZXN0QmxvY2ssIG5ld0VsZW1lbnQpO1xuICAgIHAuYWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzLmluc2VydEVsZW1lbnRBZnRlckJvb2ttYXJrKG5ld0VsZW1lbnQsIHRva2VuKTtcbiAgICBwLmFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cy5yZW1vdmVFbnRyeShmb3JtYXR0aW5nRWxlbWVudEVudHJ5KTtcbiAgICBwLm9wZW5FbGVtZW50cy5yZW1vdmUoZm9ybWF0dGluZ0VsZW1lbnRFbnRyeS5lbGVtZW50KTtcbiAgICBwLm9wZW5FbGVtZW50cy5pbnNlcnRBZnRlcihmdXJ0aGVzdEJsb2NrLCBuZXdFbGVtZW50LCB0b2tlbi50YWdJRCk7XG59XG4vL0FsZ29yaXRobSBlbnRyeSBwb2ludFxuZnVuY3Rpb24gY2FsbEFkb3B0aW9uQWdlbmN5KHAsIHRva2VuKSB7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBBQV9PVVRFUl9MT09QX0lURVI7IGkrKykge1xuICAgICAgICBjb25zdCBmb3JtYXR0aW5nRWxlbWVudEVudHJ5ID0gYWFPYnRhaW5Gb3JtYXR0aW5nRWxlbWVudEVudHJ5KHAsIHRva2VuKTtcbiAgICAgICAgaWYgKCFmb3JtYXR0aW5nRWxlbWVudEVudHJ5KSB7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBmdXJ0aGVzdEJsb2NrID0gYWFPYnRhaW5GdXJ0aGVzdEJsb2NrKHAsIGZvcm1hdHRpbmdFbGVtZW50RW50cnkpO1xuICAgICAgICBpZiAoIWZ1cnRoZXN0QmxvY2spIHtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIHAuYWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzLmJvb2ttYXJrID0gZm9ybWF0dGluZ0VsZW1lbnRFbnRyeTtcbiAgICAgICAgY29uc3QgbGFzdEVsZW1lbnQgPSBhYUlubmVyTG9vcChwLCBmdXJ0aGVzdEJsb2NrLCBmb3JtYXR0aW5nRWxlbWVudEVudHJ5LmVsZW1lbnQpO1xuICAgICAgICBjb25zdCBjb21tb25BbmNlc3RvciA9IHAub3BlbkVsZW1lbnRzLmdldENvbW1vbkFuY2VzdG9yKGZvcm1hdHRpbmdFbGVtZW50RW50cnkuZWxlbWVudCk7XG4gICAgICAgIHAudHJlZUFkYXB0ZXIuZGV0YWNoTm9kZShsYXN0RWxlbWVudCk7XG4gICAgICAgIGlmIChjb21tb25BbmNlc3RvcilcbiAgICAgICAgICAgIGFhSW5zZXJ0TGFzdE5vZGVJbkNvbW1vbkFuY2VzdG9yKHAsIGNvbW1vbkFuY2VzdG9yLCBsYXN0RWxlbWVudCk7XG4gICAgICAgIGFhUmVwbGFjZUZvcm1hdHRpbmdFbGVtZW50KHAsIGZ1cnRoZXN0QmxvY2ssIGZvcm1hdHRpbmdFbGVtZW50RW50cnkpO1xuICAgIH1cbn1cbi8vR2VuZXJpYyB0b2tlbiBoYW5kbGVyc1xuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmZ1bmN0aW9uIGFwcGVuZENvbW1lbnQocCwgdG9rZW4pIHtcbiAgICBwLl9hcHBlbmRDb21tZW50Tm9kZSh0b2tlbiwgcC5vcGVuRWxlbWVudHMuY3VycmVudFRtcGxDb250ZW50T3JOb2RlKTtcbn1cbmZ1bmN0aW9uIGFwcGVuZENvbW1lbnRUb1Jvb3RIdG1sRWxlbWVudChwLCB0b2tlbikge1xuICAgIHAuX2FwcGVuZENvbW1lbnROb2RlKHRva2VuLCBwLm9wZW5FbGVtZW50cy5pdGVtc1swXSk7XG59XG5mdW5jdGlvbiBhcHBlbmRDb21tZW50VG9Eb2N1bWVudChwLCB0b2tlbikge1xuICAgIHAuX2FwcGVuZENvbW1lbnROb2RlKHRva2VuLCBwLmRvY3VtZW50KTtcbn1cbmZ1bmN0aW9uIHN0b3BQYXJzaW5nKHAsIHRva2VuKSB7XG4gICAgcC5zdG9wcGVkID0gdHJ1ZTtcbiAgICAvLyBOT1RFOiBTZXQgZW5kIGxvY2F0aW9ucyBmb3IgZWxlbWVudHMgdGhhdCByZW1haW4gb24gdGhlIG9wZW4gZWxlbWVudCBzdGFjay5cbiAgICBpZiAodG9rZW4ubG9jYXRpb24pIHtcbiAgICAgICAgLy8gTk9URTogSWYgd2UgYXJlIG5vdCBpbiBhIGZyYWdtZW50LCBgaHRtbGAgYW5kIGBib2R5YCB3aWxsIHN0YXkgb24gdGhlIHN0YWNrLlxuICAgICAgICAvLyBUaGlzIGlzIGEgcHJvYmxlbSwgYXMgd2UgbWlnaHQgb3ZlcndyaXRlIHRoZWlyIGVuZCBwb3NpdGlvbiBoZXJlLlxuICAgICAgICBjb25zdCB0YXJnZXQgPSBwLmZyYWdtZW50Q29udGV4dCA/IDAgOiAyO1xuICAgICAgICBmb3IgKGxldCBpID0gcC5vcGVuRWxlbWVudHMuc3RhY2tUb3A7IGkgPj0gdGFyZ2V0OyBpLS0pIHtcbiAgICAgICAgICAgIHAuX3NldEVuZExvY2F0aW9uKHAub3BlbkVsZW1lbnRzLml0ZW1zW2ldLCB0b2tlbik7XG4gICAgICAgIH1cbiAgICAgICAgLy8gSGFuZGxlIGBodG1sYCBhbmQgYGJvZHlgXG4gICAgICAgIGlmICghcC5mcmFnbWVudENvbnRleHQgJiYgcC5vcGVuRWxlbWVudHMuc3RhY2tUb3AgPj0gMCkge1xuICAgICAgICAgICAgY29uc3QgaHRtbEVsZW1lbnQgPSBwLm9wZW5FbGVtZW50cy5pdGVtc1swXTtcbiAgICAgICAgICAgIGNvbnN0IGh0bWxMb2NhdGlvbiA9IHAudHJlZUFkYXB0ZXIuZ2V0Tm9kZVNvdXJjZUNvZGVMb2NhdGlvbihodG1sRWxlbWVudCk7XG4gICAgICAgICAgICBpZiAoaHRtbExvY2F0aW9uICYmICFodG1sTG9jYXRpb24uZW5kVGFnKSB7XG4gICAgICAgICAgICAgICAgcC5fc2V0RW5kTG9jYXRpb24oaHRtbEVsZW1lbnQsIHRva2VuKTtcbiAgICAgICAgICAgICAgICBpZiAocC5vcGVuRWxlbWVudHMuc3RhY2tUb3AgPj0gMSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBib2R5RWxlbWVudCA9IHAub3BlbkVsZW1lbnRzLml0ZW1zWzFdO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBib2R5TG9jYXRpb24gPSBwLnRyZWVBZGFwdGVyLmdldE5vZGVTb3VyY2VDb2RlTG9jYXRpb24oYm9keUVsZW1lbnQpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoYm9keUxvY2F0aW9uICYmICFib2R5TG9jYXRpb24uZW5kVGFnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwLl9zZXRFbmRMb2NhdGlvbihib2R5RWxlbWVudCwgdG9rZW4pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuLy8gVGhlIFwiaW5pdGlhbFwiIGluc2VydGlvbiBtb2RlXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuZnVuY3Rpb24gZG9jdHlwZUluSW5pdGlhbE1vZGUocCwgdG9rZW4pIHtcbiAgICBwLl9zZXREb2N1bWVudFR5cGUodG9rZW4pO1xuICAgIGNvbnN0IG1vZGUgPSB0b2tlbi5mb3JjZVF1aXJrcyA/IERPQ1VNRU5UX01PREUuUVVJUktTIDogZG9jdHlwZS5nZXREb2N1bWVudE1vZGUodG9rZW4pO1xuICAgIGlmICghZG9jdHlwZS5pc0NvbmZvcm1pbmcodG9rZW4pKSB7XG4gICAgICAgIHAuX2Vycih0b2tlbiwgRVJSLm5vbkNvbmZvcm1pbmdEb2N0eXBlKTtcbiAgICB9XG4gICAgcC50cmVlQWRhcHRlci5zZXREb2N1bWVudE1vZGUocC5kb2N1bWVudCwgbW9kZSk7XG4gICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5CRUZPUkVfSFRNTDtcbn1cbmZ1bmN0aW9uIHRva2VuSW5Jbml0aWFsTW9kZShwLCB0b2tlbikge1xuICAgIHAuX2Vycih0b2tlbiwgRVJSLm1pc3NpbmdEb2N0eXBlLCB0cnVlKTtcbiAgICBwLnRyZWVBZGFwdGVyLnNldERvY3VtZW50TW9kZShwLmRvY3VtZW50LCBET0NVTUVOVF9NT0RFLlFVSVJLUyk7XG4gICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5CRUZPUkVfSFRNTDtcbiAgICBwLl9wcm9jZXNzVG9rZW4odG9rZW4pO1xufVxuLy8gVGhlIFwiYmVmb3JlIGh0bWxcIiBpbnNlcnRpb24gbW9kZVxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmZ1bmN0aW9uIHN0YXJ0VGFnQmVmb3JlSHRtbChwLCB0b2tlbikge1xuICAgIGlmICh0b2tlbi50YWdJRCA9PT0gJC5IVE1MKSB7XG4gICAgICAgIHAuX2luc2VydEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpO1xuICAgICAgICBwLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLkJFRk9SRV9IRUFEO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgdG9rZW5CZWZvcmVIdG1sKHAsIHRva2VuKTtcbiAgICB9XG59XG5mdW5jdGlvbiBlbmRUYWdCZWZvcmVIdG1sKHAsIHRva2VuKSB7XG4gICAgY29uc3QgdG4gPSB0b2tlbi50YWdJRDtcbiAgICBpZiAodG4gPT09ICQuSFRNTCB8fCB0biA9PT0gJC5IRUFEIHx8IHRuID09PSAkLkJPRFkgfHwgdG4gPT09ICQuQlIpIHtcbiAgICAgICAgdG9rZW5CZWZvcmVIdG1sKHAsIHRva2VuKTtcbiAgICB9XG59XG5mdW5jdGlvbiB0b2tlbkJlZm9yZUh0bWwocCwgdG9rZW4pIHtcbiAgICBwLl9pbnNlcnRGYWtlUm9vdEVsZW1lbnQoKTtcbiAgICBwLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLkJFRk9SRV9IRUFEO1xuICAgIHAuX3Byb2Nlc3NUb2tlbih0b2tlbik7XG59XG4vLyBUaGUgXCJiZWZvcmUgaGVhZFwiIGluc2VydGlvbiBtb2RlXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuZnVuY3Rpb24gc3RhcnRUYWdCZWZvcmVIZWFkKHAsIHRva2VuKSB7XG4gICAgc3dpdGNoICh0b2tlbi50YWdJRCkge1xuICAgICAgICBjYXNlICQuSFRNTDoge1xuICAgICAgICAgICAgc3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLkhFQUQ6IHtcbiAgICAgICAgICAgIHAuX2luc2VydEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpO1xuICAgICAgICAgICAgcC5oZWFkRWxlbWVudCA9IHAub3BlbkVsZW1lbnRzLmN1cnJlbnQ7XG4gICAgICAgICAgICBwLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLklOX0hFQUQ7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICB0b2tlbkJlZm9yZUhlYWQocCwgdG9rZW4pO1xuICAgICAgICB9XG4gICAgfVxufVxuZnVuY3Rpb24gZW5kVGFnQmVmb3JlSGVhZChwLCB0b2tlbikge1xuICAgIGNvbnN0IHRuID0gdG9rZW4udGFnSUQ7XG4gICAgaWYgKHRuID09PSAkLkhFQUQgfHwgdG4gPT09ICQuQk9EWSB8fCB0biA9PT0gJC5IVE1MIHx8IHRuID09PSAkLkJSKSB7XG4gICAgICAgIHRva2VuQmVmb3JlSGVhZChwLCB0b2tlbik7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICBwLl9lcnIodG9rZW4sIEVSUi5lbmRUYWdXaXRob3V0TWF0Y2hpbmdPcGVuRWxlbWVudCk7XG4gICAgfVxufVxuZnVuY3Rpb24gdG9rZW5CZWZvcmVIZWFkKHAsIHRva2VuKSB7XG4gICAgcC5faW5zZXJ0RmFrZUVsZW1lbnQoVE4uSEVBRCwgJC5IRUFEKTtcbiAgICBwLmhlYWRFbGVtZW50ID0gcC5vcGVuRWxlbWVudHMuY3VycmVudDtcbiAgICBwLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLklOX0hFQUQ7XG4gICAgcC5fcHJvY2Vzc1Rva2VuKHRva2VuKTtcbn1cbi8vIFRoZSBcImluIGhlYWRcIiBpbnNlcnRpb24gbW9kZVxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmZ1bmN0aW9uIHN0YXJ0VGFnSW5IZWFkKHAsIHRva2VuKSB7XG4gICAgc3dpdGNoICh0b2tlbi50YWdJRCkge1xuICAgICAgICBjYXNlICQuSFRNTDoge1xuICAgICAgICAgICAgc3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLkJBU0U6XG4gICAgICAgIGNhc2UgJC5CQVNFRk9OVDpcbiAgICAgICAgY2FzZSAkLkJHU09VTkQ6XG4gICAgICAgIGNhc2UgJC5MSU5LOlxuICAgICAgICBjYXNlICQuTUVUQToge1xuICAgICAgICAgICAgcC5fYXBwZW5kRWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7XG4gICAgICAgICAgICB0b2tlbi5hY2tTZWxmQ2xvc2luZyA9IHRydWU7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuVElUTEU6IHtcbiAgICAgICAgICAgIHAuX3N3aXRjaFRvVGV4dFBhcnNpbmcodG9rZW4sIFRva2VuaXplck1vZGUuUkNEQVRBKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5OT1NDUklQVDoge1xuICAgICAgICAgICAgaWYgKHAub3B0aW9ucy5zY3JpcHRpbmdFbmFibGVkKSB7XG4gICAgICAgICAgICAgICAgcC5fc3dpdGNoVG9UZXh0UGFyc2luZyh0b2tlbiwgVG9rZW5pemVyTW9kZS5SQVdURVhUKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHAuX2luc2VydEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpO1xuICAgICAgICAgICAgICAgIHAuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5fSEVBRF9OT19TQ1JJUFQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuTk9GUkFNRVM6XG4gICAgICAgIGNhc2UgJC5TVFlMRToge1xuICAgICAgICAgICAgcC5fc3dpdGNoVG9UZXh0UGFyc2luZyh0b2tlbiwgVG9rZW5pemVyTW9kZS5SQVdURVhUKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5TQ1JJUFQ6IHtcbiAgICAgICAgICAgIHAuX3N3aXRjaFRvVGV4dFBhcnNpbmcodG9rZW4sIFRva2VuaXplck1vZGUuU0NSSVBUX0RBVEEpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLlRFTVBMQVRFOiB7XG4gICAgICAgICAgICBwLl9pbnNlcnRUZW1wbGF0ZSh0b2tlbik7XG4gICAgICAgICAgICBwLmFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cy5pbnNlcnRNYXJrZXIoKTtcbiAgICAgICAgICAgIHAuZnJhbWVzZXRPayA9IGZhbHNlO1xuICAgICAgICAgICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9URU1QTEFURTtcbiAgICAgICAgICAgIHAudG1wbEluc2VydGlvbk1vZGVTdGFjay51bnNoaWZ0KEluc2VydGlvbk1vZGUuSU5fVEVNUExBVEUpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLkhFQUQ6IHtcbiAgICAgICAgICAgIHAuX2Vycih0b2tlbiwgRVJSLm1pc3BsYWNlZFN0YXJ0VGFnRm9ySGVhZEVsZW1lbnQpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgdG9rZW5JbkhlYWQocCwgdG9rZW4pO1xuICAgICAgICB9XG4gICAgfVxufVxuZnVuY3Rpb24gZW5kVGFnSW5IZWFkKHAsIHRva2VuKSB7XG4gICAgc3dpdGNoICh0b2tlbi50YWdJRCkge1xuICAgICAgICBjYXNlICQuSEVBRDoge1xuICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wKCk7XG4gICAgICAgICAgICBwLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLkFGVEVSX0hFQUQ7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuQk9EWTpcbiAgICAgICAgY2FzZSAkLkJSOlxuICAgICAgICBjYXNlICQuSFRNTDoge1xuICAgICAgICAgICAgdG9rZW5JbkhlYWQocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLlRFTVBMQVRFOiB7XG4gICAgICAgICAgICB0ZW1wbGF0ZUVuZFRhZ0luSGVhZChwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICBwLl9lcnIodG9rZW4sIEVSUi5lbmRUYWdXaXRob3V0TWF0Y2hpbmdPcGVuRWxlbWVudCk7XG4gICAgICAgIH1cbiAgICB9XG59XG5mdW5jdGlvbiB0ZW1wbGF0ZUVuZFRhZ0luSGVhZChwLCB0b2tlbikge1xuICAgIGlmIChwLm9wZW5FbGVtZW50cy50bXBsQ291bnQgPiAwKSB7XG4gICAgICAgIHAub3BlbkVsZW1lbnRzLmdlbmVyYXRlSW1wbGllZEVuZFRhZ3NUaG9yb3VnaGx5KCk7XG4gICAgICAgIGlmIChwLm9wZW5FbGVtZW50cy5jdXJyZW50VGFnSWQgIT09ICQuVEVNUExBVEUpIHtcbiAgICAgICAgICAgIHAuX2Vycih0b2tlbiwgRVJSLmNsb3NpbmdPZkVsZW1lbnRXaXRoT3BlbkNoaWxkRWxlbWVudHMpO1xuICAgICAgICB9XG4gICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcFVudGlsVGFnTmFtZVBvcHBlZCgkLlRFTVBMQVRFKTtcbiAgICAgICAgcC5hY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMuY2xlYXJUb0xhc3RNYXJrZXIoKTtcbiAgICAgICAgcC50bXBsSW5zZXJ0aW9uTW9kZVN0YWNrLnNoaWZ0KCk7XG4gICAgICAgIHAuX3Jlc2V0SW5zZXJ0aW9uTW9kZSgpO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgcC5fZXJyKHRva2VuLCBFUlIuZW5kVGFnV2l0aG91dE1hdGNoaW5nT3BlbkVsZW1lbnQpO1xuICAgIH1cbn1cbmZ1bmN0aW9uIHRva2VuSW5IZWFkKHAsIHRva2VuKSB7XG4gICAgcC5vcGVuRWxlbWVudHMucG9wKCk7XG4gICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5BRlRFUl9IRUFEO1xuICAgIHAuX3Byb2Nlc3NUb2tlbih0b2tlbik7XG59XG4vLyBUaGUgXCJpbiBoZWFkIG5vIHNjcmlwdFwiIGluc2VydGlvbiBtb2RlXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuZnVuY3Rpb24gc3RhcnRUYWdJbkhlYWROb1NjcmlwdChwLCB0b2tlbikge1xuICAgIHN3aXRjaCAodG9rZW4udGFnSUQpIHtcbiAgICAgICAgY2FzZSAkLkhUTUw6IHtcbiAgICAgICAgICAgIHN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5CQVNFRk9OVDpcbiAgICAgICAgY2FzZSAkLkJHU09VTkQ6XG4gICAgICAgIGNhc2UgJC5IRUFEOlxuICAgICAgICBjYXNlICQuTElOSzpcbiAgICAgICAgY2FzZSAkLk1FVEE6XG4gICAgICAgIGNhc2UgJC5OT0ZSQU1FUzpcbiAgICAgICAgY2FzZSAkLlNUWUxFOiB7XG4gICAgICAgICAgICBzdGFydFRhZ0luSGVhZChwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuTk9TQ1JJUFQ6IHtcbiAgICAgICAgICAgIHAuX2Vycih0b2tlbiwgRVJSLm5lc3RlZE5vc2NyaXB0SW5IZWFkKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgIHRva2VuSW5IZWFkTm9TY3JpcHQocCwgdG9rZW4pO1xuICAgICAgICB9XG4gICAgfVxufVxuZnVuY3Rpb24gZW5kVGFnSW5IZWFkTm9TY3JpcHQocCwgdG9rZW4pIHtcbiAgICBzd2l0Y2ggKHRva2VuLnRhZ0lEKSB7XG4gICAgICAgIGNhc2UgJC5OT1NDUklQVDoge1xuICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wKCk7XG4gICAgICAgICAgICBwLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLklOX0hFQUQ7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuQlI6IHtcbiAgICAgICAgICAgIHRva2VuSW5IZWFkTm9TY3JpcHQocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgcC5fZXJyKHRva2VuLCBFUlIuZW5kVGFnV2l0aG91dE1hdGNoaW5nT3BlbkVsZW1lbnQpO1xuICAgICAgICB9XG4gICAgfVxufVxuZnVuY3Rpb24gdG9rZW5JbkhlYWROb1NjcmlwdChwLCB0b2tlbikge1xuICAgIGNvbnN0IGVyckNvZGUgPSB0b2tlbi50eXBlID09PSBUb2tlblR5cGUuRU9GID8gRVJSLm9wZW5FbGVtZW50c0xlZnRBZnRlckVvZiA6IEVSUi5kaXNhbGxvd2VkQ29udGVudEluTm9zY3JpcHRJbkhlYWQ7XG4gICAgcC5fZXJyKHRva2VuLCBlcnJDb2RlKTtcbiAgICBwLm9wZW5FbGVtZW50cy5wb3AoKTtcbiAgICBwLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLklOX0hFQUQ7XG4gICAgcC5fcHJvY2Vzc1Rva2VuKHRva2VuKTtcbn1cbi8vIFRoZSBcImFmdGVyIGhlYWRcIiBpbnNlcnRpb24gbW9kZVxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmZ1bmN0aW9uIHN0YXJ0VGFnQWZ0ZXJIZWFkKHAsIHRva2VuKSB7XG4gICAgc3dpdGNoICh0b2tlbi50YWdJRCkge1xuICAgICAgICBjYXNlICQuSFRNTDoge1xuICAgICAgICAgICAgc3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLkJPRFk6IHtcbiAgICAgICAgICAgIHAuX2luc2VydEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpO1xuICAgICAgICAgICAgcC5mcmFtZXNldE9rID0gZmFsc2U7XG4gICAgICAgICAgICBwLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLklOX0JPRFk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuRlJBTUVTRVQ6IHtcbiAgICAgICAgICAgIHAuX2luc2VydEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpO1xuICAgICAgICAgICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9GUkFNRVNFVDtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5CQVNFOlxuICAgICAgICBjYXNlICQuQkFTRUZPTlQ6XG4gICAgICAgIGNhc2UgJC5CR1NPVU5EOlxuICAgICAgICBjYXNlICQuTElOSzpcbiAgICAgICAgY2FzZSAkLk1FVEE6XG4gICAgICAgIGNhc2UgJC5OT0ZSQU1FUzpcbiAgICAgICAgY2FzZSAkLlNDUklQVDpcbiAgICAgICAgY2FzZSAkLlNUWUxFOlxuICAgICAgICBjYXNlICQuVEVNUExBVEU6XG4gICAgICAgIGNhc2UgJC5USVRMRToge1xuICAgICAgICAgICAgcC5fZXJyKHRva2VuLCBFUlIuYWJhbmRvbmVkSGVhZEVsZW1lbnRDaGlsZCk7XG4gICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5wdXNoKHAuaGVhZEVsZW1lbnQsICQuSEVBRCk7XG4gICAgICAgICAgICBzdGFydFRhZ0luSGVhZChwLCB0b2tlbik7XG4gICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5yZW1vdmUocC5oZWFkRWxlbWVudCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuSEVBRDoge1xuICAgICAgICAgICAgcC5fZXJyKHRva2VuLCBFUlIubWlzcGxhY2VkU3RhcnRUYWdGb3JIZWFkRWxlbWVudCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICB0b2tlbkFmdGVySGVhZChwLCB0b2tlbik7XG4gICAgICAgIH1cbiAgICB9XG59XG5mdW5jdGlvbiBlbmRUYWdBZnRlckhlYWQocCwgdG9rZW4pIHtcbiAgICBzd2l0Y2ggKHRva2VuLnRhZ0lEKSB7XG4gICAgICAgIGNhc2UgJC5CT0RZOlxuICAgICAgICBjYXNlICQuSFRNTDpcbiAgICAgICAgY2FzZSAkLkJSOiB7XG4gICAgICAgICAgICB0b2tlbkFmdGVySGVhZChwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuVEVNUExBVEU6IHtcbiAgICAgICAgICAgIHRlbXBsYXRlRW5kVGFnSW5IZWFkKHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgIHAuX2Vycih0b2tlbiwgRVJSLmVuZFRhZ1dpdGhvdXRNYXRjaGluZ09wZW5FbGVtZW50KTtcbiAgICAgICAgfVxuICAgIH1cbn1cbmZ1bmN0aW9uIHRva2VuQWZ0ZXJIZWFkKHAsIHRva2VuKSB7XG4gICAgcC5faW5zZXJ0RmFrZUVsZW1lbnQoVE4uQk9EWSwgJC5CT0RZKTtcbiAgICBwLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLklOX0JPRFk7XG4gICAgbW9kZUluQm9keShwLCB0b2tlbik7XG59XG4vLyBUaGUgXCJpbiBib2R5XCIgaW5zZXJ0aW9uIG1vZGVcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5mdW5jdGlvbiBtb2RlSW5Cb2R5KHAsIHRva2VuKSB7XG4gICAgc3dpdGNoICh0b2tlbi50eXBlKSB7XG4gICAgICAgIGNhc2UgVG9rZW5UeXBlLkNIQVJBQ1RFUjoge1xuICAgICAgICAgICAgY2hhcmFjdGVySW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgVG9rZW5UeXBlLldISVRFU1BBQ0VfQ0hBUkFDVEVSOiB7XG4gICAgICAgICAgICB3aGl0ZXNwYWNlQ2hhcmFjdGVySW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgVG9rZW5UeXBlLkNPTU1FTlQ6IHtcbiAgICAgICAgICAgIGFwcGVuZENvbW1lbnQocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSBUb2tlblR5cGUuU1RBUlRfVEFHOiB7XG4gICAgICAgICAgICBzdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlIFRva2VuVHlwZS5FTkRfVEFHOiB7XG4gICAgICAgICAgICBlbmRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSBUb2tlblR5cGUuRU9GOiB7XG4gICAgICAgICAgICBlb2ZJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgLy8gRG8gbm90aGluZ1xuICAgIH1cbn1cbmZ1bmN0aW9uIHdoaXRlc3BhY2VDaGFyYWN0ZXJJbkJvZHkocCwgdG9rZW4pIHtcbiAgICBwLl9yZWNvbnN0cnVjdEFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cygpO1xuICAgIHAuX2luc2VydENoYXJhY3RlcnModG9rZW4pO1xufVxuZnVuY3Rpb24gY2hhcmFjdGVySW5Cb2R5KHAsIHRva2VuKSB7XG4gICAgcC5fcmVjb25zdHJ1Y3RBY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMoKTtcbiAgICBwLl9pbnNlcnRDaGFyYWN0ZXJzKHRva2VuKTtcbiAgICBwLmZyYW1lc2V0T2sgPSBmYWxzZTtcbn1cbmZ1bmN0aW9uIGh0bWxTdGFydFRhZ0luQm9keShwLCB0b2tlbikge1xuICAgIGlmIChwLm9wZW5FbGVtZW50cy50bXBsQ291bnQgPT09IDApIHtcbiAgICAgICAgcC50cmVlQWRhcHRlci5hZG9wdEF0dHJpYnV0ZXMocC5vcGVuRWxlbWVudHMuaXRlbXNbMF0sIHRva2VuLmF0dHJzKTtcbiAgICB9XG59XG5mdW5jdGlvbiBib2R5U3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pIHtcbiAgICBjb25zdCBib2R5RWxlbWVudCA9IHAub3BlbkVsZW1lbnRzLnRyeVBlZWtQcm9wZXJseU5lc3RlZEJvZHlFbGVtZW50KCk7XG4gICAgaWYgKGJvZHlFbGVtZW50ICYmIHAub3BlbkVsZW1lbnRzLnRtcGxDb3VudCA9PT0gMCkge1xuICAgICAgICBwLmZyYW1lc2V0T2sgPSBmYWxzZTtcbiAgICAgICAgcC50cmVlQWRhcHRlci5hZG9wdEF0dHJpYnV0ZXMoYm9keUVsZW1lbnQsIHRva2VuLmF0dHJzKTtcbiAgICB9XG59XG5mdW5jdGlvbiBmcmFtZXNldFN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKSB7XG4gICAgY29uc3QgYm9keUVsZW1lbnQgPSBwLm9wZW5FbGVtZW50cy50cnlQZWVrUHJvcGVybHlOZXN0ZWRCb2R5RWxlbWVudCgpO1xuICAgIGlmIChwLmZyYW1lc2V0T2sgJiYgYm9keUVsZW1lbnQpIHtcbiAgICAgICAgcC50cmVlQWRhcHRlci5kZXRhY2hOb2RlKGJvZHlFbGVtZW50KTtcbiAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wQWxsVXBUb0h0bWxFbGVtZW50KCk7XG4gICAgICAgIHAuX2luc2VydEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpO1xuICAgICAgICBwLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLklOX0ZSQU1FU0VUO1xuICAgIH1cbn1cbmZ1bmN0aW9uIGFkZHJlc3NTdGFydFRhZ0luQm9keShwLCB0b2tlbikge1xuICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNJbkJ1dHRvblNjb3BlKCQuUCkpIHtcbiAgICAgICAgcC5fY2xvc2VQRWxlbWVudCgpO1xuICAgIH1cbiAgICBwLl9pbnNlcnRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTtcbn1cbmZ1bmN0aW9uIG51bWJlcmVkSGVhZGVyU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pIHtcbiAgICBpZiAocC5vcGVuRWxlbWVudHMuaGFzSW5CdXR0b25TY29wZSgkLlApKSB7XG4gICAgICAgIHAuX2Nsb3NlUEVsZW1lbnQoKTtcbiAgICB9XG4gICAgaWYgKGlzTnVtYmVyZWRIZWFkZXIocC5vcGVuRWxlbWVudHMuY3VycmVudFRhZ0lkKSkge1xuICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3AoKTtcbiAgICB9XG4gICAgcC5faW5zZXJ0RWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7XG59XG5mdW5jdGlvbiBwcmVTdGFydFRhZ0luQm9keShwLCB0b2tlbikge1xuICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNJbkJ1dHRvblNjb3BlKCQuUCkpIHtcbiAgICAgICAgcC5fY2xvc2VQRWxlbWVudCgpO1xuICAgIH1cbiAgICBwLl9pbnNlcnRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTtcbiAgICAvL05PVEU6IElmIHRoZSBuZXh0IHRva2VuIGlzIGEgVSswMDBBIExJTkUgRkVFRCAoTEYpIGNoYXJhY3RlciB0b2tlbiwgdGhlbiBpZ25vcmUgdGhhdCB0b2tlbiBhbmQgbW92ZVxuICAgIC8vb24gdG8gdGhlIG5leHQgb25lLiAoTmV3bGluZXMgYXQgdGhlIHN0YXJ0IG9mIHByZSBibG9ja3MgYXJlIGlnbm9yZWQgYXMgYW4gYXV0aG9yaW5nIGNvbnZlbmllbmNlLilcbiAgICBwLnNraXBOZXh0TmV3TGluZSA9IHRydWU7XG4gICAgcC5mcmFtZXNldE9rID0gZmFsc2U7XG59XG5mdW5jdGlvbiBmb3JtU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pIHtcbiAgICBjb25zdCBpblRlbXBsYXRlID0gcC5vcGVuRWxlbWVudHMudG1wbENvdW50ID4gMDtcbiAgICBpZiAoIXAuZm9ybUVsZW1lbnQgfHwgaW5UZW1wbGF0ZSkge1xuICAgICAgICBpZiAocC5vcGVuRWxlbWVudHMuaGFzSW5CdXR0b25TY29wZSgkLlApKSB7XG4gICAgICAgICAgICBwLl9jbG9zZVBFbGVtZW50KCk7XG4gICAgICAgIH1cbiAgICAgICAgcC5faW5zZXJ0RWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7XG4gICAgICAgIGlmICghaW5UZW1wbGF0ZSkge1xuICAgICAgICAgICAgcC5mb3JtRWxlbWVudCA9IHAub3BlbkVsZW1lbnRzLmN1cnJlbnQ7XG4gICAgICAgIH1cbiAgICB9XG59XG5mdW5jdGlvbiBsaXN0SXRlbVN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKSB7XG4gICAgcC5mcmFtZXNldE9rID0gZmFsc2U7XG4gICAgY29uc3QgdG4gPSB0b2tlbi50YWdJRDtcbiAgICBmb3IgKGxldCBpID0gcC5vcGVuRWxlbWVudHMuc3RhY2tUb3A7IGkgPj0gMDsgaS0tKSB7XG4gICAgICAgIGNvbnN0IGVsZW1lbnRJZCA9IHAub3BlbkVsZW1lbnRzLnRhZ0lEc1tpXTtcbiAgICAgICAgaWYgKCh0biA9PT0gJC5MSSAmJiBlbGVtZW50SWQgPT09ICQuTEkpIHx8XG4gICAgICAgICAgICAoKHRuID09PSAkLkREIHx8IHRuID09PSAkLkRUKSAmJiAoZWxlbWVudElkID09PSAkLkREIHx8IGVsZW1lbnRJZCA9PT0gJC5EVCkpKSB7XG4gICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5nZW5lcmF0ZUltcGxpZWRFbmRUYWdzV2l0aEV4Y2x1c2lvbihlbGVtZW50SWQpO1xuICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wVW50aWxUYWdOYW1lUG9wcGVkKGVsZW1lbnRJZCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBpZiAoZWxlbWVudElkICE9PSAkLkFERFJFU1MgJiZcbiAgICAgICAgICAgIGVsZW1lbnRJZCAhPT0gJC5ESVYgJiZcbiAgICAgICAgICAgIGVsZW1lbnRJZCAhPT0gJC5QICYmXG4gICAgICAgICAgICBwLl9pc1NwZWNpYWxFbGVtZW50KHAub3BlbkVsZW1lbnRzLml0ZW1zW2ldLCBlbGVtZW50SWQpKSB7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgIH1cbiAgICBpZiAocC5vcGVuRWxlbWVudHMuaGFzSW5CdXR0b25TY29wZSgkLlApKSB7XG4gICAgICAgIHAuX2Nsb3NlUEVsZW1lbnQoKTtcbiAgICB9XG4gICAgcC5faW5zZXJ0RWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7XG59XG5mdW5jdGlvbiBwbGFpbnRleHRTdGFydFRhZ0luQm9keShwLCB0b2tlbikge1xuICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNJbkJ1dHRvblNjb3BlKCQuUCkpIHtcbiAgICAgICAgcC5fY2xvc2VQRWxlbWVudCgpO1xuICAgIH1cbiAgICBwLl9pbnNlcnRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTtcbiAgICBwLnRva2VuaXplci5zdGF0ZSA9IFRva2VuaXplck1vZGUuUExBSU5URVhUO1xufVxuZnVuY3Rpb24gYnV0dG9uU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pIHtcbiAgICBpZiAocC5vcGVuRWxlbWVudHMuaGFzSW5TY29wZSgkLkJVVFRPTikpIHtcbiAgICAgICAgcC5vcGVuRWxlbWVudHMuZ2VuZXJhdGVJbXBsaWVkRW5kVGFncygpO1xuICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3BVbnRpbFRhZ05hbWVQb3BwZWQoJC5CVVRUT04pO1xuICAgIH1cbiAgICBwLl9yZWNvbnN0cnVjdEFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cygpO1xuICAgIHAuX2luc2VydEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpO1xuICAgIHAuZnJhbWVzZXRPayA9IGZhbHNlO1xufVxuZnVuY3Rpb24gYVN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKSB7XG4gICAgY29uc3QgYWN0aXZlRWxlbWVudEVudHJ5ID0gcC5hY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMuZ2V0RWxlbWVudEVudHJ5SW5TY29wZVdpdGhUYWdOYW1lKFROLkEpO1xuICAgIGlmIChhY3RpdmVFbGVtZW50RW50cnkpIHtcbiAgICAgICAgY2FsbEFkb3B0aW9uQWdlbmN5KHAsIHRva2VuKTtcbiAgICAgICAgcC5vcGVuRWxlbWVudHMucmVtb3ZlKGFjdGl2ZUVsZW1lbnRFbnRyeS5lbGVtZW50KTtcbiAgICAgICAgcC5hY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMucmVtb3ZlRW50cnkoYWN0aXZlRWxlbWVudEVudHJ5KTtcbiAgICB9XG4gICAgcC5fcmVjb25zdHJ1Y3RBY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMoKTtcbiAgICBwLl9pbnNlcnRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTtcbiAgICBwLmFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cy5wdXNoRWxlbWVudChwLm9wZW5FbGVtZW50cy5jdXJyZW50LCB0b2tlbik7XG59XG5mdW5jdGlvbiBiU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pIHtcbiAgICBwLl9yZWNvbnN0cnVjdEFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cygpO1xuICAgIHAuX2luc2VydEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpO1xuICAgIHAuYWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzLnB1c2hFbGVtZW50KHAub3BlbkVsZW1lbnRzLmN1cnJlbnQsIHRva2VuKTtcbn1cbmZ1bmN0aW9uIG5vYnJTdGFydFRhZ0luQm9keShwLCB0b2tlbikge1xuICAgIHAuX3JlY29uc3RydWN0QWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzKCk7XG4gICAgaWYgKHAub3BlbkVsZW1lbnRzLmhhc0luU2NvcGUoJC5OT0JSKSkge1xuICAgICAgICBjYWxsQWRvcHRpb25BZ2VuY3kocCwgdG9rZW4pO1xuICAgICAgICBwLl9yZWNvbnN0cnVjdEFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cygpO1xuICAgIH1cbiAgICBwLl9pbnNlcnRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTtcbiAgICBwLmFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cy5wdXNoRWxlbWVudChwLm9wZW5FbGVtZW50cy5jdXJyZW50LCB0b2tlbik7XG59XG5mdW5jdGlvbiBhcHBsZXRTdGFydFRhZ0luQm9keShwLCB0b2tlbikge1xuICAgIHAuX3JlY29uc3RydWN0QWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzKCk7XG4gICAgcC5faW5zZXJ0RWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7XG4gICAgcC5hY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMuaW5zZXJ0TWFya2VyKCk7XG4gICAgcC5mcmFtZXNldE9rID0gZmFsc2U7XG59XG5mdW5jdGlvbiB0YWJsZVN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKSB7XG4gICAgaWYgKHAudHJlZUFkYXB0ZXIuZ2V0RG9jdW1lbnRNb2RlKHAuZG9jdW1lbnQpICE9PSBET0NVTUVOVF9NT0RFLlFVSVJLUyAmJiBwLm9wZW5FbGVtZW50cy5oYXNJbkJ1dHRvblNjb3BlKCQuUCkpIHtcbiAgICAgICAgcC5fY2xvc2VQRWxlbWVudCgpO1xuICAgIH1cbiAgICBwLl9pbnNlcnRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTtcbiAgICBwLmZyYW1lc2V0T2sgPSBmYWxzZTtcbiAgICBwLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLklOX1RBQkxFO1xufVxuZnVuY3Rpb24gYXJlYVN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKSB7XG4gICAgcC5fcmVjb25zdHJ1Y3RBY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMoKTtcbiAgICBwLl9hcHBlbmRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTtcbiAgICBwLmZyYW1lc2V0T2sgPSBmYWxzZTtcbiAgICB0b2tlbi5hY2tTZWxmQ2xvc2luZyA9IHRydWU7XG59XG5mdW5jdGlvbiBpc0hpZGRlbklucHV0KHRva2VuKSB7XG4gICAgY29uc3QgaW5wdXRUeXBlID0gZ2V0VG9rZW5BdHRyKHRva2VuLCBBVFRSUy5UWVBFKTtcbiAgICByZXR1cm4gaW5wdXRUeXBlICE9IG51bGwgJiYgaW5wdXRUeXBlLnRvTG93ZXJDYXNlKCkgPT09IEhJRERFTl9JTlBVVF9UWVBFO1xufVxuZnVuY3Rpb24gaW5wdXRTdGFydFRhZ0luQm9keShwLCB0b2tlbikge1xuICAgIHAuX3JlY29uc3RydWN0QWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzKCk7XG4gICAgcC5fYXBwZW5kRWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7XG4gICAgaWYgKCFpc0hpZGRlbklucHV0KHRva2VuKSkge1xuICAgICAgICBwLmZyYW1lc2V0T2sgPSBmYWxzZTtcbiAgICB9XG4gICAgdG9rZW4uYWNrU2VsZkNsb3NpbmcgPSB0cnVlO1xufVxuZnVuY3Rpb24gcGFyYW1TdGFydFRhZ0luQm9keShwLCB0b2tlbikge1xuICAgIHAuX2FwcGVuZEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpO1xuICAgIHRva2VuLmFja1NlbGZDbG9zaW5nID0gdHJ1ZTtcbn1cbmZ1bmN0aW9uIGhyU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pIHtcbiAgICBpZiAocC5vcGVuRWxlbWVudHMuaGFzSW5CdXR0b25TY29wZSgkLlApKSB7XG4gICAgICAgIHAuX2Nsb3NlUEVsZW1lbnQoKTtcbiAgICB9XG4gICAgcC5fYXBwZW5kRWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7XG4gICAgcC5mcmFtZXNldE9rID0gZmFsc2U7XG4gICAgdG9rZW4uYWNrU2VsZkNsb3NpbmcgPSB0cnVlO1xufVxuZnVuY3Rpb24gaW1hZ2VTdGFydFRhZ0luQm9keShwLCB0b2tlbikge1xuICAgIHRva2VuLnRhZ05hbWUgPSBUTi5JTUc7XG4gICAgdG9rZW4udGFnSUQgPSAkLklNRztcbiAgICBhcmVhU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xufVxuZnVuY3Rpb24gdGV4dGFyZWFTdGFydFRhZ0luQm9keShwLCB0b2tlbikge1xuICAgIHAuX2luc2VydEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpO1xuICAgIC8vTk9URTogSWYgdGhlIG5leHQgdG9rZW4gaXMgYSBVKzAwMEEgTElORSBGRUVEIChMRikgY2hhcmFjdGVyIHRva2VuLCB0aGVuIGlnbm9yZSB0aGF0IHRva2VuIGFuZCBtb3ZlXG4gICAgLy9vbiB0byB0aGUgbmV4dCBvbmUuIChOZXdsaW5lcyBhdCB0aGUgc3RhcnQgb2YgdGV4dGFyZWEgZWxlbWVudHMgYXJlIGlnbm9yZWQgYXMgYW4gYXV0aG9yaW5nIGNvbnZlbmllbmNlLilcbiAgICBwLnNraXBOZXh0TmV3TGluZSA9IHRydWU7XG4gICAgcC50b2tlbml6ZXIuc3RhdGUgPSBUb2tlbml6ZXJNb2RlLlJDREFUQTtcbiAgICBwLm9yaWdpbmFsSW5zZXJ0aW9uTW9kZSA9IHAuaW5zZXJ0aW9uTW9kZTtcbiAgICBwLmZyYW1lc2V0T2sgPSBmYWxzZTtcbiAgICBwLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLlRFWFQ7XG59XG5mdW5jdGlvbiB4bXBTdGFydFRhZ0luQm9keShwLCB0b2tlbikge1xuICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNJbkJ1dHRvblNjb3BlKCQuUCkpIHtcbiAgICAgICAgcC5fY2xvc2VQRWxlbWVudCgpO1xuICAgIH1cbiAgICBwLl9yZWNvbnN0cnVjdEFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cygpO1xuICAgIHAuZnJhbWVzZXRPayA9IGZhbHNlO1xuICAgIHAuX3N3aXRjaFRvVGV4dFBhcnNpbmcodG9rZW4sIFRva2VuaXplck1vZGUuUkFXVEVYVCk7XG59XG5mdW5jdGlvbiBpZnJhbWVTdGFydFRhZ0luQm9keShwLCB0b2tlbikge1xuICAgIHAuZnJhbWVzZXRPayA9IGZhbHNlO1xuICAgIHAuX3N3aXRjaFRvVGV4dFBhcnNpbmcodG9rZW4sIFRva2VuaXplck1vZGUuUkFXVEVYVCk7XG59XG4vL05PVEU6IGhlcmUgd2UgYXNzdW1lIHRoYXQgd2UgYWx3YXlzIGFjdCBhcyBhbiB1c2VyIGFnZW50IHdpdGggZW5hYmxlZCBwbHVnaW5zLCBzbyB3ZSBwYXJzZVxuLy88bm9lbWJlZD4gYXMgcmF3dGV4dC5cbmZ1bmN0aW9uIG5vZW1iZWRTdGFydFRhZ0luQm9keShwLCB0b2tlbikge1xuICAgIHAuX3N3aXRjaFRvVGV4dFBhcnNpbmcodG9rZW4sIFRva2VuaXplck1vZGUuUkFXVEVYVCk7XG59XG5mdW5jdGlvbiBzZWxlY3RTdGFydFRhZ0luQm9keShwLCB0b2tlbikge1xuICAgIHAuX3JlY29uc3RydWN0QWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzKCk7XG4gICAgcC5faW5zZXJ0RWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7XG4gICAgcC5mcmFtZXNldE9rID0gZmFsc2U7XG4gICAgcC5pbnNlcnRpb25Nb2RlID1cbiAgICAgICAgcC5pbnNlcnRpb25Nb2RlID09PSBJbnNlcnRpb25Nb2RlLklOX1RBQkxFIHx8XG4gICAgICAgICAgICBwLmluc2VydGlvbk1vZGUgPT09IEluc2VydGlvbk1vZGUuSU5fQ0FQVElPTiB8fFxuICAgICAgICAgICAgcC5pbnNlcnRpb25Nb2RlID09PSBJbnNlcnRpb25Nb2RlLklOX1RBQkxFX0JPRFkgfHxcbiAgICAgICAgICAgIHAuaW5zZXJ0aW9uTW9kZSA9PT0gSW5zZXJ0aW9uTW9kZS5JTl9ST1cgfHxcbiAgICAgICAgICAgIHAuaW5zZXJ0aW9uTW9kZSA9PT0gSW5zZXJ0aW9uTW9kZS5JTl9DRUxMXG4gICAgICAgICAgICA/IEluc2VydGlvbk1vZGUuSU5fU0VMRUNUX0lOX1RBQkxFXG4gICAgICAgICAgICA6IEluc2VydGlvbk1vZGUuSU5fU0VMRUNUO1xufVxuZnVuY3Rpb24gb3B0Z3JvdXBTdGFydFRhZ0luQm9keShwLCB0b2tlbikge1xuICAgIGlmIChwLm9wZW5FbGVtZW50cy5jdXJyZW50VGFnSWQgPT09ICQuT1BUSU9OKSB7XG4gICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcCgpO1xuICAgIH1cbiAgICBwLl9yZWNvbnN0cnVjdEFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cygpO1xuICAgIHAuX2luc2VydEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpO1xufVxuZnVuY3Rpb24gcmJTdGFydFRhZ0luQm9keShwLCB0b2tlbikge1xuICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNJblNjb3BlKCQuUlVCWSkpIHtcbiAgICAgICAgcC5vcGVuRWxlbWVudHMuZ2VuZXJhdGVJbXBsaWVkRW5kVGFncygpO1xuICAgIH1cbiAgICBwLl9pbnNlcnRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTtcbn1cbmZ1bmN0aW9uIHJ0U3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pIHtcbiAgICBpZiAocC5vcGVuRWxlbWVudHMuaGFzSW5TY29wZSgkLlJVQlkpKSB7XG4gICAgICAgIHAub3BlbkVsZW1lbnRzLmdlbmVyYXRlSW1wbGllZEVuZFRhZ3NXaXRoRXhjbHVzaW9uKCQuUlRDKTtcbiAgICB9XG4gICAgcC5faW5zZXJ0RWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7XG59XG5mdW5jdGlvbiBtYXRoU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pIHtcbiAgICBwLl9yZWNvbnN0cnVjdEFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cygpO1xuICAgIGZvcmVpZ25Db250ZW50LmFkanVzdFRva2VuTWF0aE1MQXR0cnModG9rZW4pO1xuICAgIGZvcmVpZ25Db250ZW50LmFkanVzdFRva2VuWE1MQXR0cnModG9rZW4pO1xuICAgIGlmICh0b2tlbi5zZWxmQ2xvc2luZykge1xuICAgICAgICBwLl9hcHBlbmRFbGVtZW50KHRva2VuLCBOUy5NQVRITUwpO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgcC5faW5zZXJ0RWxlbWVudCh0b2tlbiwgTlMuTUFUSE1MKTtcbiAgICB9XG4gICAgdG9rZW4uYWNrU2VsZkNsb3NpbmcgPSB0cnVlO1xufVxuZnVuY3Rpb24gc3ZnU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pIHtcbiAgICBwLl9yZWNvbnN0cnVjdEFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cygpO1xuICAgIGZvcmVpZ25Db250ZW50LmFkanVzdFRva2VuU1ZHQXR0cnModG9rZW4pO1xuICAgIGZvcmVpZ25Db250ZW50LmFkanVzdFRva2VuWE1MQXR0cnModG9rZW4pO1xuICAgIGlmICh0b2tlbi5zZWxmQ2xvc2luZykge1xuICAgICAgICBwLl9hcHBlbmRFbGVtZW50KHRva2VuLCBOUy5TVkcpO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgcC5faW5zZXJ0RWxlbWVudCh0b2tlbiwgTlMuU1ZHKTtcbiAgICB9XG4gICAgdG9rZW4uYWNrU2VsZkNsb3NpbmcgPSB0cnVlO1xufVxuZnVuY3Rpb24gZ2VuZXJpY1N0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKSB7XG4gICAgcC5fcmVjb25zdHJ1Y3RBY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMoKTtcbiAgICBwLl9pbnNlcnRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTtcbn1cbmZ1bmN0aW9uIHN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKSB7XG4gICAgc3dpdGNoICh0b2tlbi50YWdJRCkge1xuICAgICAgICBjYXNlICQuSTpcbiAgICAgICAgY2FzZSAkLlM6XG4gICAgICAgIGNhc2UgJC5COlxuICAgICAgICBjYXNlICQuVTpcbiAgICAgICAgY2FzZSAkLkVNOlxuICAgICAgICBjYXNlICQuVFQ6XG4gICAgICAgIGNhc2UgJC5CSUc6XG4gICAgICAgIGNhc2UgJC5DT0RFOlxuICAgICAgICBjYXNlICQuRk9OVDpcbiAgICAgICAgY2FzZSAkLlNNQUxMOlxuICAgICAgICBjYXNlICQuU1RSSUtFOlxuICAgICAgICBjYXNlICQuU1RST05HOiB7XG4gICAgICAgICAgICBiU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLkE6IHtcbiAgICAgICAgICAgIGFTdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuSDE6XG4gICAgICAgIGNhc2UgJC5IMjpcbiAgICAgICAgY2FzZSAkLkgzOlxuICAgICAgICBjYXNlICQuSDQ6XG4gICAgICAgIGNhc2UgJC5INTpcbiAgICAgICAgY2FzZSAkLkg2OiB7XG4gICAgICAgICAgICBudW1iZXJlZEhlYWRlclN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5QOlxuICAgICAgICBjYXNlICQuREw6XG4gICAgICAgIGNhc2UgJC5PTDpcbiAgICAgICAgY2FzZSAkLlVMOlxuICAgICAgICBjYXNlICQuRElWOlxuICAgICAgICBjYXNlICQuRElSOlxuICAgICAgICBjYXNlICQuTkFWOlxuICAgICAgICBjYXNlICQuTUFJTjpcbiAgICAgICAgY2FzZSAkLk1FTlU6XG4gICAgICAgIGNhc2UgJC5BU0lERTpcbiAgICAgICAgY2FzZSAkLkNFTlRFUjpcbiAgICAgICAgY2FzZSAkLkZJR1VSRTpcbiAgICAgICAgY2FzZSAkLkZPT1RFUjpcbiAgICAgICAgY2FzZSAkLkhFQURFUjpcbiAgICAgICAgY2FzZSAkLkhHUk9VUDpcbiAgICAgICAgY2FzZSAkLkRJQUxPRzpcbiAgICAgICAgY2FzZSAkLkRFVEFJTFM6XG4gICAgICAgIGNhc2UgJC5BRERSRVNTOlxuICAgICAgICBjYXNlICQuQVJUSUNMRTpcbiAgICAgICAgY2FzZSAkLlNFQ1RJT046XG4gICAgICAgIGNhc2UgJC5TVU1NQVJZOlxuICAgICAgICBjYXNlICQuRklFTERTRVQ6XG4gICAgICAgIGNhc2UgJC5CTE9DS1FVT1RFOlxuICAgICAgICBjYXNlICQuRklHQ0FQVElPTjoge1xuICAgICAgICAgICAgYWRkcmVzc1N0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5MSTpcbiAgICAgICAgY2FzZSAkLkREOlxuICAgICAgICBjYXNlICQuRFQ6IHtcbiAgICAgICAgICAgIGxpc3RJdGVtU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLkJSOlxuICAgICAgICBjYXNlICQuSU1HOlxuICAgICAgICBjYXNlICQuV0JSOlxuICAgICAgICBjYXNlICQuQVJFQTpcbiAgICAgICAgY2FzZSAkLkVNQkVEOlxuICAgICAgICBjYXNlICQuS0VZR0VOOiB7XG4gICAgICAgICAgICBhcmVhU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLkhSOiB7XG4gICAgICAgICAgICBoclN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5SQjpcbiAgICAgICAgY2FzZSAkLlJUQzoge1xuICAgICAgICAgICAgcmJTdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuUlQ6XG4gICAgICAgIGNhc2UgJC5SUDoge1xuICAgICAgICAgICAgcnRTdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuUFJFOlxuICAgICAgICBjYXNlICQuTElTVElORzoge1xuICAgICAgICAgICAgcHJlU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLlhNUDoge1xuICAgICAgICAgICAgeG1wU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLlNWRzoge1xuICAgICAgICAgICAgc3ZnU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLkhUTUw6IHtcbiAgICAgICAgICAgIGh0bWxTdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuQkFTRTpcbiAgICAgICAgY2FzZSAkLkxJTks6XG4gICAgICAgIGNhc2UgJC5NRVRBOlxuICAgICAgICBjYXNlICQuU1RZTEU6XG4gICAgICAgIGNhc2UgJC5USVRMRTpcbiAgICAgICAgY2FzZSAkLlNDUklQVDpcbiAgICAgICAgY2FzZSAkLkJHU09VTkQ6XG4gICAgICAgIGNhc2UgJC5CQVNFRk9OVDpcbiAgICAgICAgY2FzZSAkLlRFTVBMQVRFOiB7XG4gICAgICAgICAgICBzdGFydFRhZ0luSGVhZChwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuQk9EWToge1xuICAgICAgICAgICAgYm9keVN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5GT1JNOiB7XG4gICAgICAgICAgICBmb3JtU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLk5PQlI6IHtcbiAgICAgICAgICAgIG5vYnJTdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuTUFUSDoge1xuICAgICAgICAgICAgbWF0aFN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5UQUJMRToge1xuICAgICAgICAgICAgdGFibGVTdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuSU5QVVQ6IHtcbiAgICAgICAgICAgIGlucHV0U3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLlBBUkFNOlxuICAgICAgICBjYXNlICQuVFJBQ0s6XG4gICAgICAgIGNhc2UgJC5TT1VSQ0U6IHtcbiAgICAgICAgICAgIHBhcmFtU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLklNQUdFOiB7XG4gICAgICAgICAgICBpbWFnZVN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5CVVRUT046IHtcbiAgICAgICAgICAgIGJ1dHRvblN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5BUFBMRVQ6XG4gICAgICAgIGNhc2UgJC5PQkpFQ1Q6XG4gICAgICAgIGNhc2UgJC5NQVJRVUVFOiB7XG4gICAgICAgICAgICBhcHBsZXRTdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuSUZSQU1FOiB7XG4gICAgICAgICAgICBpZnJhbWVTdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuU0VMRUNUOiB7XG4gICAgICAgICAgICBzZWxlY3RTdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuT1BUSU9OOlxuICAgICAgICBjYXNlICQuT1BUR1JPVVA6IHtcbiAgICAgICAgICAgIG9wdGdyb3VwU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLk5PRU1CRUQ6IHtcbiAgICAgICAgICAgIG5vZW1iZWRTdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuRlJBTUVTRVQ6IHtcbiAgICAgICAgICAgIGZyYW1lc2V0U3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLlRFWFRBUkVBOiB7XG4gICAgICAgICAgICB0ZXh0YXJlYVN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5OT1NDUklQVDoge1xuICAgICAgICAgICAgaWYgKHAub3B0aW9ucy5zY3JpcHRpbmdFbmFibGVkKSB7XG4gICAgICAgICAgICAgICAgbm9lbWJlZFN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIGdlbmVyaWNTdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuUExBSU5URVhUOiB7XG4gICAgICAgICAgICBwbGFpbnRleHRTdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuQ09MOlxuICAgICAgICBjYXNlICQuVEg6XG4gICAgICAgIGNhc2UgJC5URDpcbiAgICAgICAgY2FzZSAkLlRSOlxuICAgICAgICBjYXNlICQuSEVBRDpcbiAgICAgICAgY2FzZSAkLkZSQU1FOlxuICAgICAgICBjYXNlICQuVEJPRFk6XG4gICAgICAgIGNhc2UgJC5URk9PVDpcbiAgICAgICAgY2FzZSAkLlRIRUFEOlxuICAgICAgICBjYXNlICQuQ0FQVElPTjpcbiAgICAgICAgY2FzZSAkLkNPTEdST1VQOiB7XG4gICAgICAgICAgICAvLyBJZ25vcmUgdG9rZW5cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgIGdlbmVyaWNTdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgICAgIH1cbiAgICB9XG59XG5mdW5jdGlvbiBib2R5RW5kVGFnSW5Cb2R5KHAsIHRva2VuKSB7XG4gICAgaWYgKHAub3BlbkVsZW1lbnRzLmhhc0luU2NvcGUoJC5CT0RZKSkge1xuICAgICAgICBwLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLkFGVEVSX0JPRFk7XG4gICAgICAgIC8vTk9URTogPGJvZHk+IGlzIG5ldmVyIHBvcHBlZCBmcm9tIHRoZSBzdGFjaywgc28gd2UgbmVlZCB0byB1cGRhdGVkXG4gICAgICAgIC8vdGhlIGVuZCBsb2NhdGlvbiBleHBsaWNpdGx5LlxuICAgICAgICBpZiAocC5vcHRpb25zLnNvdXJjZUNvZGVMb2NhdGlvbkluZm8pIHtcbiAgICAgICAgICAgIGNvbnN0IGJvZHlFbGVtZW50ID0gcC5vcGVuRWxlbWVudHMudHJ5UGVla1Byb3Blcmx5TmVzdGVkQm9keUVsZW1lbnQoKTtcbiAgICAgICAgICAgIGlmIChib2R5RWxlbWVudCkge1xuICAgICAgICAgICAgICAgIHAuX3NldEVuZExvY2F0aW9uKGJvZHlFbGVtZW50LCB0b2tlbik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5mdW5jdGlvbiBodG1sRW5kVGFnSW5Cb2R5KHAsIHRva2VuKSB7XG4gICAgaWYgKHAub3BlbkVsZW1lbnRzLmhhc0luU2NvcGUoJC5CT0RZKSkge1xuICAgICAgICBwLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLkFGVEVSX0JPRFk7XG4gICAgICAgIGVuZFRhZ0FmdGVyQm9keShwLCB0b2tlbik7XG4gICAgfVxufVxuZnVuY3Rpb24gYWRkcmVzc0VuZFRhZ0luQm9keShwLCB0b2tlbikge1xuICAgIGNvbnN0IHRuID0gdG9rZW4udGFnSUQ7XG4gICAgaWYgKHAub3BlbkVsZW1lbnRzLmhhc0luU2NvcGUodG4pKSB7XG4gICAgICAgIHAub3BlbkVsZW1lbnRzLmdlbmVyYXRlSW1wbGllZEVuZFRhZ3MoKTtcbiAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wVW50aWxUYWdOYW1lUG9wcGVkKHRuKTtcbiAgICB9XG59XG5mdW5jdGlvbiBmb3JtRW5kVGFnSW5Cb2R5KHApIHtcbiAgICBjb25zdCBpblRlbXBsYXRlID0gcC5vcGVuRWxlbWVudHMudG1wbENvdW50ID4gMDtcbiAgICBjb25zdCB7IGZvcm1FbGVtZW50IH0gPSBwO1xuICAgIGlmICghaW5UZW1wbGF0ZSkge1xuICAgICAgICBwLmZvcm1FbGVtZW50ID0gbnVsbDtcbiAgICB9XG4gICAgaWYgKChmb3JtRWxlbWVudCB8fCBpblRlbXBsYXRlKSAmJiBwLm9wZW5FbGVtZW50cy5oYXNJblNjb3BlKCQuRk9STSkpIHtcbiAgICAgICAgcC5vcGVuRWxlbWVudHMuZ2VuZXJhdGVJbXBsaWVkRW5kVGFncygpO1xuICAgICAgICBpZiAoaW5UZW1wbGF0ZSkge1xuICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wVW50aWxUYWdOYW1lUG9wcGVkKCQuRk9STSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoZm9ybUVsZW1lbnQpIHtcbiAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLnJlbW92ZShmb3JtRWxlbWVudCk7XG4gICAgICAgIH1cbiAgICB9XG59XG5mdW5jdGlvbiBwRW5kVGFnSW5Cb2R5KHApIHtcbiAgICBpZiAoIXAub3BlbkVsZW1lbnRzLmhhc0luQnV0dG9uU2NvcGUoJC5QKSkge1xuICAgICAgICBwLl9pbnNlcnRGYWtlRWxlbWVudChUTi5QLCAkLlApO1xuICAgIH1cbiAgICBwLl9jbG9zZVBFbGVtZW50KCk7XG59XG5mdW5jdGlvbiBsaUVuZFRhZ0luQm9keShwKSB7XG4gICAgaWYgKHAub3BlbkVsZW1lbnRzLmhhc0luTGlzdEl0ZW1TY29wZSgkLkxJKSkge1xuICAgICAgICBwLm9wZW5FbGVtZW50cy5nZW5lcmF0ZUltcGxpZWRFbmRUYWdzV2l0aEV4Y2x1c2lvbigkLkxJKTtcbiAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wVW50aWxUYWdOYW1lUG9wcGVkKCQuTEkpO1xuICAgIH1cbn1cbmZ1bmN0aW9uIGRkRW5kVGFnSW5Cb2R5KHAsIHRva2VuKSB7XG4gICAgY29uc3QgdG4gPSB0b2tlbi50YWdJRDtcbiAgICBpZiAocC5vcGVuRWxlbWVudHMuaGFzSW5TY29wZSh0bikpIHtcbiAgICAgICAgcC5vcGVuRWxlbWVudHMuZ2VuZXJhdGVJbXBsaWVkRW5kVGFnc1dpdGhFeGNsdXNpb24odG4pO1xuICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3BVbnRpbFRhZ05hbWVQb3BwZWQodG4pO1xuICAgIH1cbn1cbmZ1bmN0aW9uIG51bWJlcmVkSGVhZGVyRW5kVGFnSW5Cb2R5KHApIHtcbiAgICBpZiAocC5vcGVuRWxlbWVudHMuaGFzTnVtYmVyZWRIZWFkZXJJblNjb3BlKCkpIHtcbiAgICAgICAgcC5vcGVuRWxlbWVudHMuZ2VuZXJhdGVJbXBsaWVkRW5kVGFncygpO1xuICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3BVbnRpbE51bWJlcmVkSGVhZGVyUG9wcGVkKCk7XG4gICAgfVxufVxuZnVuY3Rpb24gYXBwbGV0RW5kVGFnSW5Cb2R5KHAsIHRva2VuKSB7XG4gICAgY29uc3QgdG4gPSB0b2tlbi50YWdJRDtcbiAgICBpZiAocC5vcGVuRWxlbWVudHMuaGFzSW5TY29wZSh0bikpIHtcbiAgICAgICAgcC5vcGVuRWxlbWVudHMuZ2VuZXJhdGVJbXBsaWVkRW5kVGFncygpO1xuICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3BVbnRpbFRhZ05hbWVQb3BwZWQodG4pO1xuICAgICAgICBwLmFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cy5jbGVhclRvTGFzdE1hcmtlcigpO1xuICAgIH1cbn1cbmZ1bmN0aW9uIGJyRW5kVGFnSW5Cb2R5KHApIHtcbiAgICBwLl9yZWNvbnN0cnVjdEFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cygpO1xuICAgIHAuX2luc2VydEZha2VFbGVtZW50KFROLkJSLCAkLkJSKTtcbiAgICBwLm9wZW5FbGVtZW50cy5wb3AoKTtcbiAgICBwLmZyYW1lc2V0T2sgPSBmYWxzZTtcbn1cbmZ1bmN0aW9uIGdlbmVyaWNFbmRUYWdJbkJvZHkocCwgdG9rZW4pIHtcbiAgICBjb25zdCB0biA9IHRva2VuLnRhZ05hbWU7XG4gICAgY29uc3QgdGlkID0gdG9rZW4udGFnSUQ7XG4gICAgZm9yIChsZXQgaSA9IHAub3BlbkVsZW1lbnRzLnN0YWNrVG9wOyBpID4gMDsgaS0tKSB7XG4gICAgICAgIGNvbnN0IGVsZW1lbnQgPSBwLm9wZW5FbGVtZW50cy5pdGVtc1tpXTtcbiAgICAgICAgY29uc3QgZWxlbWVudElkID0gcC5vcGVuRWxlbWVudHMudGFnSURzW2ldO1xuICAgICAgICAvLyBDb21wYXJlIHRoZSB0YWcgbmFtZSBoZXJlLCBhcyB0aGUgdGFnIG1pZ2h0IG5vdCBiZSBhIGtub3duIHRhZyB3aXRoIGFuIElELlxuICAgICAgICBpZiAodGlkID09PSBlbGVtZW50SWQgJiYgKHRpZCAhPT0gJC5VTktOT1dOIHx8IHAudHJlZUFkYXB0ZXIuZ2V0VGFnTmFtZShlbGVtZW50KSA9PT0gdG4pKSB7XG4gICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5nZW5lcmF0ZUltcGxpZWRFbmRUYWdzV2l0aEV4Y2x1c2lvbih0aWQpO1xuICAgICAgICAgICAgaWYgKHAub3BlbkVsZW1lbnRzLnN0YWNrVG9wID49IGkpXG4gICAgICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMuc2hvcnRlblRvTGVuZ3RoKGkpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHAuX2lzU3BlY2lhbEVsZW1lbnQoZWxlbWVudCwgZWxlbWVudElkKSkge1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICB9XG59XG5mdW5jdGlvbiBlbmRUYWdJbkJvZHkocCwgdG9rZW4pIHtcbiAgICBzd2l0Y2ggKHRva2VuLnRhZ0lEKSB7XG4gICAgICAgIGNhc2UgJC5BOlxuICAgICAgICBjYXNlICQuQjpcbiAgICAgICAgY2FzZSAkLkk6XG4gICAgICAgIGNhc2UgJC5TOlxuICAgICAgICBjYXNlICQuVTpcbiAgICAgICAgY2FzZSAkLkVNOlxuICAgICAgICBjYXNlICQuVFQ6XG4gICAgICAgIGNhc2UgJC5CSUc6XG4gICAgICAgIGNhc2UgJC5DT0RFOlxuICAgICAgICBjYXNlICQuRk9OVDpcbiAgICAgICAgY2FzZSAkLk5PQlI6XG4gICAgICAgIGNhc2UgJC5TTUFMTDpcbiAgICAgICAgY2FzZSAkLlNUUklLRTpcbiAgICAgICAgY2FzZSAkLlNUUk9ORzoge1xuICAgICAgICAgICAgY2FsbEFkb3B0aW9uQWdlbmN5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5QOiB7XG4gICAgICAgICAgICBwRW5kVGFnSW5Cb2R5KHApO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLkRMOlxuICAgICAgICBjYXNlICQuVUw6XG4gICAgICAgIGNhc2UgJC5PTDpcbiAgICAgICAgY2FzZSAkLkRJUjpcbiAgICAgICAgY2FzZSAkLkRJVjpcbiAgICAgICAgY2FzZSAkLk5BVjpcbiAgICAgICAgY2FzZSAkLlBSRTpcbiAgICAgICAgY2FzZSAkLk1BSU46XG4gICAgICAgIGNhc2UgJC5NRU5VOlxuICAgICAgICBjYXNlICQuQVNJREU6XG4gICAgICAgIGNhc2UgJC5CVVRUT046XG4gICAgICAgIGNhc2UgJC5DRU5URVI6XG4gICAgICAgIGNhc2UgJC5GSUdVUkU6XG4gICAgICAgIGNhc2UgJC5GT09URVI6XG4gICAgICAgIGNhc2UgJC5IRUFERVI6XG4gICAgICAgIGNhc2UgJC5IR1JPVVA6XG4gICAgICAgIGNhc2UgJC5ESUFMT0c6XG4gICAgICAgIGNhc2UgJC5BRERSRVNTOlxuICAgICAgICBjYXNlICQuQVJUSUNMRTpcbiAgICAgICAgY2FzZSAkLkRFVEFJTFM6XG4gICAgICAgIGNhc2UgJC5TRUNUSU9OOlxuICAgICAgICBjYXNlICQuU1VNTUFSWTpcbiAgICAgICAgY2FzZSAkLkxJU1RJTkc6XG4gICAgICAgIGNhc2UgJC5GSUVMRFNFVDpcbiAgICAgICAgY2FzZSAkLkJMT0NLUVVPVEU6XG4gICAgICAgIGNhc2UgJC5GSUdDQVBUSU9OOiB7XG4gICAgICAgICAgICBhZGRyZXNzRW5kVGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5MSToge1xuICAgICAgICAgICAgbGlFbmRUYWdJbkJvZHkocCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuREQ6XG4gICAgICAgIGNhc2UgJC5EVDoge1xuICAgICAgICAgICAgZGRFbmRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLkgxOlxuICAgICAgICBjYXNlICQuSDI6XG4gICAgICAgIGNhc2UgJC5IMzpcbiAgICAgICAgY2FzZSAkLkg0OlxuICAgICAgICBjYXNlICQuSDU6XG4gICAgICAgIGNhc2UgJC5INjoge1xuICAgICAgICAgICAgbnVtYmVyZWRIZWFkZXJFbmRUYWdJbkJvZHkocCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuQlI6IHtcbiAgICAgICAgICAgIGJyRW5kVGFnSW5Cb2R5KHApO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLkJPRFk6IHtcbiAgICAgICAgICAgIGJvZHlFbmRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLkhUTUw6IHtcbiAgICAgICAgICAgIGh0bWxFbmRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLkZPUk06IHtcbiAgICAgICAgICAgIGZvcm1FbmRUYWdJbkJvZHkocCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuQVBQTEVUOlxuICAgICAgICBjYXNlICQuT0JKRUNUOlxuICAgICAgICBjYXNlICQuTUFSUVVFRToge1xuICAgICAgICAgICAgYXBwbGV0RW5kVGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5URU1QTEFURToge1xuICAgICAgICAgICAgdGVtcGxhdGVFbmRUYWdJbkhlYWQocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgZ2VuZXJpY0VuZFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgICAgIH1cbiAgICB9XG59XG5mdW5jdGlvbiBlb2ZJbkJvZHkocCwgdG9rZW4pIHtcbiAgICBpZiAocC50bXBsSW5zZXJ0aW9uTW9kZVN0YWNrLmxlbmd0aCA+IDApIHtcbiAgICAgICAgZW9mSW5UZW1wbGF0ZShwLCB0b2tlbik7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICBzdG9wUGFyc2luZyhwLCB0b2tlbik7XG4gICAgfVxufVxuLy8gVGhlIFwidGV4dFwiIGluc2VydGlvbiBtb2RlXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuZnVuY3Rpb24gZW5kVGFnSW5UZXh0KHAsIHRva2VuKSB7XG4gICAgdmFyIF9hO1xuICAgIGlmICh0b2tlbi50YWdJRCA9PT0gJC5TQ1JJUFQpIHtcbiAgICAgICAgKF9hID0gcC5zY3JpcHRIYW5kbGVyKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuY2FsbChwLCBwLm9wZW5FbGVtZW50cy5jdXJyZW50KTtcbiAgICB9XG4gICAgcC5vcGVuRWxlbWVudHMucG9wKCk7XG4gICAgcC5pbnNlcnRpb25Nb2RlID0gcC5vcmlnaW5hbEluc2VydGlvbk1vZGU7XG59XG5mdW5jdGlvbiBlb2ZJblRleHQocCwgdG9rZW4pIHtcbiAgICBwLl9lcnIodG9rZW4sIEVSUi5lb2ZJbkVsZW1lbnRUaGF0Q2FuQ29udGFpbk9ubHlUZXh0KTtcbiAgICBwLm9wZW5FbGVtZW50cy5wb3AoKTtcbiAgICBwLmluc2VydGlvbk1vZGUgPSBwLm9yaWdpbmFsSW5zZXJ0aW9uTW9kZTtcbiAgICBwLm9uRW9mKHRva2VuKTtcbn1cbi8vIFRoZSBcImluIHRhYmxlXCIgaW5zZXJ0aW9uIG1vZGVcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5mdW5jdGlvbiBjaGFyYWN0ZXJJblRhYmxlKHAsIHRva2VuKSB7XG4gICAgaWYgKFRBQkxFX1NUUlVDVFVSRV9UQUdTLmhhcyhwLm9wZW5FbGVtZW50cy5jdXJyZW50VGFnSWQpKSB7XG4gICAgICAgIHAucGVuZGluZ0NoYXJhY3RlclRva2Vucy5sZW5ndGggPSAwO1xuICAgICAgICBwLmhhc05vbldoaXRlc3BhY2VQZW5kaW5nQ2hhcmFjdGVyVG9rZW4gPSBmYWxzZTtcbiAgICAgICAgcC5vcmlnaW5hbEluc2VydGlvbk1vZGUgPSBwLmluc2VydGlvbk1vZGU7XG4gICAgICAgIHAuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5fVEFCTEVfVEVYVDtcbiAgICAgICAgc3dpdGNoICh0b2tlbi50eXBlKSB7XG4gICAgICAgICAgICBjYXNlIFRva2VuVHlwZS5DSEFSQUNURVI6IHtcbiAgICAgICAgICAgICAgICBjaGFyYWN0ZXJJblRhYmxlVGV4dChwLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFRva2VuVHlwZS5XSElURVNQQUNFX0NIQVJBQ1RFUjoge1xuICAgICAgICAgICAgICAgIHdoaXRlc3BhY2VDaGFyYWN0ZXJJblRhYmxlVGV4dChwLCB0b2tlbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBJZ25vcmUgbnVsbFxuICAgICAgICB9XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICB0b2tlbkluVGFibGUocCwgdG9rZW4pO1xuICAgIH1cbn1cbmZ1bmN0aW9uIGNhcHRpb25TdGFydFRhZ0luVGFibGUocCwgdG9rZW4pIHtcbiAgICBwLm9wZW5FbGVtZW50cy5jbGVhckJhY2tUb1RhYmxlQ29udGV4dCgpO1xuICAgIHAuYWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzLmluc2VydE1hcmtlcigpO1xuICAgIHAuX2luc2VydEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpO1xuICAgIHAuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5fQ0FQVElPTjtcbn1cbmZ1bmN0aW9uIGNvbGdyb3VwU3RhcnRUYWdJblRhYmxlKHAsIHRva2VuKSB7XG4gICAgcC5vcGVuRWxlbWVudHMuY2xlYXJCYWNrVG9UYWJsZUNvbnRleHQoKTtcbiAgICBwLl9pbnNlcnRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTtcbiAgICBwLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLklOX0NPTFVNTl9HUk9VUDtcbn1cbmZ1bmN0aW9uIGNvbFN0YXJ0VGFnSW5UYWJsZShwLCB0b2tlbikge1xuICAgIHAub3BlbkVsZW1lbnRzLmNsZWFyQmFja1RvVGFibGVDb250ZXh0KCk7XG4gICAgcC5faW5zZXJ0RmFrZUVsZW1lbnQoVE4uQ09MR1JPVVAsICQuQ09MR1JPVVApO1xuICAgIHAuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5fQ09MVU1OX0dST1VQO1xuICAgIHN0YXJ0VGFnSW5Db2x1bW5Hcm91cChwLCB0b2tlbik7XG59XG5mdW5jdGlvbiB0Ym9keVN0YXJ0VGFnSW5UYWJsZShwLCB0b2tlbikge1xuICAgIHAub3BlbkVsZW1lbnRzLmNsZWFyQmFja1RvVGFibGVDb250ZXh0KCk7XG4gICAgcC5faW5zZXJ0RWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7XG4gICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9UQUJMRV9CT0RZO1xufVxuZnVuY3Rpb24gdGRTdGFydFRhZ0luVGFibGUocCwgdG9rZW4pIHtcbiAgICBwLm9wZW5FbGVtZW50cy5jbGVhckJhY2tUb1RhYmxlQ29udGV4dCgpO1xuICAgIHAuX2luc2VydEZha2VFbGVtZW50KFROLlRCT0RZLCAkLlRCT0RZKTtcbiAgICBwLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLklOX1RBQkxFX0JPRFk7XG4gICAgc3RhcnRUYWdJblRhYmxlQm9keShwLCB0b2tlbik7XG59XG5mdW5jdGlvbiB0YWJsZVN0YXJ0VGFnSW5UYWJsZShwLCB0b2tlbikge1xuICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNJblRhYmxlU2NvcGUoJC5UQUJMRSkpIHtcbiAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wVW50aWxUYWdOYW1lUG9wcGVkKCQuVEFCTEUpO1xuICAgICAgICBwLl9yZXNldEluc2VydGlvbk1vZGUoKTtcbiAgICAgICAgcC5fcHJvY2Vzc1N0YXJ0VGFnKHRva2VuKTtcbiAgICB9XG59XG5mdW5jdGlvbiBpbnB1dFN0YXJ0VGFnSW5UYWJsZShwLCB0b2tlbikge1xuICAgIGlmIChpc0hpZGRlbklucHV0KHRva2VuKSkge1xuICAgICAgICBwLl9hcHBlbmRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIHRva2VuSW5UYWJsZShwLCB0b2tlbik7XG4gICAgfVxuICAgIHRva2VuLmFja1NlbGZDbG9zaW5nID0gdHJ1ZTtcbn1cbmZ1bmN0aW9uIGZvcm1TdGFydFRhZ0luVGFibGUocCwgdG9rZW4pIHtcbiAgICBpZiAoIXAuZm9ybUVsZW1lbnQgJiYgcC5vcGVuRWxlbWVudHMudG1wbENvdW50ID09PSAwKSB7XG4gICAgICAgIHAuX2luc2VydEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpO1xuICAgICAgICBwLmZvcm1FbGVtZW50ID0gcC5vcGVuRWxlbWVudHMuY3VycmVudDtcbiAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wKCk7XG4gICAgfVxufVxuZnVuY3Rpb24gc3RhcnRUYWdJblRhYmxlKHAsIHRva2VuKSB7XG4gICAgc3dpdGNoICh0b2tlbi50YWdJRCkge1xuICAgICAgICBjYXNlICQuVEQ6XG4gICAgICAgIGNhc2UgJC5USDpcbiAgICAgICAgY2FzZSAkLlRSOiB7XG4gICAgICAgICAgICB0ZFN0YXJ0VGFnSW5UYWJsZShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuU1RZTEU6XG4gICAgICAgIGNhc2UgJC5TQ1JJUFQ6XG4gICAgICAgIGNhc2UgJC5URU1QTEFURToge1xuICAgICAgICAgICAgc3RhcnRUYWdJbkhlYWQocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLkNPTDoge1xuICAgICAgICAgICAgY29sU3RhcnRUYWdJblRhYmxlKHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5GT1JNOiB7XG4gICAgICAgICAgICBmb3JtU3RhcnRUYWdJblRhYmxlKHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5UQUJMRToge1xuICAgICAgICAgICAgdGFibGVTdGFydFRhZ0luVGFibGUocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLlRCT0RZOlxuICAgICAgICBjYXNlICQuVEZPT1Q6XG4gICAgICAgIGNhc2UgJC5USEVBRDoge1xuICAgICAgICAgICAgdGJvZHlTdGFydFRhZ0luVGFibGUocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLklOUFVUOiB7XG4gICAgICAgICAgICBpbnB1dFN0YXJ0VGFnSW5UYWJsZShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuQ0FQVElPTjoge1xuICAgICAgICAgICAgY2FwdGlvblN0YXJ0VGFnSW5UYWJsZShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuQ09MR1JPVVA6IHtcbiAgICAgICAgICAgIGNvbGdyb3VwU3RhcnRUYWdJblRhYmxlKHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgIHRva2VuSW5UYWJsZShwLCB0b2tlbik7XG4gICAgICAgIH1cbiAgICB9XG59XG5mdW5jdGlvbiBlbmRUYWdJblRhYmxlKHAsIHRva2VuKSB7XG4gICAgc3dpdGNoICh0b2tlbi50YWdJRCkge1xuICAgICAgICBjYXNlICQuVEFCTEU6IHtcbiAgICAgICAgICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNJblRhYmxlU2NvcGUoJC5UQUJMRSkpIHtcbiAgICAgICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3BVbnRpbFRhZ05hbWVQb3BwZWQoJC5UQUJMRSk7XG4gICAgICAgICAgICAgICAgcC5fcmVzZXRJbnNlcnRpb25Nb2RlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuVEVNUExBVEU6IHtcbiAgICAgICAgICAgIHRlbXBsYXRlRW5kVGFnSW5IZWFkKHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5CT0RZOlxuICAgICAgICBjYXNlICQuQ0FQVElPTjpcbiAgICAgICAgY2FzZSAkLkNPTDpcbiAgICAgICAgY2FzZSAkLkNPTEdST1VQOlxuICAgICAgICBjYXNlICQuSFRNTDpcbiAgICAgICAgY2FzZSAkLlRCT0RZOlxuICAgICAgICBjYXNlICQuVEQ6XG4gICAgICAgIGNhc2UgJC5URk9PVDpcbiAgICAgICAgY2FzZSAkLlRIOlxuICAgICAgICBjYXNlICQuVEhFQUQ6XG4gICAgICAgIGNhc2UgJC5UUjoge1xuICAgICAgICAgICAgLy8gSWdub3JlIHRva2VuXG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICB0b2tlbkluVGFibGUocCwgdG9rZW4pO1xuICAgICAgICB9XG4gICAgfVxufVxuZnVuY3Rpb24gdG9rZW5JblRhYmxlKHAsIHRva2VuKSB7XG4gICAgY29uc3Qgc2F2ZWRGb3N0ZXJQYXJlbnRpbmdTdGF0ZSA9IHAuZm9zdGVyUGFyZW50aW5nRW5hYmxlZDtcbiAgICBwLmZvc3RlclBhcmVudGluZ0VuYWJsZWQgPSB0cnVlO1xuICAgIC8vIFByb2Nlc3MgdG9rZW4gaW4gYEluIEJvZHlgIG1vZGVcbiAgICBtb2RlSW5Cb2R5KHAsIHRva2VuKTtcbiAgICBwLmZvc3RlclBhcmVudGluZ0VuYWJsZWQgPSBzYXZlZEZvc3RlclBhcmVudGluZ1N0YXRlO1xufVxuLy8gVGhlIFwiaW4gdGFibGUgdGV4dFwiIGluc2VydGlvbiBtb2RlXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuZnVuY3Rpb24gd2hpdGVzcGFjZUNoYXJhY3RlckluVGFibGVUZXh0KHAsIHRva2VuKSB7XG4gICAgcC5wZW5kaW5nQ2hhcmFjdGVyVG9rZW5zLnB1c2godG9rZW4pO1xufVxuZnVuY3Rpb24gY2hhcmFjdGVySW5UYWJsZVRleHQocCwgdG9rZW4pIHtcbiAgICBwLnBlbmRpbmdDaGFyYWN0ZXJUb2tlbnMucHVzaCh0b2tlbik7XG4gICAgcC5oYXNOb25XaGl0ZXNwYWNlUGVuZGluZ0NoYXJhY3RlclRva2VuID0gdHJ1ZTtcbn1cbmZ1bmN0aW9uIHRva2VuSW5UYWJsZVRleHQocCwgdG9rZW4pIHtcbiAgICBsZXQgaSA9IDA7XG4gICAgaWYgKHAuaGFzTm9uV2hpdGVzcGFjZVBlbmRpbmdDaGFyYWN0ZXJUb2tlbikge1xuICAgICAgICBmb3IgKDsgaSA8IHAucGVuZGluZ0NoYXJhY3RlclRva2Vucy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgdG9rZW5JblRhYmxlKHAsIHAucGVuZGluZ0NoYXJhY3RlclRva2Vuc1tpXSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIGZvciAoOyBpIDwgcC5wZW5kaW5nQ2hhcmFjdGVyVG9rZW5zLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBwLl9pbnNlcnRDaGFyYWN0ZXJzKHAucGVuZGluZ0NoYXJhY3RlclRva2Vuc1tpXSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcC5pbnNlcnRpb25Nb2RlID0gcC5vcmlnaW5hbEluc2VydGlvbk1vZGU7XG4gICAgcC5fcHJvY2Vzc1Rva2VuKHRva2VuKTtcbn1cbi8vIFRoZSBcImluIGNhcHRpb25cIiBpbnNlcnRpb24gbW9kZVxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmNvbnN0IFRBQkxFX1ZPSURfRUxFTUVOVFMgPSBuZXcgU2V0KFskLkNBUFRJT04sICQuQ09MLCAkLkNPTEdST1VQLCAkLlRCT0RZLCAkLlRELCAkLlRGT09ULCAkLlRILCAkLlRIRUFELCAkLlRSXSk7XG5mdW5jdGlvbiBzdGFydFRhZ0luQ2FwdGlvbihwLCB0b2tlbikge1xuICAgIGNvbnN0IHRuID0gdG9rZW4udGFnSUQ7XG4gICAgaWYgKFRBQkxFX1ZPSURfRUxFTUVOVFMuaGFzKHRuKSkge1xuICAgICAgICBpZiAocC5vcGVuRWxlbWVudHMuaGFzSW5UYWJsZVNjb3BlKCQuQ0FQVElPTikpIHtcbiAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLmdlbmVyYXRlSW1wbGllZEVuZFRhZ3MoKTtcbiAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcFVudGlsVGFnTmFtZVBvcHBlZCgkLkNBUFRJT04pO1xuICAgICAgICAgICAgcC5hY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMuY2xlYXJUb0xhc3RNYXJrZXIoKTtcbiAgICAgICAgICAgIHAuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5fVEFCTEU7XG4gICAgICAgICAgICBzdGFydFRhZ0luVGFibGUocCwgdG9rZW4pO1xuICAgICAgICB9XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICBzdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgfVxufVxuZnVuY3Rpb24gZW5kVGFnSW5DYXB0aW9uKHAsIHRva2VuKSB7XG4gICAgY29uc3QgdG4gPSB0b2tlbi50YWdJRDtcbiAgICBzd2l0Y2ggKHRuKSB7XG4gICAgICAgIGNhc2UgJC5DQVBUSU9OOlxuICAgICAgICBjYXNlICQuVEFCTEU6IHtcbiAgICAgICAgICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNJblRhYmxlU2NvcGUoJC5DQVBUSU9OKSkge1xuICAgICAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLmdlbmVyYXRlSW1wbGllZEVuZFRhZ3MoKTtcbiAgICAgICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3BVbnRpbFRhZ05hbWVQb3BwZWQoJC5DQVBUSU9OKTtcbiAgICAgICAgICAgICAgICBwLmFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cy5jbGVhclRvTGFzdE1hcmtlcigpO1xuICAgICAgICAgICAgICAgIHAuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5fVEFCTEU7XG4gICAgICAgICAgICAgICAgaWYgKHRuID09PSAkLlRBQkxFKSB7XG4gICAgICAgICAgICAgICAgICAgIGVuZFRhZ0luVGFibGUocCwgdG9rZW4pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5CT0RZOlxuICAgICAgICBjYXNlICQuQ09MOlxuICAgICAgICBjYXNlICQuQ09MR1JPVVA6XG4gICAgICAgIGNhc2UgJC5IVE1MOlxuICAgICAgICBjYXNlICQuVEJPRFk6XG4gICAgICAgIGNhc2UgJC5URDpcbiAgICAgICAgY2FzZSAkLlRGT09UOlxuICAgICAgICBjYXNlICQuVEg6XG4gICAgICAgIGNhc2UgJC5USEVBRDpcbiAgICAgICAgY2FzZSAkLlRSOiB7XG4gICAgICAgICAgICAvLyBJZ25vcmUgdG9rZW5cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgIGVuZFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgICAgIH1cbiAgICB9XG59XG4vLyBUaGUgXCJpbiBjb2x1bW4gZ3JvdXBcIiBpbnNlcnRpb24gbW9kZVxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmZ1bmN0aW9uIHN0YXJ0VGFnSW5Db2x1bW5Hcm91cChwLCB0b2tlbikge1xuICAgIHN3aXRjaCAodG9rZW4udGFnSUQpIHtcbiAgICAgICAgY2FzZSAkLkhUTUw6IHtcbiAgICAgICAgICAgIHN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5DT0w6IHtcbiAgICAgICAgICAgIHAuX2FwcGVuZEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpO1xuICAgICAgICAgICAgdG9rZW4uYWNrU2VsZkNsb3NpbmcgPSB0cnVlO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLlRFTVBMQVRFOiB7XG4gICAgICAgICAgICBzdGFydFRhZ0luSGVhZChwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICB0b2tlbkluQ29sdW1uR3JvdXAocCwgdG9rZW4pO1xuICAgICAgICB9XG4gICAgfVxufVxuZnVuY3Rpb24gZW5kVGFnSW5Db2x1bW5Hcm91cChwLCB0b2tlbikge1xuICAgIHN3aXRjaCAodG9rZW4udGFnSUQpIHtcbiAgICAgICAgY2FzZSAkLkNPTEdST1VQOiB7XG4gICAgICAgICAgICBpZiAocC5vcGVuRWxlbWVudHMuY3VycmVudFRhZ0lkID09PSAkLkNPTEdST1VQKSB7XG4gICAgICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wKCk7XG4gICAgICAgICAgICAgICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9UQUJMRTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5URU1QTEFURToge1xuICAgICAgICAgICAgdGVtcGxhdGVFbmRUYWdJbkhlYWQocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLkNPTDoge1xuICAgICAgICAgICAgLy8gSWdub3JlIHRva2VuXG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICB0b2tlbkluQ29sdW1uR3JvdXAocCwgdG9rZW4pO1xuICAgICAgICB9XG4gICAgfVxufVxuZnVuY3Rpb24gdG9rZW5JbkNvbHVtbkdyb3VwKHAsIHRva2VuKSB7XG4gICAgaWYgKHAub3BlbkVsZW1lbnRzLmN1cnJlbnRUYWdJZCA9PT0gJC5DT0xHUk9VUCkge1xuICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3AoKTtcbiAgICAgICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9UQUJMRTtcbiAgICAgICAgcC5fcHJvY2Vzc1Rva2VuKHRva2VuKTtcbiAgICB9XG59XG4vLyBUaGUgXCJpbiB0YWJsZSBib2R5XCIgaW5zZXJ0aW9uIG1vZGVcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5mdW5jdGlvbiBzdGFydFRhZ0luVGFibGVCb2R5KHAsIHRva2VuKSB7XG4gICAgc3dpdGNoICh0b2tlbi50YWdJRCkge1xuICAgICAgICBjYXNlICQuVFI6IHtcbiAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLmNsZWFyQmFja1RvVGFibGVCb2R5Q29udGV4dCgpO1xuICAgICAgICAgICAgcC5faW5zZXJ0RWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7XG4gICAgICAgICAgICBwLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLklOX1JPVztcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5USDpcbiAgICAgICAgY2FzZSAkLlREOiB7XG4gICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5jbGVhckJhY2tUb1RhYmxlQm9keUNvbnRleHQoKTtcbiAgICAgICAgICAgIHAuX2luc2VydEZha2VFbGVtZW50KFROLlRSLCAkLlRSKTtcbiAgICAgICAgICAgIHAuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5fUk9XO1xuICAgICAgICAgICAgc3RhcnRUYWdJblJvdyhwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuQ0FQVElPTjpcbiAgICAgICAgY2FzZSAkLkNPTDpcbiAgICAgICAgY2FzZSAkLkNPTEdST1VQOlxuICAgICAgICBjYXNlICQuVEJPRFk6XG4gICAgICAgIGNhc2UgJC5URk9PVDpcbiAgICAgICAgY2FzZSAkLlRIRUFEOiB7XG4gICAgICAgICAgICBpZiAocC5vcGVuRWxlbWVudHMuaGFzVGFibGVCb2R5Q29udGV4dEluVGFibGVTY29wZSgpKSB7XG4gICAgICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMuY2xlYXJCYWNrVG9UYWJsZUJvZHlDb250ZXh0KCk7XG4gICAgICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wKCk7XG4gICAgICAgICAgICAgICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9UQUJMRTtcbiAgICAgICAgICAgICAgICBzdGFydFRhZ0luVGFibGUocCwgdG9rZW4pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgc3RhcnRUYWdJblRhYmxlKHAsIHRva2VuKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbmZ1bmN0aW9uIGVuZFRhZ0luVGFibGVCb2R5KHAsIHRva2VuKSB7XG4gICAgY29uc3QgdG4gPSB0b2tlbi50YWdJRDtcbiAgICBzd2l0Y2ggKHRva2VuLnRhZ0lEKSB7XG4gICAgICAgIGNhc2UgJC5UQk9EWTpcbiAgICAgICAgY2FzZSAkLlRGT09UOlxuICAgICAgICBjYXNlICQuVEhFQUQ6IHtcbiAgICAgICAgICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNJblRhYmxlU2NvcGUodG4pKSB7XG4gICAgICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMuY2xlYXJCYWNrVG9UYWJsZUJvZHlDb250ZXh0KCk7XG4gICAgICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wKCk7XG4gICAgICAgICAgICAgICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9UQUJMRTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5UQUJMRToge1xuICAgICAgICAgICAgaWYgKHAub3BlbkVsZW1lbnRzLmhhc1RhYmxlQm9keUNvbnRleHRJblRhYmxlU2NvcGUoKSkge1xuICAgICAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLmNsZWFyQmFja1RvVGFibGVCb2R5Q29udGV4dCgpO1xuICAgICAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcCgpO1xuICAgICAgICAgICAgICAgIHAuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5fVEFCTEU7XG4gICAgICAgICAgICAgICAgZW5kVGFnSW5UYWJsZShwLCB0b2tlbik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuQk9EWTpcbiAgICAgICAgY2FzZSAkLkNBUFRJT046XG4gICAgICAgIGNhc2UgJC5DT0w6XG4gICAgICAgIGNhc2UgJC5DT0xHUk9VUDpcbiAgICAgICAgY2FzZSAkLkhUTUw6XG4gICAgICAgIGNhc2UgJC5URDpcbiAgICAgICAgY2FzZSAkLlRIOlxuICAgICAgICBjYXNlICQuVFI6IHtcbiAgICAgICAgICAgIC8vIElnbm9yZSB0b2tlblxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgZW5kVGFnSW5UYWJsZShwLCB0b2tlbik7XG4gICAgICAgIH1cbiAgICB9XG59XG4vLyBUaGUgXCJpbiByb3dcIiBpbnNlcnRpb24gbW9kZVxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmZ1bmN0aW9uIHN0YXJ0VGFnSW5Sb3cocCwgdG9rZW4pIHtcbiAgICBzd2l0Y2ggKHRva2VuLnRhZ0lEKSB7XG4gICAgICAgIGNhc2UgJC5USDpcbiAgICAgICAgY2FzZSAkLlREOiB7XG4gICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5jbGVhckJhY2tUb1RhYmxlUm93Q29udGV4dCgpO1xuICAgICAgICAgICAgcC5faW5zZXJ0RWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7XG4gICAgICAgICAgICBwLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLklOX0NFTEw7XG4gICAgICAgICAgICBwLmFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cy5pbnNlcnRNYXJrZXIoKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5DQVBUSU9OOlxuICAgICAgICBjYXNlICQuQ09MOlxuICAgICAgICBjYXNlICQuQ09MR1JPVVA6XG4gICAgICAgIGNhc2UgJC5UQk9EWTpcbiAgICAgICAgY2FzZSAkLlRGT09UOlxuICAgICAgICBjYXNlICQuVEhFQUQ6XG4gICAgICAgIGNhc2UgJC5UUjoge1xuICAgICAgICAgICAgaWYgKHAub3BlbkVsZW1lbnRzLmhhc0luVGFibGVTY29wZSgkLlRSKSkge1xuICAgICAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLmNsZWFyQmFja1RvVGFibGVSb3dDb250ZXh0KCk7XG4gICAgICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wKCk7XG4gICAgICAgICAgICAgICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9UQUJMRV9CT0RZO1xuICAgICAgICAgICAgICAgIHN0YXJ0VGFnSW5UYWJsZUJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgc3RhcnRUYWdJblRhYmxlKHAsIHRva2VuKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbmZ1bmN0aW9uIGVuZFRhZ0luUm93KHAsIHRva2VuKSB7XG4gICAgc3dpdGNoICh0b2tlbi50YWdJRCkge1xuICAgICAgICBjYXNlICQuVFI6IHtcbiAgICAgICAgICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNJblRhYmxlU2NvcGUoJC5UUikpIHtcbiAgICAgICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5jbGVhckJhY2tUb1RhYmxlUm93Q29udGV4dCgpO1xuICAgICAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcCgpO1xuICAgICAgICAgICAgICAgIHAuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5fVEFCTEVfQk9EWTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5UQUJMRToge1xuICAgICAgICAgICAgaWYgKHAub3BlbkVsZW1lbnRzLmhhc0luVGFibGVTY29wZSgkLlRSKSkge1xuICAgICAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLmNsZWFyQmFja1RvVGFibGVSb3dDb250ZXh0KCk7XG4gICAgICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wKCk7XG4gICAgICAgICAgICAgICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9UQUJMRV9CT0RZO1xuICAgICAgICAgICAgICAgIGVuZFRhZ0luVGFibGVCb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5UQk9EWTpcbiAgICAgICAgY2FzZSAkLlRGT09UOlxuICAgICAgICBjYXNlICQuVEhFQUQ6IHtcbiAgICAgICAgICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNJblRhYmxlU2NvcGUodG9rZW4udGFnSUQpIHx8IHAub3BlbkVsZW1lbnRzLmhhc0luVGFibGVTY29wZSgkLlRSKSkge1xuICAgICAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLmNsZWFyQmFja1RvVGFibGVSb3dDb250ZXh0KCk7XG4gICAgICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wKCk7XG4gICAgICAgICAgICAgICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9UQUJMRV9CT0RZO1xuICAgICAgICAgICAgICAgIGVuZFRhZ0luVGFibGVCb2R5KHAsIHRva2VuKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5CT0RZOlxuICAgICAgICBjYXNlICQuQ0FQVElPTjpcbiAgICAgICAgY2FzZSAkLkNPTDpcbiAgICAgICAgY2FzZSAkLkNPTEdST1VQOlxuICAgICAgICBjYXNlICQuSFRNTDpcbiAgICAgICAgY2FzZSAkLlREOlxuICAgICAgICBjYXNlICQuVEg6IHtcbiAgICAgICAgICAgIC8vIElnbm9yZSBlbmQgdGFnXG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICBlbmRUYWdJblRhYmxlKHAsIHRva2VuKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbi8vIFRoZSBcImluIGNlbGxcIiBpbnNlcnRpb24gbW9kZVxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmZ1bmN0aW9uIHN0YXJ0VGFnSW5DZWxsKHAsIHRva2VuKSB7XG4gICAgY29uc3QgdG4gPSB0b2tlbi50YWdJRDtcbiAgICBpZiAoVEFCTEVfVk9JRF9FTEVNRU5UUy5oYXModG4pKSB7XG4gICAgICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNJblRhYmxlU2NvcGUoJC5URCkgfHwgcC5vcGVuRWxlbWVudHMuaGFzSW5UYWJsZVNjb3BlKCQuVEgpKSB7XG4gICAgICAgICAgICBwLl9jbG9zZVRhYmxlQ2VsbCgpO1xuICAgICAgICAgICAgc3RhcnRUYWdJblJvdyhwLCB0b2tlbik7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIHN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICB9XG59XG5mdW5jdGlvbiBlbmRUYWdJbkNlbGwocCwgdG9rZW4pIHtcbiAgICBjb25zdCB0biA9IHRva2VuLnRhZ0lEO1xuICAgIHN3aXRjaCAodG4pIHtcbiAgICAgICAgY2FzZSAkLlREOlxuICAgICAgICBjYXNlICQuVEg6IHtcbiAgICAgICAgICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNJblRhYmxlU2NvcGUodG4pKSB7XG4gICAgICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMuZ2VuZXJhdGVJbXBsaWVkRW5kVGFncygpO1xuICAgICAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcFVudGlsVGFnTmFtZVBvcHBlZCh0bik7XG4gICAgICAgICAgICAgICAgcC5hY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMuY2xlYXJUb0xhc3RNYXJrZXIoKTtcbiAgICAgICAgICAgICAgICBwLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLklOX1JPVztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5UQUJMRTpcbiAgICAgICAgY2FzZSAkLlRCT0RZOlxuICAgICAgICBjYXNlICQuVEZPT1Q6XG4gICAgICAgIGNhc2UgJC5USEVBRDpcbiAgICAgICAgY2FzZSAkLlRSOiB7XG4gICAgICAgICAgICBpZiAocC5vcGVuRWxlbWVudHMuaGFzSW5UYWJsZVNjb3BlKHRuKSkge1xuICAgICAgICAgICAgICAgIHAuX2Nsb3NlVGFibGVDZWxsKCk7XG4gICAgICAgICAgICAgICAgZW5kVGFnSW5Sb3cocCwgdG9rZW4pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLkJPRFk6XG4gICAgICAgIGNhc2UgJC5DQVBUSU9OOlxuICAgICAgICBjYXNlICQuQ09MOlxuICAgICAgICBjYXNlICQuQ09MR1JPVVA6XG4gICAgICAgIGNhc2UgJC5IVE1MOiB7XG4gICAgICAgICAgICAvLyBJZ25vcmUgdG9rZW5cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgIGVuZFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgICAgIH1cbiAgICB9XG59XG4vLyBUaGUgXCJpbiBzZWxlY3RcIiBpbnNlcnRpb24gbW9kZVxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmZ1bmN0aW9uIHN0YXJ0VGFnSW5TZWxlY3QocCwgdG9rZW4pIHtcbiAgICBzd2l0Y2ggKHRva2VuLnRhZ0lEKSB7XG4gICAgICAgIGNhc2UgJC5IVE1MOiB7XG4gICAgICAgICAgICBzdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuT1BUSU9OOiB7XG4gICAgICAgICAgICBpZiAocC5vcGVuRWxlbWVudHMuY3VycmVudFRhZ0lkID09PSAkLk9QVElPTikge1xuICAgICAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcC5faW5zZXJ0RWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuT1BUR1JPVVA6IHtcbiAgICAgICAgICAgIGlmIChwLm9wZW5FbGVtZW50cy5jdXJyZW50VGFnSWQgPT09ICQuT1BUSU9OKSB7XG4gICAgICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAocC5vcGVuRWxlbWVudHMuY3VycmVudFRhZ0lkID09PSAkLk9QVEdST1VQKSB7XG4gICAgICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBwLl9pbnNlcnRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5JTlBVVDpcbiAgICAgICAgY2FzZSAkLktFWUdFTjpcbiAgICAgICAgY2FzZSAkLlRFWFRBUkVBOlxuICAgICAgICBjYXNlICQuU0VMRUNUOiB7XG4gICAgICAgICAgICBpZiAocC5vcGVuRWxlbWVudHMuaGFzSW5TZWxlY3RTY29wZSgkLlNFTEVDVCkpIHtcbiAgICAgICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3BVbnRpbFRhZ05hbWVQb3BwZWQoJC5TRUxFQ1QpO1xuICAgICAgICAgICAgICAgIHAuX3Jlc2V0SW5zZXJ0aW9uTW9kZSgpO1xuICAgICAgICAgICAgICAgIGlmICh0b2tlbi50YWdJRCAhPT0gJC5TRUxFQ1QpIHtcbiAgICAgICAgICAgICAgICAgICAgcC5fcHJvY2Vzc1N0YXJ0VGFnKHRva2VuKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuU0NSSVBUOlxuICAgICAgICBjYXNlICQuVEVNUExBVEU6IHtcbiAgICAgICAgICAgIHN0YXJ0VGFnSW5IZWFkKHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgIC8vIERvIG5vdGhpbmdcbiAgICB9XG59XG5mdW5jdGlvbiBlbmRUYWdJblNlbGVjdChwLCB0b2tlbikge1xuICAgIHN3aXRjaCAodG9rZW4udGFnSUQpIHtcbiAgICAgICAgY2FzZSAkLk9QVEdST1VQOiB7XG4gICAgICAgICAgICBpZiAocC5vcGVuRWxlbWVudHMuc3RhY2tUb3AgPiAwICYmXG4gICAgICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMuY3VycmVudFRhZ0lkID09PSAkLk9QVElPTiAmJlxuICAgICAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLnRhZ0lEc1twLm9wZW5FbGVtZW50cy5zdGFja1RvcCAtIDFdID09PSAkLk9QVEdST1VQKSB7XG4gICAgICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAocC5vcGVuRWxlbWVudHMuY3VycmVudFRhZ0lkID09PSAkLk9QVEdST1VQKSB7XG4gICAgICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuT1BUSU9OOiB7XG4gICAgICAgICAgICBpZiAocC5vcGVuRWxlbWVudHMuY3VycmVudFRhZ0lkID09PSAkLk9QVElPTikge1xuICAgICAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLlNFTEVDVDoge1xuICAgICAgICAgICAgaWYgKHAub3BlbkVsZW1lbnRzLmhhc0luU2VsZWN0U2NvcGUoJC5TRUxFQ1QpKSB7XG4gICAgICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wVW50aWxUYWdOYW1lUG9wcGVkKCQuU0VMRUNUKTtcbiAgICAgICAgICAgICAgICBwLl9yZXNldEluc2VydGlvbk1vZGUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5URU1QTEFURToge1xuICAgICAgICAgICAgdGVtcGxhdGVFbmRUYWdJbkhlYWQocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgLy8gRG8gbm90aGluZ1xuICAgIH1cbn1cbi8vIFRoZSBcImluIHNlbGVjdCBpbiB0YWJsZVwiIGluc2VydGlvbiBtb2RlXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuZnVuY3Rpb24gc3RhcnRUYWdJblNlbGVjdEluVGFibGUocCwgdG9rZW4pIHtcbiAgICBjb25zdCB0biA9IHRva2VuLnRhZ0lEO1xuICAgIGlmICh0biA9PT0gJC5DQVBUSU9OIHx8XG4gICAgICAgIHRuID09PSAkLlRBQkxFIHx8XG4gICAgICAgIHRuID09PSAkLlRCT0RZIHx8XG4gICAgICAgIHRuID09PSAkLlRGT09UIHx8XG4gICAgICAgIHRuID09PSAkLlRIRUFEIHx8XG4gICAgICAgIHRuID09PSAkLlRSIHx8XG4gICAgICAgIHRuID09PSAkLlREIHx8XG4gICAgICAgIHRuID09PSAkLlRIKSB7XG4gICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcFVudGlsVGFnTmFtZVBvcHBlZCgkLlNFTEVDVCk7XG4gICAgICAgIHAuX3Jlc2V0SW5zZXJ0aW9uTW9kZSgpO1xuICAgICAgICBwLl9wcm9jZXNzU3RhcnRUYWcodG9rZW4pO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgc3RhcnRUYWdJblNlbGVjdChwLCB0b2tlbik7XG4gICAgfVxufVxuZnVuY3Rpb24gZW5kVGFnSW5TZWxlY3RJblRhYmxlKHAsIHRva2VuKSB7XG4gICAgY29uc3QgdG4gPSB0b2tlbi50YWdJRDtcbiAgICBpZiAodG4gPT09ICQuQ0FQVElPTiB8fFxuICAgICAgICB0biA9PT0gJC5UQUJMRSB8fFxuICAgICAgICB0biA9PT0gJC5UQk9EWSB8fFxuICAgICAgICB0biA9PT0gJC5URk9PVCB8fFxuICAgICAgICB0biA9PT0gJC5USEVBRCB8fFxuICAgICAgICB0biA9PT0gJC5UUiB8fFxuICAgICAgICB0biA9PT0gJC5URCB8fFxuICAgICAgICB0biA9PT0gJC5USCkge1xuICAgICAgICBpZiAocC5vcGVuRWxlbWVudHMuaGFzSW5UYWJsZVNjb3BlKHRuKSkge1xuICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wVW50aWxUYWdOYW1lUG9wcGVkKCQuU0VMRUNUKTtcbiAgICAgICAgICAgIHAuX3Jlc2V0SW5zZXJ0aW9uTW9kZSgpO1xuICAgICAgICAgICAgcC5vbkVuZFRhZyh0b2tlbik7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIGVuZFRhZ0luU2VsZWN0KHAsIHRva2VuKTtcbiAgICB9XG59XG4vLyBUaGUgXCJpbiB0ZW1wbGF0ZVwiIGluc2VydGlvbiBtb2RlXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuZnVuY3Rpb24gc3RhcnRUYWdJblRlbXBsYXRlKHAsIHRva2VuKSB7XG4gICAgc3dpdGNoICh0b2tlbi50YWdJRCkge1xuICAgICAgICAvLyBGaXJzdCwgaGFuZGxlIHRhZ3MgdGhhdCBjYW4gc3RhcnQgd2l0aG91dCBhIG1vZGUgY2hhbmdlXG4gICAgICAgIGNhc2UgJC5CQVNFOlxuICAgICAgICBjYXNlICQuQkFTRUZPTlQ6XG4gICAgICAgIGNhc2UgJC5CR1NPVU5EOlxuICAgICAgICBjYXNlICQuTElOSzpcbiAgICAgICAgY2FzZSAkLk1FVEE6XG4gICAgICAgIGNhc2UgJC5OT0ZSQU1FUzpcbiAgICAgICAgY2FzZSAkLlNDUklQVDpcbiAgICAgICAgY2FzZSAkLlNUWUxFOlxuICAgICAgICBjYXNlICQuVEVNUExBVEU6XG4gICAgICAgIGNhc2UgJC5USVRMRToge1xuICAgICAgICAgICAgc3RhcnRUYWdJbkhlYWQocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgLy8gUmUtcHJvY2VzcyB0aGUgdG9rZW4gaW4gdGhlIGFwcHJvcHJpYXRlIG1vZGVcbiAgICAgICAgY2FzZSAkLkNBUFRJT046XG4gICAgICAgIGNhc2UgJC5DT0xHUk9VUDpcbiAgICAgICAgY2FzZSAkLlRCT0RZOlxuICAgICAgICBjYXNlICQuVEZPT1Q6XG4gICAgICAgIGNhc2UgJC5USEVBRDoge1xuICAgICAgICAgICAgcC50bXBsSW5zZXJ0aW9uTW9kZVN0YWNrWzBdID0gSW5zZXJ0aW9uTW9kZS5JTl9UQUJMRTtcbiAgICAgICAgICAgIHAuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5fVEFCTEU7XG4gICAgICAgICAgICBzdGFydFRhZ0luVGFibGUocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLkNPTDoge1xuICAgICAgICAgICAgcC50bXBsSW5zZXJ0aW9uTW9kZVN0YWNrWzBdID0gSW5zZXJ0aW9uTW9kZS5JTl9DT0xVTU5fR1JPVVA7XG4gICAgICAgICAgICBwLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLklOX0NPTFVNTl9HUk9VUDtcbiAgICAgICAgICAgIHN0YXJ0VGFnSW5Db2x1bW5Hcm91cChwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuVFI6IHtcbiAgICAgICAgICAgIHAudG1wbEluc2VydGlvbk1vZGVTdGFja1swXSA9IEluc2VydGlvbk1vZGUuSU5fVEFCTEVfQk9EWTtcbiAgICAgICAgICAgIHAuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5fVEFCTEVfQk9EWTtcbiAgICAgICAgICAgIHN0YXJ0VGFnSW5UYWJsZUJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLlREOlxuICAgICAgICBjYXNlICQuVEg6IHtcbiAgICAgICAgICAgIHAudG1wbEluc2VydGlvbk1vZGVTdGFja1swXSA9IEluc2VydGlvbk1vZGUuSU5fUk9XO1xuICAgICAgICAgICAgcC5pbnNlcnRpb25Nb2RlID0gSW5zZXJ0aW9uTW9kZS5JTl9ST1c7XG4gICAgICAgICAgICBzdGFydFRhZ0luUm93KHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgIHAudG1wbEluc2VydGlvbk1vZGVTdGFja1swXSA9IEluc2VydGlvbk1vZGUuSU5fQk9EWTtcbiAgICAgICAgICAgIHAuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuSU5fQk9EWTtcbiAgICAgICAgICAgIHN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbmZ1bmN0aW9uIGVuZFRhZ0luVGVtcGxhdGUocCwgdG9rZW4pIHtcbiAgICBpZiAodG9rZW4udGFnSUQgPT09ICQuVEVNUExBVEUpIHtcbiAgICAgICAgdGVtcGxhdGVFbmRUYWdJbkhlYWQocCwgdG9rZW4pO1xuICAgIH1cbn1cbmZ1bmN0aW9uIGVvZkluVGVtcGxhdGUocCwgdG9rZW4pIHtcbiAgICBpZiAocC5vcGVuRWxlbWVudHMudG1wbENvdW50ID4gMCkge1xuICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3BVbnRpbFRhZ05hbWVQb3BwZWQoJC5URU1QTEFURSk7XG4gICAgICAgIHAuYWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzLmNsZWFyVG9MYXN0TWFya2VyKCk7XG4gICAgICAgIHAudG1wbEluc2VydGlvbk1vZGVTdGFjay5zaGlmdCgpO1xuICAgICAgICBwLl9yZXNldEluc2VydGlvbk1vZGUoKTtcbiAgICAgICAgcC5vbkVvZih0b2tlbik7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICBzdG9wUGFyc2luZyhwLCB0b2tlbik7XG4gICAgfVxufVxuLy8gVGhlIFwiYWZ0ZXIgYm9keVwiIGluc2VydGlvbiBtb2RlXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuZnVuY3Rpb24gc3RhcnRUYWdBZnRlckJvZHkocCwgdG9rZW4pIHtcbiAgICBpZiAodG9rZW4udGFnSUQgPT09ICQuSFRNTCkge1xuICAgICAgICBzdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICB0b2tlbkFmdGVyQm9keShwLCB0b2tlbik7XG4gICAgfVxufVxuZnVuY3Rpb24gZW5kVGFnQWZ0ZXJCb2R5KHAsIHRva2VuKSB7XG4gICAgdmFyIF9hO1xuICAgIGlmICh0b2tlbi50YWdJRCA9PT0gJC5IVE1MKSB7XG4gICAgICAgIGlmICghcC5mcmFnbWVudENvbnRleHQpIHtcbiAgICAgICAgICAgIHAuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuQUZURVJfQUZURVJfQk9EWTtcbiAgICAgICAgfVxuICAgICAgICAvL05PVEU6IDxodG1sPiBpcyBuZXZlciBwb3BwZWQgZnJvbSB0aGUgc3RhY2ssIHNvIHdlIG5lZWQgdG8gdXBkYXRlZFxuICAgICAgICAvL3RoZSBlbmQgbG9jYXRpb24gZXhwbGljaXRseS5cbiAgICAgICAgaWYgKHAub3B0aW9ucy5zb3VyY2VDb2RlTG9jYXRpb25JbmZvICYmIHAub3BlbkVsZW1lbnRzLnRhZ0lEc1swXSA9PT0gJC5IVE1MKSB7XG4gICAgICAgICAgICBwLl9zZXRFbmRMb2NhdGlvbihwLm9wZW5FbGVtZW50cy5pdGVtc1swXSwgdG9rZW4pO1xuICAgICAgICAgICAgLy8gVXBkYXRlIHRoZSBib2R5IGVsZW1lbnQsIGlmIGl0IGRvZXNuJ3QgaGF2ZSBhbiBlbmQgdGFnXG4gICAgICAgICAgICBjb25zdCBib2R5RWxlbWVudCA9IHAub3BlbkVsZW1lbnRzLml0ZW1zWzFdO1xuICAgICAgICAgICAgaWYgKGJvZHlFbGVtZW50ICYmICEoKF9hID0gcC50cmVlQWRhcHRlci5nZXROb2RlU291cmNlQ29kZUxvY2F0aW9uKGJvZHlFbGVtZW50KSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmVuZFRhZykpIHtcbiAgICAgICAgICAgICAgICBwLl9zZXRFbmRMb2NhdGlvbihib2R5RWxlbWVudCwgdG9rZW4pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICB0b2tlbkFmdGVyQm9keShwLCB0b2tlbik7XG4gICAgfVxufVxuZnVuY3Rpb24gdG9rZW5BZnRlckJvZHkocCwgdG9rZW4pIHtcbiAgICBwLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLklOX0JPRFk7XG4gICAgbW9kZUluQm9keShwLCB0b2tlbik7XG59XG4vLyBUaGUgXCJpbiBmcmFtZXNldFwiIGluc2VydGlvbiBtb2RlXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuZnVuY3Rpb24gc3RhcnRUYWdJbkZyYW1lc2V0KHAsIHRva2VuKSB7XG4gICAgc3dpdGNoICh0b2tlbi50YWdJRCkge1xuICAgICAgICBjYXNlICQuSFRNTDoge1xuICAgICAgICAgICAgc3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLkZSQU1FU0VUOiB7XG4gICAgICAgICAgICBwLl9pbnNlcnRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJC5GUkFNRToge1xuICAgICAgICAgICAgcC5fYXBwZW5kRWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7XG4gICAgICAgICAgICB0b2tlbi5hY2tTZWxmQ2xvc2luZyA9IHRydWU7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuTk9GUkFNRVM6IHtcbiAgICAgICAgICAgIHN0YXJ0VGFnSW5IZWFkKHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgIC8vIERvIG5vdGhpbmdcbiAgICB9XG59XG5mdW5jdGlvbiBlbmRUYWdJbkZyYW1lc2V0KHAsIHRva2VuKSB7XG4gICAgaWYgKHRva2VuLnRhZ0lEID09PSAkLkZSQU1FU0VUICYmICFwLm9wZW5FbGVtZW50cy5pc1Jvb3RIdG1sRWxlbWVudEN1cnJlbnQoKSkge1xuICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3AoKTtcbiAgICAgICAgaWYgKCFwLmZyYWdtZW50Q29udGV4dCAmJiBwLm9wZW5FbGVtZW50cy5jdXJyZW50VGFnSWQgIT09ICQuRlJBTUVTRVQpIHtcbiAgICAgICAgICAgIHAuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuQUZURVJfRlJBTUVTRVQ7XG4gICAgICAgIH1cbiAgICB9XG59XG4vLyBUaGUgXCJhZnRlciBmcmFtZXNldFwiIGluc2VydGlvbiBtb2RlXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuZnVuY3Rpb24gc3RhcnRUYWdBZnRlckZyYW1lc2V0KHAsIHRva2VuKSB7XG4gICAgc3dpdGNoICh0b2tlbi50YWdJRCkge1xuICAgICAgICBjYXNlICQuSFRNTDoge1xuICAgICAgICAgICAgc3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAkLk5PRlJBTUVTOiB7XG4gICAgICAgICAgICBzdGFydFRhZ0luSGVhZChwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAvLyBEbyBub3RoaW5nXG4gICAgfVxufVxuZnVuY3Rpb24gZW5kVGFnQWZ0ZXJGcmFtZXNldChwLCB0b2tlbikge1xuICAgIGlmICh0b2tlbi50YWdJRCA9PT0gJC5IVE1MKSB7XG4gICAgICAgIHAuaW5zZXJ0aW9uTW9kZSA9IEluc2VydGlvbk1vZGUuQUZURVJfQUZURVJfRlJBTUVTRVQ7XG4gICAgfVxufVxuLy8gVGhlIFwiYWZ0ZXIgYWZ0ZXIgYm9keVwiIGluc2VydGlvbiBtb2RlXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuZnVuY3Rpb24gc3RhcnRUYWdBZnRlckFmdGVyQm9keShwLCB0b2tlbikge1xuICAgIGlmICh0b2tlbi50YWdJRCA9PT0gJC5IVE1MKSB7XG4gICAgICAgIHN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIHRva2VuQWZ0ZXJBZnRlckJvZHkocCwgdG9rZW4pO1xuICAgIH1cbn1cbmZ1bmN0aW9uIHRva2VuQWZ0ZXJBZnRlckJvZHkocCwgdG9rZW4pIHtcbiAgICBwLmluc2VydGlvbk1vZGUgPSBJbnNlcnRpb25Nb2RlLklOX0JPRFk7XG4gICAgbW9kZUluQm9keShwLCB0b2tlbik7XG59XG4vLyBUaGUgXCJhZnRlciBhZnRlciBmcmFtZXNldFwiIGluc2VydGlvbiBtb2RlXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuZnVuY3Rpb24gc3RhcnRUYWdBZnRlckFmdGVyRnJhbWVzZXQocCwgdG9rZW4pIHtcbiAgICBzd2l0Y2ggKHRva2VuLnRhZ0lEKSB7XG4gICAgICAgIGNhc2UgJC5IVE1MOiB7XG4gICAgICAgICAgICBzdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICQuTk9GUkFNRVM6IHtcbiAgICAgICAgICAgIHN0YXJ0VGFnSW5IZWFkKHAsIHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgIC8vIERvIG5vdGhpbmdcbiAgICB9XG59XG4vLyBUaGUgcnVsZXMgZm9yIHBhcnNpbmcgdG9rZW5zIGluIGZvcmVpZ24gY29udGVudFxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmZ1bmN0aW9uIG51bGxDaGFyYWN0ZXJJbkZvcmVpZ25Db250ZW50KHAsIHRva2VuKSB7XG4gICAgdG9rZW4uY2hhcnMgPSB1bmljb2RlLlJFUExBQ0VNRU5UX0NIQVJBQ1RFUjtcbiAgICBwLl9pbnNlcnRDaGFyYWN0ZXJzKHRva2VuKTtcbn1cbmZ1bmN0aW9uIGNoYXJhY3RlckluRm9yZWlnbkNvbnRlbnQocCwgdG9rZW4pIHtcbiAgICBwLl9pbnNlcnRDaGFyYWN0ZXJzKHRva2VuKTtcbiAgICBwLmZyYW1lc2V0T2sgPSBmYWxzZTtcbn1cbmZ1bmN0aW9uIHBvcFVudGlsSHRtbE9ySW50ZWdyYXRpb25Qb2ludChwKSB7XG4gICAgd2hpbGUgKHAudHJlZUFkYXB0ZXIuZ2V0TmFtZXNwYWNlVVJJKHAub3BlbkVsZW1lbnRzLmN1cnJlbnQpICE9PSBOUy5IVE1MICYmXG4gICAgICAgICFwLl9pc0ludGVncmF0aW9uUG9pbnQocC5vcGVuRWxlbWVudHMuY3VycmVudFRhZ0lkLCBwLm9wZW5FbGVtZW50cy5jdXJyZW50KSkge1xuICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3AoKTtcbiAgICB9XG59XG5mdW5jdGlvbiBzdGFydFRhZ0luRm9yZWlnbkNvbnRlbnQocCwgdG9rZW4pIHtcbiAgICBpZiAoZm9yZWlnbkNvbnRlbnQuY2F1c2VzRXhpdCh0b2tlbikpIHtcbiAgICAgICAgcG9wVW50aWxIdG1sT3JJbnRlZ3JhdGlvblBvaW50KHApO1xuICAgICAgICBwLl9zdGFydFRhZ091dHNpZGVGb3JlaWduQ29udGVudCh0b2tlbik7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICBjb25zdCBjdXJyZW50ID0gcC5fZ2V0QWRqdXN0ZWRDdXJyZW50RWxlbWVudCgpO1xuICAgICAgICBjb25zdCBjdXJyZW50TnMgPSBwLnRyZWVBZGFwdGVyLmdldE5hbWVzcGFjZVVSSShjdXJyZW50KTtcbiAgICAgICAgaWYgKGN1cnJlbnROcyA9PT0gTlMuTUFUSE1MKSB7XG4gICAgICAgICAgICBmb3JlaWduQ29udGVudC5hZGp1c3RUb2tlbk1hdGhNTEF0dHJzKHRva2VuKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChjdXJyZW50TnMgPT09IE5TLlNWRykge1xuICAgICAgICAgICAgZm9yZWlnbkNvbnRlbnQuYWRqdXN0VG9rZW5TVkdUYWdOYW1lKHRva2VuKTtcbiAgICAgICAgICAgIGZvcmVpZ25Db250ZW50LmFkanVzdFRva2VuU1ZHQXR0cnModG9rZW4pO1xuICAgICAgICB9XG4gICAgICAgIGZvcmVpZ25Db250ZW50LmFkanVzdFRva2VuWE1MQXR0cnModG9rZW4pO1xuICAgICAgICBpZiAodG9rZW4uc2VsZkNsb3NpbmcpIHtcbiAgICAgICAgICAgIHAuX2FwcGVuZEVsZW1lbnQodG9rZW4sIGN1cnJlbnROcyk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBwLl9pbnNlcnRFbGVtZW50KHRva2VuLCBjdXJyZW50TnMpO1xuICAgICAgICB9XG4gICAgICAgIHRva2VuLmFja1NlbGZDbG9zaW5nID0gdHJ1ZTtcbiAgICB9XG59XG5mdW5jdGlvbiBlbmRUYWdJbkZvcmVpZ25Db250ZW50KHAsIHRva2VuKSB7XG4gICAgaWYgKHRva2VuLnRhZ0lEID09PSAkLlAgfHwgdG9rZW4udGFnSUQgPT09ICQuQlIpIHtcbiAgICAgICAgcG9wVW50aWxIdG1sT3JJbnRlZ3JhdGlvblBvaW50KHApO1xuICAgICAgICBwLl9lbmRUYWdPdXRzaWRlRm9yZWlnbkNvbnRlbnQodG9rZW4pO1xuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIGZvciAobGV0IGkgPSBwLm9wZW5FbGVtZW50cy5zdGFja1RvcDsgaSA+IDA7IGktLSkge1xuICAgICAgICBjb25zdCBlbGVtZW50ID0gcC5vcGVuRWxlbWVudHMuaXRlbXNbaV07XG4gICAgICAgIGlmIChwLnRyZWVBZGFwdGVyLmdldE5hbWVzcGFjZVVSSShlbGVtZW50KSA9PT0gTlMuSFRNTCkge1xuICAgICAgICAgICAgcC5fZW5kVGFnT3V0c2lkZUZvcmVpZ25Db250ZW50KHRva2VuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHRhZ05hbWUgPSBwLnRyZWVBZGFwdGVyLmdldFRhZ05hbWUoZWxlbWVudCk7XG4gICAgICAgIGlmICh0YWdOYW1lLnRvTG93ZXJDYXNlKCkgPT09IHRva2VuLnRhZ05hbWUpIHtcbiAgICAgICAgICAgIC8vTk9URTogdXBkYXRlIHRoZSB0b2tlbiB0YWcgbmFtZSBmb3IgYF9zZXRFbmRMb2NhdGlvbmAuXG4gICAgICAgICAgICB0b2tlbi50YWdOYW1lID0gdGFnTmFtZTtcbiAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLnNob3J0ZW5Ub0xlbmd0aChpKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgfVxufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW5kZXguanMubWFwIiwgbnVsbCwgImltcG9ydCB7IFRBR19OQU1FUyBhcyAkLCBOUywgaGFzVW5lc2NhcGVkVGV4dCB9IGZyb20gJy4uL2NvbW1vbi9odG1sLmpzJztcbmltcG9ydCB7IGVzY2FwZVRleHQsIGVzY2FwZUF0dHJpYnV0ZSB9IGZyb20gJ2VudGl0aWVzL2xpYi9lc2NhcGUuanMnO1xuaW1wb3J0IHsgZGVmYXVsdFRyZWVBZGFwdGVyIH0gZnJvbSAnLi4vdHJlZS1hZGFwdGVycy9kZWZhdWx0LmpzJztcbi8vIFNldHNcbmNvbnN0IFZPSURfRUxFTUVOVFMgPSBuZXcgU2V0KFtcbiAgICAkLkFSRUEsXG4gICAgJC5CQVNFLFxuICAgICQuQkFTRUZPTlQsXG4gICAgJC5CR1NPVU5ELFxuICAgICQuQlIsXG4gICAgJC5DT0wsXG4gICAgJC5FTUJFRCxcbiAgICAkLkZSQU1FLFxuICAgICQuSFIsXG4gICAgJC5JTUcsXG4gICAgJC5JTlBVVCxcbiAgICAkLktFWUdFTixcbiAgICAkLkxJTkssXG4gICAgJC5NRVRBLFxuICAgICQuUEFSQU0sXG4gICAgJC5TT1VSQ0UsXG4gICAgJC5UUkFDSyxcbiAgICAkLldCUixcbl0pO1xuZnVuY3Rpb24gaXNWb2lkRWxlbWVudChub2RlLCBvcHRpb25zKSB7XG4gICAgcmV0dXJuIChvcHRpb25zLnRyZWVBZGFwdGVyLmlzRWxlbWVudE5vZGUobm9kZSkgJiZcbiAgICAgICAgb3B0aW9ucy50cmVlQWRhcHRlci5nZXROYW1lc3BhY2VVUkkobm9kZSkgPT09IE5TLkhUTUwgJiZcbiAgICAgICAgVk9JRF9FTEVNRU5UUy5oYXMob3B0aW9ucy50cmVlQWRhcHRlci5nZXRUYWdOYW1lKG5vZGUpKSk7XG59XG5jb25zdCBkZWZhdWx0T3B0cyA9IHsgdHJlZUFkYXB0ZXI6IGRlZmF1bHRUcmVlQWRhcHRlciwgc2NyaXB0aW5nRW5hYmxlZDogdHJ1ZSB9O1xuLyoqXG4gKiBTZXJpYWxpemVzIGFuIEFTVCBub2RlIHRvIGFuIEhUTUwgc3RyaW5nLlxuICpcbiAqIEBleGFtcGxlXG4gKlxuICogYGBganNcbiAqIGNvbnN0IHBhcnNlNSA9IHJlcXVpcmUoJ3BhcnNlNScpO1xuICpcbiAqIGNvbnN0IGRvY3VtZW50ID0gcGFyc2U1LnBhcnNlKCc8IURPQ1RZUEUgaHRtbD48aHRtbD48aGVhZD48L2hlYWQ+PGJvZHk+SGkgdGhlcmUhPC9ib2R5PjwvaHRtbD4nKTtcbiAqXG4gKiAvLyBTZXJpYWxpemVzIGEgZG9jdW1lbnQuXG4gKiBjb25zdCBodG1sID0gcGFyc2U1LnNlcmlhbGl6ZShkb2N1bWVudCk7XG4gKlxuICogLy8gU2VyaWFsaXplcyB0aGUgPGh0bWw+IGVsZW1lbnQgY29udGVudC5cbiAqIGNvbnN0IHN0ciA9IHBhcnNlNS5zZXJpYWxpemUoZG9jdW1lbnQuY2hpbGROb2Rlc1sxXSk7XG4gKlxuICogY29uc29sZS5sb2coc3RyKTsgLy8+ICc8aGVhZD48L2hlYWQ+PGJvZHk+SGkgdGhlcmUhPC9ib2R5PidcbiAqIGBgYFxuICpcbiAqIEBwYXJhbSBub2RlIE5vZGUgdG8gc2VyaWFsaXplLlxuICogQHBhcmFtIG9wdGlvbnMgU2VyaWFsaXphdGlvbiBvcHRpb25zLlxuICovXG5leHBvcnQgZnVuY3Rpb24gc2VyaWFsaXplKG5vZGUsIG9wdGlvbnMpIHtcbiAgICBjb25zdCBvcHRzID0geyAuLi5kZWZhdWx0T3B0cywgLi4ub3B0aW9ucyB9O1xuICAgIGlmIChpc1ZvaWRFbGVtZW50KG5vZGUsIG9wdHMpKSB7XG4gICAgICAgIHJldHVybiAnJztcbiAgICB9XG4gICAgcmV0dXJuIHNlcmlhbGl6ZUNoaWxkTm9kZXMobm9kZSwgb3B0cyk7XG59XG4vKipcbiAqIFNlcmlhbGl6ZXMgYW4gQVNUIGVsZW1lbnQgbm9kZSB0byBhbiBIVE1MIHN0cmluZywgaW5jbHVkaW5nIHRoZSBlbGVtZW50IG5vZGUuXG4gKlxuICogQGV4YW1wbGVcbiAqXG4gKiBgYGBqc1xuICogY29uc3QgcGFyc2U1ID0gcmVxdWlyZSgncGFyc2U1Jyk7XG4gKlxuICogY29uc3QgZG9jdW1lbnQgPSBwYXJzZTUucGFyc2VGcmFnbWVudCgnPGRpdj5IZWxsbywgPGI+d29ybGQ8L2I+ITwvZGl2PicpO1xuICpcbiAqIC8vIFNlcmlhbGl6ZXMgdGhlIDxkaXY+IGVsZW1lbnQuXG4gKiBjb25zdCBodG1sID0gcGFyc2U1LnNlcmlhbGl6ZU91dGVyKGRvY3VtZW50LmNoaWxkTm9kZXNbMF0pO1xuICpcbiAqIGNvbnNvbGUubG9nKHN0cik7IC8vPiAnPGRpdj5IZWxsbywgPGI+d29ybGQ8L2I+ITwvZGl2PidcbiAqIGBgYFxuICpcbiAqIEBwYXJhbSBub2RlIE5vZGUgdG8gc2VyaWFsaXplLlxuICogQHBhcmFtIG9wdGlvbnMgU2VyaWFsaXphdGlvbiBvcHRpb25zLlxuICovXG5leHBvcnQgZnVuY3Rpb24gc2VyaWFsaXplT3V0ZXIobm9kZSwgb3B0aW9ucykge1xuICAgIGNvbnN0IG9wdHMgPSB7IC4uLmRlZmF1bHRPcHRzLCAuLi5vcHRpb25zIH07XG4gICAgcmV0dXJuIHNlcmlhbGl6ZU5vZGUobm9kZSwgb3B0cyk7XG59XG5mdW5jdGlvbiBzZXJpYWxpemVDaGlsZE5vZGVzKHBhcmVudE5vZGUsIG9wdGlvbnMpIHtcbiAgICBsZXQgaHRtbCA9ICcnO1xuICAgIC8vIEdldCBjb250YWluZXIgb2YgdGhlIGNoaWxkIG5vZGVzXG4gICAgY29uc3QgY29udGFpbmVyID0gb3B0aW9ucy50cmVlQWRhcHRlci5pc0VsZW1lbnROb2RlKHBhcmVudE5vZGUpICYmXG4gICAgICAgIG9wdGlvbnMudHJlZUFkYXB0ZXIuZ2V0VGFnTmFtZShwYXJlbnROb2RlKSA9PT0gJC5URU1QTEFURSAmJlxuICAgICAgICBvcHRpb25zLnRyZWVBZGFwdGVyLmdldE5hbWVzcGFjZVVSSShwYXJlbnROb2RlKSA9PT0gTlMuSFRNTFxuICAgICAgICA/IG9wdGlvbnMudHJlZUFkYXB0ZXIuZ2V0VGVtcGxhdGVDb250ZW50KHBhcmVudE5vZGUpXG4gICAgICAgIDogcGFyZW50Tm9kZTtcbiAgICBjb25zdCBjaGlsZE5vZGVzID0gb3B0aW9ucy50cmVlQWRhcHRlci5nZXRDaGlsZE5vZGVzKGNvbnRhaW5lcik7XG4gICAgaWYgKGNoaWxkTm9kZXMpIHtcbiAgICAgICAgZm9yIChjb25zdCBjdXJyZW50Tm9kZSBvZiBjaGlsZE5vZGVzKSB7XG4gICAgICAgICAgICBodG1sICs9IHNlcmlhbGl6ZU5vZGUoY3VycmVudE5vZGUsIG9wdGlvbnMpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBodG1sO1xufVxuZnVuY3Rpb24gc2VyaWFsaXplTm9kZShub2RlLCBvcHRpb25zKSB7XG4gICAgaWYgKG9wdGlvbnMudHJlZUFkYXB0ZXIuaXNFbGVtZW50Tm9kZShub2RlKSkge1xuICAgICAgICByZXR1cm4gc2VyaWFsaXplRWxlbWVudChub2RlLCBvcHRpb25zKTtcbiAgICB9XG4gICAgaWYgKG9wdGlvbnMudHJlZUFkYXB0ZXIuaXNUZXh0Tm9kZShub2RlKSkge1xuICAgICAgICByZXR1cm4gc2VyaWFsaXplVGV4dE5vZGUobm9kZSwgb3B0aW9ucyk7XG4gICAgfVxuICAgIGlmIChvcHRpb25zLnRyZWVBZGFwdGVyLmlzQ29tbWVudE5vZGUobm9kZSkpIHtcbiAgICAgICAgcmV0dXJuIHNlcmlhbGl6ZUNvbW1lbnROb2RlKG5vZGUsIG9wdGlvbnMpO1xuICAgIH1cbiAgICBpZiAob3B0aW9ucy50cmVlQWRhcHRlci5pc0RvY3VtZW50VHlwZU5vZGUobm9kZSkpIHtcbiAgICAgICAgcmV0dXJuIHNlcmlhbGl6ZURvY3VtZW50VHlwZU5vZGUobm9kZSwgb3B0aW9ucyk7XG4gICAgfVxuICAgIC8vIFJldHVybiBhbiBlbXB0eSBzdHJpbmcgZm9yIHVua25vd24gbm9kZXNcbiAgICByZXR1cm4gJyc7XG59XG5mdW5jdGlvbiBzZXJpYWxpemVFbGVtZW50KG5vZGUsIG9wdGlvbnMpIHtcbiAgICBjb25zdCB0biA9IG9wdGlvbnMudHJlZUFkYXB0ZXIuZ2V0VGFnTmFtZShub2RlKTtcbiAgICByZXR1cm4gYDwke3RufSR7c2VyaWFsaXplQXR0cmlidXRlcyhub2RlLCBvcHRpb25zKX0+JHtpc1ZvaWRFbGVtZW50KG5vZGUsIG9wdGlvbnMpID8gJycgOiBgJHtzZXJpYWxpemVDaGlsZE5vZGVzKG5vZGUsIG9wdGlvbnMpfTwvJHt0bn0+YH1gO1xufVxuZnVuY3Rpb24gc2VyaWFsaXplQXR0cmlidXRlcyhub2RlLCB7IHRyZWVBZGFwdGVyIH0pIHtcbiAgICBsZXQgaHRtbCA9ICcnO1xuICAgIGZvciAoY29uc3QgYXR0ciBvZiB0cmVlQWRhcHRlci5nZXRBdHRyTGlzdChub2RlKSkge1xuICAgICAgICBodG1sICs9ICcgJztcbiAgICAgICAgaWYgKCFhdHRyLm5hbWVzcGFjZSkge1xuICAgICAgICAgICAgaHRtbCArPSBhdHRyLm5hbWU7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZVxuICAgICAgICAgICAgc3dpdGNoIChhdHRyLm5hbWVzcGFjZSkge1xuICAgICAgICAgICAgICAgIGNhc2UgTlMuWE1MOiB7XG4gICAgICAgICAgICAgICAgICAgIGh0bWwgKz0gYHhtbDoke2F0dHIubmFtZX1gO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2FzZSBOUy5YTUxOUzoge1xuICAgICAgICAgICAgICAgICAgICBpZiAoYXR0ci5uYW1lICE9PSAneG1sbnMnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBodG1sICs9ICd4bWxuczonO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGh0bWwgKz0gYXR0ci5uYW1lO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2FzZSBOUy5YTElOSzoge1xuICAgICAgICAgICAgICAgICAgICBodG1sICs9IGB4bGluazoke2F0dHIubmFtZX1gO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgICAgICBodG1sICs9IGAke2F0dHIucHJlZml4fToke2F0dHIubmFtZX1gO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgaHRtbCArPSBgPVwiJHtlc2NhcGVBdHRyaWJ1dGUoYXR0ci52YWx1ZSl9XCJgO1xuICAgIH1cbiAgICByZXR1cm4gaHRtbDtcbn1cbmZ1bmN0aW9uIHNlcmlhbGl6ZVRleHROb2RlKG5vZGUsIG9wdGlvbnMpIHtcbiAgICBjb25zdCB7IHRyZWVBZGFwdGVyIH0gPSBvcHRpb25zO1xuICAgIGNvbnN0IGNvbnRlbnQgPSB0cmVlQWRhcHRlci5nZXRUZXh0Tm9kZUNvbnRlbnQobm9kZSk7XG4gICAgY29uc3QgcGFyZW50ID0gdHJlZUFkYXB0ZXIuZ2V0UGFyZW50Tm9kZShub2RlKTtcbiAgICBjb25zdCBwYXJlbnRUbiA9IHBhcmVudCAmJiB0cmVlQWRhcHRlci5pc0VsZW1lbnROb2RlKHBhcmVudCkgJiYgdHJlZUFkYXB0ZXIuZ2V0VGFnTmFtZShwYXJlbnQpO1xuICAgIHJldHVybiBwYXJlbnRUbiAmJlxuICAgICAgICB0cmVlQWRhcHRlci5nZXROYW1lc3BhY2VVUkkocGFyZW50KSA9PT0gTlMuSFRNTCAmJlxuICAgICAgICBoYXNVbmVzY2FwZWRUZXh0KHBhcmVudFRuLCBvcHRpb25zLnNjcmlwdGluZ0VuYWJsZWQpXG4gICAgICAgID8gY29udGVudFxuICAgICAgICA6IGVzY2FwZVRleHQoY29udGVudCk7XG59XG5mdW5jdGlvbiBzZXJpYWxpemVDb21tZW50Tm9kZShub2RlLCB7IHRyZWVBZGFwdGVyIH0pIHtcbiAgICByZXR1cm4gYDwhLS0ke3RyZWVBZGFwdGVyLmdldENvbW1lbnROb2RlQ29udGVudChub2RlKX0tLT5gO1xufVxuZnVuY3Rpb24gc2VyaWFsaXplRG9jdW1lbnRUeXBlTm9kZShub2RlLCB7IHRyZWVBZGFwdGVyIH0pIHtcbiAgICByZXR1cm4gYDwhRE9DVFlQRSAke3RyZWVBZGFwdGVyLmdldERvY3VtZW50VHlwZU5vZGVOYW1lKG5vZGUpfT5gO1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW5kZXguanMubWFwIiwgImltcG9ydCB7IFBhcnNlciB9IGZyb20gJy4vcGFyc2VyL2luZGV4LmpzJztcbmV4cG9ydCB7IGRlZmF1bHRUcmVlQWRhcHRlciB9IGZyb20gJy4vdHJlZS1hZGFwdGVycy9kZWZhdWx0LmpzJztcbmV4cG9ydCB7IC8qKiBAaW50ZXJuYWwgKi8gUGFyc2VyIH0gZnJvbSAnLi9wYXJzZXIvaW5kZXguanMnO1xuZXhwb3J0IHsgc2VyaWFsaXplLCBzZXJpYWxpemVPdXRlciB9IGZyb20gJy4vc2VyaWFsaXplci9pbmRleC5qcyc7XG5leHBvcnQgeyBFUlIgYXMgRXJyb3JDb2RlcyB9IGZyb20gJy4vY29tbW9uL2Vycm9yLWNvZGVzLmpzJztcbi8qKiBAaW50ZXJuYWwgKi9cbmV4cG9ydCAqIGFzIGZvcmVpZ25Db250ZW50IGZyb20gJy4vY29tbW9uL2ZvcmVpZ24tY29udGVudC5qcyc7XG4vKiogQGludGVybmFsICovXG5leHBvcnQgKiBhcyBodG1sIGZyb20gJy4vY29tbW9uL2h0bWwuanMnO1xuLyoqIEBpbnRlcm5hbCAqL1xuZXhwb3J0ICogYXMgVG9rZW4gZnJvbSAnLi9jb21tb24vdG9rZW4uanMnO1xuLyoqIEBpbnRlcm5hbCAqL1xuZXhwb3J0IHsgVG9rZW5pemVyLCBUb2tlbml6ZXJNb2RlIH0gZnJvbSAnLi90b2tlbml6ZXIvaW5kZXguanMnO1xuLy8gU2hvcnRoYW5kc1xuLyoqXG4gKiBQYXJzZXMgYW4gSFRNTCBzdHJpbmcuXG4gKlxuICogQHBhcmFtIGh0bWwgSW5wdXQgSFRNTCBzdHJpbmcuXG4gKiBAcGFyYW0gb3B0aW9ucyBQYXJzaW5nIG9wdGlvbnMuXG4gKiBAcmV0dXJucyBEb2N1bWVudFxuICpcbiAqIEBleGFtcGxlXG4gKlxuICogYGBganNcbiAqIGNvbnN0IHBhcnNlNSA9IHJlcXVpcmUoJ3BhcnNlNScpO1xuICpcbiAqIGNvbnN0IGRvY3VtZW50ID0gcGFyc2U1LnBhcnNlKCc8IURPQ1RZUEUgaHRtbD48aHRtbD48aGVhZD48L2hlYWQ+PGJvZHk+SGkgdGhlcmUhPC9ib2R5PjwvaHRtbD4nKTtcbiAqXG4gKiBjb25zb2xlLmxvZyhkb2N1bWVudC5jaGlsZE5vZGVzWzFdLnRhZ05hbWUpOyAvLz4gJ2h0bWwnXG4gKmBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gcGFyc2UoaHRtbCwgb3B0aW9ucykge1xuICAgIHJldHVybiBQYXJzZXIucGFyc2UoaHRtbCwgb3B0aW9ucyk7XG59XG5leHBvcnQgZnVuY3Rpb24gcGFyc2VGcmFnbWVudChmcmFnbWVudENvbnRleHQsIGh0bWwsIG9wdGlvbnMpIHtcbiAgICBpZiAodHlwZW9mIGZyYWdtZW50Q29udGV4dCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgb3B0aW9ucyA9IGh0bWw7XG4gICAgICAgIGh0bWwgPSBmcmFnbWVudENvbnRleHQ7XG4gICAgICAgIGZyYWdtZW50Q29udGV4dCA9IG51bGw7XG4gICAgfVxuICAgIGNvbnN0IHBhcnNlciA9IFBhcnNlci5nZXRGcmFnbWVudFBhcnNlcihmcmFnbWVudENvbnRleHQsIG9wdGlvbnMpO1xuICAgIHBhcnNlci50b2tlbml6ZXIud3JpdGUoaHRtbCwgdHJ1ZSk7XG4gICAgcmV0dXJuIHBhcnNlci5nZXRGcmFnbWVudCgpO1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW5kZXguanMubWFwIiwgIi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgndW5pc3QnKS5Ob2RlfSBOb2RlXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCd1bmlzdCcpLlBvaW50fSBQb2ludFxuICogQHR5cGVkZWYge2ltcG9ydCgndW5pc3QnKS5Qb3NpdGlvbn0gUG9zaXRpb25cbiAqL1xuXG4vKipcbiAqIEB0eXBlZGVmIE5vZGVMaWtlXG4gKiBAcHJvcGVydHkge3N0cmluZ30gdHlwZVxuICogQHByb3BlcnR5IHtQb3NpdGlvbkxpa2UgfCBudWxsIHwgdW5kZWZpbmVkfSBbcG9zaXRpb25dXG4gKlxuICogQHR5cGVkZWYgUG9pbnRMaWtlXG4gKiBAcHJvcGVydHkge251bWJlciB8IG51bGwgfCB1bmRlZmluZWR9IFtsaW5lXVxuICogQHByb3BlcnR5IHtudW1iZXIgfCBudWxsIHwgdW5kZWZpbmVkfSBbY29sdW1uXVxuICogQHByb3BlcnR5IHtudW1iZXIgfCBudWxsIHwgdW5kZWZpbmVkfSBbb2Zmc2V0XVxuICpcbiAqIEB0eXBlZGVmIFBvc2l0aW9uTGlrZVxuICogQHByb3BlcnR5IHtQb2ludExpa2UgfCBudWxsIHwgdW5kZWZpbmVkfSBbc3RhcnRdXG4gKiBAcHJvcGVydHkge1BvaW50TGlrZSB8IG51bGwgfCB1bmRlZmluZWR9IFtlbmRdXG4gKi9cblxuLyoqXG4gKiBTZXJpYWxpemUgdGhlIHBvc2l0aW9uYWwgaW5mbyBvZiBhIHBvaW50LCBwb3NpdGlvbiAoc3RhcnQgYW5kIGVuZCBwb2ludHMpLFxuICogb3Igbm9kZS5cbiAqXG4gKiBAcGFyYW0ge05vZGUgfCBOb2RlTGlrZSB8IFBvaW50IHwgUG9pbnRMaWtlIHwgUG9zaXRpb24gfCBQb3NpdGlvbkxpa2UgfCBudWxsIHwgdW5kZWZpbmVkfSBbdmFsdWVdXG4gKiAgIE5vZGUsIHBvc2l0aW9uLCBvciBwb2ludC5cbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKiAgIFByZXR0eSBwcmludGVkIHBvc2l0aW9uYWwgaW5mbyBvZiBhIG5vZGUgKGBzdHJpbmdgKS5cbiAqXG4gKiAgIEluIHRoZSBmb3JtYXQgb2YgYSByYW5nZSBgbHM6Y3MtbGU6Y2VgICh3aGVuIGdpdmVuIGBub2RlYCBvciBgcG9zaXRpb25gKVxuICogICBvciBhIHBvaW50IGBsOmNgICh3aGVuIGdpdmVuIGBwb2ludGApLCB3aGVyZSBgbGAgc3RhbmRzIGZvciBsaW5lLCBgY2AgZm9yXG4gKiAgIGNvbHVtbiwgYHNgIGZvciBgc3RhcnRgLCBhbmQgYGVgIGZvciBlbmQuXG4gKiAgIEFuIGVtcHR5IHN0cmluZyAoYCcnYCkgaXMgcmV0dXJuZWQgaWYgdGhlIGdpdmVuIHZhbHVlIGlzIG5laXRoZXIgYG5vZGVgLFxuICogICBgcG9zaXRpb25gLCBub3IgYHBvaW50YC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHN0cmluZ2lmeVBvc2l0aW9uKHZhbHVlKSB7XG4gIC8vIE5vdGhpbmcuXG4gIGlmICghdmFsdWUgfHwgdHlwZW9mIHZhbHVlICE9PSAnb2JqZWN0Jykge1xuICAgIHJldHVybiAnJ1xuICB9XG5cbiAgLy8gTm9kZS5cbiAgaWYgKCdwb3NpdGlvbicgaW4gdmFsdWUgfHwgJ3R5cGUnIGluIHZhbHVlKSB7XG4gICAgcmV0dXJuIHBvc2l0aW9uKHZhbHVlLnBvc2l0aW9uKVxuICB9XG5cbiAgLy8gUG9zaXRpb24uXG4gIGlmICgnc3RhcnQnIGluIHZhbHVlIHx8ICdlbmQnIGluIHZhbHVlKSB7XG4gICAgcmV0dXJuIHBvc2l0aW9uKHZhbHVlKVxuICB9XG5cbiAgLy8gUG9pbnQuXG4gIGlmICgnbGluZScgaW4gdmFsdWUgfHwgJ2NvbHVtbicgaW4gdmFsdWUpIHtcbiAgICByZXR1cm4gcG9pbnQodmFsdWUpXG4gIH1cblxuICAvLyA/XG4gIHJldHVybiAnJ1xufVxuXG4vKipcbiAqIEBwYXJhbSB7UG9pbnQgfCBQb2ludExpa2UgfCBudWxsIHwgdW5kZWZpbmVkfSBwb2ludFxuICogQHJldHVybnMge3N0cmluZ31cbiAqL1xuZnVuY3Rpb24gcG9pbnQocG9pbnQpIHtcbiAgcmV0dXJuIGluZGV4KHBvaW50ICYmIHBvaW50LmxpbmUpICsgJzonICsgaW5kZXgocG9pbnQgJiYgcG9pbnQuY29sdW1uKVxufVxuXG4vKipcbiAqIEBwYXJhbSB7UG9zaXRpb24gfCBQb3NpdGlvbkxpa2UgfCBudWxsIHwgdW5kZWZpbmVkfSBwb3NcbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKi9cbmZ1bmN0aW9uIHBvc2l0aW9uKHBvcykge1xuICByZXR1cm4gcG9pbnQocG9zICYmIHBvcy5zdGFydCkgKyAnLScgKyBwb2ludChwb3MgJiYgcG9zLmVuZClcbn1cblxuLyoqXG4gKiBAcGFyYW0ge251bWJlciB8IG51bGwgfCB1bmRlZmluZWR9IHZhbHVlXG4gKiBAcmV0dXJucyB7bnVtYmVyfVxuICovXG5mdW5jdGlvbiBpbmRleCh2YWx1ZSkge1xuICByZXR1cm4gdmFsdWUgJiYgdHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJyA/IHZhbHVlIDogMVxufVxuIiwgIi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgndW5pc3QnKS5Ob2RlfSBOb2RlXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCd1bmlzdCcpLlBvaW50fSBQb2ludFxuICogQHR5cGVkZWYge2ltcG9ydCgndW5pc3QnKS5Qb3NpdGlvbn0gUG9zaXRpb25cbiAqL1xuXG4vKipcbiAqIEB0eXBlZGVmIHtvYmplY3QgJiB7dHlwZTogc3RyaW5nLCBwb3NpdGlvbj86IFBvc2l0aW9uIHwgdW5kZWZpbmVkfX0gTm9kZUxpa2VcbiAqXG4gKiBAdHlwZWRlZiBPcHRpb25zXG4gKiAgIENvbmZpZ3VyYXRpb24uXG4gKiBAcHJvcGVydHkge0FycmF5PE5vZGU+IHwgbnVsbCB8IHVuZGVmaW5lZH0gW2FuY2VzdG9yc11cbiAqICAgU3RhY2sgb2YgKGluY2x1c2l2ZSkgYW5jZXN0b3Igbm9kZXMgc3Vycm91bmRpbmcgdGhlIG1lc3NhZ2UgKG9wdGlvbmFsKS5cbiAqIEBwcm9wZXJ0eSB7RXJyb3IgfCBudWxsIHwgdW5kZWZpbmVkfSBbY2F1c2VdXG4gKiAgIE9yaWdpbmFsIGVycm9yIGNhdXNlIG9mIHRoZSBtZXNzYWdlIChvcHRpb25hbCkuXG4gKiBAcHJvcGVydHkge1BvaW50IHwgUG9zaXRpb24gfCBudWxsIHwgdW5kZWZpbmVkfSBbcGxhY2VdXG4gKiAgIFBsYWNlIG9mIG1lc3NhZ2UgKG9wdGlvbmFsKS5cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH0gW3J1bGVJZF1cbiAqICAgQ2F0ZWdvcnkgb2YgbWVzc2FnZSAob3B0aW9uYWwsIGV4YW1wbGU6IGAnbXktcnVsZSdgKS5cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH0gW3NvdXJjZV1cbiAqICAgTmFtZXNwYWNlIG9mIHdobyBzZW50IHRoZSBtZXNzYWdlIChvcHRpb25hbCwgZXhhbXBsZTogYCdteS1wYWNrYWdlJ2ApLlxuICovXG5cbmltcG9ydCB7c3RyaW5naWZ5UG9zaXRpb259IGZyb20gJ3VuaXN0LXV0aWwtc3RyaW5naWZ5LXBvc2l0aW9uJ1xuXG4vKipcbiAqIE1lc3NhZ2UuXG4gKi9cbmV4cG9ydCBjbGFzcyBWRmlsZU1lc3NhZ2UgZXh0ZW5kcyBFcnJvciB7XG4gIC8qKlxuICAgKiBDcmVhdGUgYSBtZXNzYWdlIGZvciBgcmVhc29uYC5cbiAgICpcbiAgICogPiBcdUQ4M0VcdURFQTYgKipOb3RlKio6IGFsc28gaGFzIG9ic29sZXRlIHNpZ25hdHVyZXMuXG4gICAqXG4gICAqIEBvdmVybG9hZFxuICAgKiBAcGFyYW0ge3N0cmluZ30gcmVhc29uXG4gICAqIEBwYXJhbSB7T3B0aW9ucyB8IG51bGwgfCB1bmRlZmluZWR9IFtvcHRpb25zXVxuICAgKiBAcmV0dXJuc1xuICAgKlxuICAgKiBAb3ZlcmxvYWRcbiAgICogQHBhcmFtIHtzdHJpbmd9IHJlYXNvblxuICAgKiBAcGFyYW0ge05vZGUgfCBOb2RlTGlrZSB8IG51bGwgfCB1bmRlZmluZWR9IHBhcmVudFxuICAgKiBAcGFyYW0ge3N0cmluZyB8IG51bGwgfCB1bmRlZmluZWR9IFtvcmlnaW5dXG4gICAqIEByZXR1cm5zXG4gICAqXG4gICAqIEBvdmVybG9hZFxuICAgKiBAcGFyYW0ge3N0cmluZ30gcmVhc29uXG4gICAqIEBwYXJhbSB7UG9pbnQgfCBQb3NpdGlvbiB8IG51bGwgfCB1bmRlZmluZWR9IHBsYWNlXG4gICAqIEBwYXJhbSB7c3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH0gW29yaWdpbl1cbiAgICogQHJldHVybnNcbiAgICpcbiAgICogQG92ZXJsb2FkXG4gICAqIEBwYXJhbSB7c3RyaW5nfSByZWFzb25cbiAgICogQHBhcmFtIHtzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3JpZ2luXVxuICAgKiBAcmV0dXJuc1xuICAgKlxuICAgKiBAb3ZlcmxvYWRcbiAgICogQHBhcmFtIHtFcnJvciB8IFZGaWxlTWVzc2FnZX0gY2F1c2VcbiAgICogQHBhcmFtIHtOb2RlIHwgTm9kZUxpa2UgfCBudWxsIHwgdW5kZWZpbmVkfSBwYXJlbnRcbiAgICogQHBhcmFtIHtzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3JpZ2luXVxuICAgKiBAcmV0dXJuc1xuICAgKlxuICAgKiBAb3ZlcmxvYWRcbiAgICogQHBhcmFtIHtFcnJvciB8IFZGaWxlTWVzc2FnZX0gY2F1c2VcbiAgICogQHBhcmFtIHtQb2ludCB8IFBvc2l0aW9uIHwgbnVsbCB8IHVuZGVmaW5lZH0gcGxhY2VcbiAgICogQHBhcmFtIHtzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3JpZ2luXVxuICAgKiBAcmV0dXJuc1xuICAgKlxuICAgKiBAb3ZlcmxvYWRcbiAgICogQHBhcmFtIHtFcnJvciB8IFZGaWxlTWVzc2FnZX0gY2F1c2VcbiAgICogQHBhcmFtIHtzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3JpZ2luXVxuICAgKiBAcmV0dXJuc1xuICAgKlxuICAgKiBAcGFyYW0ge0Vycm9yIHwgVkZpbGVNZXNzYWdlIHwgc3RyaW5nfSBjYXVzZU9yUmVhc29uXG4gICAqICAgUmVhc29uIGZvciBtZXNzYWdlLCBzaG91bGQgdXNlIG1hcmtkb3duLlxuICAgKiBAcGFyYW0ge05vZGUgfCBOb2RlTGlrZSB8IE9wdGlvbnMgfCBQb2ludCB8IFBvc2l0aW9uIHwgc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH0gW29wdGlvbnNPclBhcmVudE9yUGxhY2VdXG4gICAqICAgQ29uZmlndXJhdGlvbiAob3B0aW9uYWwpLlxuICAgKiBAcGFyYW0ge3N0cmluZyB8IG51bGwgfCB1bmRlZmluZWR9IFtvcmlnaW5dXG4gICAqICAgUGxhY2UgaW4gY29kZSB3aGVyZSB0aGUgbWVzc2FnZSBvcmlnaW5hdGVzIChleGFtcGxlOlxuICAgKiAgIGAnbXktcGFja2FnZTpteS1ydWxlJ2Agb3IgYCdteS1ydWxlJ2ApLlxuICAgKiBAcmV0dXJuc1xuICAgKiAgIEluc3RhbmNlIG9mIGBWRmlsZU1lc3NhZ2VgLlxuICAgKi9cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGNvbXBsZXhpdHlcbiAgY29uc3RydWN0b3IoY2F1c2VPclJlYXNvbiwgb3B0aW9uc09yUGFyZW50T3JQbGFjZSwgb3JpZ2luKSB7XG4gICAgc3VwZXIoKVxuXG4gICAgaWYgKHR5cGVvZiBvcHRpb25zT3JQYXJlbnRPclBsYWNlID09PSAnc3RyaW5nJykge1xuICAgICAgb3JpZ2luID0gb3B0aW9uc09yUGFyZW50T3JQbGFjZVxuICAgICAgb3B0aW9uc09yUGFyZW50T3JQbGFjZSA9IHVuZGVmaW5lZFxuICAgIH1cblxuICAgIC8qKiBAdHlwZSB7c3RyaW5nfSAqL1xuICAgIGxldCByZWFzb24gPSAnJ1xuICAgIC8qKiBAdHlwZSB7T3B0aW9uc30gKi9cbiAgICBsZXQgb3B0aW9ucyA9IHt9XG4gICAgbGV0IGxlZ2FjeUNhdXNlID0gZmFsc2VcblxuICAgIGlmIChvcHRpb25zT3JQYXJlbnRPclBsYWNlKSB7XG4gICAgICAvLyBQb2ludC5cbiAgICAgIGlmIChcbiAgICAgICAgJ2xpbmUnIGluIG9wdGlvbnNPclBhcmVudE9yUGxhY2UgJiZcbiAgICAgICAgJ2NvbHVtbicgaW4gb3B0aW9uc09yUGFyZW50T3JQbGFjZVxuICAgICAgKSB7XG4gICAgICAgIG9wdGlvbnMgPSB7cGxhY2U6IG9wdGlvbnNPclBhcmVudE9yUGxhY2V9XG4gICAgICB9XG4gICAgICAvLyBQb3NpdGlvbi5cbiAgICAgIGVsc2UgaWYgKFxuICAgICAgICAnc3RhcnQnIGluIG9wdGlvbnNPclBhcmVudE9yUGxhY2UgJiZcbiAgICAgICAgJ2VuZCcgaW4gb3B0aW9uc09yUGFyZW50T3JQbGFjZVxuICAgICAgKSB7XG4gICAgICAgIG9wdGlvbnMgPSB7cGxhY2U6IG9wdGlvbnNPclBhcmVudE9yUGxhY2V9XG4gICAgICB9XG4gICAgICAvLyBOb2RlLlxuICAgICAgZWxzZSBpZiAoJ3R5cGUnIGluIG9wdGlvbnNPclBhcmVudE9yUGxhY2UpIHtcbiAgICAgICAgb3B0aW9ucyA9IHtcbiAgICAgICAgICBhbmNlc3RvcnM6IFtvcHRpb25zT3JQYXJlbnRPclBsYWNlXSxcbiAgICAgICAgICBwbGFjZTogb3B0aW9uc09yUGFyZW50T3JQbGFjZS5wb3NpdGlvblxuICAgICAgICB9XG4gICAgICB9XG4gICAgICAvLyBPcHRpb25zLlxuICAgICAgZWxzZSB7XG4gICAgICAgIG9wdGlvbnMgPSB7Li4ub3B0aW9uc09yUGFyZW50T3JQbGFjZX1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIGNhdXNlT3JSZWFzb24gPT09ICdzdHJpbmcnKSB7XG4gICAgICByZWFzb24gPSBjYXVzZU9yUmVhc29uXG4gICAgfVxuICAgIC8vIEVycm9yLlxuICAgIGVsc2UgaWYgKCFvcHRpb25zLmNhdXNlICYmIGNhdXNlT3JSZWFzb24pIHtcbiAgICAgIGxlZ2FjeUNhdXNlID0gdHJ1ZVxuICAgICAgcmVhc29uID0gY2F1c2VPclJlYXNvbi5tZXNzYWdlXG4gICAgICBvcHRpb25zLmNhdXNlID0gY2F1c2VPclJlYXNvblxuICAgIH1cblxuICAgIGlmICghb3B0aW9ucy5ydWxlSWQgJiYgIW9wdGlvbnMuc291cmNlICYmIHR5cGVvZiBvcmlnaW4gPT09ICdzdHJpbmcnKSB7XG4gICAgICBjb25zdCBpbmRleCA9IG9yaWdpbi5pbmRleE9mKCc6JylcblxuICAgICAgaWYgKGluZGV4ID09PSAtMSkge1xuICAgICAgICBvcHRpb25zLnJ1bGVJZCA9IG9yaWdpblxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgb3B0aW9ucy5zb3VyY2UgPSBvcmlnaW4uc2xpY2UoMCwgaW5kZXgpXG4gICAgICAgIG9wdGlvbnMucnVsZUlkID0gb3JpZ2luLnNsaWNlKGluZGV4ICsgMSlcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoIW9wdGlvbnMucGxhY2UgJiYgb3B0aW9ucy5hbmNlc3RvcnMgJiYgb3B0aW9ucy5hbmNlc3RvcnMpIHtcbiAgICAgIGNvbnN0IHBhcmVudCA9IG9wdGlvbnMuYW5jZXN0b3JzW29wdGlvbnMuYW5jZXN0b3JzLmxlbmd0aCAtIDFdXG5cbiAgICAgIGlmIChwYXJlbnQpIHtcbiAgICAgICAgb3B0aW9ucy5wbGFjZSA9IHBhcmVudC5wb3NpdGlvblxuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IHN0YXJ0ID1cbiAgICAgIG9wdGlvbnMucGxhY2UgJiYgJ3N0YXJ0JyBpbiBvcHRpb25zLnBsYWNlXG4gICAgICAgID8gb3B0aW9ucy5wbGFjZS5zdGFydFxuICAgICAgICA6IG9wdGlvbnMucGxhY2VcblxuICAgIC8qIGVzbGludC1kaXNhYmxlIG5vLXVudXNlZC1leHByZXNzaW9ucyAqL1xuICAgIC8qKlxuICAgICAqIFN0YWNrIG9mIGFuY2VzdG9yIG5vZGVzIHN1cnJvdW5kaW5nIHRoZSBtZXNzYWdlLlxuICAgICAqXG4gICAgICogQHR5cGUge0FycmF5PE5vZGU+IHwgdW5kZWZpbmVkfVxuICAgICAqL1xuICAgIHRoaXMuYW5jZXN0b3JzID0gb3B0aW9ucy5hbmNlc3RvcnMgfHwgdW5kZWZpbmVkXG5cbiAgICAvKipcbiAgICAgKiBPcmlnaW5hbCBlcnJvciBjYXVzZSBvZiB0aGUgbWVzc2FnZS5cbiAgICAgKlxuICAgICAqIEB0eXBlIHtFcnJvciB8IHVuZGVmaW5lZH1cbiAgICAgKi9cbiAgICB0aGlzLmNhdXNlID0gb3B0aW9ucy5jYXVzZSB8fCB1bmRlZmluZWRcblxuICAgIC8qKlxuICAgICAqIFN0YXJ0aW5nIGNvbHVtbiBvZiBtZXNzYWdlLlxuICAgICAqXG4gICAgICogQHR5cGUge251bWJlciB8IHVuZGVmaW5lZH1cbiAgICAgKi9cbiAgICB0aGlzLmNvbHVtbiA9IHN0YXJ0ID8gc3RhcnQuY29sdW1uIDogdW5kZWZpbmVkXG5cbiAgICAvKipcbiAgICAgKiBTdGF0ZSBvZiBwcm9ibGVtLlxuICAgICAqXG4gICAgICogKiBgdHJ1ZWAgXHUyMDE0IGVycm9yLCBmaWxlIG5vdCB1c2FibGVcbiAgICAgKiAqIGBmYWxzZWAgXHUyMDE0IHdhcm5pbmcsIGNoYW5nZSBtYXkgYmUgbmVlZGVkXG4gICAgICogKiBgdW5kZWZpbmVkYCBcdTIwMTQgY2hhbmdlIGxpa2VseSBub3QgbmVlZGVkXG4gICAgICpcbiAgICAgKiBAdHlwZSB7Ym9vbGVhbiB8IG51bGwgfCB1bmRlZmluZWR9XG4gICAgICovXG4gICAgdGhpcy5mYXRhbCA9IHVuZGVmaW5lZFxuXG4gICAgLyoqXG4gICAgICogUGF0aCBvZiBhIGZpbGUgKHVzZWQgdGhyb3VnaG91dCB0aGUgYFZGaWxlYCBlY29zeXN0ZW0pLlxuICAgICAqXG4gICAgICogQHR5cGUge3N0cmluZyB8IHVuZGVmaW5lZH1cbiAgICAgKi9cbiAgICB0aGlzLmZpbGVcblxuICAgIC8vIEZpZWxkIGZyb20gYEVycm9yYC5cbiAgICAvKipcbiAgICAgKiBSZWFzb24gZm9yIG1lc3NhZ2UuXG4gICAgICpcbiAgICAgKiBAdHlwZSB7c3RyaW5nfVxuICAgICAqL1xuICAgIHRoaXMubWVzc2FnZSA9IHJlYXNvblxuXG4gICAgLyoqXG4gICAgICogU3RhcnRpbmcgbGluZSBvZiBlcnJvci5cbiAgICAgKlxuICAgICAqIEB0eXBlIHtudW1iZXIgfCB1bmRlZmluZWR9XG4gICAgICovXG4gICAgdGhpcy5saW5lID0gc3RhcnQgPyBzdGFydC5saW5lIDogdW5kZWZpbmVkXG5cbiAgICAvLyBGaWVsZCBmcm9tIGBFcnJvcmAuXG4gICAgLyoqXG4gICAgICogU2VyaWFsaXplZCBwb3NpdGlvbmFsIGluZm8gb2YgbWVzc2FnZS5cbiAgICAgKlxuICAgICAqIE9uIG5vcm1hbCBlcnJvcnMsIHRoaXMgd291bGQgYmUgc29tZXRoaW5nIGxpa2UgYFBhcnNlRXJyb3JgLCBidWl0IGluXG4gICAgICogYFZGaWxlYCBtZXNzYWdlcyB3ZSB1c2UgdGhpcyBzcGFjZSB0byBzaG93IHdoZXJlIGFuIGVycm9yIGhhcHBlbmVkLlxuICAgICAqL1xuICAgIHRoaXMubmFtZSA9IHN0cmluZ2lmeVBvc2l0aW9uKG9wdGlvbnMucGxhY2UpIHx8ICcxOjEnXG5cbiAgICAvKipcbiAgICAgKiBQbGFjZSBvZiBtZXNzYWdlLlxuICAgICAqXG4gICAgICogQHR5cGUge1BvaW50IHwgUG9zaXRpb24gfCB1bmRlZmluZWR9XG4gICAgICovXG4gICAgdGhpcy5wbGFjZSA9IG9wdGlvbnMucGxhY2UgfHwgdW5kZWZpbmVkXG5cbiAgICAvKipcbiAgICAgKiBSZWFzb24gZm9yIG1lc3NhZ2UsIHNob3VsZCB1c2UgbWFya2Rvd24uXG4gICAgICpcbiAgICAgKiBAdHlwZSB7c3RyaW5nfVxuICAgICAqL1xuICAgIHRoaXMucmVhc29uID0gdGhpcy5tZXNzYWdlXG5cbiAgICAvKipcbiAgICAgKiBDYXRlZ29yeSBvZiBtZXNzYWdlIChleGFtcGxlOiBgJ215LXJ1bGUnYCkuXG4gICAgICpcbiAgICAgKiBAdHlwZSB7c3RyaW5nIHwgdW5kZWZpbmVkfVxuICAgICAqL1xuICAgIHRoaXMucnVsZUlkID0gb3B0aW9ucy5ydWxlSWQgfHwgdW5kZWZpbmVkXG5cbiAgICAvKipcbiAgICAgKiBOYW1lc3BhY2Ugb2YgbWVzc2FnZSAoZXhhbXBsZTogYCdteS1wYWNrYWdlJ2ApLlxuICAgICAqXG4gICAgICogQHR5cGUge3N0cmluZyB8IHVuZGVmaW5lZH1cbiAgICAgKi9cbiAgICB0aGlzLnNvdXJjZSA9IG9wdGlvbnMuc291cmNlIHx8IHVuZGVmaW5lZFxuXG4gICAgLy8gRmllbGQgZnJvbSBgRXJyb3JgLlxuICAgIC8qKlxuICAgICAqIFN0YWNrIG9mIG1lc3NhZ2UuXG4gICAgICpcbiAgICAgKiBUaGlzIGlzIHVzZWQgYnkgbm9ybWFsIGVycm9ycyB0byBzaG93IHdoZXJlIHNvbWV0aGluZyBoYXBwZW5lZCBpblxuICAgICAqIHByb2dyYW1taW5nIGNvZGUsIGlycmVsZXZhbnQgZm9yIGBWRmlsZWAgbWVzc2FnZXMsXG4gICAgICpcbiAgICAgKiBAdHlwZSB7c3RyaW5nfVxuICAgICAqL1xuICAgIHRoaXMuc3RhY2sgPVxuICAgICAgbGVnYWN5Q2F1c2UgJiYgb3B0aW9ucy5jYXVzZSAmJiB0eXBlb2Ygb3B0aW9ucy5jYXVzZS5zdGFjayA9PT0gJ3N0cmluZydcbiAgICAgICAgPyBvcHRpb25zLmNhdXNlLnN0YWNrXG4gICAgICAgIDogJydcblxuICAgIC8vIFRoZSBmb2xsb3dpbmcgZmllbGRzIGFyZSBcdTIwMUN3ZWxsIGtub3duXHUyMDFELlxuICAgIC8vIE5vdCBzdGFuZGFyZC5cbiAgICAvLyBGZWVsIGZyZWUgdG8gYWRkIG90aGVyIG5vbi1zdGFuZGFyZCBmaWVsZHMgdG8geW91ciBtZXNzYWdlcy5cblxuICAgIC8qKlxuICAgICAqIFNwZWNpZnkgdGhlIHNvdXJjZSB2YWx1ZSB0aGF0XHUyMDE5cyBiZWluZyByZXBvcnRlZCwgd2hpY2ggaXMgZGVlbWVkXG4gICAgICogaW5jb3JyZWN0LlxuICAgICAqXG4gICAgICogQHR5cGUge3N0cmluZyB8IHVuZGVmaW5lZH1cbiAgICAgKi9cbiAgICB0aGlzLmFjdHVhbFxuXG4gICAgLyoqXG4gICAgICogU3VnZ2VzdCBhY2NlcHRhYmxlIHZhbHVlcyB0aGF0IGNhbiBiZSB1c2VkIGluc3RlYWQgb2YgYGFjdHVhbGAuXG4gICAgICpcbiAgICAgKiBAdHlwZSB7QXJyYXk8c3RyaW5nPiB8IHVuZGVmaW5lZH1cbiAgICAgKi9cbiAgICB0aGlzLmV4cGVjdGVkXG5cbiAgICAvKipcbiAgICAgKiBMb25nIGZvcm0gZGVzY3JpcHRpb24gb2YgdGhlIG1lc3NhZ2UgKHlvdSBzaG91bGQgdXNlIG1hcmtkb3duKS5cbiAgICAgKlxuICAgICAqIEB0eXBlIHtzdHJpbmcgfCB1bmRlZmluZWR9XG4gICAgICovXG4gICAgdGhpcy5ub3RlXG5cbiAgICAvKipcbiAgICAgKiBMaW5rIHRvIGRvY3MgZm9yIHRoZSBtZXNzYWdlLlxuICAgICAqXG4gICAgICogPiBcdUQ4M0RcdURDNDkgKipOb3RlKio6IHRoaXMgbXVzdCBiZSBhbiBhYnNvbHV0ZSBVUkwgdGhhdCBjYW4gYmUgcGFzc2VkIGFzIGB4YFxuICAgICAqID4gdG8gYG5ldyBVUkwoeClgLlxuICAgICAqXG4gICAgICogQHR5cGUge3N0cmluZyB8IHVuZGVmaW5lZH1cbiAgICAgKi9cbiAgICB0aGlzLnVybFxuICAgIC8qIGVzbGludC1lbmFibGUgbm8tdW51c2VkLWV4cHJlc3Npb25zICovXG4gIH1cbn1cblxuVkZpbGVNZXNzYWdlLnByb3RvdHlwZS5maWxlID0gJydcblZGaWxlTWVzc2FnZS5wcm90b3R5cGUubmFtZSA9ICcnXG5WRmlsZU1lc3NhZ2UucHJvdG90eXBlLnJlYXNvbiA9ICcnXG5WRmlsZU1lc3NhZ2UucHJvdG90eXBlLm1lc3NhZ2UgPSAnJ1xuVkZpbGVNZXNzYWdlLnByb3RvdHlwZS5zdGFjayA9ICcnXG5WRmlsZU1lc3NhZ2UucHJvdG90eXBlLmNvbHVtbiA9IHVuZGVmaW5lZFxuVkZpbGVNZXNzYWdlLnByb3RvdHlwZS5saW5lID0gdW5kZWZpbmVkXG5WRmlsZU1lc3NhZ2UucHJvdG90eXBlLmFuY2VzdG9ycyA9IHVuZGVmaW5lZFxuVkZpbGVNZXNzYWdlLnByb3RvdHlwZS5jYXVzZSA9IHVuZGVmaW5lZFxuVkZpbGVNZXNzYWdlLnByb3RvdHlwZS5mYXRhbCA9IHVuZGVmaW5lZFxuVkZpbGVNZXNzYWdlLnByb3RvdHlwZS5wbGFjZSA9IHVuZGVmaW5lZFxuVkZpbGVNZXNzYWdlLnByb3RvdHlwZS5ydWxlSWQgPSB1bmRlZmluZWRcblZGaWxlTWVzc2FnZS5wcm90b3R5cGUuc291cmNlID0gdW5kZWZpbmVkXG4iLCAiLy8gQSBkZXJpdmF0aXZlIHdvcmsgYmFzZWQgb246XG4vLyA8aHR0cHM6Ly9naXRodWIuY29tL2Jyb3dzZXJpZnkvcGF0aC1icm93c2VyaWZ5Pi5cbi8vIFdoaWNoIGlzIGxpY2Vuc2VkOlxuLy9cbi8vIE1JVCBMaWNlbnNlXG4vL1xuLy8gQ29weXJpZ2h0IChjKSAyMDEzIEphbWVzIEhhbGxpZGF5XG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weSBvZlxuLy8gdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbCBpblxuLy8gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0b1xuLy8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2Zcbi8vIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbyxcbi8vIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbFxuLy8gY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTU1xuLy8gRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SXG4vLyBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVJcbi8vIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOXG4vLyBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLlxuLy8gQSBkZXJpdmF0aXZlIHdvcmsgYmFzZWQgb246XG4vL1xuLy8gUGFydHMgb2YgdGhhdCBhcmUgZXh0cmFjdGVkIGZyb20gTm9kZVx1MjAxOXMgaW50ZXJuYWwgYHBhdGhgIG1vZHVsZTpcbi8vIDxodHRwczovL2dpdGh1Yi5jb20vbm9kZWpzL25vZGUvYmxvYi9tYXN0ZXIvbGliL3BhdGguanM+LlxuLy8gV2hpY2ggaXMgbGljZW5zZWQ6XG4vL1xuLy8gQ29weXJpZ2h0IEpveWVudCwgSW5jLiBhbmQgb3RoZXIgTm9kZSBjb250cmlidXRvcnMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGFcbi8vIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGVcbi8vIFwiU29mdHdhcmVcIiksIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZ1xuLy8gd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLFxuLy8gZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdFxuLy8gcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlXG4vLyBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZFxuLy8gaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTU1xuLy8gT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRlxuLy8gTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTlxuLy8gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sXG4vLyBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1Jcbi8vIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEVcbi8vIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuXG5cbmV4cG9ydCBjb25zdCBwYXRoID0ge2Jhc2VuYW1lLCBkaXJuYW1lLCBleHRuYW1lLCBqb2luLCBzZXA6ICcvJ31cblxuLyogZXNsaW50LWRpc2FibGUgbWF4LWRlcHRoLCBjb21wbGV4aXR5ICovXG5cbi8qKlxuICogR2V0IHRoZSBiYXNlbmFtZSBmcm9tIGEgcGF0aC5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gcGF0aFxuICogICBGaWxlIHBhdGguXG4gKiBAcGFyYW0ge3N0cmluZyB8IG51bGwgfCB1bmRlZmluZWR9IFtleHRdXG4gKiAgIEV4dGVuc2lvbiB0byBzdHJpcC5cbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKiAgIFN0ZW0gb3IgYmFzZW5hbWUuXG4gKi9cbmZ1bmN0aW9uIGJhc2VuYW1lKHBhdGgsIGV4dCkge1xuICBpZiAoZXh0ICE9PSB1bmRlZmluZWQgJiYgdHlwZW9mIGV4dCAhPT0gJ3N0cmluZycpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdcImV4dFwiIGFyZ3VtZW50IG11c3QgYmUgYSBzdHJpbmcnKVxuICB9XG5cbiAgYXNzZXJ0UGF0aChwYXRoKVxuICBsZXQgc3RhcnQgPSAwXG4gIGxldCBlbmQgPSAtMVxuICBsZXQgaW5kZXggPSBwYXRoLmxlbmd0aFxuICAvKiogQHR5cGUge2Jvb2xlYW4gfCB1bmRlZmluZWR9ICovXG4gIGxldCBzZWVuTm9uU2xhc2hcblxuICBpZiAoZXh0ID09PSB1bmRlZmluZWQgfHwgZXh0Lmxlbmd0aCA9PT0gMCB8fCBleHQubGVuZ3RoID4gcGF0aC5sZW5ndGgpIHtcbiAgICB3aGlsZSAoaW5kZXgtLSkge1xuICAgICAgaWYgKHBhdGguY29kZVBvaW50QXQoaW5kZXgpID09PSA0NyAvKiBgL2AgKi8pIHtcbiAgICAgICAgLy8gSWYgd2UgcmVhY2hlZCBhIHBhdGggc2VwYXJhdG9yIHRoYXQgd2FzIG5vdCBwYXJ0IG9mIGEgc2V0IG9mIHBhdGhcbiAgICAgICAgLy8gc2VwYXJhdG9ycyBhdCB0aGUgZW5kIG9mIHRoZSBzdHJpbmcsIHN0b3Agbm93LlxuICAgICAgICBpZiAoc2Vlbk5vblNsYXNoKSB7XG4gICAgICAgICAgc3RhcnQgPSBpbmRleCArIDFcbiAgICAgICAgICBicmVha1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKGVuZCA8IDApIHtcbiAgICAgICAgLy8gV2Ugc2F3IHRoZSBmaXJzdCBub24tcGF0aCBzZXBhcmF0b3IsIG1hcmsgdGhpcyBhcyB0aGUgZW5kIG9mIG91clxuICAgICAgICAvLyBwYXRoIGNvbXBvbmVudC5cbiAgICAgICAgc2Vlbk5vblNsYXNoID0gdHJ1ZVxuICAgICAgICBlbmQgPSBpbmRleCArIDFcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gZW5kIDwgMCA/ICcnIDogcGF0aC5zbGljZShzdGFydCwgZW5kKVxuICB9XG5cbiAgaWYgKGV4dCA9PT0gcGF0aCkge1xuICAgIHJldHVybiAnJ1xuICB9XG5cbiAgbGV0IGZpcnN0Tm9uU2xhc2hFbmQgPSAtMVxuICBsZXQgZXh0SW5kZXggPSBleHQubGVuZ3RoIC0gMVxuXG4gIHdoaWxlIChpbmRleC0tKSB7XG4gICAgaWYgKHBhdGguY29kZVBvaW50QXQoaW5kZXgpID09PSA0NyAvKiBgL2AgKi8pIHtcbiAgICAgIC8vIElmIHdlIHJlYWNoZWQgYSBwYXRoIHNlcGFyYXRvciB0aGF0IHdhcyBub3QgcGFydCBvZiBhIHNldCBvZiBwYXRoXG4gICAgICAvLyBzZXBhcmF0b3JzIGF0IHRoZSBlbmQgb2YgdGhlIHN0cmluZywgc3RvcCBub3cuXG4gICAgICBpZiAoc2Vlbk5vblNsYXNoKSB7XG4gICAgICAgIHN0YXJ0ID0gaW5kZXggKyAxXG4gICAgICAgIGJyZWFrXG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChmaXJzdE5vblNsYXNoRW5kIDwgMCkge1xuICAgICAgICAvLyBXZSBzYXcgdGhlIGZpcnN0IG5vbi1wYXRoIHNlcGFyYXRvciwgcmVtZW1iZXIgdGhpcyBpbmRleCBpbiBjYXNlXG4gICAgICAgIC8vIHdlIG5lZWQgaXQgaWYgdGhlIGV4dGVuc2lvbiBlbmRzIHVwIG5vdCBtYXRjaGluZy5cbiAgICAgICAgc2Vlbk5vblNsYXNoID0gdHJ1ZVxuICAgICAgICBmaXJzdE5vblNsYXNoRW5kID0gaW5kZXggKyAxXG4gICAgICB9XG5cbiAgICAgIGlmIChleHRJbmRleCA+IC0xKSB7XG4gICAgICAgIC8vIFRyeSB0byBtYXRjaCB0aGUgZXhwbGljaXQgZXh0ZW5zaW9uLlxuICAgICAgICBpZiAocGF0aC5jb2RlUG9pbnRBdChpbmRleCkgPT09IGV4dC5jb2RlUG9pbnRBdChleHRJbmRleC0tKSkge1xuICAgICAgICAgIGlmIChleHRJbmRleCA8IDApIHtcbiAgICAgICAgICAgIC8vIFdlIG1hdGNoZWQgdGhlIGV4dGVuc2lvbiwgc28gbWFyayB0aGlzIGFzIHRoZSBlbmQgb2Ygb3VyIHBhdGhcbiAgICAgICAgICAgIC8vIGNvbXBvbmVudFxuICAgICAgICAgICAgZW5kID0gaW5kZXhcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8gRXh0ZW5zaW9uIGRvZXMgbm90IG1hdGNoLCBzbyBvdXIgcmVzdWx0IGlzIHRoZSBlbnRpcmUgcGF0aFxuICAgICAgICAgIC8vIGNvbXBvbmVudFxuICAgICAgICAgIGV4dEluZGV4ID0gLTFcbiAgICAgICAgICBlbmQgPSBmaXJzdE5vblNsYXNoRW5kXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBpZiAoc3RhcnQgPT09IGVuZCkge1xuICAgIGVuZCA9IGZpcnN0Tm9uU2xhc2hFbmRcbiAgfSBlbHNlIGlmIChlbmQgPCAwKSB7XG4gICAgZW5kID0gcGF0aC5sZW5ndGhcbiAgfVxuXG4gIHJldHVybiBwYXRoLnNsaWNlKHN0YXJ0LCBlbmQpXG59XG5cbi8qKlxuICogR2V0IHRoZSBkaXJuYW1lIGZyb20gYSBwYXRoLlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBwYXRoXG4gKiAgIEZpbGUgcGF0aC5cbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKiAgIEZpbGUgcGF0aC5cbiAqL1xuZnVuY3Rpb24gZGlybmFtZShwYXRoKSB7XG4gIGFzc2VydFBhdGgocGF0aClcblxuICBpZiAocGF0aC5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gJy4nXG4gIH1cblxuICBsZXQgZW5kID0gLTFcbiAgbGV0IGluZGV4ID0gcGF0aC5sZW5ndGhcbiAgLyoqIEB0eXBlIHtib29sZWFuIHwgdW5kZWZpbmVkfSAqL1xuICBsZXQgdW5tYXRjaGVkU2xhc2hcblxuICAvLyBQcmVmaXggYC0tYCBpcyBpbXBvcnRhbnQgdG8gbm90IHJ1biBvbiBgMGAuXG4gIHdoaWxlICgtLWluZGV4KSB7XG4gICAgaWYgKHBhdGguY29kZVBvaW50QXQoaW5kZXgpID09PSA0NyAvKiBgL2AgKi8pIHtcbiAgICAgIGlmICh1bm1hdGNoZWRTbGFzaCkge1xuICAgICAgICBlbmQgPSBpbmRleFxuICAgICAgICBicmVha1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoIXVubWF0Y2hlZFNsYXNoKSB7XG4gICAgICAvLyBXZSBzYXcgdGhlIGZpcnN0IG5vbi1wYXRoIHNlcGFyYXRvclxuICAgICAgdW5tYXRjaGVkU2xhc2ggPSB0cnVlXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGVuZCA8IDBcbiAgICA/IHBhdGguY29kZVBvaW50QXQoMCkgPT09IDQ3IC8qIGAvYCAqL1xuICAgICAgPyAnLydcbiAgICAgIDogJy4nXG4gICAgOiBlbmQgPT09IDEgJiYgcGF0aC5jb2RlUG9pbnRBdCgwKSA9PT0gNDcgLyogYC9gICovXG4gICAgPyAnLy8nXG4gICAgOiBwYXRoLnNsaWNlKDAsIGVuZClcbn1cblxuLyoqXG4gKiBHZXQgYW4gZXh0bmFtZSBmcm9tIGEgcGF0aC5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gcGF0aFxuICogICBGaWxlIHBhdGguXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICogICBFeHRuYW1lLlxuICovXG5mdW5jdGlvbiBleHRuYW1lKHBhdGgpIHtcbiAgYXNzZXJ0UGF0aChwYXRoKVxuXG4gIGxldCBpbmRleCA9IHBhdGgubGVuZ3RoXG5cbiAgbGV0IGVuZCA9IC0xXG4gIGxldCBzdGFydFBhcnQgPSAwXG4gIGxldCBzdGFydERvdCA9IC0xXG4gIC8vIFRyYWNrIHRoZSBzdGF0ZSBvZiBjaGFyYWN0ZXJzIChpZiBhbnkpIHdlIHNlZSBiZWZvcmUgb3VyIGZpcnN0IGRvdCBhbmRcbiAgLy8gYWZ0ZXIgYW55IHBhdGggc2VwYXJhdG9yIHdlIGZpbmQuXG4gIGxldCBwcmVEb3RTdGF0ZSA9IDBcbiAgLyoqIEB0eXBlIHtib29sZWFuIHwgdW5kZWZpbmVkfSAqL1xuICBsZXQgdW5tYXRjaGVkU2xhc2hcblxuICB3aGlsZSAoaW5kZXgtLSkge1xuICAgIGNvbnN0IGNvZGUgPSBwYXRoLmNvZGVQb2ludEF0KGluZGV4KVxuXG4gICAgaWYgKGNvZGUgPT09IDQ3IC8qIGAvYCAqLykge1xuICAgICAgLy8gSWYgd2UgcmVhY2hlZCBhIHBhdGggc2VwYXJhdG9yIHRoYXQgd2FzIG5vdCBwYXJ0IG9mIGEgc2V0IG9mIHBhdGhcbiAgICAgIC8vIHNlcGFyYXRvcnMgYXQgdGhlIGVuZCBvZiB0aGUgc3RyaW5nLCBzdG9wIG5vdy5cbiAgICAgIGlmICh1bm1hdGNoZWRTbGFzaCkge1xuICAgICAgICBzdGFydFBhcnQgPSBpbmRleCArIDFcbiAgICAgICAgYnJlYWtcbiAgICAgIH1cblxuICAgICAgY29udGludWVcbiAgICB9XG5cbiAgICBpZiAoZW5kIDwgMCkge1xuICAgICAgLy8gV2Ugc2F3IHRoZSBmaXJzdCBub24tcGF0aCBzZXBhcmF0b3IsIG1hcmsgdGhpcyBhcyB0aGUgZW5kIG9mIG91clxuICAgICAgLy8gZXh0ZW5zaW9uLlxuICAgICAgdW5tYXRjaGVkU2xhc2ggPSB0cnVlXG4gICAgICBlbmQgPSBpbmRleCArIDFcbiAgICB9XG5cbiAgICBpZiAoY29kZSA9PT0gNDYgLyogYC5gICovKSB7XG4gICAgICAvLyBJZiB0aGlzIGlzIG91ciBmaXJzdCBkb3QsIG1hcmsgaXQgYXMgdGhlIHN0YXJ0IG9mIG91ciBleHRlbnNpb24uXG4gICAgICBpZiAoc3RhcnREb3QgPCAwKSB7XG4gICAgICAgIHN0YXJ0RG90ID0gaW5kZXhcbiAgICAgIH0gZWxzZSBpZiAocHJlRG90U3RhdGUgIT09IDEpIHtcbiAgICAgICAgcHJlRG90U3RhdGUgPSAxXG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChzdGFydERvdCA+IC0xKSB7XG4gICAgICAvLyBXZSBzYXcgYSBub24tZG90IGFuZCBub24tcGF0aCBzZXBhcmF0b3IgYmVmb3JlIG91ciBkb3QsIHNvIHdlIHNob3VsZFxuICAgICAgLy8gaGF2ZSBhIGdvb2QgY2hhbmNlIGF0IGhhdmluZyBhIG5vbi1lbXB0eSBleHRlbnNpb24uXG4gICAgICBwcmVEb3RTdGF0ZSA9IC0xXG4gICAgfVxuICB9XG5cbiAgaWYgKFxuICAgIHN0YXJ0RG90IDwgMCB8fFxuICAgIGVuZCA8IDAgfHxcbiAgICAvLyBXZSBzYXcgYSBub24tZG90IGNoYXJhY3RlciBpbW1lZGlhdGVseSBiZWZvcmUgdGhlIGRvdC5cbiAgICBwcmVEb3RTdGF0ZSA9PT0gMCB8fFxuICAgIC8vIFRoZSAocmlnaHQtbW9zdCkgdHJpbW1lZCBwYXRoIGNvbXBvbmVudCBpcyBleGFjdGx5IGAuLmAuXG4gICAgKHByZURvdFN0YXRlID09PSAxICYmIHN0YXJ0RG90ID09PSBlbmQgLSAxICYmIHN0YXJ0RG90ID09PSBzdGFydFBhcnQgKyAxKVxuICApIHtcbiAgICByZXR1cm4gJydcbiAgfVxuXG4gIHJldHVybiBwYXRoLnNsaWNlKHN0YXJ0RG90LCBlbmQpXG59XG5cbi8qKlxuICogSm9pbiBzZWdtZW50cyBmcm9tIGEgcGF0aC5cbiAqXG4gKiBAcGFyYW0ge0FycmF5PHN0cmluZz59IHNlZ21lbnRzXG4gKiAgIFBhdGggc2VnbWVudHMuXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICogICBGaWxlIHBhdGguXG4gKi9cbmZ1bmN0aW9uIGpvaW4oLi4uc2VnbWVudHMpIHtcbiAgbGV0IGluZGV4ID0gLTFcbiAgLyoqIEB0eXBlIHtzdHJpbmcgfCB1bmRlZmluZWR9ICovXG4gIGxldCBqb2luZWRcblxuICB3aGlsZSAoKytpbmRleCA8IHNlZ21lbnRzLmxlbmd0aCkge1xuICAgIGFzc2VydFBhdGgoc2VnbWVudHNbaW5kZXhdKVxuXG4gICAgaWYgKHNlZ21lbnRzW2luZGV4XSkge1xuICAgICAgam9pbmVkID1cbiAgICAgICAgam9pbmVkID09PSB1bmRlZmluZWQgPyBzZWdtZW50c1tpbmRleF0gOiBqb2luZWQgKyAnLycgKyBzZWdtZW50c1tpbmRleF1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gam9pbmVkID09PSB1bmRlZmluZWQgPyAnLicgOiBub3JtYWxpemUoam9pbmVkKVxufVxuXG4vKipcbiAqIE5vcm1hbGl6ZSBhIGJhc2ljIGZpbGUgcGF0aC5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gcGF0aFxuICogICBGaWxlIHBhdGguXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICogICBGaWxlIHBhdGguXG4gKi9cbi8vIE5vdGU6IGBub3JtYWxpemVgIGlzIG5vdCBleHBvc2VkIGFzIGBwYXRoLm5vcm1hbGl6ZWAsIHNvIHNvbWUgY29kZSBpc1xuLy8gbWFudWFsbHkgcmVtb3ZlZCBmcm9tIGl0LlxuZnVuY3Rpb24gbm9ybWFsaXplKHBhdGgpIHtcbiAgYXNzZXJ0UGF0aChwYXRoKVxuXG4gIGNvbnN0IGFic29sdXRlID0gcGF0aC5jb2RlUG9pbnRBdCgwKSA9PT0gNDcgLyogYC9gICovXG5cbiAgLy8gTm9ybWFsaXplIHRoZSBwYXRoIGFjY29yZGluZyB0byBQT1NJWCBydWxlcy5cbiAgbGV0IHZhbHVlID0gbm9ybWFsaXplU3RyaW5nKHBhdGgsICFhYnNvbHV0ZSlcblxuICBpZiAodmFsdWUubGVuZ3RoID09PSAwICYmICFhYnNvbHV0ZSkge1xuICAgIHZhbHVlID0gJy4nXG4gIH1cblxuICBpZiAodmFsdWUubGVuZ3RoID4gMCAmJiBwYXRoLmNvZGVQb2ludEF0KHBhdGgubGVuZ3RoIC0gMSkgPT09IDQ3IC8qIC8gKi8pIHtcbiAgICB2YWx1ZSArPSAnLydcbiAgfVxuXG4gIHJldHVybiBhYnNvbHV0ZSA/ICcvJyArIHZhbHVlIDogdmFsdWVcbn1cblxuLyoqXG4gKiBSZXNvbHZlIGAuYCBhbmQgYC4uYCBlbGVtZW50cyBpbiBhIHBhdGggd2l0aCBkaXJlY3RvcnkgbmFtZXMuXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHBhdGhcbiAqICAgRmlsZSBwYXRoLlxuICogQHBhcmFtIHtib29sZWFufSBhbGxvd0Fib3ZlUm9vdFxuICogICBXaGV0aGVyIGAuLmAgY2FuIG1vdmUgYWJvdmUgcm9vdC5cbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKiAgIEZpbGUgcGF0aC5cbiAqL1xuZnVuY3Rpb24gbm9ybWFsaXplU3RyaW5nKHBhdGgsIGFsbG93QWJvdmVSb290KSB7XG4gIGxldCByZXN1bHQgPSAnJ1xuICBsZXQgbGFzdFNlZ21lbnRMZW5ndGggPSAwXG4gIGxldCBsYXN0U2xhc2ggPSAtMVxuICBsZXQgZG90cyA9IDBcbiAgbGV0IGluZGV4ID0gLTFcbiAgLyoqIEB0eXBlIHtudW1iZXIgfCB1bmRlZmluZWR9ICovXG4gIGxldCBjb2RlXG4gIC8qKiBAdHlwZSB7bnVtYmVyfSAqL1xuICBsZXQgbGFzdFNsYXNoSW5kZXhcblxuICB3aGlsZSAoKytpbmRleCA8PSBwYXRoLmxlbmd0aCkge1xuICAgIGlmIChpbmRleCA8IHBhdGgubGVuZ3RoKSB7XG4gICAgICBjb2RlID0gcGF0aC5jb2RlUG9pbnRBdChpbmRleClcbiAgICB9IGVsc2UgaWYgKGNvZGUgPT09IDQ3IC8qIGAvYCAqLykge1xuICAgICAgYnJlYWtcbiAgICB9IGVsc2Uge1xuICAgICAgY29kZSA9IDQ3IC8qIGAvYCAqL1xuICAgIH1cblxuICAgIGlmIChjb2RlID09PSA0NyAvKiBgL2AgKi8pIHtcbiAgICAgIGlmIChsYXN0U2xhc2ggPT09IGluZGV4IC0gMSB8fCBkb3RzID09PSAxKSB7XG4gICAgICAgIC8vIEVtcHR5LlxuICAgICAgfSBlbHNlIGlmIChsYXN0U2xhc2ggIT09IGluZGV4IC0gMSAmJiBkb3RzID09PSAyKSB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICByZXN1bHQubGVuZ3RoIDwgMiB8fFxuICAgICAgICAgIGxhc3RTZWdtZW50TGVuZ3RoICE9PSAyIHx8XG4gICAgICAgICAgcmVzdWx0LmNvZGVQb2ludEF0KHJlc3VsdC5sZW5ndGggLSAxKSAhPT0gNDYgLyogYC5gICovIHx8XG4gICAgICAgICAgcmVzdWx0LmNvZGVQb2ludEF0KHJlc3VsdC5sZW5ndGggLSAyKSAhPT0gNDYgLyogYC5gICovXG4gICAgICAgICkge1xuICAgICAgICAgIGlmIChyZXN1bHQubGVuZ3RoID4gMikge1xuICAgICAgICAgICAgbGFzdFNsYXNoSW5kZXggPSByZXN1bHQubGFzdEluZGV4T2YoJy8nKVxuXG4gICAgICAgICAgICBpZiAobGFzdFNsYXNoSW5kZXggIT09IHJlc3VsdC5sZW5ndGggLSAxKSB7XG4gICAgICAgICAgICAgIGlmIChsYXN0U2xhc2hJbmRleCA8IDApIHtcbiAgICAgICAgICAgICAgICByZXN1bHQgPSAnJ1xuICAgICAgICAgICAgICAgIGxhc3RTZWdtZW50TGVuZ3RoID0gMFxuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJlc3VsdCA9IHJlc3VsdC5zbGljZSgwLCBsYXN0U2xhc2hJbmRleClcbiAgICAgICAgICAgICAgICBsYXN0U2VnbWVudExlbmd0aCA9IHJlc3VsdC5sZW5ndGggLSAxIC0gcmVzdWx0Lmxhc3RJbmRleE9mKCcvJylcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIGxhc3RTbGFzaCA9IGluZGV4XG4gICAgICAgICAgICAgIGRvdHMgPSAwXG4gICAgICAgICAgICAgIGNvbnRpbnVlXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIGlmIChyZXN1bHQubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgcmVzdWx0ID0gJydcbiAgICAgICAgICAgIGxhc3RTZWdtZW50TGVuZ3RoID0gMFxuICAgICAgICAgICAgbGFzdFNsYXNoID0gaW5kZXhcbiAgICAgICAgICAgIGRvdHMgPSAwXG4gICAgICAgICAgICBjb250aW51ZVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChhbGxvd0Fib3ZlUm9vdCkge1xuICAgICAgICAgIHJlc3VsdCA9IHJlc3VsdC5sZW5ndGggPiAwID8gcmVzdWx0ICsgJy8uLicgOiAnLi4nXG4gICAgICAgICAgbGFzdFNlZ21lbnRMZW5ndGggPSAyXG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmIChyZXN1bHQubGVuZ3RoID4gMCkge1xuICAgICAgICAgIHJlc3VsdCArPSAnLycgKyBwYXRoLnNsaWNlKGxhc3RTbGFzaCArIDEsIGluZGV4KVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJlc3VsdCA9IHBhdGguc2xpY2UobGFzdFNsYXNoICsgMSwgaW5kZXgpXG4gICAgICAgIH1cblxuICAgICAgICBsYXN0U2VnbWVudExlbmd0aCA9IGluZGV4IC0gbGFzdFNsYXNoIC0gMVxuICAgICAgfVxuXG4gICAgICBsYXN0U2xhc2ggPSBpbmRleFxuICAgICAgZG90cyA9IDBcbiAgICB9IGVsc2UgaWYgKGNvZGUgPT09IDQ2IC8qIGAuYCAqLyAmJiBkb3RzID4gLTEpIHtcbiAgICAgIGRvdHMrK1xuICAgIH0gZWxzZSB7XG4gICAgICBkb3RzID0gLTFcbiAgICB9XG4gIH1cblxuICByZXR1cm4gcmVzdWx0XG59XG5cbi8qKlxuICogTWFrZSBzdXJlIGBwYXRoYCBpcyBhIHN0cmluZy5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gcGF0aFxuICogICBGaWxlIHBhdGguXG4gKiBAcmV0dXJucyB7YXNzZXJ0cyBwYXRoIGlzIHN0cmluZ31cbiAqICAgTm90aGluZy5cbiAqL1xuZnVuY3Rpb24gYXNzZXJ0UGF0aChwYXRoKSB7XG4gIGlmICh0eXBlb2YgcGF0aCAhPT0gJ3N0cmluZycpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFxuICAgICAgJ1BhdGggbXVzdCBiZSBhIHN0cmluZy4gUmVjZWl2ZWQgJyArIEpTT04uc3RyaW5naWZ5KHBhdGgpXG4gICAgKVxuICB9XG59XG5cbi8qIGVzbGludC1lbmFibGUgbWF4LWRlcHRoLCBjb21wbGV4aXR5ICovXG4iLCAiLy8gU29tZXdoYXQgYmFzZWQgb246XG4vLyA8aHR0cHM6Ly9naXRodWIuY29tL2RlZnVuY3R6b21iaWUvbm9kZS1wcm9jZXNzL2Jsb2IvbWFzdGVyL2Jyb3dzZXIuanM+LlxuLy8gQnV0IEkgZG9uXHUyMDE5dCB0aGluayBvbmUgdGlueSBsaW5lIG9mIGNvZGUgY2FuIGJlIGNvcHlyaWdodGVkLiBcdUQ4M0RcdURFMDVcbmV4cG9ydCBjb25zdCBwcm9jID0ge2N3ZH1cblxuZnVuY3Rpb24gY3dkKCkge1xuICByZXR1cm4gJy8nXG59XG4iLCAiLyoqXG4gKiBDaGVja3MgaWYgYSB2YWx1ZSBoYXMgdGhlIHNoYXBlIG9mIGEgV0hBVFdHIFVSTCBvYmplY3QuXG4gKlxuICogVXNpbmcgYSBzeW1ib2wgb3IgaW5zdGFuY2VvZiB3b3VsZCBub3QgYmUgYWJsZSB0byByZWNvZ25pemUgVVJMIG9iamVjdHNcbiAqIGNvbWluZyBmcm9tIG90aGVyIGltcGxlbWVudGF0aW9ucyAoZS5nLiBpbiBFbGVjdHJvbiksIHNvIGluc3RlYWQgd2UgYXJlXG4gKiBjaGVja2luZyBzb21lIHdlbGwga25vd24gcHJvcGVydGllcyBmb3IgYSBsYWNrIG9mIGEgYmV0dGVyIHRlc3QuXG4gKlxuICogV2UgdXNlIGBocmVmYCBhbmQgYHByb3RvY29sYCBhcyB0aGV5IGFyZSB0aGUgb25seSBwcm9wZXJ0aWVzIHRoYXQgYXJlXG4gKiBlYXN5IHRvIHJldHJpZXZlIGFuZCBjYWxjdWxhdGUgZHVlIHRvIHRoZSBsYXp5IG5hdHVyZSBvZiB0aGUgZ2V0dGVycy5cbiAqXG4gKiBXZSBjaGVjayBmb3IgYXV0aCBhdHRyaWJ1dGUgdG8gZGlzdGluZ3Vpc2ggbGVnYWN5IHVybCBpbnN0YW5jZSB3aXRoXG4gKiBXSEFUV0cgVVJMIGluc3RhbmNlLlxuICpcbiAqIEBwYXJhbSB7dW5rbm93bn0gZmlsZVVybE9yUGF0aFxuICogICBGaWxlIHBhdGggb3IgVVJMLlxuICogQHJldHVybnMge2ZpbGVVcmxPclBhdGggaXMgVVJMfVxuICogICBXaGV0aGVyIGl0XHUyMDE5cyBhIFVSTC5cbiAqL1xuLy8gRnJvbTogPGh0dHBzOi8vZ2l0aHViLmNvbS9ub2RlanMvbm9kZS9ibG9iLzZhMzQwM2MvbGliL2ludGVybmFsL3VybC5qcyNMNzIwPlxuZXhwb3J0IGZ1bmN0aW9uIGlzVXJsKGZpbGVVcmxPclBhdGgpIHtcbiAgcmV0dXJuIEJvb2xlYW4oXG4gICAgZmlsZVVybE9yUGF0aCAhPT0gbnVsbCAmJlxuICAgICAgdHlwZW9mIGZpbGVVcmxPclBhdGggPT09ICdvYmplY3QnICYmXG4gICAgICAnaHJlZicgaW4gZmlsZVVybE9yUGF0aCAmJlxuICAgICAgZmlsZVVybE9yUGF0aC5ocmVmICYmXG4gICAgICAncHJvdG9jb2wnIGluIGZpbGVVcmxPclBhdGggJiZcbiAgICAgIGZpbGVVcmxPclBhdGgucHJvdG9jb2wgJiZcbiAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3I6IGluZGV4aW5nIGlzIGZpbmUuXG4gICAgICBmaWxlVXJsT3JQYXRoLmF1dGggPT09IHVuZGVmaW5lZFxuICApXG59XG4iLCAiaW1wb3J0IHtpc1VybH0gZnJvbSAnLi9taW51cmwuc2hhcmVkLmpzJ1xuXG5leHBvcnQge2lzVXJsfSBmcm9tICcuL21pbnVybC5zaGFyZWQuanMnXG5cbi8vIFNlZTogPGh0dHBzOi8vZ2l0aHViLmNvbS9ub2RlanMvbm9kZS9ibG9iLzZhMzQwM2MvbGliL2ludGVybmFsL3VybC5qcz5cblxuLyoqXG4gKiBAcGFyYW0ge1VSTCB8IHN0cmluZ30gcGF0aFxuICogICBGaWxlIFVSTC5cbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKiAgIEZpbGUgVVJMLlxuICovXG5leHBvcnQgZnVuY3Rpb24gdXJsVG9QYXRoKHBhdGgpIHtcbiAgaWYgKHR5cGVvZiBwYXRoID09PSAnc3RyaW5nJykge1xuICAgIHBhdGggPSBuZXcgVVJMKHBhdGgpXG4gIH0gZWxzZSBpZiAoIWlzVXJsKHBhdGgpKSB7XG4gICAgLyoqIEB0eXBlIHtOb2RlSlMuRXJybm9FeGNlcHRpb259ICovXG4gICAgY29uc3QgZXJyb3IgPSBuZXcgVHlwZUVycm9yKFxuICAgICAgJ1RoZSBcInBhdGhcIiBhcmd1bWVudCBtdXN0IGJlIG9mIHR5cGUgc3RyaW5nIG9yIGFuIGluc3RhbmNlIG9mIFVSTC4gUmVjZWl2ZWQgYCcgK1xuICAgICAgICBwYXRoICtcbiAgICAgICAgJ2AnXG4gICAgKVxuICAgIGVycm9yLmNvZGUgPSAnRVJSX0lOVkFMSURfQVJHX1RZUEUnXG4gICAgdGhyb3cgZXJyb3JcbiAgfVxuXG4gIGlmIChwYXRoLnByb3RvY29sICE9PSAnZmlsZTonKSB7XG4gICAgLyoqIEB0eXBlIHtOb2RlSlMuRXJybm9FeGNlcHRpb259ICovXG4gICAgY29uc3QgZXJyb3IgPSBuZXcgVHlwZUVycm9yKCdUaGUgVVJMIG11c3QgYmUgb2Ygc2NoZW1lIGZpbGUnKVxuICAgIGVycm9yLmNvZGUgPSAnRVJSX0lOVkFMSURfVVJMX1NDSEVNRSdcbiAgICB0aHJvdyBlcnJvclxuICB9XG5cbiAgcmV0dXJuIGdldFBhdGhGcm9tVVJMUG9zaXgocGF0aClcbn1cblxuLyoqXG4gKiBHZXQgYSBwYXRoIGZyb20gYSBQT1NJWCBVUkwuXG4gKlxuICogQHBhcmFtIHtVUkx9IHVybFxuICogICBVUkwuXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICogICBGaWxlIHBhdGguXG4gKi9cbmZ1bmN0aW9uIGdldFBhdGhGcm9tVVJMUG9zaXgodXJsKSB7XG4gIGlmICh1cmwuaG9zdG5hbWUgIT09ICcnKSB7XG4gICAgLyoqIEB0eXBlIHtOb2RlSlMuRXJybm9FeGNlcHRpb259ICovXG4gICAgY29uc3QgZXJyb3IgPSBuZXcgVHlwZUVycm9yKFxuICAgICAgJ0ZpbGUgVVJMIGhvc3QgbXVzdCBiZSBcImxvY2FsaG9zdFwiIG9yIGVtcHR5IG9uIGRhcndpbidcbiAgICApXG4gICAgZXJyb3IuY29kZSA9ICdFUlJfSU5WQUxJRF9GSUxFX1VSTF9IT1NUJ1xuICAgIHRocm93IGVycm9yXG4gIH1cblxuICBjb25zdCBwYXRobmFtZSA9IHVybC5wYXRobmFtZVxuICBsZXQgaW5kZXggPSAtMVxuXG4gIHdoaWxlICgrK2luZGV4IDwgcGF0aG5hbWUubGVuZ3RoKSB7XG4gICAgaWYgKFxuICAgICAgcGF0aG5hbWUuY29kZVBvaW50QXQoaW5kZXgpID09PSAzNyAvKiBgJWAgKi8gJiZcbiAgICAgIHBhdGhuYW1lLmNvZGVQb2ludEF0KGluZGV4ICsgMSkgPT09IDUwIC8qIGAyYCAqL1xuICAgICkge1xuICAgICAgY29uc3QgdGhpcmQgPSBwYXRobmFtZS5jb2RlUG9pbnRBdChpbmRleCArIDIpXG4gICAgICBpZiAodGhpcmQgPT09IDcwIC8qIGBGYCAqLyB8fCB0aGlyZCA9PT0gMTAyIC8qIGBmYCAqLykge1xuICAgICAgICAvKiogQHR5cGUge05vZGVKUy5FcnJub0V4Y2VwdGlvbn0gKi9cbiAgICAgICAgY29uc3QgZXJyb3IgPSBuZXcgVHlwZUVycm9yKFxuICAgICAgICAgICdGaWxlIFVSTCBwYXRoIG11c3Qgbm90IGluY2x1ZGUgZW5jb2RlZCAvIGNoYXJhY3RlcnMnXG4gICAgICAgIClcbiAgICAgICAgZXJyb3IuY29kZSA9ICdFUlJfSU5WQUxJRF9GSUxFX1VSTF9QQVRIJ1xuICAgICAgICB0aHJvdyBlcnJvclxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBkZWNvZGVVUklDb21wb25lbnQocGF0aG5hbWUpXG59XG4iLCAiLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCd1bmlzdCcpLk5vZGV9IE5vZGVcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ3VuaXN0JykuUG9pbnR9IFBvaW50XG4gKiBAdHlwZWRlZiB7aW1wb3J0KCd1bmlzdCcpLlBvc2l0aW9ufSBQb3NpdGlvblxuICogQHR5cGVkZWYge2ltcG9ydCgndmZpbGUtbWVzc2FnZScpLk9wdGlvbnN9IE1lc3NhZ2VPcHRpb25zXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCcuLi9pbmRleC5qcycpLkRhdGF9IERhdGFcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJy4uL2luZGV4LmpzJykuVmFsdWV9IFZhbHVlXG4gKi9cblxuLyoqXG4gKiBAdHlwZWRlZiB7b2JqZWN0ICYge3R5cGU6IHN0cmluZywgcG9zaXRpb24/OiBQb3NpdGlvbiB8IHVuZGVmaW5lZH19IE5vZGVMaWtlXG4gKlxuICogQHR5cGVkZWYge09wdGlvbnMgfCBVUkwgfCBWRmlsZSB8IFZhbHVlfSBDb21wYXRpYmxlXG4gKiAgIFRoaW5ncyB0aGF0IGNhbiBiZSBwYXNzZWQgdG8gdGhlIGNvbnN0cnVjdG9yLlxuICpcbiAqIEB0eXBlZGVmIFZGaWxlQ29yZU9wdGlvbnNcbiAqICAgU2V0IG11bHRpcGxlIHZhbHVlcy5cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH0gW2Jhc2VuYW1lXVxuICogICBTZXQgYGJhc2VuYW1lYCAobmFtZSkuXG4gKiBAcHJvcGVydHkge3N0cmluZyB8IG51bGwgfCB1bmRlZmluZWR9IFtjd2RdXG4gKiAgIFNldCBgY3dkYCAod29ya2luZyBkaXJlY3RvcnkpLlxuICogQHByb3BlcnR5IHtEYXRhIHwgbnVsbCB8IHVuZGVmaW5lZH0gW2RhdGFdXG4gKiAgIFNldCBgZGF0YWAgKGFzc29jaWF0ZWQgaW5mbykuXG4gKiBAcHJvcGVydHkge3N0cmluZyB8IG51bGwgfCB1bmRlZmluZWR9IFtkaXJuYW1lXVxuICogICBTZXQgYGRpcm5hbWVgIChwYXRoIHcvbyBiYXNlbmFtZSkuXG4gKiBAcHJvcGVydHkge3N0cmluZyB8IG51bGwgfCB1bmRlZmluZWR9IFtleHRuYW1lXVxuICogICBTZXQgYGV4dG5hbWVgIChleHRlbnNpb24gd2l0aCBkb3QpLlxuICogQHByb3BlcnR5IHtBcnJheTxzdHJpbmc+IHwgbnVsbCB8IHVuZGVmaW5lZH0gW2hpc3RvcnldXG4gKiAgIFNldCBgaGlzdG9yeWAgKHBhdGhzIHRoZSBmaWxlIG1vdmVkIGJldHdlZW4pLlxuICogQHByb3BlcnR5IHtVUkwgfCBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbcGF0aF1cbiAqICAgU2V0IGBwYXRoYCAoY3VycmVudCBwYXRoKS5cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH0gW3N0ZW1dXG4gKiAgIFNldCBgc3RlbWAgKG5hbWUgd2l0aG91dCBleHRlbnNpb24pLlxuICogQHByb3BlcnR5IHtWYWx1ZSB8IG51bGwgfCB1bmRlZmluZWR9IFt2YWx1ZV1cbiAqICAgU2V0IGB2YWx1ZWAgKHRoZSBjb250ZW50cyBvZiB0aGUgZmlsZSkuXG4gKlxuICogQHR5cGVkZWYgTWFwXG4gKiAgIFJhdyBzb3VyY2UgbWFwLlxuICpcbiAqICAgU2VlOlxuICogICA8aHR0cHM6Ly9naXRodWIuY29tL21vemlsbGEvc291cmNlLW1hcC9ibG9iLzYwYWRjYjAvc291cmNlLW1hcC5kLnRzI0wxNS1MMjM+LlxuICogQHByb3BlcnR5IHtudW1iZXJ9IHZlcnNpb25cbiAqICAgV2hpY2ggdmVyc2lvbiBvZiB0aGUgc291cmNlIG1hcCBzcGVjIHRoaXMgbWFwIGlzIGZvbGxvd2luZy5cbiAqIEBwcm9wZXJ0eSB7QXJyYXk8c3RyaW5nPn0gc291cmNlc1xuICogICBBbiBhcnJheSBvZiBVUkxzIHRvIHRoZSBvcmlnaW5hbCBzb3VyY2UgZmlsZXMuXG4gKiBAcHJvcGVydHkge0FycmF5PHN0cmluZz59IG5hbWVzXG4gKiAgIEFuIGFycmF5IG9mIGlkZW50aWZpZXJzIHdoaWNoIGNhbiBiZSByZWZlcmVuY2VkIGJ5IGluZGl2aWR1YWwgbWFwcGluZ3MuXG4gKiBAcHJvcGVydHkge3N0cmluZyB8IHVuZGVmaW5lZH0gW3NvdXJjZVJvb3RdXG4gKiAgIFRoZSBVUkwgcm9vdCBmcm9tIHdoaWNoIGFsbCBzb3VyY2VzIGFyZSByZWxhdGl2ZS5cbiAqIEBwcm9wZXJ0eSB7QXJyYXk8c3RyaW5nPiB8IHVuZGVmaW5lZH0gW3NvdXJjZXNDb250ZW50XVxuICogICBBbiBhcnJheSBvZiBjb250ZW50cyBvZiB0aGUgb3JpZ2luYWwgc291cmNlIGZpbGVzLlxuICogQHByb3BlcnR5IHtzdHJpbmd9IG1hcHBpbmdzXG4gKiAgIEEgc3RyaW5nIG9mIGJhc2U2NCBWTFFzIHdoaWNoIGNvbnRhaW4gdGhlIGFjdHVhbCBtYXBwaW5ncy5cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBmaWxlXG4gKiAgIFRoZSBnZW5lcmF0ZWQgZmlsZSB0aGlzIHNvdXJjZSBtYXAgaXMgYXNzb2NpYXRlZCB3aXRoLlxuICpcbiAqIEB0eXBlZGVmIHtSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiAmIFZGaWxlQ29yZU9wdGlvbnN9IE9wdGlvbnNcbiAqICAgQ29uZmlndXJhdGlvbi5cbiAqXG4gKiAgIEEgYnVuY2ggb2Yga2V5cyB0aGF0IHdpbGwgYmUgc2hhbGxvdyBjb3BpZWQgb3ZlciB0byB0aGUgbmV3IGZpbGUuXG4gKlxuICogQHR5cGVkZWYge1JlY29yZDxzdHJpbmcsIHVua25vd24+fSBSZXBvcnRlclNldHRpbmdzXG4gKiAgIENvbmZpZ3VyYXRpb24gZm9yIHJlcG9ydGVycy5cbiAqL1xuXG4vKipcbiAqIEB0ZW1wbGF0ZSBbU2V0dGluZ3M9UmVwb3J0ZXJTZXR0aW5nc11cbiAqICAgT3B0aW9ucyB0eXBlLlxuICogQGNhbGxiYWNrIFJlcG9ydGVyXG4gKiAgIFR5cGUgZm9yIGEgcmVwb3J0ZXIuXG4gKiBAcGFyYW0ge0FycmF5PFZGaWxlPn0gZmlsZXNcbiAqICAgRmlsZXMgdG8gcmVwb3J0LlxuICogQHBhcmFtIHtTZXR0aW5nc30gb3B0aW9uc1xuICogICBDb25maWd1cmF0aW9uLlxuICogQHJldHVybnMge3N0cmluZ31cbiAqICAgUmVwb3J0LlxuICovXG5cbmltcG9ydCB7VkZpbGVNZXNzYWdlfSBmcm9tICd2ZmlsZS1tZXNzYWdlJ1xuaW1wb3J0IHtwYXRofSBmcm9tICd2ZmlsZS9kby1ub3QtdXNlLWNvbmRpdGlvbmFsLW1pbnBhdGgnXG5pbXBvcnQge3Byb2N9IGZyb20gJ3ZmaWxlL2RvLW5vdC11c2UtY29uZGl0aW9uYWwtbWlucHJvYydcbmltcG9ydCB7dXJsVG9QYXRoLCBpc1VybH0gZnJvbSAndmZpbGUvZG8tbm90LXVzZS1jb25kaXRpb25hbC1taW51cmwnXG5cbi8qKlxuICogT3JkZXIgb2Ygc2V0dGluZyAobGVhc3Qgc3BlY2lmaWMgdG8gbW9zdCksIHdlIG5lZWQgdGhpcyBiZWNhdXNlIG90aGVyd2lzZVxuICogYHtzdGVtOiAnYScsIHBhdGg6ICd+L2IuanMnfWAgd291bGQgdGhyb3csIGFzIGEgcGF0aCBpcyBuZWVkZWQgYmVmb3JlIGFcbiAqIHN0ZW0gY2FuIGJlIHNldC5cbiAqL1xuY29uc3Qgb3JkZXIgPSAvKiogQHR5cGUge2NvbnN0fSAqLyAoW1xuICAnaGlzdG9yeScsXG4gICdwYXRoJyxcbiAgJ2Jhc2VuYW1lJyxcbiAgJ3N0ZW0nLFxuICAnZXh0bmFtZScsXG4gICdkaXJuYW1lJ1xuXSlcblxuZXhwb3J0IGNsYXNzIFZGaWxlIHtcbiAgLyoqXG4gICAqIENyZWF0ZSBhIG5ldyB2aXJ0dWFsIGZpbGUuXG4gICAqXG4gICAqIGBvcHRpb25zYCBpcyB0cmVhdGVkIGFzOlxuICAgKlxuICAgKiAqICAgYHN0cmluZ2Agb3IgYFVpbnQ4QXJyYXlgIFx1MjAxNCBge3ZhbHVlOiBvcHRpb25zfWBcbiAgICogKiAgIGBVUkxgIFx1MjAxNCBge3BhdGg6IG9wdGlvbnN9YFxuICAgKiAqICAgYFZGaWxlYCBcdTIwMTQgc2hhbGxvdyBjb3BpZXMgaXRzIGRhdGEgb3ZlciB0byB0aGUgbmV3IGZpbGVcbiAgICogKiAgIGBvYmplY3RgIFx1MjAxNCBhbGwgZmllbGRzIGFyZSBzaGFsbG93IGNvcGllZCBvdmVyIHRvIHRoZSBuZXcgZmlsZVxuICAgKlxuICAgKiBQYXRoIHJlbGF0ZWQgZmllbGRzIGFyZSBzZXQgaW4gdGhlIGZvbGxvd2luZyBvcmRlciAobGVhc3Qgc3BlY2lmaWMgdG9cbiAgICogbW9zdCBzcGVjaWZpYyk6IGBoaXN0b3J5YCwgYHBhdGhgLCBgYmFzZW5hbWVgLCBgc3RlbWAsIGBleHRuYW1lYCxcbiAgICogYGRpcm5hbWVgLlxuICAgKlxuICAgKiBZb3UgY2Fubm90IHNldCBgZGlybmFtZWAgb3IgYGV4dG5hbWVgIHdpdGhvdXQgc2V0dGluZyBlaXRoZXIgYGhpc3RvcnlgLFxuICAgKiBgcGF0aGAsIGBiYXNlbmFtZWAsIG9yIGBzdGVtYCB0b28uXG4gICAqXG4gICAqIEBwYXJhbSB7Q29tcGF0aWJsZSB8IG51bGwgfCB1bmRlZmluZWR9IFt2YWx1ZV1cbiAgICogICBGaWxlIHZhbHVlLlxuICAgKiBAcmV0dXJuc1xuICAgKiAgIE5ldyBpbnN0YW5jZS5cbiAgICovXG4gIGNvbnN0cnVjdG9yKHZhbHVlKSB7XG4gICAgLyoqIEB0eXBlIHtPcHRpb25zIHwgVkZpbGV9ICovXG4gICAgbGV0IG9wdGlvbnNcblxuICAgIGlmICghdmFsdWUpIHtcbiAgICAgIG9wdGlvbnMgPSB7fVxuICAgIH0gZWxzZSBpZiAoaXNVcmwodmFsdWUpKSB7XG4gICAgICBvcHRpb25zID0ge3BhdGg6IHZhbHVlfVxuICAgIH0gZWxzZSBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyB8fCBpc1VpbnQ4QXJyYXkodmFsdWUpKSB7XG4gICAgICBvcHRpb25zID0ge3ZhbHVlfVxuICAgIH0gZWxzZSB7XG4gICAgICBvcHRpb25zID0gdmFsdWVcbiAgICB9XG5cbiAgICAvKiBlc2xpbnQtZGlzYWJsZSBuby11bnVzZWQtZXhwcmVzc2lvbnMgKi9cblxuICAgIC8qKlxuICAgICAqIEJhc2Ugb2YgYHBhdGhgIChkZWZhdWx0OiBgcHJvY2Vzcy5jd2QoKWAgb3IgYCcvJ2AgaW4gYnJvd3NlcnMpLlxuICAgICAqXG4gICAgICogQHR5cGUge3N0cmluZ31cbiAgICAgKi9cbiAgICB0aGlzLmN3ZCA9IHByb2MuY3dkKClcblxuICAgIC8qKlxuICAgICAqIFBsYWNlIHRvIHN0b3JlIGN1c3RvbSBpbmZvIChkZWZhdWx0OiBge31gKS5cbiAgICAgKlxuICAgICAqIEl0XHUyMDE5cyBPSyB0byBzdG9yZSBjdXN0b20gZGF0YSBkaXJlY3RseSBvbiB0aGUgZmlsZSBidXQgbW92aW5nIGl0IHRvXG4gICAgICogYGRhdGFgIGlzIHJlY29tbWVuZGVkLlxuICAgICAqXG4gICAgICogQHR5cGUge0RhdGF9XG4gICAgICovXG4gICAgdGhpcy5kYXRhID0ge31cblxuICAgIC8qKlxuICAgICAqIExpc3Qgb2YgZmlsZSBwYXRocyB0aGUgZmlsZSBtb3ZlZCBiZXR3ZWVuLlxuICAgICAqXG4gICAgICogVGhlIGZpcnN0IGlzIHRoZSBvcmlnaW5hbCBwYXRoIGFuZCB0aGUgbGFzdCBpcyB0aGUgY3VycmVudCBwYXRoLlxuICAgICAqXG4gICAgICogQHR5cGUge0FycmF5PHN0cmluZz59XG4gICAgICovXG4gICAgdGhpcy5oaXN0b3J5ID0gW11cblxuICAgIC8qKlxuICAgICAqIExpc3Qgb2YgbWVzc2FnZXMgYXNzb2NpYXRlZCB3aXRoIHRoZSBmaWxlLlxuICAgICAqXG4gICAgICogQHR5cGUge0FycmF5PFZGaWxlTWVzc2FnZT59XG4gICAgICovXG4gICAgdGhpcy5tZXNzYWdlcyA9IFtdXG5cbiAgICAvKipcbiAgICAgKiBSYXcgdmFsdWUuXG4gICAgICpcbiAgICAgKiBAdHlwZSB7VmFsdWV9XG4gICAgICovXG4gICAgdGhpcy52YWx1ZVxuXG4gICAgLy8gVGhlIGJlbG93IGFyZSBub24tc3RhbmRhcmQsIHRoZXkgYXJlIFx1MjAxQ3dlbGwta25vd25cdTIwMUQuXG4gICAgLy8gQXMgaW4sIHVzZWQgaW4gc2V2ZXJhbCB0b29scy5cbiAgICAvKipcbiAgICAgKiBTb3VyY2UgbWFwLlxuICAgICAqXG4gICAgICogVGhpcyB0eXBlIGlzIGVxdWl2YWxlbnQgdG8gdGhlIGBSYXdTb3VyY2VNYXBgIHR5cGUgZnJvbSB0aGUgYHNvdXJjZS1tYXBgXG4gICAgICogbW9kdWxlLlxuICAgICAqXG4gICAgICogQHR5cGUge01hcCB8IG51bGwgfCB1bmRlZmluZWR9XG4gICAgICovXG4gICAgdGhpcy5tYXBcblxuICAgIC8qKlxuICAgICAqIEN1c3RvbSwgbm9uLXN0cmluZywgY29tcGlsZWQsIHJlcHJlc2VudGF0aW9uLlxuICAgICAqXG4gICAgICogVGhpcyBpcyB1c2VkIGJ5IHVuaWZpZWQgdG8gc3RvcmUgbm9uLXN0cmluZyByZXN1bHRzLlxuICAgICAqIE9uZSBleGFtcGxlIGlzIHdoZW4gdHVybmluZyBtYXJrZG93biBpbnRvIFJlYWN0IG5vZGVzLlxuICAgICAqXG4gICAgICogQHR5cGUge3Vua25vd259XG4gICAgICovXG4gICAgdGhpcy5yZXN1bHRcblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgYSBmaWxlIHdhcyBzYXZlZCB0byBkaXNrLlxuICAgICAqXG4gICAgICogVGhpcyBpcyB1c2VkIGJ5IHZmaWxlIHJlcG9ydGVycy5cbiAgICAgKlxuICAgICAqIEB0eXBlIHtib29sZWFufVxuICAgICAqL1xuICAgIHRoaXMuc3RvcmVkXG4gICAgLyogZXNsaW50LWVuYWJsZSBuby11bnVzZWQtZXhwcmVzc2lvbnMgKi9cblxuICAgIC8vIFNldCBwYXRoIHJlbGF0ZWQgcHJvcGVydGllcyBpbiB0aGUgY29ycmVjdCBvcmRlci5cbiAgICBsZXQgaW5kZXggPSAtMVxuXG4gICAgd2hpbGUgKCsraW5kZXggPCBvcmRlci5sZW5ndGgpIHtcbiAgICAgIGNvbnN0IHByb3AgPSBvcmRlcltpbmRleF1cblxuICAgICAgLy8gTm90ZTogd2Ugc3BlY2lmaWNhbGx5IHVzZSBgaW5gIGluc3RlYWQgb2YgYGhhc093blByb3BlcnR5YCB0byBhY2NlcHRcbiAgICAgIC8vIGB2ZmlsZWBzIHRvby5cbiAgICAgIGlmIChcbiAgICAgICAgcHJvcCBpbiBvcHRpb25zICYmXG4gICAgICAgIG9wdGlvbnNbcHJvcF0gIT09IHVuZGVmaW5lZCAmJlxuICAgICAgICBvcHRpb25zW3Byb3BdICE9PSBudWxsXG4gICAgICApIHtcbiAgICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvcjogVFMgZG9lc25cdTIwMTl0IHVuZGVyc3RhbmQgYmFzaWMgcmVhbGl0eS5cbiAgICAgICAgdGhpc1twcm9wXSA9IHByb3AgPT09ICdoaXN0b3J5JyA/IFsuLi5vcHRpb25zW3Byb3BdXSA6IG9wdGlvbnNbcHJvcF1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQHR5cGUge3N0cmluZ30gKi9cbiAgICBsZXQgcHJvcFxuXG4gICAgLy8gU2V0IG5vbi1wYXRoIHJlbGF0ZWQgcHJvcGVydGllcy5cbiAgICBmb3IgKHByb3AgaW4gb3B0aW9ucykge1xuICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvcjogZmluZSB0byBzZXQgb3RoZXIgdGhpbmdzLlxuICAgICAgaWYgKCFvcmRlci5pbmNsdWRlcyhwcm9wKSkge1xuICAgICAgICAvLyBAdHMtZXhwZWN0LWVycm9yOiBmaW5lIHRvIHNldCBvdGhlciB0aGluZ3MuXG4gICAgICAgIHRoaXNbcHJvcF0gPSBvcHRpb25zW3Byb3BdXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgYmFzZW5hbWUgKGluY2x1ZGluZyBleHRuYW1lKSAoZXhhbXBsZTogYCdpbmRleC5taW4uanMnYCkuXG4gICAqXG4gICAqIEByZXR1cm5zIHtzdHJpbmcgfCB1bmRlZmluZWR9XG4gICAqICAgQmFzZW5hbWUuXG4gICAqL1xuICBnZXQgYmFzZW5hbWUoKSB7XG4gICAgcmV0dXJuIHR5cGVvZiB0aGlzLnBhdGggPT09ICdzdHJpbmcnID8gcGF0aC5iYXNlbmFtZSh0aGlzLnBhdGgpIDogdW5kZWZpbmVkXG4gIH1cblxuICAvKipcbiAgICogU2V0IGJhc2VuYW1lIChpbmNsdWRpbmcgZXh0bmFtZSkgKGAnaW5kZXgubWluLmpzJ2ApLlxuICAgKlxuICAgKiBDYW5ub3QgY29udGFpbiBwYXRoIHNlcGFyYXRvcnMgKGAnLydgIG9uIHVuaXgsIG1hY09TLCBhbmQgYnJvd3NlcnMsIGAnXFwnYFxuICAgKiBvbiB3aW5kb3dzKS5cbiAgICogQ2Fubm90IGJlIG51bGxpZmllZCAodXNlIGBmaWxlLnBhdGggPSBmaWxlLmRpcm5hbWVgIGluc3RlYWQpLlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gYmFzZW5hbWVcbiAgICogICBCYXNlbmFtZS5cbiAgICogQHJldHVybnMge3VuZGVmaW5lZH1cbiAgICogICBOb3RoaW5nLlxuICAgKi9cbiAgc2V0IGJhc2VuYW1lKGJhc2VuYW1lKSB7XG4gICAgYXNzZXJ0Tm9uRW1wdHkoYmFzZW5hbWUsICdiYXNlbmFtZScpXG4gICAgYXNzZXJ0UGFydChiYXNlbmFtZSwgJ2Jhc2VuYW1lJylcbiAgICB0aGlzLnBhdGggPSBwYXRoLmpvaW4odGhpcy5kaXJuYW1lIHx8ICcnLCBiYXNlbmFtZSlcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIHBhcmVudCBwYXRoIChleGFtcGxlOiBgJ34nYCkuXG4gICAqXG4gICAqIEByZXR1cm5zIHtzdHJpbmcgfCB1bmRlZmluZWR9XG4gICAqICAgRGlybmFtZS5cbiAgICovXG4gIGdldCBkaXJuYW1lKCkge1xuICAgIHJldHVybiB0eXBlb2YgdGhpcy5wYXRoID09PSAnc3RyaW5nJyA/IHBhdGguZGlybmFtZSh0aGlzLnBhdGgpIDogdW5kZWZpbmVkXG4gIH1cblxuICAvKipcbiAgICogU2V0IHRoZSBwYXJlbnQgcGF0aCAoZXhhbXBsZTogYCd+J2ApLlxuICAgKlxuICAgKiBDYW5ub3QgYmUgc2V0IGlmIHRoZXJlXHUyMDE5cyBubyBgcGF0aGAgeWV0LlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZyB8IHVuZGVmaW5lZH0gZGlybmFtZVxuICAgKiAgIERpcm5hbWUuXG4gICAqIEByZXR1cm5zIHt1bmRlZmluZWR9XG4gICAqICAgTm90aGluZy5cbiAgICovXG4gIHNldCBkaXJuYW1lKGRpcm5hbWUpIHtcbiAgICBhc3NlcnRQYXRoKHRoaXMuYmFzZW5hbWUsICdkaXJuYW1lJylcbiAgICB0aGlzLnBhdGggPSBwYXRoLmpvaW4oZGlybmFtZSB8fCAnJywgdGhpcy5iYXNlbmFtZSlcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGV4dG5hbWUgKGluY2x1ZGluZyBkb3QpIChleGFtcGxlOiBgJy5qcydgKS5cbiAgICpcbiAgICogQHJldHVybnMge3N0cmluZyB8IHVuZGVmaW5lZH1cbiAgICogICBFeHRuYW1lLlxuICAgKi9cbiAgZ2V0IGV4dG5hbWUoKSB7XG4gICAgcmV0dXJuIHR5cGVvZiB0aGlzLnBhdGggPT09ICdzdHJpbmcnID8gcGF0aC5leHRuYW1lKHRoaXMucGF0aCkgOiB1bmRlZmluZWRcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdGhlIGV4dG5hbWUgKGluY2x1ZGluZyBkb3QpIChleGFtcGxlOiBgJy5qcydgKS5cbiAgICpcbiAgICogQ2Fubm90IGNvbnRhaW4gcGF0aCBzZXBhcmF0b3JzIChgJy8nYCBvbiB1bml4LCBtYWNPUywgYW5kIGJyb3dzZXJzLCBgJ1xcJ2BcbiAgICogb24gd2luZG93cykuXG4gICAqIENhbm5vdCBiZSBzZXQgaWYgdGhlcmVcdTIwMTlzIG5vIGBwYXRoYCB5ZXQuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nIHwgdW5kZWZpbmVkfSBleHRuYW1lXG4gICAqICAgRXh0bmFtZS5cbiAgICogQHJldHVybnMge3VuZGVmaW5lZH1cbiAgICogICBOb3RoaW5nLlxuICAgKi9cbiAgc2V0IGV4dG5hbWUoZXh0bmFtZSkge1xuICAgIGFzc2VydFBhcnQoZXh0bmFtZSwgJ2V4dG5hbWUnKVxuICAgIGFzc2VydFBhdGgodGhpcy5kaXJuYW1lLCAnZXh0bmFtZScpXG5cbiAgICBpZiAoZXh0bmFtZSkge1xuICAgICAgaWYgKGV4dG5hbWUuY29kZVBvaW50QXQoMCkgIT09IDQ2IC8qIGAuYCAqLykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2BleHRuYW1lYCBtdXN0IHN0YXJ0IHdpdGggYC5gJylcbiAgICAgIH1cblxuICAgICAgaWYgKGV4dG5hbWUuaW5jbHVkZXMoJy4nLCAxKSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2BleHRuYW1lYCBjYW5ub3QgY29udGFpbiBtdWx0aXBsZSBkb3RzJylcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLnBhdGggPSBwYXRoLmpvaW4odGhpcy5kaXJuYW1lLCB0aGlzLnN0ZW0gKyAoZXh0bmFtZSB8fCAnJykpXG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBmdWxsIHBhdGggKGV4YW1wbGU6IGAnfi9pbmRleC5taW4uanMnYCkuXG4gICAqXG4gICAqIEByZXR1cm5zIHtzdHJpbmd9XG4gICAqICAgUGF0aC5cbiAgICovXG4gIGdldCBwYXRoKCkge1xuICAgIHJldHVybiB0aGlzLmhpc3RvcnlbdGhpcy5oaXN0b3J5Lmxlbmd0aCAtIDFdXG4gIH1cblxuICAvKipcbiAgICogU2V0IHRoZSBmdWxsIHBhdGggKGV4YW1wbGU6IGAnfi9pbmRleC5taW4uanMnYCkuXG4gICAqXG4gICAqIENhbm5vdCBiZSBudWxsaWZpZWQuXG4gICAqIFlvdSBjYW4gc2V0IGEgZmlsZSBVUkwgKGEgYFVSTGAgb2JqZWN0IHdpdGggYSBgZmlsZTpgIHByb3RvY29sKSB3aGljaCB3aWxsXG4gICAqIGJlIHR1cm5lZCBpbnRvIGEgcGF0aCB3aXRoIGB1cmwuZmlsZVVSTFRvUGF0aGAuXG4gICAqXG4gICAqIEBwYXJhbSB7VVJMIHwgc3RyaW5nfSBwYXRoXG4gICAqICAgUGF0aC5cbiAgICogQHJldHVybnMge3VuZGVmaW5lZH1cbiAgICogICBOb3RoaW5nLlxuICAgKi9cbiAgc2V0IHBhdGgocGF0aCkge1xuICAgIGlmIChpc1VybChwYXRoKSkge1xuICAgICAgcGF0aCA9IHVybFRvUGF0aChwYXRoKVxuICAgIH1cblxuICAgIGFzc2VydE5vbkVtcHR5KHBhdGgsICdwYXRoJylcblxuICAgIGlmICh0aGlzLnBhdGggIT09IHBhdGgpIHtcbiAgICAgIHRoaXMuaGlzdG9yeS5wdXNoKHBhdGgpXG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgc3RlbSAoYmFzZW5hbWUgdy9vIGV4dG5hbWUpIChleGFtcGxlOiBgJ2luZGV4Lm1pbidgKS5cbiAgICpcbiAgICogQHJldHVybnMge3N0cmluZyB8IHVuZGVmaW5lZH1cbiAgICogICBTdGVtLlxuICAgKi9cbiAgZ2V0IHN0ZW0oKSB7XG4gICAgcmV0dXJuIHR5cGVvZiB0aGlzLnBhdGggPT09ICdzdHJpbmcnXG4gICAgICA/IHBhdGguYmFzZW5hbWUodGhpcy5wYXRoLCB0aGlzLmV4dG5hbWUpXG4gICAgICA6IHVuZGVmaW5lZFxuICB9XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgc3RlbSAoYmFzZW5hbWUgdy9vIGV4dG5hbWUpIChleGFtcGxlOiBgJ2luZGV4Lm1pbidgKS5cbiAgICpcbiAgICogQ2Fubm90IGNvbnRhaW4gcGF0aCBzZXBhcmF0b3JzIChgJy8nYCBvbiB1bml4LCBtYWNPUywgYW5kIGJyb3dzZXJzLCBgJ1xcJ2BcbiAgICogb24gd2luZG93cykuXG4gICAqIENhbm5vdCBiZSBudWxsaWZpZWQgKHVzZSBgZmlsZS5wYXRoID0gZmlsZS5kaXJuYW1lYCBpbnN0ZWFkKS5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IHN0ZW1cbiAgICogICBTdGVtLlxuICAgKiBAcmV0dXJucyB7dW5kZWZpbmVkfVxuICAgKiAgIE5vdGhpbmcuXG4gICAqL1xuICBzZXQgc3RlbShzdGVtKSB7XG4gICAgYXNzZXJ0Tm9uRW1wdHkoc3RlbSwgJ3N0ZW0nKVxuICAgIGFzc2VydFBhcnQoc3RlbSwgJ3N0ZW0nKVxuICAgIHRoaXMucGF0aCA9IHBhdGguam9pbih0aGlzLmRpcm5hbWUgfHwgJycsIHN0ZW0gKyAodGhpcy5leHRuYW1lIHx8ICcnKSlcbiAgfVxuXG4gIC8vIE5vcm1hbCBwcm90b3R5cGFsIG1ldGhvZHMuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBmYXRhbCBtZXNzYWdlIGZvciBgcmVhc29uYCBhc3NvY2lhdGVkIHdpdGggdGhlIGZpbGUuXG4gICAqXG4gICAqIFRoZSBgZmF0YWxgIGZpZWxkIG9mIHRoZSBtZXNzYWdlIGlzIHNldCB0byBgdHJ1ZWAgKGVycm9yOyBmaWxlIG5vdCB1c2FibGUpXG4gICAqIGFuZCB0aGUgYGZpbGVgIGZpZWxkIGlzIHNldCB0byB0aGUgY3VycmVudCBmaWxlIHBhdGguXG4gICAqIFRoZSBtZXNzYWdlIGlzIGFkZGVkIHRvIHRoZSBgbWVzc2FnZXNgIGZpZWxkIG9uIGBmaWxlYC5cbiAgICpcbiAgICogPiBcdUQ4M0VcdURFQTYgKipOb3RlKio6IGFsc28gaGFzIG9ic29sZXRlIHNpZ25hdHVyZXMuXG4gICAqXG4gICAqIEBvdmVybG9hZFxuICAgKiBAcGFyYW0ge3N0cmluZ30gcmVhc29uXG4gICAqIEBwYXJhbSB7TWVzc2FnZU9wdGlvbnMgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3B0aW9uc11cbiAgICogQHJldHVybnMge25ldmVyfVxuICAgKlxuICAgKiBAb3ZlcmxvYWRcbiAgICogQHBhcmFtIHtzdHJpbmd9IHJlYXNvblxuICAgKiBAcGFyYW0ge05vZGUgfCBOb2RlTGlrZSB8IG51bGwgfCB1bmRlZmluZWR9IHBhcmVudFxuICAgKiBAcGFyYW0ge3N0cmluZyB8IG51bGwgfCB1bmRlZmluZWR9IFtvcmlnaW5dXG4gICAqIEByZXR1cm5zIHtuZXZlcn1cbiAgICpcbiAgICogQG92ZXJsb2FkXG4gICAqIEBwYXJhbSB7c3RyaW5nfSByZWFzb25cbiAgICogQHBhcmFtIHtQb2ludCB8IFBvc2l0aW9uIHwgbnVsbCB8IHVuZGVmaW5lZH0gcGxhY2VcbiAgICogQHBhcmFtIHtzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3JpZ2luXVxuICAgKiBAcmV0dXJucyB7bmV2ZXJ9XG4gICAqXG4gICAqIEBvdmVybG9hZFxuICAgKiBAcGFyYW0ge3N0cmluZ30gcmVhc29uXG4gICAqIEBwYXJhbSB7c3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH0gW29yaWdpbl1cbiAgICogQHJldHVybnMge25ldmVyfVxuICAgKlxuICAgKiBAb3ZlcmxvYWRcbiAgICogQHBhcmFtIHtFcnJvciB8IFZGaWxlTWVzc2FnZX0gY2F1c2VcbiAgICogQHBhcmFtIHtOb2RlIHwgTm9kZUxpa2UgfCBudWxsIHwgdW5kZWZpbmVkfSBwYXJlbnRcbiAgICogQHBhcmFtIHtzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3JpZ2luXVxuICAgKiBAcmV0dXJucyB7bmV2ZXJ9XG4gICAqXG4gICAqIEBvdmVybG9hZFxuICAgKiBAcGFyYW0ge0Vycm9yIHwgVkZpbGVNZXNzYWdlfSBjYXVzZVxuICAgKiBAcGFyYW0ge1BvaW50IHwgUG9zaXRpb24gfCBudWxsIHwgdW5kZWZpbmVkfSBwbGFjZVxuICAgKiBAcGFyYW0ge3N0cmluZyB8IG51bGwgfCB1bmRlZmluZWR9IFtvcmlnaW5dXG4gICAqIEByZXR1cm5zIHtuZXZlcn1cbiAgICpcbiAgICogQG92ZXJsb2FkXG4gICAqIEBwYXJhbSB7RXJyb3IgfCBWRmlsZU1lc3NhZ2V9IGNhdXNlXG4gICAqIEBwYXJhbSB7c3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH0gW29yaWdpbl1cbiAgICogQHJldHVybnMge25ldmVyfVxuICAgKlxuICAgKiBAcGFyYW0ge0Vycm9yIHwgVkZpbGVNZXNzYWdlIHwgc3RyaW5nfSBjYXVzZU9yUmVhc29uXG4gICAqICAgUmVhc29uIGZvciBtZXNzYWdlLCBzaG91bGQgdXNlIG1hcmtkb3duLlxuICAgKiBAcGFyYW0ge05vZGUgfCBOb2RlTGlrZSB8IE1lc3NhZ2VPcHRpb25zIHwgUG9pbnQgfCBQb3NpdGlvbiB8IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWR9IFtvcHRpb25zT3JQYXJlbnRPclBsYWNlXVxuICAgKiAgIENvbmZpZ3VyYXRpb24gKG9wdGlvbmFsKS5cbiAgICogQHBhcmFtIHtzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3JpZ2luXVxuICAgKiAgIFBsYWNlIGluIGNvZGUgd2hlcmUgdGhlIG1lc3NhZ2Ugb3JpZ2luYXRlcyAoZXhhbXBsZTpcbiAgICogICBgJ215LXBhY2thZ2U6bXktcnVsZSdgIG9yIGAnbXktcnVsZSdgKS5cbiAgICogQHJldHVybnMge25ldmVyfVxuICAgKiAgIE5ldmVyLlxuICAgKiBAdGhyb3dzIHtWRmlsZU1lc3NhZ2V9XG4gICAqICAgTWVzc2FnZS5cbiAgICovXG4gIGZhaWwoY2F1c2VPclJlYXNvbiwgb3B0aW9uc09yUGFyZW50T3JQbGFjZSwgb3JpZ2luKSB7XG4gICAgLy8gQHRzLWV4cGVjdC1lcnJvcjogdGhlIG92ZXJsb2FkcyBhcmUgZmluZS5cbiAgICBjb25zdCBtZXNzYWdlID0gdGhpcy5tZXNzYWdlKGNhdXNlT3JSZWFzb24sIG9wdGlvbnNPclBhcmVudE9yUGxhY2UsIG9yaWdpbilcblxuICAgIG1lc3NhZ2UuZmF0YWwgPSB0cnVlXG5cbiAgICB0aHJvdyBtZXNzYWdlXG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGFuIGluZm8gbWVzc2FnZSBmb3IgYHJlYXNvbmAgYXNzb2NpYXRlZCB3aXRoIHRoZSBmaWxlLlxuICAgKlxuICAgKiBUaGUgYGZhdGFsYCBmaWVsZCBvZiB0aGUgbWVzc2FnZSBpcyBzZXQgdG8gYHVuZGVmaW5lZGAgKGluZm87IGNoYW5nZVxuICAgKiBsaWtlbHkgbm90IG5lZWRlZCkgYW5kIHRoZSBgZmlsZWAgZmllbGQgaXMgc2V0IHRvIHRoZSBjdXJyZW50IGZpbGUgcGF0aC5cbiAgICogVGhlIG1lc3NhZ2UgaXMgYWRkZWQgdG8gdGhlIGBtZXNzYWdlc2AgZmllbGQgb24gYGZpbGVgLlxuICAgKlxuICAgKiA+IFx1RDgzRVx1REVBNiAqKk5vdGUqKjogYWxzbyBoYXMgb2Jzb2xldGUgc2lnbmF0dXJlcy5cbiAgICpcbiAgICogQG92ZXJsb2FkXG4gICAqIEBwYXJhbSB7c3RyaW5nfSByZWFzb25cbiAgICogQHBhcmFtIHtNZXNzYWdlT3B0aW9ucyB8IG51bGwgfCB1bmRlZmluZWR9IFtvcHRpb25zXVxuICAgKiBAcmV0dXJucyB7VkZpbGVNZXNzYWdlfVxuICAgKlxuICAgKiBAb3ZlcmxvYWRcbiAgICogQHBhcmFtIHtzdHJpbmd9IHJlYXNvblxuICAgKiBAcGFyYW0ge05vZGUgfCBOb2RlTGlrZSB8IG51bGwgfCB1bmRlZmluZWR9IHBhcmVudFxuICAgKiBAcGFyYW0ge3N0cmluZyB8IG51bGwgfCB1bmRlZmluZWR9IFtvcmlnaW5dXG4gICAqIEByZXR1cm5zIHtWRmlsZU1lc3NhZ2V9XG4gICAqXG4gICAqIEBvdmVybG9hZFxuICAgKiBAcGFyYW0ge3N0cmluZ30gcmVhc29uXG4gICAqIEBwYXJhbSB7UG9pbnQgfCBQb3NpdGlvbiB8IG51bGwgfCB1bmRlZmluZWR9IHBsYWNlXG4gICAqIEBwYXJhbSB7c3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH0gW29yaWdpbl1cbiAgICogQHJldHVybnMge1ZGaWxlTWVzc2FnZX1cbiAgICpcbiAgICogQG92ZXJsb2FkXG4gICAqIEBwYXJhbSB7c3RyaW5nfSByZWFzb25cbiAgICogQHBhcmFtIHtzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3JpZ2luXVxuICAgKiBAcmV0dXJucyB7VkZpbGVNZXNzYWdlfVxuICAgKlxuICAgKiBAb3ZlcmxvYWRcbiAgICogQHBhcmFtIHtFcnJvciB8IFZGaWxlTWVzc2FnZX0gY2F1c2VcbiAgICogQHBhcmFtIHtOb2RlIHwgTm9kZUxpa2UgfCBudWxsIHwgdW5kZWZpbmVkfSBwYXJlbnRcbiAgICogQHBhcmFtIHtzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3JpZ2luXVxuICAgKiBAcmV0dXJucyB7VkZpbGVNZXNzYWdlfVxuICAgKlxuICAgKiBAb3ZlcmxvYWRcbiAgICogQHBhcmFtIHtFcnJvciB8IFZGaWxlTWVzc2FnZX0gY2F1c2VcbiAgICogQHBhcmFtIHtQb2ludCB8IFBvc2l0aW9uIHwgbnVsbCB8IHVuZGVmaW5lZH0gcGxhY2VcbiAgICogQHBhcmFtIHtzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3JpZ2luXVxuICAgKiBAcmV0dXJucyB7VkZpbGVNZXNzYWdlfVxuICAgKlxuICAgKiBAb3ZlcmxvYWRcbiAgICogQHBhcmFtIHtFcnJvciB8IFZGaWxlTWVzc2FnZX0gY2F1c2VcbiAgICogQHBhcmFtIHtzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3JpZ2luXVxuICAgKiBAcmV0dXJucyB7VkZpbGVNZXNzYWdlfVxuICAgKlxuICAgKiBAcGFyYW0ge0Vycm9yIHwgVkZpbGVNZXNzYWdlIHwgc3RyaW5nfSBjYXVzZU9yUmVhc29uXG4gICAqICAgUmVhc29uIGZvciBtZXNzYWdlLCBzaG91bGQgdXNlIG1hcmtkb3duLlxuICAgKiBAcGFyYW0ge05vZGUgfCBOb2RlTGlrZSB8IE1lc3NhZ2VPcHRpb25zIHwgUG9pbnQgfCBQb3NpdGlvbiB8IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWR9IFtvcHRpb25zT3JQYXJlbnRPclBsYWNlXVxuICAgKiAgIENvbmZpZ3VyYXRpb24gKG9wdGlvbmFsKS5cbiAgICogQHBhcmFtIHtzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3JpZ2luXVxuICAgKiAgIFBsYWNlIGluIGNvZGUgd2hlcmUgdGhlIG1lc3NhZ2Ugb3JpZ2luYXRlcyAoZXhhbXBsZTpcbiAgICogICBgJ215LXBhY2thZ2U6bXktcnVsZSdgIG9yIGAnbXktcnVsZSdgKS5cbiAgICogQHJldHVybnMge1ZGaWxlTWVzc2FnZX1cbiAgICogICBNZXNzYWdlLlxuICAgKi9cbiAgaW5mbyhjYXVzZU9yUmVhc29uLCBvcHRpb25zT3JQYXJlbnRPclBsYWNlLCBvcmlnaW4pIHtcbiAgICAvLyBAdHMtZXhwZWN0LWVycm9yOiB0aGUgb3ZlcmxvYWRzIGFyZSBmaW5lLlxuICAgIGNvbnN0IG1lc3NhZ2UgPSB0aGlzLm1lc3NhZ2UoY2F1c2VPclJlYXNvbiwgb3B0aW9uc09yUGFyZW50T3JQbGFjZSwgb3JpZ2luKVxuXG4gICAgbWVzc2FnZS5mYXRhbCA9IHVuZGVmaW5lZFxuXG4gICAgcmV0dXJuIG1lc3NhZ2VcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBtZXNzYWdlIGZvciBgcmVhc29uYCBhc3NvY2lhdGVkIHdpdGggdGhlIGZpbGUuXG4gICAqXG4gICAqIFRoZSBgZmF0YWxgIGZpZWxkIG9mIHRoZSBtZXNzYWdlIGlzIHNldCB0byBgZmFsc2VgICh3YXJuaW5nOyBjaGFuZ2UgbWF5IGJlXG4gICAqIG5lZWRlZCkgYW5kIHRoZSBgZmlsZWAgZmllbGQgaXMgc2V0IHRvIHRoZSBjdXJyZW50IGZpbGUgcGF0aC5cbiAgICogVGhlIG1lc3NhZ2UgaXMgYWRkZWQgdG8gdGhlIGBtZXNzYWdlc2AgZmllbGQgb24gYGZpbGVgLlxuICAgKlxuICAgKiA+IFx1RDgzRVx1REVBNiAqKk5vdGUqKjogYWxzbyBoYXMgb2Jzb2xldGUgc2lnbmF0dXJlcy5cbiAgICpcbiAgICogQG92ZXJsb2FkXG4gICAqIEBwYXJhbSB7c3RyaW5nfSByZWFzb25cbiAgICogQHBhcmFtIHtNZXNzYWdlT3B0aW9ucyB8IG51bGwgfCB1bmRlZmluZWR9IFtvcHRpb25zXVxuICAgKiBAcmV0dXJucyB7VkZpbGVNZXNzYWdlfVxuICAgKlxuICAgKiBAb3ZlcmxvYWRcbiAgICogQHBhcmFtIHtzdHJpbmd9IHJlYXNvblxuICAgKiBAcGFyYW0ge05vZGUgfCBOb2RlTGlrZSB8IG51bGwgfCB1bmRlZmluZWR9IHBhcmVudFxuICAgKiBAcGFyYW0ge3N0cmluZyB8IG51bGwgfCB1bmRlZmluZWR9IFtvcmlnaW5dXG4gICAqIEByZXR1cm5zIHtWRmlsZU1lc3NhZ2V9XG4gICAqXG4gICAqIEBvdmVybG9hZFxuICAgKiBAcGFyYW0ge3N0cmluZ30gcmVhc29uXG4gICAqIEBwYXJhbSB7UG9pbnQgfCBQb3NpdGlvbiB8IG51bGwgfCB1bmRlZmluZWR9IHBsYWNlXG4gICAqIEBwYXJhbSB7c3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH0gW29yaWdpbl1cbiAgICogQHJldHVybnMge1ZGaWxlTWVzc2FnZX1cbiAgICpcbiAgICogQG92ZXJsb2FkXG4gICAqIEBwYXJhbSB7c3RyaW5nfSByZWFzb25cbiAgICogQHBhcmFtIHtzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3JpZ2luXVxuICAgKiBAcmV0dXJucyB7VkZpbGVNZXNzYWdlfVxuICAgKlxuICAgKiBAb3ZlcmxvYWRcbiAgICogQHBhcmFtIHtFcnJvciB8IFZGaWxlTWVzc2FnZX0gY2F1c2VcbiAgICogQHBhcmFtIHtOb2RlIHwgTm9kZUxpa2UgfCBudWxsIHwgdW5kZWZpbmVkfSBwYXJlbnRcbiAgICogQHBhcmFtIHtzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3JpZ2luXVxuICAgKiBAcmV0dXJucyB7VkZpbGVNZXNzYWdlfVxuICAgKlxuICAgKiBAb3ZlcmxvYWRcbiAgICogQHBhcmFtIHtFcnJvciB8IFZGaWxlTWVzc2FnZX0gY2F1c2VcbiAgICogQHBhcmFtIHtQb2ludCB8IFBvc2l0aW9uIHwgbnVsbCB8IHVuZGVmaW5lZH0gcGxhY2VcbiAgICogQHBhcmFtIHtzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3JpZ2luXVxuICAgKiBAcmV0dXJucyB7VkZpbGVNZXNzYWdlfVxuICAgKlxuICAgKiBAb3ZlcmxvYWRcbiAgICogQHBhcmFtIHtFcnJvciB8IFZGaWxlTWVzc2FnZX0gY2F1c2VcbiAgICogQHBhcmFtIHtzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3JpZ2luXVxuICAgKiBAcmV0dXJucyB7VkZpbGVNZXNzYWdlfVxuICAgKlxuICAgKiBAcGFyYW0ge0Vycm9yIHwgVkZpbGVNZXNzYWdlIHwgc3RyaW5nfSBjYXVzZU9yUmVhc29uXG4gICAqICAgUmVhc29uIGZvciBtZXNzYWdlLCBzaG91bGQgdXNlIG1hcmtkb3duLlxuICAgKiBAcGFyYW0ge05vZGUgfCBOb2RlTGlrZSB8IE1lc3NhZ2VPcHRpb25zIHwgUG9pbnQgfCBQb3NpdGlvbiB8IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWR9IFtvcHRpb25zT3JQYXJlbnRPclBsYWNlXVxuICAgKiAgIENvbmZpZ3VyYXRpb24gKG9wdGlvbmFsKS5cbiAgICogQHBhcmFtIHtzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkfSBbb3JpZ2luXVxuICAgKiAgIFBsYWNlIGluIGNvZGUgd2hlcmUgdGhlIG1lc3NhZ2Ugb3JpZ2luYXRlcyAoZXhhbXBsZTpcbiAgICogICBgJ215LXBhY2thZ2U6bXktcnVsZSdgIG9yIGAnbXktcnVsZSdgKS5cbiAgICogQHJldHVybnMge1ZGaWxlTWVzc2FnZX1cbiAgICogICBNZXNzYWdlLlxuICAgKi9cbiAgbWVzc2FnZShjYXVzZU9yUmVhc29uLCBvcHRpb25zT3JQYXJlbnRPclBsYWNlLCBvcmlnaW4pIHtcbiAgICBjb25zdCBtZXNzYWdlID0gbmV3IFZGaWxlTWVzc2FnZShcbiAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3I6IHRoZSBvdmVybG9hZHMgYXJlIGZpbmUuXG4gICAgICBjYXVzZU9yUmVhc29uLFxuICAgICAgb3B0aW9uc09yUGFyZW50T3JQbGFjZSxcbiAgICAgIG9yaWdpblxuICAgIClcblxuICAgIGlmICh0aGlzLnBhdGgpIHtcbiAgICAgIG1lc3NhZ2UubmFtZSA9IHRoaXMucGF0aCArICc6JyArIG1lc3NhZ2UubmFtZVxuICAgICAgbWVzc2FnZS5maWxlID0gdGhpcy5wYXRoXG4gICAgfVxuXG4gICAgbWVzc2FnZS5mYXRhbCA9IGZhbHNlXG5cbiAgICB0aGlzLm1lc3NhZ2VzLnB1c2gobWVzc2FnZSlcblxuICAgIHJldHVybiBtZXNzYWdlXG4gIH1cblxuICAvKipcbiAgICogU2VyaWFsaXplIHRoZSBmaWxlLlxuICAgKlxuICAgKiA+ICoqTm90ZSoqOiB3aGljaCBlbmNvZGluZ3MgYXJlIHN1cHBvcnRlZCBkZXBlbmRzIG9uIHRoZSBlbmdpbmUuXG4gICAqID4gRm9yIGluZm8gb24gTm9kZS5qcywgc2VlOlxuICAgKiA+IDxodHRwczovL25vZGVqcy5vcmcvYXBpL3V0aWwuaHRtbCN3aGF0d2ctc3VwcG9ydGVkLWVuY29kaW5ncz4uXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH0gW2VuY29kaW5nPSd1dGY4J11cbiAgICogICBDaGFyYWN0ZXIgZW5jb2RpbmcgdG8gdW5kZXJzdGFuZCBgdmFsdWVgIGFzIHdoZW4gaXRcdTIwMTlzIGEgYFVpbnQ4QXJyYXlgXG4gICAqICAgKGRlZmF1bHQ6IGAndXRmLTgnYCkuXG4gICAqIEByZXR1cm5zIHtzdHJpbmd9XG4gICAqICAgU2VyaWFsaXplZCBmaWxlLlxuICAgKi9cbiAgdG9TdHJpbmcoZW5jb2RpbmcpIHtcbiAgICBpZiAodGhpcy52YWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gJydcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIHRoaXMudmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICByZXR1cm4gdGhpcy52YWx1ZVxuICAgIH1cblxuICAgIGNvbnN0IGRlY29kZXIgPSBuZXcgVGV4dERlY29kZXIoZW5jb2RpbmcgfHwgdW5kZWZpbmVkKVxuICAgIHJldHVybiBkZWNvZGVyLmRlY29kZSh0aGlzLnZhbHVlKVxuICB9XG59XG5cbi8qKlxuICogQXNzZXJ0IHRoYXQgYHBhcnRgIGlzIG5vdCBhIHBhdGggKGFzIGluLCBkb2VzIG5vdCBjb250YWluIGBwYXRoLnNlcGApLlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZH0gcGFydFxuICogICBGaWxlIHBhdGggcGFydC5cbiAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lXG4gKiAgIFBhcnQgbmFtZS5cbiAqIEByZXR1cm5zIHt1bmRlZmluZWR9XG4gKiAgIE5vdGhpbmcuXG4gKi9cbmZ1bmN0aW9uIGFzc2VydFBhcnQocGFydCwgbmFtZSkge1xuICBpZiAocGFydCAmJiBwYXJ0LmluY2x1ZGVzKHBhdGguc2VwKSkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICdgJyArIG5hbWUgKyAnYCBjYW5ub3QgYmUgYSBwYXRoOiBkaWQgbm90IGV4cGVjdCBgJyArIHBhdGguc2VwICsgJ2AnXG4gICAgKVxuICB9XG59XG5cbi8qKlxuICogQXNzZXJ0IHRoYXQgYHBhcnRgIGlzIG5vdCBlbXB0eS5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZyB8IHVuZGVmaW5lZH0gcGFydFxuICogICBUaGluZy5cbiAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lXG4gKiAgIFBhcnQgbmFtZS5cbiAqIEByZXR1cm5zIHthc3NlcnRzIHBhcnQgaXMgc3RyaW5nfVxuICogICBOb3RoaW5nLlxuICovXG5mdW5jdGlvbiBhc3NlcnROb25FbXB0eShwYXJ0LCBuYW1lKSB7XG4gIGlmICghcGFydCkge1xuICAgIHRocm93IG5ldyBFcnJvcignYCcgKyBuYW1lICsgJ2AgY2Fubm90IGJlIGVtcHR5JylcbiAgfVxufVxuXG4vKipcbiAqIEFzc2VydCBgcGF0aGAgZXhpc3RzLlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nIHwgdW5kZWZpbmVkfSBwYXRoXG4gKiAgIFBhdGguXG4gKiBAcGFyYW0ge3N0cmluZ30gbmFtZVxuICogICBEZXBlbmRlbmN5IG5hbWUuXG4gKiBAcmV0dXJucyB7YXNzZXJ0cyBwYXRoIGlzIHN0cmluZ31cbiAqICAgTm90aGluZy5cbiAqL1xuZnVuY3Rpb24gYXNzZXJ0UGF0aChwYXRoLCBuYW1lKSB7XG4gIGlmICghcGF0aCkge1xuICAgIHRocm93IG5ldyBFcnJvcignU2V0dGluZyBgJyArIG5hbWUgKyAnYCByZXF1aXJlcyBgcGF0aGAgdG8gYmUgc2V0IHRvbycpXG4gIH1cbn1cblxuLyoqXG4gKiBBc3NlcnQgYHZhbHVlYCBpcyBhbiBgVWludDhBcnJheWAuXG4gKlxuICogQHBhcmFtIHt1bmtub3dufSB2YWx1ZVxuICogICB0aGluZy5cbiAqIEByZXR1cm5zIHt2YWx1ZSBpcyBVaW50OEFycmF5fVxuICogICBXaGV0aGVyIGB2YWx1ZWAgaXMgYW4gYFVpbnQ4QXJyYXlgLlxuICovXG5mdW5jdGlvbiBpc1VpbnQ4QXJyYXkodmFsdWUpIHtcbiAgcmV0dXJuIEJvb2xlYW4oXG4gICAgdmFsdWUgJiZcbiAgICAgIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiZcbiAgICAgICdieXRlTGVuZ3RoJyBpbiB2YWx1ZSAmJlxuICAgICAgJ2J5dGVPZmZzZXQnIGluIHZhbHVlXG4gIClcbn1cbiIsICIvKipcbiAqIEB0eXBlZGVmIEVycm9ySW5mb1xuICogICBJbmZvIG9uIGEgYHBhcnNlNWAgZXJyb3IuXG4gKiBAcHJvcGVydHkge3N0cmluZ30gcmVhc29uXG4gKiAgIFJlYXNvbiBvZiBlcnJvci5cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBkZXNjcmlwdGlvblxuICogICBNb3JlIGluZm8gb24gZXJyb3IuXG4gKiBAcHJvcGVydHkge2ZhbHNlfSBbdXJsXVxuICogICBUdXJuIG9mZiBpZiB0aGlzIGlzIG5vdCBkb2N1bWVudGVkIGluIHRoZSBodG1sNSBzcGVjIChvcHRpb25hbCkuXG4gKi9cblxuZXhwb3J0IGNvbnN0IGVycm9ycyA9IHtcbiAgLyoqIEB0eXBlIHtFcnJvckluZm99ICovXG4gIGFiYW5kb25lZEhlYWRFbGVtZW50Q2hpbGQ6IHtcbiAgICByZWFzb246ICdVbmV4cGVjdGVkIG1ldGFkYXRhIGVsZW1lbnQgYWZ0ZXIgaGVhZCcsXG4gICAgZGVzY3JpcHRpb246XG4gICAgICAnVW5leHBlY3RlZCBlbGVtZW50IGFmdGVyIGhlYWQuIEV4cGVjdGVkIHRoZSBlbGVtZW50IGJlZm9yZSBgPC9oZWFkPmAnLFxuICAgIHVybDogZmFsc2VcbiAgfSxcbiAgLyoqIEB0eXBlIHtFcnJvckluZm99ICovXG4gIGFicnVwdENsb3NpbmdPZkVtcHR5Q29tbWVudDoge1xuICAgIHJlYXNvbjogJ1VuZXhwZWN0ZWQgYWJydXB0bHkgY2xvc2VkIGVtcHR5IGNvbW1lbnQnLFxuICAgIGRlc2NyaXB0aW9uOiAnVW5leHBlY3RlZCBgPmAgb3IgYC0+YC4gRXhwZWN0ZWQgYC0tPmAgdG8gY2xvc2UgY29tbWVudHMnXG4gIH0sXG4gIC8qKiBAdHlwZSB7RXJyb3JJbmZvfSAqL1xuICBhYnJ1cHREb2N0eXBlUHVibGljSWRlbnRpZmllcjoge1xuICAgIHJlYXNvbjogJ1VuZXhwZWN0ZWQgYWJydXB0bHkgY2xvc2VkIHB1YmxpYyBpZGVudGlmaWVyJyxcbiAgICBkZXNjcmlwdGlvbjpcbiAgICAgICdVbmV4cGVjdGVkIGA+YC4gRXhwZWN0ZWQgYSBjbG9zaW5nIGBcImAgb3IgYFxcJ2AgYWZ0ZXIgdGhlIHB1YmxpYyBpZGVudGlmaWVyJ1xuICB9LFxuICAvKiogQHR5cGUge0Vycm9ySW5mb30gKi9cbiAgYWJydXB0RG9jdHlwZVN5c3RlbUlkZW50aWZpZXI6IHtcbiAgICByZWFzb246ICdVbmV4cGVjdGVkIGFicnVwdGx5IGNsb3NlZCBzeXN0ZW0gaWRlbnRpZmllcicsXG4gICAgZGVzY3JpcHRpb246XG4gICAgICAnVW5leHBlY3RlZCBgPmAuIEV4cGVjdGVkIGEgY2xvc2luZyBgXCJgIG9yIGBcXCdgIGFmdGVyIHRoZSBpZGVudGlmaWVyIGlkZW50aWZpZXInXG4gIH0sXG4gIC8qKiBAdHlwZSB7RXJyb3JJbmZvfSAqL1xuICBhYnNlbmNlT2ZEaWdpdHNJbk51bWVyaWNDaGFyYWN0ZXJSZWZlcmVuY2U6IHtcbiAgICByZWFzb246ICdVbmV4cGVjdGVkIG5vbi1kaWdpdCBhdCBzdGFydCBvZiBudW1lcmljIGNoYXJhY3RlciByZWZlcmVuY2UnLFxuICAgIGRlc2NyaXB0aW9uOlxuICAgICAgJ1VuZXhwZWN0ZWQgYCVjYC4gRXhwZWN0ZWQgYFswLTldYCBmb3IgZGVjaW1hbCByZWZlcmVuY2VzIG9yIGBbMC05YS1mQS1GXWAgZm9yIGhleGFkZWNpbWFsIHJlZmVyZW5jZXMnXG4gIH0sXG4gIC8qKiBAdHlwZSB7RXJyb3JJbmZvfSAqL1xuICBjZGF0YUluSHRtbENvbnRlbnQ6IHtcbiAgICByZWFzb246ICdVbmV4cGVjdGVkIENEQVRBIHNlY3Rpb24gaW4gSFRNTCcsXG4gICAgZGVzY3JpcHRpb246XG4gICAgICAnVW5leHBlY3RlZCBgPCFbQ0RBVEFbYCBpbiBIVE1MLiBSZW1vdmUgaXQsIHVzZSBhIGNvbW1lbnQsIG9yIGVuY29kZSBzcGVjaWFsIGNoYXJhY3RlcnMgaW5zdGVhZCdcbiAgfSxcbiAgLyoqIEB0eXBlIHtFcnJvckluZm99ICovXG4gIGNoYXJhY3RlclJlZmVyZW5jZU91dHNpZGVVbmljb2RlUmFuZ2U6IHtcbiAgICByZWFzb246ICdVbmV4cGVjdGVkIHRvbyBiaWcgbnVtZXJpYyBjaGFyYWN0ZXIgcmVmZXJlbmNlJyxcbiAgICBkZXNjcmlwdGlvbjpcbiAgICAgICdVbmV4cGVjdGVkbHkgaGlnaCBjaGFyYWN0ZXIgcmVmZXJlbmNlLiBFeHBlY3RlZCBjaGFyYWN0ZXIgcmVmZXJlbmNlcyB0byBiZSBhdCBtb3N0IGhleGFkZWNpbWFsIDEwZmZmZiAob3IgZGVjaW1hbCAxMTE0MTExKSdcbiAgfSxcbiAgLyoqIEB0eXBlIHtFcnJvckluZm99ICovXG4gIGNsb3NpbmdPZkVsZW1lbnRXaXRoT3BlbkNoaWxkRWxlbWVudHM6IHtcbiAgICByZWFzb246ICdVbmV4cGVjdGVkIGNsb3NpbmcgdGFnIHdpdGggb3BlbiBjaGlsZCBlbGVtZW50cycsXG4gICAgZGVzY3JpcHRpb246XG4gICAgICAnVW5leHBlY3RlZGx5IGNsb3NpbmcgdGFnLiBFeHBlY3RlZCBvdGhlciB0YWdzIHRvIGJlIGNsb3NlZCBmaXJzdCcsXG4gICAgdXJsOiBmYWxzZVxuICB9LFxuICAvKiogQHR5cGUge0Vycm9ySW5mb30gKi9cbiAgY29udHJvbENoYXJhY3RlckluSW5wdXRTdHJlYW06IHtcbiAgICByZWFzb246ICdVbmV4cGVjdGVkIGNvbnRyb2wgY2hhcmFjdGVyJyxcbiAgICBkZXNjcmlwdGlvbjpcbiAgICAgICdVbmV4cGVjdGVkIGNvbnRyb2wgY2hhcmFjdGVyIGAleGAuIEV4cGVjdGVkIGEgbm9uLWNvbnRyb2wgY29kZSBwb2ludCwgMHgwMCwgb3IgQVNDSUkgd2hpdGVzcGFjZSdcbiAgfSxcbiAgLyoqIEB0eXBlIHtFcnJvckluZm99ICovXG4gIGNvbnRyb2xDaGFyYWN0ZXJSZWZlcmVuY2U6IHtcbiAgICByZWFzb246ICdVbmV4cGVjdGVkIGNvbnRyb2wgY2hhcmFjdGVyIHJlZmVyZW5jZScsXG4gICAgZGVzY3JpcHRpb246XG4gICAgICAnVW5leHBlY3RlZGx5IGNvbnRyb2wgY2hhcmFjdGVyIGluIHJlZmVyZW5jZS4gRXhwZWN0ZWQgYSBub24tY29udHJvbCBjb2RlIHBvaW50LCAweDAwLCBvciBBU0NJSSB3aGl0ZXNwYWNlJ1xuICB9LFxuICAvKiogQHR5cGUge0Vycm9ySW5mb30gKi9cbiAgZGlzYWxsb3dlZENvbnRlbnRJbk5vc2NyaXB0SW5IZWFkOiB7XG4gICAgcmVhc29uOiAnRGlzYWxsb3dlZCBjb250ZW50IGluc2lkZSBgPG5vc2NyaXB0PmAgaW4gYDxoZWFkPmAnLFxuICAgIGRlc2NyaXB0aW9uOlxuICAgICAgJ1VuZXhwZWN0ZWQgdGV4dCBjaGFyYWN0ZXIgYCVjYC4gT25seSB1c2UgdGV4dCBpbiBgPG5vc2NyaXB0PmBzIGluIGA8Ym9keT5gJyxcbiAgICB1cmw6IGZhbHNlXG4gIH0sXG4gIC8qKiBAdHlwZSB7RXJyb3JJbmZvfSAqL1xuICBkdXBsaWNhdGVBdHRyaWJ1dGU6IHtcbiAgICByZWFzb246ICdVbmV4cGVjdGVkIGR1cGxpY2F0ZSBhdHRyaWJ1dGUnLFxuICAgIGRlc2NyaXB0aW9uOlxuICAgICAgJ1VuZXhwZWN0ZWRseSBkb3VibGUgYXR0cmlidXRlLiBFeHBlY3RlZCBhdHRyaWJ1dGVzIHRvIG9jY3VyIG9ubHkgb25jZSdcbiAgfSxcbiAgLyoqIEB0eXBlIHtFcnJvckluZm99ICovXG4gIGVuZFRhZ1dpdGhBdHRyaWJ1dGVzOiB7XG4gICAgcmVhc29uOiAnVW5leHBlY3RlZCBhdHRyaWJ1dGUgb24gY2xvc2luZyB0YWcnLFxuICAgIGRlc2NyaXB0aW9uOiAnVW5leHBlY3RlZCBhdHRyaWJ1dGUuIEV4cGVjdGVkIGA+YCBpbnN0ZWFkJ1xuICB9LFxuICAvKiogQHR5cGUge0Vycm9ySW5mb30gKi9cbiAgZW5kVGFnV2l0aFRyYWlsaW5nU29saWR1czoge1xuICAgIHJlYXNvbjogJ1VuZXhwZWN0ZWQgc2xhc2ggYXQgZW5kIG9mIGNsb3NpbmcgdGFnJyxcbiAgICBkZXNjcmlwdGlvbjogJ1VuZXhwZWN0ZWQgYCVjLTFgLiBFeHBlY3RlZCBgPmAgaW5zdGVhZCdcbiAgfSxcbiAgLyoqIEB0eXBlIHtFcnJvckluZm99ICovXG4gIGVuZFRhZ1dpdGhvdXRNYXRjaGluZ09wZW5FbGVtZW50OiB7XG4gICAgcmVhc29uOiAnVW5leHBlY3RlZCB1bm9wZW5lZCBlbmQgdGFnJyxcbiAgICBkZXNjcmlwdGlvbjogJ1VuZXhwZWN0ZWQgZW5kIHRhZy4gRXhwZWN0ZWQgbm8gZW5kIHRhZyBvciBhbm90aGVyIGVuZCB0YWcnLFxuICAgIHVybDogZmFsc2VcbiAgfSxcbiAgLyoqIEB0eXBlIHtFcnJvckluZm99ICovXG4gIGVvZkJlZm9yZVRhZ05hbWU6IHtcbiAgICByZWFzb246ICdVbmV4cGVjdGVkIGVuZCBvZiBmaWxlJyxcbiAgICBkZXNjcmlwdGlvbjogJ1VuZXhwZWN0ZWQgZW5kIG9mIGZpbGUuIEV4cGVjdGVkIHRhZyBuYW1lIGluc3RlYWQnXG4gIH0sXG4gIC8qKiBAdHlwZSB7RXJyb3JJbmZvfSAqL1xuICBlb2ZJbkNkYXRhOiB7XG4gICAgcmVhc29uOiAnVW5leHBlY3RlZCBlbmQgb2YgZmlsZSBpbiBDREFUQScsXG4gICAgZGVzY3JpcHRpb246ICdVbmV4cGVjdGVkIGVuZCBvZiBmaWxlLiBFeHBlY3RlZCBgXV0+YCB0byBjbG9zZSB0aGUgQ0RBVEEnXG4gIH0sXG4gIC8qKiBAdHlwZSB7RXJyb3JJbmZvfSAqL1xuICBlb2ZJbkNvbW1lbnQ6IHtcbiAgICByZWFzb246ICdVbmV4cGVjdGVkIGVuZCBvZiBmaWxlIGluIGNvbW1lbnQnLFxuICAgIGRlc2NyaXB0aW9uOiAnVW5leHBlY3RlZCBlbmQgb2YgZmlsZS4gRXhwZWN0ZWQgYC0tPmAgdG8gY2xvc2UgdGhlIGNvbW1lbnQnXG4gIH0sXG4gIC8qKiBAdHlwZSB7RXJyb3JJbmZvfSAqL1xuICBlb2ZJbkRvY3R5cGU6IHtcbiAgICByZWFzb246ICdVbmV4cGVjdGVkIGVuZCBvZiBmaWxlIGluIGRvY3R5cGUnLFxuICAgIGRlc2NyaXB0aW9uOlxuICAgICAgJ1VuZXhwZWN0ZWQgZW5kIG9mIGZpbGUuIEV4cGVjdGVkIGEgdmFsaWQgZG9jdHlwZSAoc3VjaCBhcyBgPCFkb2N0eXBlIGh0bWw+YCknXG4gIH0sXG4gIC8qKiBAdHlwZSB7RXJyb3JJbmZvfSAqL1xuICBlb2ZJbkVsZW1lbnRUaGF0Q2FuQ29udGFpbk9ubHlUZXh0OiB7XG4gICAgcmVhc29uOiAnVW5leHBlY3RlZCBlbmQgb2YgZmlsZSBpbiBlbGVtZW50IHRoYXQgY2FuIG9ubHkgY29udGFpbiB0ZXh0JyxcbiAgICBkZXNjcmlwdGlvbjogJ1VuZXhwZWN0ZWQgZW5kIG9mIGZpbGUuIEV4cGVjdGVkIHRleHQgb3IgYSBjbG9zaW5nIHRhZycsXG4gICAgdXJsOiBmYWxzZVxuICB9LFxuICAvKiogQHR5cGUge0Vycm9ySW5mb30gKi9cbiAgZW9mSW5TY3JpcHRIdG1sQ29tbWVudExpa2VUZXh0OiB7XG4gICAgcmVhc29uOiAnVW5leHBlY3RlZCBlbmQgb2YgZmlsZSBpbiBjb21tZW50IGluc2lkZSBzY3JpcHQnLFxuICAgIGRlc2NyaXB0aW9uOiAnVW5leHBlY3RlZCBlbmQgb2YgZmlsZS4gRXhwZWN0ZWQgYC0tPmAgdG8gY2xvc2UgdGhlIGNvbW1lbnQnXG4gIH0sXG4gIC8qKiBAdHlwZSB7RXJyb3JJbmZvfSAqL1xuICBlb2ZJblRhZzoge1xuICAgIHJlYXNvbjogJ1VuZXhwZWN0ZWQgZW5kIG9mIGZpbGUgaW4gdGFnJyxcbiAgICBkZXNjcmlwdGlvbjogJ1VuZXhwZWN0ZWQgZW5kIG9mIGZpbGUuIEV4cGVjdGVkIGA+YCB0byBjbG9zZSB0aGUgdGFnJ1xuICB9LFxuICAvKiogQHR5cGUge0Vycm9ySW5mb30gKi9cbiAgaW5jb3JyZWN0bHlDbG9zZWRDb21tZW50OiB7XG4gICAgcmVhc29uOiAnSW5jb3JyZWN0bHkgY2xvc2VkIGNvbW1lbnQnLFxuICAgIGRlc2NyaXB0aW9uOiAnVW5leHBlY3RlZCBgJWMtMWAuIEV4cGVjdGVkIGAtLT5gIHRvIGNsb3NlIHRoZSBjb21tZW50J1xuICB9LFxuICAvKiogQHR5cGUge0Vycm9ySW5mb30gKi9cbiAgaW5jb3JyZWN0bHlPcGVuZWRDb21tZW50OiB7XG4gICAgcmVhc29uOiAnSW5jb3JyZWN0bHkgb3BlbmVkIGNvbW1lbnQnLFxuICAgIGRlc2NyaXB0aW9uOiAnVW5leHBlY3RlZCBgJWNgLiBFeHBlY3RlZCBgPCEtLWAgdG8gb3BlbiB0aGUgY29tbWVudCdcbiAgfSxcbiAgLyoqIEB0eXBlIHtFcnJvckluZm99ICovXG4gIGludmFsaWRDaGFyYWN0ZXJTZXF1ZW5jZUFmdGVyRG9jdHlwZU5hbWU6IHtcbiAgICByZWFzb246ICdJbnZhbGlkIHNlcXVlbmNlIGFmdGVyIGRvY3R5cGUgbmFtZScsXG4gICAgZGVzY3JpcHRpb246ICdVbmV4cGVjdGVkIHNlcXVlbmNlIGF0IGAlY2AuIEV4cGVjdGVkIGBwdWJsaWNgIG9yIGBzeXN0ZW1gJ1xuICB9LFxuICAvKiogQHR5cGUge0Vycm9ySW5mb30gKi9cbiAgaW52YWxpZEZpcnN0Q2hhcmFjdGVyT2ZUYWdOYW1lOiB7XG4gICAgcmVhc29uOiAnSW52YWxpZCBmaXJzdCBjaGFyYWN0ZXIgaW4gdGFnIG5hbWUnLFxuICAgIGRlc2NyaXB0aW9uOiAnVW5leHBlY3RlZCBgJWNgLiBFeHBlY3RlZCBhbiBBU0NJSSBsZXR0ZXIgaW5zdGVhZCdcbiAgfSxcbiAgLyoqIEB0eXBlIHtFcnJvckluZm99ICovXG4gIG1pc3BsYWNlZERvY3R5cGU6IHtcbiAgICByZWFzb246ICdNaXNwbGFjZWQgZG9jdHlwZScsXG4gICAgZGVzY3JpcHRpb246ICdVbmV4cGVjdGVkIGRvY3R5cGUuIEV4cGVjdGVkIGRvY3R5cGUgYmVmb3JlIGhlYWQnLFxuICAgIHVybDogZmFsc2VcbiAgfSxcbiAgLyoqIEB0eXBlIHtFcnJvckluZm99ICovXG4gIG1pc3BsYWNlZFN0YXJ0VGFnRm9ySGVhZEVsZW1lbnQ6IHtcbiAgICByZWFzb246ICdNaXNwbGFjZWQgYDxoZWFkPmAgc3RhcnQgdGFnJyxcbiAgICBkZXNjcmlwdGlvbjpcbiAgICAgICdVbmV4cGVjdGVkIHN0YXJ0IHRhZyBgPGhlYWQ+YC4gRXhwZWN0ZWQgYDxoZWFkPmAgZGlyZWN0bHkgYWZ0ZXIgZG9jdHlwZScsXG4gICAgdXJsOiBmYWxzZVxuICB9LFxuICAvKiogQHR5cGUge0Vycm9ySW5mb30gKi9cbiAgbWlzc2luZ0F0dHJpYnV0ZVZhbHVlOiB7XG4gICAgcmVhc29uOiAnTWlzc2luZyBhdHRyaWJ1dGUgdmFsdWUnLFxuICAgIGRlc2NyaXB0aW9uOlxuICAgICAgJ1VuZXhwZWN0ZWQgYCVjLTFgLiBFeHBlY3RlZCBhbiBhdHRyaWJ1dGUgdmFsdWUgb3Igbm8gYCVjLTFgIGluc3RlYWQnXG4gIH0sXG4gIC8qKiBAdHlwZSB7RXJyb3JJbmZvfSAqL1xuICBtaXNzaW5nRG9jdHlwZToge1xuICAgIHJlYXNvbjogJ01pc3NpbmcgZG9jdHlwZSBiZWZvcmUgb3RoZXIgY29udGVudCcsXG4gICAgZGVzY3JpcHRpb246ICdFeHBlY3RlZCBhIGA8IWRvY3R5cGUgaHRtbD5gIGJlZm9yZSBhbnl0aGluZyBlbHNlJyxcbiAgICB1cmw6IGZhbHNlXG4gIH0sXG4gIC8qKiBAdHlwZSB7RXJyb3JJbmZvfSAqL1xuICBtaXNzaW5nRG9jdHlwZU5hbWU6IHtcbiAgICByZWFzb246ICdNaXNzaW5nIGRvY3R5cGUgbmFtZScsXG4gICAgZGVzY3JpcHRpb246ICdVbmV4cGVjdGVkIGRvY3R5cGUgZW5kIGF0IGAlY2AuIEV4cGVjdGVkIGBodG1sYCBpbnN0ZWFkJ1xuICB9LFxuICAvKiogQHR5cGUge0Vycm9ySW5mb30gKi9cbiAgbWlzc2luZ0RvY3R5cGVQdWJsaWNJZGVudGlmaWVyOiB7XG4gICAgcmVhc29uOiAnTWlzc2luZyBwdWJsaWMgaWRlbnRpZmllciBpbiBkb2N0eXBlJyxcbiAgICBkZXNjcmlwdGlvbjogJ1VuZXhwZWN0ZWQgYCVjYC4gRXhwZWN0ZWQgaWRlbnRpZmllciBmb3IgYHB1YmxpY2AgaW5zdGVhZCdcbiAgfSxcbiAgLyoqIEB0eXBlIHtFcnJvckluZm99ICovXG4gIG1pc3NpbmdEb2N0eXBlU3lzdGVtSWRlbnRpZmllcjoge1xuICAgIHJlYXNvbjogJ01pc3Npbmcgc3lzdGVtIGlkZW50aWZpZXIgaW4gZG9jdHlwZScsXG4gICAgZGVzY3JpcHRpb246XG4gICAgICAnVW5leHBlY3RlZCBgJWNgLiBFeHBlY3RlZCBpZGVudGlmaWVyIGZvciBgc3lzdGVtYCBpbnN0ZWFkIChzdWdnZXN0ZWQ6IGBcImFib3V0OmxlZ2FjeS1jb21wYXRcImApJ1xuICB9LFxuICAvKiogQHR5cGUge0Vycm9ySW5mb30gKi9cbiAgbWlzc2luZ0VuZFRhZ05hbWU6IHtcbiAgICByZWFzb246ICdNaXNzaW5nIG5hbWUgaW4gZW5kIHRhZycsXG4gICAgZGVzY3JpcHRpb246ICdVbmV4cGVjdGVkIGAlY2AuIEV4cGVjdGVkIGFuIEFTQ0lJIGxldHRlciBpbnN0ZWFkJ1xuICB9LFxuICAvKiogQHR5cGUge0Vycm9ySW5mb30gKi9cbiAgbWlzc2luZ1F1b3RlQmVmb3JlRG9jdHlwZVB1YmxpY0lkZW50aWZpZXI6IHtcbiAgICByZWFzb246ICdNaXNzaW5nIHF1b3RlIGJlZm9yZSBwdWJsaWMgaWRlbnRpZmllciBpbiBkb2N0eXBlJyxcbiAgICBkZXNjcmlwdGlvbjogJ1VuZXhwZWN0ZWQgYCVjYC4gRXhwZWN0ZWQgYFwiYCBvciBgXFwnYCBpbnN0ZWFkJ1xuICB9LFxuICAvKiogQHR5cGUge0Vycm9ySW5mb30gKi9cbiAgbWlzc2luZ1F1b3RlQmVmb3JlRG9jdHlwZVN5c3RlbUlkZW50aWZpZXI6IHtcbiAgICByZWFzb246ICdNaXNzaW5nIHF1b3RlIGJlZm9yZSBzeXN0ZW0gaWRlbnRpZmllciBpbiBkb2N0eXBlJyxcbiAgICBkZXNjcmlwdGlvbjogJ1VuZXhwZWN0ZWQgYCVjYC4gRXhwZWN0ZWQgYFwiYCBvciBgXFwnYCBpbnN0ZWFkJ1xuICB9LFxuICAvKiogQHR5cGUge0Vycm9ySW5mb30gKi9cbiAgbWlzc2luZ1NlbWljb2xvbkFmdGVyQ2hhcmFjdGVyUmVmZXJlbmNlOiB7XG4gICAgcmVhc29uOiAnTWlzc2luZyBzZW1pY29sb24gYWZ0ZXIgY2hhcmFjdGVyIHJlZmVyZW5jZScsXG4gICAgZGVzY3JpcHRpb246ICdVbmV4cGVjdGVkIGAlY2AuIEV4cGVjdGVkIGA7YCBpbnN0ZWFkJ1xuICB9LFxuICAvKiogQHR5cGUge0Vycm9ySW5mb30gKi9cbiAgbWlzc2luZ1doaXRlc3BhY2VBZnRlckRvY3R5cGVQdWJsaWNLZXl3b3JkOiB7XG4gICAgcmVhc29uOiAnTWlzc2luZyB3aGl0ZXNwYWNlIGFmdGVyIHB1YmxpYyBpZGVudGlmaWVyIGluIGRvY3R5cGUnLFxuICAgIGRlc2NyaXB0aW9uOiAnVW5leHBlY3RlZCBgJWNgLiBFeHBlY3RlZCBBU0NJSSB3aGl0ZXNwYWNlIGluc3RlYWQnXG4gIH0sXG4gIC8qKiBAdHlwZSB7RXJyb3JJbmZvfSAqL1xuICBtaXNzaW5nV2hpdGVzcGFjZUFmdGVyRG9jdHlwZVN5c3RlbUtleXdvcmQ6IHtcbiAgICByZWFzb246ICdNaXNzaW5nIHdoaXRlc3BhY2UgYWZ0ZXIgc3lzdGVtIGlkZW50aWZpZXIgaW4gZG9jdHlwZScsXG4gICAgZGVzY3JpcHRpb246ICdVbmV4cGVjdGVkIGAlY2AuIEV4cGVjdGVkIEFTQ0lJIHdoaXRlc3BhY2UgaW5zdGVhZCdcbiAgfSxcbiAgLyoqIEB0eXBlIHtFcnJvckluZm99ICovXG4gIG1pc3NpbmdXaGl0ZXNwYWNlQmVmb3JlRG9jdHlwZU5hbWU6IHtcbiAgICByZWFzb246ICdNaXNzaW5nIHdoaXRlc3BhY2UgYmVmb3JlIGRvY3R5cGUgbmFtZScsXG4gICAgZGVzY3JpcHRpb246ICdVbmV4cGVjdGVkIGAlY2AuIEV4cGVjdGVkIEFTQ0lJIHdoaXRlc3BhY2UgaW5zdGVhZCdcbiAgfSxcbiAgLyoqIEB0eXBlIHtFcnJvckluZm99ICovXG4gIG1pc3NpbmdXaGl0ZXNwYWNlQmV0d2VlbkF0dHJpYnV0ZXM6IHtcbiAgICByZWFzb246ICdNaXNzaW5nIHdoaXRlc3BhY2UgYmV0d2VlbiBhdHRyaWJ1dGVzJyxcbiAgICBkZXNjcmlwdGlvbjogJ1VuZXhwZWN0ZWQgYCVjYC4gRXhwZWN0ZWQgQVNDSUkgd2hpdGVzcGFjZSBpbnN0ZWFkJ1xuICB9LFxuICAvKiogQHR5cGUge0Vycm9ySW5mb30gKi9cbiAgbWlzc2luZ1doaXRlc3BhY2VCZXR3ZWVuRG9jdHlwZVB1YmxpY0FuZFN5c3RlbUlkZW50aWZpZXJzOiB7XG4gICAgcmVhc29uOlxuICAgICAgJ01pc3Npbmcgd2hpdGVzcGFjZSBiZXR3ZWVuIHB1YmxpYyBhbmQgc3lzdGVtIGlkZW50aWZpZXJzIGluIGRvY3R5cGUnLFxuICAgIGRlc2NyaXB0aW9uOiAnVW5leHBlY3RlZCBgJWNgLiBFeHBlY3RlZCBBU0NJSSB3aGl0ZXNwYWNlIGluc3RlYWQnXG4gIH0sXG4gIC8qKiBAdHlwZSB7RXJyb3JJbmZvfSAqL1xuICBuZXN0ZWRDb21tZW50OiB7XG4gICAgcmVhc29uOiAnVW5leHBlY3RlZCBuZXN0ZWQgY29tbWVudCcsXG4gICAgZGVzY3JpcHRpb246ICdVbmV4cGVjdGVkIGA8IS0tYC4gRXhwZWN0ZWQgYC0tPmAnXG4gIH0sXG4gIC8qKiBAdHlwZSB7RXJyb3JJbmZvfSAqL1xuICBuZXN0ZWROb3NjcmlwdEluSGVhZDoge1xuICAgIHJlYXNvbjogJ1VuZXhwZWN0ZWQgbmVzdGVkIGA8bm9zY3JpcHQ+YCBpbiBgPGhlYWQ+YCcsXG4gICAgZGVzY3JpcHRpb246XG4gICAgICAnVW5leHBlY3RlZCBgPG5vc2NyaXB0PmAuIEV4cGVjdGVkIGEgY2xvc2luZyB0YWcgb3IgYSBtZXRhIGVsZW1lbnQnLFxuICAgIHVybDogZmFsc2VcbiAgfSxcbiAgLyoqIEB0eXBlIHtFcnJvckluZm99ICovXG4gIG5vbkNvbmZvcm1pbmdEb2N0eXBlOiB7XG4gICAgcmVhc29uOiAnVW5leHBlY3RlZCBub24tY29uZm9ybWluZyBkb2N0eXBlIGRlY2xhcmF0aW9uJyxcbiAgICBkZXNjcmlwdGlvbjpcbiAgICAgICdFeHBlY3RlZCBgPCFkb2N0eXBlIGh0bWw+YCBvciBgPCFkb2N0eXBlIGh0bWwgc3lzdGVtIFwiYWJvdXQ6bGVnYWN5LWNvbXBhdFwiPmAnLFxuICAgIHVybDogZmFsc2VcbiAgfSxcbiAgLyoqIEB0eXBlIHtFcnJvckluZm99ICovXG4gIG5vblZvaWRIdG1sRWxlbWVudFN0YXJ0VGFnV2l0aFRyYWlsaW5nU29saWR1czoge1xuICAgIHJlYXNvbjogJ1VuZXhwZWN0ZWQgdHJhaWxpbmcgc2xhc2ggb24gc3RhcnQgdGFnIG9mIG5vbi12b2lkIGVsZW1lbnQnLFxuICAgIGRlc2NyaXB0aW9uOiAnVW5leHBlY3RlZCBgL2AuIEV4cGVjdGVkIGA+YCBpbnN0ZWFkJ1xuICB9LFxuICAvKiogQHR5cGUge0Vycm9ySW5mb30gKi9cbiAgbm9uY2hhcmFjdGVyQ2hhcmFjdGVyUmVmZXJlbmNlOiB7XG4gICAgcmVhc29uOlxuICAgICAgJ1VuZXhwZWN0ZWQgbm9uY2hhcmFjdGVyIGNvZGUgcG9pbnQgcmVmZXJlbmNlZCBieSBjaGFyYWN0ZXIgcmVmZXJlbmNlJyxcbiAgICBkZXNjcmlwdGlvbjogJ1VuZXhwZWN0ZWQgY29kZSBwb2ludC4gRG8gbm90IHVzZSBub25jaGFyYWN0ZXJzIGluIEhUTUwnXG4gIH0sXG4gIC8qKiBAdHlwZSB7RXJyb3JJbmZvfSAqL1xuICBub25jaGFyYWN0ZXJJbklucHV0U3RyZWFtOiB7XG4gICAgcmVhc29uOiAnVW5leHBlY3RlZCBub25jaGFyYWN0ZXIgY2hhcmFjdGVyJyxcbiAgICBkZXNjcmlwdGlvbjogJ1VuZXhwZWN0ZWQgY29kZSBwb2ludCBgJXhgLiBEbyBub3QgdXNlIG5vbmNoYXJhY3RlcnMgaW4gSFRNTCdcbiAgfSxcbiAgLyoqIEB0eXBlIHtFcnJvckluZm99ICovXG4gIG51bGxDaGFyYWN0ZXJSZWZlcmVuY2U6IHtcbiAgICByZWFzb246ICdVbmV4cGVjdGVkIE5VTEwgY2hhcmFjdGVyIHJlZmVyZW5jZWQgYnkgY2hhcmFjdGVyIHJlZmVyZW5jZScsXG4gICAgZGVzY3JpcHRpb246ICdVbmV4cGVjdGVkIGNvZGUgcG9pbnQuIERvIG5vdCB1c2UgTlVMTCBjaGFyYWN0ZXJzIGluIEhUTUwnXG4gIH0sXG4gIC8qKiBAdHlwZSB7RXJyb3JJbmZvfSAqL1xuICBvcGVuRWxlbWVudHNMZWZ0QWZ0ZXJFb2Y6IHtcbiAgICByZWFzb246ICdVbmV4cGVjdGVkIGVuZCBvZiBmaWxlJyxcbiAgICBkZXNjcmlwdGlvbjogJ1VuZXhwZWN0ZWQgZW5kIG9mIGZpbGUuIEV4cGVjdGVkIGNsb3NpbmcgdGFnIGluc3RlYWQnLFxuICAgIHVybDogZmFsc2VcbiAgfSxcbiAgLyoqIEB0eXBlIHtFcnJvckluZm99ICovXG4gIHN1cnJvZ2F0ZUNoYXJhY3RlclJlZmVyZW5jZToge1xuICAgIHJlYXNvbjogJ1VuZXhwZWN0ZWQgc3Vycm9nYXRlIGNoYXJhY3RlciByZWZlcmVuY2VkIGJ5IGNoYXJhY3RlciByZWZlcmVuY2UnLFxuICAgIGRlc2NyaXB0aW9uOlxuICAgICAgJ1VuZXhwZWN0ZWQgY29kZSBwb2ludC4gRG8gbm90IHVzZSBsb25lIHN1cnJvZ2F0ZSBjaGFyYWN0ZXJzIGluIEhUTUwnXG4gIH0sXG4gIC8qKiBAdHlwZSB7RXJyb3JJbmZvfSAqL1xuICBzdXJyb2dhdGVJbklucHV0U3RyZWFtOiB7XG4gICAgcmVhc29uOiAnVW5leHBlY3RlZCBzdXJyb2dhdGUgY2hhcmFjdGVyJyxcbiAgICBkZXNjcmlwdGlvbjpcbiAgICAgICdVbmV4cGVjdGVkIGNvZGUgcG9pbnQgYCV4YC4gRG8gbm90IHVzZSBsb25lIHN1cnJvZ2F0ZSBjaGFyYWN0ZXJzIGluIEhUTUwnXG4gIH0sXG4gIC8qKiBAdHlwZSB7RXJyb3JJbmZvfSAqL1xuICB1bmV4cGVjdGVkQ2hhcmFjdGVyQWZ0ZXJEb2N0eXBlU3lzdGVtSWRlbnRpZmllcjoge1xuICAgIHJlYXNvbjogJ0ludmFsaWQgY2hhcmFjdGVyIGFmdGVyIHN5c3RlbSBpZGVudGlmaWVyIGluIGRvY3R5cGUnLFxuICAgIGRlc2NyaXB0aW9uOiAnVW5leHBlY3RlZCBjaGFyYWN0ZXIgYXQgYCVjYC4gRXhwZWN0ZWQgYD5gJ1xuICB9LFxuICAvKiogQHR5cGUge0Vycm9ySW5mb30gKi9cbiAgdW5leHBlY3RlZENoYXJhY3RlckluQXR0cmlidXRlTmFtZToge1xuICAgIHJlYXNvbjogJ1VuZXhwZWN0ZWQgY2hhcmFjdGVyIGluIGF0dHJpYnV0ZSBuYW1lJyxcbiAgICBkZXNjcmlwdGlvbjpcbiAgICAgICdVbmV4cGVjdGVkIGAlY2AuIEV4cGVjdGVkIHdoaXRlc3BhY2UsIGAvYCwgYD5gLCBgPWAsIG9yIHByb2JhYmx5IGFuIEFTQ0lJIGxldHRlcidcbiAgfSxcbiAgLyoqIEB0eXBlIHtFcnJvckluZm99ICovXG4gIHVuZXhwZWN0ZWRDaGFyYWN0ZXJJblVucXVvdGVkQXR0cmlidXRlVmFsdWU6IHtcbiAgICByZWFzb246ICdVbmV4cGVjdGVkIGNoYXJhY3RlciBpbiB1bnF1b3RlZCBhdHRyaWJ1dGUgdmFsdWUnLFxuICAgIGRlc2NyaXB0aW9uOiAnVW5leHBlY3RlZCBgJWNgLiBRdW90ZSB0aGUgYXR0cmlidXRlIHZhbHVlIHRvIGluY2x1ZGUgaXQnXG4gIH0sXG4gIC8qKiBAdHlwZSB7RXJyb3JJbmZvfSAqL1xuICB1bmV4cGVjdGVkRXF1YWxzU2lnbkJlZm9yZUF0dHJpYnV0ZU5hbWU6IHtcbiAgICByZWFzb246ICdVbmV4cGVjdGVkIGVxdWFscyBzaWduIGJlZm9yZSBhdHRyaWJ1dGUgbmFtZScsXG4gICAgZGVzY3JpcHRpb246ICdVbmV4cGVjdGVkIGAlY2AuIEFkZCBhbiBhdHRyaWJ1dGUgbmFtZSBiZWZvcmUgaXQnXG4gIH0sXG4gIC8qKiBAdHlwZSB7RXJyb3JJbmZvfSAqL1xuICB1bmV4cGVjdGVkTnVsbENoYXJhY3Rlcjoge1xuICAgIHJlYXNvbjogJ1VuZXhwZWN0ZWQgTlVMTCBjaGFyYWN0ZXInLFxuICAgIGRlc2NyaXB0aW9uOlxuICAgICAgJ1VuZXhwZWN0ZWQgY29kZSBwb2ludCBgJXhgLiBEbyBub3QgdXNlIE5VTEwgY2hhcmFjdGVycyBpbiBIVE1MJ1xuICB9LFxuICAvKiogQHR5cGUge0Vycm9ySW5mb30gKi9cbiAgdW5leHBlY3RlZFF1ZXN0aW9uTWFya0luc3RlYWRPZlRhZ05hbWU6IHtcbiAgICByZWFzb246ICdVbmV4cGVjdGVkIHF1ZXN0aW9uIG1hcmsgaW5zdGVhZCBvZiB0YWcgbmFtZScsXG4gICAgZGVzY3JpcHRpb246ICdVbmV4cGVjdGVkIGAlY2AuIEV4cGVjdGVkIGFuIEFTQ0lJIGxldHRlciBpbnN0ZWFkJ1xuICB9LFxuICAvKiogQHR5cGUge0Vycm9ySW5mb30gKi9cbiAgdW5leHBlY3RlZFNvbGlkdXNJblRhZzoge1xuICAgIHJlYXNvbjogJ1VuZXhwZWN0ZWQgc2xhc2ggaW4gdGFnJyxcbiAgICBkZXNjcmlwdGlvbjpcbiAgICAgICdVbmV4cGVjdGVkIGAlYy0xYC4gRXhwZWN0ZWQgaXQgZm9sbG93ZWQgYnkgYD5gIG9yIGluIGEgcXVvdGVkIGF0dHJpYnV0ZSB2YWx1ZSdcbiAgfSxcbiAgLyoqIEB0eXBlIHtFcnJvckluZm99ICovXG4gIHVua25vd25OYW1lZENoYXJhY3RlclJlZmVyZW5jZToge1xuICAgIHJlYXNvbjogJ1VuZXhwZWN0ZWQgdW5rbm93biBuYW1lZCBjaGFyYWN0ZXIgcmVmZXJlbmNlJyxcbiAgICBkZXNjcmlwdGlvbjpcbiAgICAgICdVbmV4cGVjdGVkIGNoYXJhY3RlciByZWZlcmVuY2UuIEV4cGVjdGVkIGtub3duIG5hbWVkIGNoYXJhY3RlciByZWZlcmVuY2VzJ1xuICB9XG59XG4iLCAiLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdoYXN0JykuUm9vdH0gUm9vdFxuICogQHR5cGVkZWYge2ltcG9ydCgncGFyc2U1JykuUGFyc2VyRXJyb3J9IFBhcnNlckVycm9yXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCd2ZmlsZScpLlZhbHVlfSBWYWx1ZVxuICovXG5cbi8qKlxuICogQHR5cGVkZWYge2tleW9mIGVycm9yc30gRXJyb3JDb2RlXG4gKiAgIEtub3duIG5hbWVzIG9mIHBhcnNlIGVycm9ycy5cbiAqXG4gKiBAdHlwZWRlZiB7UGFydGlhbDxSZWNvcmQ8RXJyb3JDb2RlLCBFcnJvclNldmVyaXR5IHwgbnVsbCB8IHVuZGVmaW5lZD4+fSBFcnJvck9wdGlvbnNcbiAqICAgT3B0aW9ucyB0aGF0IGRlZmluZSB0aGUgc2V2ZXJpdHkgb2YgZXJyb3JzLlxuICpcbiAqIEB0eXBlZGVmIHtib29sZWFuIHwgMCB8IDEgfCAyfSBFcnJvclNldmVyaXR5XG4gKiAgIEVycm9yIHNldmVyaXR5OlxuICpcbiAqICAgKiBgMGAgb3IgYGZhbHNlYFxuICogICAgIFx1MjAxNCB0dXJuIHRoZSBwYXJzZSBlcnJvciBvZmZcbiAqICAgKiBgMWAgb3IgYHRydWVgXG4gKiAgICAgXHUyMDE0IHR1cm4gdGhlIHBhcnNlIGVycm9yIGludG8gYSB3YXJuaW5nXG4gKiAgICogYDJgXG4gKiAgICAgXHUyMDE0IHR1cm4gdGhlIHBhcnNlIGVycm9yIGludG8gYW4gYWN0dWFsIGVycm9yOiBwcm9jZXNzaW5nIHN0b3BzLlxuICpcbiAqIEB0eXBlZGVmIEV4dHJhT3B0aW9uc1xuICogICBPcHRpb25zIHRoYXQgZGVmaW5lIGhvdyB0byBwYXJzZSBIVE1MLlxuICogQHByb3BlcnR5IHtib29sZWFuIHwgbnVsbCB8IHVuZGVmaW5lZH0gW2ZyYWdtZW50PWZhbHNlXVxuICogICBTcGVjaWZ5IHdoZXRoZXIgdG8gcGFyc2UgYSBmcmFnbWVudCwgaW5zdGVhZCBvZiBhIGNvbXBsZXRlIGRvY3VtZW50XG4gKiAgIChkZWZhdWx0OiBgZmFsc2VgKS5cbiAqXG4gKiAgIEluIGRvY3VtZW50IG1vZGUsIHVub3BlbmVkIGBodG1sYCwgYGhlYWRgLCBhbmQgYGJvZHlgIGVsZW1lbnRzIGFyZSBvcGVuZWRcbiAqICAgaW4ganVzdCB0aGUgcmlnaHQgcGxhY2VzLlxuICogQHByb3BlcnR5IHtPbkVycm9yIHwgbnVsbCB8IHVuZGVmaW5lZH0gW29uZXJyb3JdXG4gKiAgIENhbGwgYG9uZXJyb3JgIHdpdGggcGFyc2UgZXJyb3JzIHdoaWxlIHBhcnNpbmcgKG9wdGlvbmFsKS5cbiAqXG4gKiAgID4gXHVEODNEXHVEQzQ5ICoqTm90ZSoqOiBwYXJzZSBlcnJvcnMgYXJlIGN1cnJlbnRseSBiZWluZyBhZGRlZCB0byBIVE1MLlxuICogICA+IE5vdCBhbGwgZXJyb3JzIGVtaXR0ZWQgYnkgcGFyc2U1IChvciB1cykgYXJlIHNwZWNjZWQgeWV0LlxuICogICA+IFNvbWUgZG9jdW1lbnRhdGlvbiBtYXkgc3RpbGwgYmUgbWlzc2luZy5cbiAqXG4gKiAgIFNwZWNpZmljIHJ1bGVzIGNhbiBiZSB0dXJuZWQgb2ZmIGJ5IHNldHRpbmcgdGhlbSB0byBgZmFsc2VgIChvciBgMGApLlxuICogICBUaGUgZGVmYXVsdCwgd2hlbiBgZW1pdFBhcnNlRXJyb3JzOiB0cnVlYCwgaXMgYHRydWVgIChvciBgMWApLCBhbmQgbWVhbnNcbiAqICAgdGhhdCBydWxlcyBlbWl0IGFzIHdhcm5pbmdzLlxuICogICBSdWxlcyBjYW4gYWxzbyBiZSBjb25maWd1cmVkIHdpdGggYDJgLCB0byB0dXJuIHRoZW0gaW50byBmYXRhbCBlcnJvcnMuXG4gKlxuICogQHR5cGVkZWYge09taXQ8aW1wb3J0KCdoYXN0LXV0aWwtZnJvbS1wYXJzZTUnKS5PcHRpb25zLCAnZmlsZSc+fSBGcm9tUGFyc2U1T3B0aW9uc1xuICogICBPcHRpb25zIHRoYXQgY2FuIGJlIHBhc3NlZCB0aHJvdWdoIHRvIGBoYXN0LXV0aWwtZnJvbS1wYXJzZTVgLlxuICpcbiAqIEBjYWxsYmFjayBPbkVycm9yXG4gKiAgIEhhbmRsZSBwYXJzZSBlcnJvcnMuXG4gKiBAcGFyYW0ge1ZGaWxlTWVzc2FnZX0gZXJyb3JcbiAqICAgTWVzc2FnZS5cbiAqIEByZXR1cm5zIHt1bmRlZmluZWQgfCB2b2lkfVxuICogICBOb3RoaW5nLlxuICpcbiAqICAgTm90ZTogYHZvaWRgIGluY2x1ZGVkIHVudGlsIFRTIGluZmVycyBgdW5kZWZpbmVkYCBuaWNlbHkuXG4gKlxuICogQHR5cGVkZWYge0Zyb21QYXJzZTVPcHRpb25zICYgRXJyb3JPcHRpb25zICYgRXh0cmFPcHRpb25zfSBPcHRpb25zXG4gKiAgIENvbmZpZ3VyYXRpb24uXG4gKi9cblxuaW1wb3J0IHtvayBhcyBhc3NlcnR9IGZyb20gJ2RldmxvcCdcbmltcG9ydCB7ZnJvbVBhcnNlNX0gZnJvbSAnaGFzdC11dGlsLWZyb20tcGFyc2U1J1xuaW1wb3J0IHtwYXJzZSwgcGFyc2VGcmFnbWVudH0gZnJvbSAncGFyc2U1J1xuaW1wb3J0IHtWRmlsZX0gZnJvbSAndmZpbGUnXG5pbXBvcnQge1ZGaWxlTWVzc2FnZX0gZnJvbSAndmZpbGUtbWVzc2FnZSdcbmltcG9ydCB7ZXJyb3JzfSBmcm9tICcuL2Vycm9ycy5qcydcblxuY29uc3QgYmFzZSA9ICdodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS9wYXJzaW5nLmh0bWwjcGFyc2UtZXJyb3ItJ1xuXG5jb25zdCBkYXNoVG9DYW1lbFJlID0gLy1bYS16XS9nXG5jb25zdCBmb3JtYXRDUmUgPSAvJWMoPzooWy0rXSkoXFxkKykpPy9nXG5jb25zdCBmb3JtYXRYUmUgPSAvJXgvZ1xuXG5jb25zdCBmYXRhbGl0aWVzID0gezI6IHRydWUsIDE6IGZhbHNlLCAwOiBudWxsfVxuXG4vKiogQHR5cGUge1JlYWRvbmx5PE9wdGlvbnM+fSAqL1xuY29uc3QgZW1wdHlPcHRpb25zID0ge31cblxuLyoqXG4gKiBUdXJuIHNlcmlhbGl6ZWQgSFRNTCBpbnRvIGEgaGFzdCB0cmVlLlxuICpcbiAqIEBwYXJhbSB7VkZpbGUgfCBWYWx1ZX0gdmFsdWVcbiAqICAgU2VyaWFsaXplZCBIVE1MIHRvIHBhcnNlLlxuICogQHBhcmFtIHtSZWFkb25seTxPcHRpb25zPiB8IG51bGwgfCB1bmRlZmluZWR9IFtvcHRpb25zXVxuICogICBDb25maWd1cmF0aW9uIChvcHRpb25hbCkuXG4gKiBAcmV0dXJucyB7Um9vdH1cbiAqICAgVHJlZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZyb21IdG1sKHZhbHVlLCBvcHRpb25zKSB7XG4gIGNvbnN0IHNldHRpbmdzID0gb3B0aW9ucyB8fCBlbXB0eU9wdGlvbnNcbiAgY29uc3Qgb25lcnJvciA9IHNldHRpbmdzLm9uZXJyb3JcbiAgY29uc3QgZmlsZSA9IHZhbHVlIGluc3RhbmNlb2YgVkZpbGUgPyB2YWx1ZSA6IG5ldyBWRmlsZSh2YWx1ZSlcbiAgY29uc3QgZm4gPSBzZXR0aW5ncy5mcmFnbWVudCA/IHBhcnNlRnJhZ21lbnQgOiBwYXJzZVxuICBjb25zdCBkb2MgPSBTdHJpbmcoZmlsZSlcbiAgY29uc3QgcDVkb2MgPSBmbihkb2MsIHtcbiAgICBzb3VyY2VDb2RlTG9jYXRpb25JbmZvOiB0cnVlLFxuICAgIC8vIE5vdGUgYHBhcnNlNWAgdHlwZXMgY3VycmVudGx5IGRvIG5vdCBhbGxvdyBgdW5kZWZpbmVkYC5cbiAgICBvblBhcnNlRXJyb3I6IHNldHRpbmdzLm9uZXJyb3IgPyBpbnRlcm5hbE9uZXJyb3IgOiBudWxsLFxuICAgIHNjcmlwdGluZ0VuYWJsZWQ6IGZhbHNlXG4gIH0pXG5cbiAgLy8gYHBhcnNlNWAgcmV0dXJucyBkb2N1bWVudCB3aGljaCBhcmUgYWx3YXlzIG1hcHBlZCB0byByb290cy5cbiAgcmV0dXJuIC8qKiBAdHlwZSB7Um9vdH0gKi8gKFxuICAgIGZyb21QYXJzZTUocDVkb2MsIHtcbiAgICAgIGZpbGUsXG4gICAgICBzcGFjZTogc2V0dGluZ3Muc3BhY2UsXG4gICAgICB2ZXJib3NlOiBzZXR0aW5ncy52ZXJib3NlXG4gICAgfSlcbiAgKVxuXG4gIC8qKlxuICAgKiBIYW5kbGUgYSBwYXJzZSBlcnJvci5cbiAgICpcbiAgICogQHBhcmFtIHtQYXJzZXJFcnJvcn0gZXJyb3JcbiAgICogICBQYXJzZTUgZXJyb3IuXG4gICAqIEByZXR1cm5zIHt1bmRlZmluZWR9XG4gICAqICAgTm90aGluZy5cbiAgICovXG4gIGZ1bmN0aW9uIGludGVybmFsT25lcnJvcihlcnJvcikge1xuICAgIGNvbnN0IGNvZGUgPSBlcnJvci5jb2RlXG4gICAgY29uc3QgbmFtZSA9IGNhbWVsY2FzZShjb2RlKVxuICAgIGNvbnN0IHNldHRpbmcgPSBzZXR0aW5nc1tuYW1lXVxuICAgIGNvbnN0IGNvbmZpZyA9IHNldHRpbmcgPT09IG51bGwgfHwgc2V0dGluZyA9PT0gdW5kZWZpbmVkID8gdHJ1ZSA6IHNldHRpbmdcbiAgICBjb25zdCBsZXZlbCA9IHR5cGVvZiBjb25maWcgPT09ICdudW1iZXInID8gY29uZmlnIDogY29uZmlnID8gMSA6IDBcblxuICAgIGlmIChsZXZlbCkge1xuICAgICAgY29uc3QgaW5mbyA9IGVycm9yc1tuYW1lXVxuICAgICAgYXNzZXJ0KGluZm8sICdleHBlY3RlZCBrbm93biBlcnJvciBmcm9tIGBwYXJzZTVgJylcblxuICAgICAgY29uc3QgbWVzc2FnZSA9IG5ldyBWRmlsZU1lc3NhZ2UoZm9ybWF0KGluZm8ucmVhc29uKSwge1xuICAgICAgICBwbGFjZToge1xuICAgICAgICAgIHN0YXJ0OiB7XG4gICAgICAgICAgICBsaW5lOiBlcnJvci5zdGFydExpbmUsXG4gICAgICAgICAgICBjb2x1bW46IGVycm9yLnN0YXJ0Q29sLFxuICAgICAgICAgICAgb2Zmc2V0OiBlcnJvci5zdGFydE9mZnNldFxuICAgICAgICAgIH0sXG4gICAgICAgICAgZW5kOiB7XG4gICAgICAgICAgICBsaW5lOiBlcnJvci5lbmRMaW5lLFxuICAgICAgICAgICAgY29sdW1uOiBlcnJvci5lbmRDb2wsXG4gICAgICAgICAgICBvZmZzZXQ6IGVycm9yLmVuZE9mZnNldFxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgcnVsZUlkOiBjb2RlLFxuICAgICAgICBzb3VyY2U6ICdoYXN0LXV0aWwtZnJvbS1odG1sJ1xuICAgICAgfSlcblxuICAgICAgaWYgKGZpbGUucGF0aCkge1xuICAgICAgICBtZXNzYWdlLmZpbGUgPSBmaWxlLnBhdGhcbiAgICAgICAgbWVzc2FnZS5uYW1lID0gZmlsZS5wYXRoICsgJzonICsgbWVzc2FnZS5uYW1lXG4gICAgICB9XG5cbiAgICAgIG1lc3NhZ2UuZmF0YWwgPSBmYXRhbGl0aWVzW2xldmVsXVxuICAgICAgbWVzc2FnZS5ub3RlID0gZm9ybWF0KGluZm8uZGVzY3JpcHRpb24pXG4gICAgICBtZXNzYWdlLnVybCA9IGluZm8udXJsID09PSBmYWxzZSA/IHVuZGVmaW5lZCA6IGJhc2UgKyBjb2RlXG5cbiAgICAgIGFzc2VydChvbmVycm9yLCAnYGludGVybmFsT25lcnJvcmAgaXMgbm90IHBhc3NlZCBpZiBgb25lcnJvcmAgaXMgbm90IHNldCcpXG4gICAgICBvbmVycm9yKG1lc3NhZ2UpXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRm9ybWF0IGEgaHVtYW4gcmVhZGFibGUgc3RyaW5nIGFib3V0IGFuIGVycm9yLlxuICAgICAqXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlXG4gICAgICogICBWYWx1ZSB0byBmb3JtYXQuXG4gICAgICogQHJldHVybnMge3N0cmluZ31cbiAgICAgKiAgIEZvcm1hdHRlZC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBmb3JtYXQodmFsdWUpIHtcbiAgICAgIHJldHVybiB2YWx1ZS5yZXBsYWNlKGZvcm1hdENSZSwgZm9ybWF0QykucmVwbGFjZShmb3JtYXRYUmUsIGZvcm1hdFgpXG5cbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0IHRoZSBjaGFyYWN0ZXIuXG4gICAgICAgKlxuICAgICAgICogQHBhcmFtIHtzdHJpbmd9IF9cbiAgICAgICAqICAgTWF0Y2guXG4gICAgICAgKiBAcGFyYW0ge3N0cmluZ30gJDFcbiAgICAgICAqICAgU2lnbiAoYC1gIG9yIGArYCwgb3B0aW9uYWwpLlxuICAgICAgICogQHBhcmFtIHtzdHJpbmd9ICQyXG4gICAgICAgKiAgIE9mZnNldC5cbiAgICAgICAqIEByZXR1cm5zIHtzdHJpbmd9XG4gICAgICAgKiAgIEZvcm1hdHRlZC5cbiAgICAgICAqL1xuICAgICAgZnVuY3Rpb24gZm9ybWF0QyhfLCAkMSwgJDIpIHtcbiAgICAgICAgY29uc3Qgb2Zmc2V0ID1cbiAgICAgICAgICAoJDIgPyBOdW1iZXIucGFyc2VJbnQoJDIsIDEwKSA6IDApICogKCQxID09PSAnLScgPyAtMSA6IDEpXG4gICAgICAgIGNvbnN0IGNoYXIgPSBkb2MuY2hhckF0KGVycm9yLnN0YXJ0T2Zmc2V0ICsgb2Zmc2V0KVxuICAgICAgICByZXR1cm4gdmlzdWFsaXplQ2hhcmFjdGVyKGNoYXIpXG4gICAgICB9XG5cbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0IHRoZSBjaGFyYWN0ZXIgY29kZS5cbiAgICAgICAqXG4gICAgICAgKiBAcmV0dXJucyB7c3RyaW5nfVxuICAgICAgICogICBGb3JtYXR0ZWQuXG4gICAgICAgKi9cbiAgICAgIGZ1bmN0aW9uIGZvcm1hdFgoKSB7XG4gICAgICAgIHJldHVybiB2aXN1YWxpemVDaGFyYWN0ZXJDb2RlKGRvYy5jaGFyQ29kZUF0KGVycm9yLnN0YXJ0T2Zmc2V0KSlcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBAcGFyYW0ge3N0cmluZ30gdmFsdWVcbiAqICAgRXJyb3IgY29kZSBpbiBkYXNoIGNhc2UuXG4gKiBAcmV0dXJucyB7RXJyb3JDb2RlfVxuICogICBFcnJvciBjb2RlIGluIGNhbWVsY2FzZS5cbiAqL1xuZnVuY3Rpb24gY2FtZWxjYXNlKHZhbHVlKSB7XG4gIC8vIFRoaXMgc2hvdWxkIG1hdGNoIGFuIGVycm9yIGNvZGUuXG4gIHJldHVybiAvKiogQHR5cGUge0Vycm9yQ29kZX0gKi8gKHZhbHVlLnJlcGxhY2UoZGFzaFRvQ2FtZWxSZSwgZGFzaFRvQ2FtZWwpKVxufVxuXG4vKipcbiAqIEBwYXJhbSB7c3RyaW5nfSAkMFxuICogICBNYXRjaC5cbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKiAgIENhbWVsY2FzZWQuXG4gKi9cbmZ1bmN0aW9uIGRhc2hUb0NhbWVsKCQwKSB7XG4gIHJldHVybiAkMC5jaGFyQXQoMSkudG9VcHBlckNhc2UoKVxufVxuXG4vKipcbiAqIEBwYXJhbSB7c3RyaW5nfSBjaGFyXG4gKiAgIENoYXJhY3Rlci5cbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKiAgIEZvcm1hdHRlZC5cbiAqL1xuZnVuY3Rpb24gdmlzdWFsaXplQ2hhcmFjdGVyKGNoYXIpIHtcbiAgcmV0dXJuIGNoYXIgPT09ICdgJyA/ICdgIGAgYCcgOiBjaGFyXG59XG5cbi8qKlxuICogQHBhcmFtIHtudW1iZXJ9IGNoYXJDb2RlXG4gKiAgIENoYXJhY3RlciBjb2RlLlxuICogQHJldHVybnMge3N0cmluZ31cbiAqICAgRm9ybWF0dGVkLlxuICovXG5mdW5jdGlvbiB2aXN1YWxpemVDaGFyYWN0ZXJDb2RlKGNoYXJDb2RlKSB7XG4gIHJldHVybiAnMHgnICsgY2hhckNvZGUudG9TdHJpbmcoMTYpLnRvVXBwZXJDYXNlKClcbn1cbiIsICIvKipcbiAqIExpc3Qgb2YgSFRNTCB2b2lkIHRhZyBuYW1lcy5cbiAqXG4gKiBAdHlwZSB7QXJyYXk8c3RyaW5nPn1cbiAqL1xuZXhwb3J0IGNvbnN0IGh0bWxWb2lkRWxlbWVudHMgPSBbXG4gICdhcmVhJyxcbiAgJ2Jhc2UnLFxuICAnYmFzZWZvbnQnLFxuICAnYmdzb3VuZCcsXG4gICdicicsXG4gICdjb2wnLFxuICAnY29tbWFuZCcsXG4gICdlbWJlZCcsXG4gICdmcmFtZScsXG4gICdocicsXG4gICdpbWFnZScsXG4gICdpbWcnLFxuICAnaW5wdXQnLFxuICAna2V5Z2VuJyxcbiAgJ2xpbmsnLFxuICAnbWV0YScsXG4gICdwYXJhbScsXG4gICdzb3VyY2UnLFxuICAndHJhY2snLFxuICAnd2JyJ1xuXVxuIiwgIi8qKlxuICogQGNhbGxiYWNrIEhhbmRsZXJcbiAqICAgSGFuZGxlIGEgdmFsdWUsIHdpdGggYSBjZXJ0YWluIElEIGZpZWxkIHNldCB0byBhIGNlcnRhaW4gdmFsdWUuXG4gKiAgIFRoZSBJRCBmaWVsZCBpcyBwYXNzZWQgdG8gYHp3aXRjaGAsIGFuZCBpdFx1MjAxOXMgdmFsdWUgaXMgdGhpcyBmdW5jdGlvblx1MjAxOXNcbiAqICAgcGxhY2Ugb24gdGhlIGBoYW5kbGVyc2AgcmVjb3JkLlxuICogQHBhcmFtIHsuLi5hbnl9IHBhcmFtZXRlcnNcbiAqICAgQXJiaXRyYXJ5IHBhcmFtZXRlcnMgcGFzc2VkIHRvIHRoZSB6d2l0Y2guXG4gKiAgIFRoZSBmaXJzdCB3aWxsIGJlIGFuIG9iamVjdCB3aXRoIGEgY2VydGFpbiBJRCBmaWVsZCBzZXQgdG8gYSBjZXJ0YWluIHZhbHVlLlxuICogQHJldHVybnMge2FueX1cbiAqICAgQW55dGhpbmchXG4gKi9cblxuLyoqXG4gKiBAY2FsbGJhY2sgVW5rbm93bkhhbmRsZXJcbiAqICAgSGFuZGxlIHZhbHVlcyB0aGF0IGRvIGhhdmUgYSBjZXJ0YWluIElEIGZpZWxkLCBidXQgaXRcdTIwMTlzIHNldCB0byBhIHZhbHVlXG4gKiAgIHRoYXQgaXMgbm90IGxpc3RlZCBpbiB0aGUgYGhhbmRsZXJzYCByZWNvcmQuXG4gKiBAcGFyYW0ge3Vua25vd259IHZhbHVlXG4gKiAgIEFuIG9iamVjdCB3aXRoIGEgY2VydGFpbiBJRCBmaWVsZCBzZXQgdG8gYW4gdW5rbm93biB2YWx1ZS5cbiAqIEBwYXJhbSB7Li4uYW55fSByZXN0XG4gKiAgIEFyYml0cmFyeSBwYXJhbWV0ZXJzIHBhc3NlZCB0byB0aGUgendpdGNoLlxuICogQHJldHVybnMge2FueX1cbiAqICAgQW55dGhpbmchXG4gKi9cblxuLyoqXG4gKiBAY2FsbGJhY2sgSW52YWxpZEhhbmRsZXJcbiAqICAgSGFuZGxlIHZhbHVlcyB0aGF0IGRvIG5vdCBoYXZlIGEgY2VydGFpbiBJRCBmaWVsZC5cbiAqIEBwYXJhbSB7dW5rbm93bn0gdmFsdWVcbiAqICAgQW55IHVua25vd24gdmFsdWUuXG4gKiBAcGFyYW0gey4uLmFueX0gcmVzdFxuICogICBBcmJpdHJhcnkgcGFyYW1ldGVycyBwYXNzZWQgdG8gdGhlIHp3aXRjaC5cbiAqIEByZXR1cm5zIHt2b2lkfG51bGx8dW5kZWZpbmVkfG5ldmVyfVxuICogICBUaGlzIHNob3VsZCBjcmFzaCBvciByZXR1cm4gbm90aGluZy5cbiAqL1xuXG4vKipcbiAqIEB0ZW1wbGF0ZSB7SW52YWxpZEhhbmRsZXJ9IFtJbnZhbGlkPUludmFsaWRIYW5kbGVyXVxuICogQHRlbXBsYXRlIHtVbmtub3duSGFuZGxlcn0gW1Vua25vd249VW5rbm93bkhhbmRsZXJdXG4gKiBAdGVtcGxhdGUge1JlY29yZDxzdHJpbmcsIEhhbmRsZXI+fSBbSGFuZGxlcnM9UmVjb3JkPHN0cmluZywgSGFuZGxlcj5dXG4gKiBAdHlwZWRlZiBPcHRpb25zXG4gKiAgIENvbmZpZ3VyYXRpb24gKHJlcXVpcmVkKS5cbiAqIEBwcm9wZXJ0eSB7SW52YWxpZH0gW2ludmFsaWRdXG4gKiAgIEhhbmRsZXIgdG8gdXNlIGZvciBpbnZhbGlkIHZhbHVlcy5cbiAqIEBwcm9wZXJ0eSB7VW5rbm93bn0gW3Vua25vd25dXG4gKiAgIEhhbmRsZXIgdG8gdXNlIGZvciB1bmtub3duIHZhbHVlcy5cbiAqIEBwcm9wZXJ0eSB7SGFuZGxlcnN9IFtoYW5kbGVyc11cbiAqICAgSGFuZGxlcnMgdG8gdXNlLlxuICovXG5cbmNvbnN0IG93biA9IHt9Lmhhc093blByb3BlcnR5XG5cbi8qKlxuICogSGFuZGxlIHZhbHVlcyBiYXNlZCBvbiBhIGZpZWxkLlxuICpcbiAqIEB0ZW1wbGF0ZSB7SW52YWxpZEhhbmRsZXJ9IFtJbnZhbGlkPUludmFsaWRIYW5kbGVyXVxuICogQHRlbXBsYXRlIHtVbmtub3duSGFuZGxlcn0gW1Vua25vd249VW5rbm93bkhhbmRsZXJdXG4gKiBAdGVtcGxhdGUge1JlY29yZDxzdHJpbmcsIEhhbmRsZXI+fSBbSGFuZGxlcnM9UmVjb3JkPHN0cmluZywgSGFuZGxlcj5dXG4gKiBAcGFyYW0ge3N0cmluZ30ga2V5XG4gKiAgIEZpZWxkIHRvIHN3aXRjaCBvbi5cbiAqIEBwYXJhbSB7T3B0aW9uczxJbnZhbGlkLCBVbmtub3duLCBIYW5kbGVycz59IFtvcHRpb25zXVxuICogICBDb25maWd1cmF0aW9uIChyZXF1aXJlZCkuXG4gKiBAcmV0dXJucyB7e3Vua25vd246IFVua25vd24sIGludmFsaWQ6IEludmFsaWQsIGhhbmRsZXJzOiBIYW5kbGVycywgKC4uLnBhcmFtZXRlcnM6IFBhcmFtZXRlcnM8SGFuZGxlcnNba2V5b2YgSGFuZGxlcnNdPik6IFJldHVyblR5cGU8SGFuZGxlcnNba2V5b2YgSGFuZGxlcnNdPiwgKC4uLnBhcmFtZXRlcnM6IFBhcmFtZXRlcnM8VW5rbm93bj4pOiBSZXR1cm5UeXBlPFVua25vd24+fX1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHp3aXRjaChrZXksIG9wdGlvbnMpIHtcbiAgY29uc3Qgc2V0dGluZ3MgPSBvcHRpb25zIHx8IHt9XG5cbiAgLyoqXG4gICAqIEhhbmRsZSBvbmUgdmFsdWUuXG4gICAqXG4gICAqIEJhc2VkIG9uIHRoZSBib3VuZCBga2V5YCwgYSByZXNwZWN0aXZlIGhhbmRsZXIgd2lsbCBiZSBjYWxsZWQuXG4gICAqIElmIGB2YWx1ZWAgaXMgbm90IGFuIG9iamVjdCwgb3IgZG9lc25cdTIwMTl0IGhhdmUgYSBga2V5YCBwcm9wZXJ0eSwgdGhlIHNwZWNpYWxcbiAgICogXHUyMDFDaW52YWxpZFx1MjAxRCBoYW5kbGVyIHdpbGwgYmUgY2FsbGVkLlxuICAgKiBJZiBgdmFsdWVgIGhhcyBhbiB1bmtub3duIGBrZXlgLCB0aGUgc3BlY2lhbCBcdTIwMUN1bmtub3duXHUyMDFEIGhhbmRsZXIgd2lsbCBiZVxuICAgKiBjYWxsZWQuXG4gICAqXG4gICAqIEFsbCBhcmd1bWVudHMsIGFuZCB0aGUgY29udGV4dCBvYmplY3QsIGFyZSBwYXNzZWQgdGhyb3VnaCB0byB0aGUgaGFuZGxlcixcbiAgICogYW5kIGl0XHUyMDE5cyByZXN1bHQgaXMgcmV0dXJuZWQuXG4gICAqXG4gICAqIEB0aGlzIHt1bmtub3dufVxuICAgKiAgIEFueSBjb250ZXh0IG9iamVjdC5cbiAgICogQHBhcmFtIHt1bmtub3dufSBbdmFsdWVdXG4gICAqICAgQW55IHZhbHVlLlxuICAgKiBAcGFyYW0gey4uLnVua25vd259IHBhcmFtZXRlcnNcbiAgICogICBBcmJpdHJhcnkgcGFyYW1ldGVycyBwYXNzZWQgdG8gdGhlIHp3aXRjaC5cbiAgICogQHByb3BlcnR5IHtIYW5kbGVyfSBpbnZhbGlkXG4gICAqICAgSGFuZGxlIGZvciB2YWx1ZXMgdGhhdCBkbyBub3QgaGF2ZSBhIGNlcnRhaW4gSUQgZmllbGQuXG4gICAqIEBwcm9wZXJ0eSB7SGFuZGxlcn0gdW5rbm93blxuICAgKiAgIEhhbmRsZSB2YWx1ZXMgdGhhdCBkbyBoYXZlIGEgY2VydGFpbiBJRCBmaWVsZCwgYnV0IGl0XHUyMDE5cyBzZXQgdG8gYSB2YWx1ZVxuICAgKiAgIHRoYXQgaXMgbm90IGxpc3RlZCBpbiB0aGUgYGhhbmRsZXJzYCByZWNvcmQuXG4gICAqIEBwcm9wZXJ0eSB7SGFuZGxlcnN9IGhhbmRsZXJzXG4gICAqICAgUmVjb3JkIG9mIGhhbmRsZXJzLlxuICAgKiBAcmV0dXJucyB7dW5rbm93bn1cbiAgICogICBBbnl0aGluZy5cbiAgICovXG4gIGZ1bmN0aW9uIG9uZSh2YWx1ZSwgLi4ucGFyYW1ldGVycykge1xuICAgIC8qKiBAdHlwZSB7SGFuZGxlcnx1bmRlZmluZWR9ICovXG4gICAgbGV0IGZuID0gb25lLmludmFsaWRcbiAgICBjb25zdCBoYW5kbGVycyA9IG9uZS5oYW5kbGVyc1xuXG4gICAgaWYgKHZhbHVlICYmIG93bi5jYWxsKHZhbHVlLCBrZXkpKSB7XG4gICAgICAvLyBAdHMtZXhwZWN0LWVycm9yIEluZGV4YWJsZS5cbiAgICAgIGNvbnN0IGlkID0gU3RyaW5nKHZhbHVlW2tleV0pXG4gICAgICAvLyBAdHMtZXhwZWN0LWVycm9yIEluZGV4YWJsZS5cbiAgICAgIGZuID0gb3duLmNhbGwoaGFuZGxlcnMsIGlkKSA/IGhhbmRsZXJzW2lkXSA6IG9uZS51bmtub3duXG4gICAgfVxuXG4gICAgaWYgKGZuKSB7XG4gICAgICByZXR1cm4gZm4uY2FsbCh0aGlzLCB2YWx1ZSwgLi4ucGFyYW1ldGVycylcbiAgICB9XG4gIH1cblxuICBvbmUuaGFuZGxlcnMgPSBzZXR0aW5ncy5oYW5kbGVycyB8fCB7fVxuICBvbmUuaW52YWxpZCA9IHNldHRpbmdzLmludmFsaWRcbiAgb25lLnVua25vd24gPSBzZXR0aW5ncy51bmtub3duXG5cbiAgLy8gQHRzLWV4cGVjdC1lcnJvcjogbWF0Y2hlcyFcbiAgcmV0dXJuIG9uZVxufVxuIiwgIi8qKlxuICogQHR5cGVkZWYgQ29yZU9wdGlvbnNcbiAqIEBwcm9wZXJ0eSB7QXJyYXk8c3RyaW5nPn0gW3N1YnNldD1bXV1cbiAqICAgV2hldGhlciB0byBvbmx5IGVzY2FwZSB0aGUgZ2l2ZW4gc3Vic2V0IG9mIGNoYXJhY3RlcnMuXG4gKiBAcHJvcGVydHkge2Jvb2xlYW59IFtlc2NhcGVPbmx5PWZhbHNlXVxuICogICBXaGV0aGVyIHRvIG9ubHkgZXNjYXBlIHBvc3NpYmx5IGRhbmdlcm91cyBjaGFyYWN0ZXJzLlxuICogICBUaG9zZSBjaGFyYWN0ZXJzIGFyZSBgXCJgLCBgJmAsIGAnYCwgYDxgLCBgPmAsIGFuZCBgYCBgIGBgLlxuICpcbiAqIEB0eXBlZGVmIEZvcm1hdE9wdGlvbnNcbiAqIEBwcm9wZXJ0eSB7KGNvZGU6IG51bWJlciwgbmV4dDogbnVtYmVyLCBvcHRpb25zOiBDb3JlV2l0aEZvcm1hdE9wdGlvbnMpID0+IHN0cmluZ30gZm9ybWF0XG4gKiAgIEZvcm1hdCBzdHJhdGVneS5cbiAqXG4gKiBAdHlwZWRlZiB7Q29yZU9wdGlvbnMgJiBGb3JtYXRPcHRpb25zICYgaW1wb3J0KCcuL3V0aWwvZm9ybWF0LXNtYXJ0LmpzJykuRm9ybWF0U21hcnRPcHRpb25zfSBDb3JlV2l0aEZvcm1hdE9wdGlvbnNcbiAqL1xuXG4vKipcbiAqIEVuY29kZSBjZXJ0YWluIGNoYXJhY3RlcnMgaW4gYHZhbHVlYC5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gdmFsdWVcbiAqIEBwYXJhbSB7Q29yZVdpdGhGb3JtYXRPcHRpb25zfSBvcHRpb25zXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICovXG5leHBvcnQgZnVuY3Rpb24gY29yZSh2YWx1ZSwgb3B0aW9ucykge1xuICB2YWx1ZSA9IHZhbHVlLnJlcGxhY2UoXG4gICAgb3B0aW9ucy5zdWJzZXQgPyBjaGFyYWN0ZXJzVG9FeHByZXNzaW9uKG9wdGlvbnMuc3Vic2V0KSA6IC9bXCImJzw+YF0vZyxcbiAgICBiYXNpY1xuICApXG5cbiAgaWYgKG9wdGlvbnMuc3Vic2V0IHx8IG9wdGlvbnMuZXNjYXBlT25seSkge1xuICAgIHJldHVybiB2YWx1ZVxuICB9XG5cbiAgcmV0dXJuIChcbiAgICB2YWx1ZVxuICAgICAgLy8gU3Vycm9nYXRlIHBhaXJzLlxuICAgICAgLnJlcGxhY2UoL1tcXHVEODAwLVxcdURCRkZdW1xcdURDMDAtXFx1REZGRl0vZywgc3Vycm9nYXRlKVxuICAgICAgLy8gQk1QIGNvbnRyb2wgY2hhcmFjdGVycyAoQzAgZXhjZXB0IGZvciBMRiwgQ1IsIFNQOyBERUw7IGFuZCBzb21lIG1vcmVcbiAgICAgIC8vIG5vbi1BU0NJSSBvbmVzKS5cbiAgICAgIC5yZXBsYWNlKFxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29udHJvbC1yZWdleCwgdW5pY29ybi9uby1oZXgtZXNjYXBlXG4gICAgICAgIC9bXFx4MDEtXFx0XFx2XFxmXFx4MEUtXFx4MUZcXHg3RlxceDgxXFx4OERcXHg4RlxceDkwXFx4OURcXHhBMC1cXHVGRkZGXS9nLFxuICAgICAgICBiYXNpY1xuICAgICAgKVxuICApXG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBwYWlyXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBpbmRleFxuICAgKiBAcGFyYW0ge3N0cmluZ30gYWxsXG4gICAqL1xuICBmdW5jdGlvbiBzdXJyb2dhdGUocGFpciwgaW5kZXgsIGFsbCkge1xuICAgIHJldHVybiBvcHRpb25zLmZvcm1hdChcbiAgICAgIChwYWlyLmNoYXJDb2RlQXQoMCkgLSAweGQ4MDApICogMHg0MDAgK1xuICAgICAgICBwYWlyLmNoYXJDb2RlQXQoMSkgLVxuICAgICAgICAweGRjMDAgK1xuICAgICAgICAweDEwMDAwLFxuICAgICAgYWxsLmNoYXJDb2RlQXQoaW5kZXggKyAyKSxcbiAgICAgIG9wdGlvbnNcbiAgICApXG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtzdHJpbmd9IGNoYXJhY3RlclxuICAgKiBAcGFyYW0ge251bWJlcn0gaW5kZXhcbiAgICogQHBhcmFtIHtzdHJpbmd9IGFsbFxuICAgKi9cbiAgZnVuY3Rpb24gYmFzaWMoY2hhcmFjdGVyLCBpbmRleCwgYWxsKSB7XG4gICAgcmV0dXJuIG9wdGlvbnMuZm9ybWF0KFxuICAgICAgY2hhcmFjdGVyLmNoYXJDb2RlQXQoMCksXG4gICAgICBhbGwuY2hhckNvZGVBdChpbmRleCArIDEpLFxuICAgICAgb3B0aW9uc1xuICAgIClcbiAgfVxufVxuXG4vKipcbiAqIEBwYXJhbSB7QXJyYXk8c3RyaW5nPn0gc3Vic2V0XG4gKiBAcmV0dXJucyB7UmVnRXhwfVxuICovXG5mdW5jdGlvbiBjaGFyYWN0ZXJzVG9FeHByZXNzaW9uKHN1YnNldCkge1xuICAvKiogQHR5cGUge0FycmF5PHN0cmluZz59ICovXG4gIGNvbnN0IGdyb3VwcyA9IFtdXG4gIGxldCBpbmRleCA9IC0xXG5cbiAgd2hpbGUgKCsraW5kZXggPCBzdWJzZXQubGVuZ3RoKSB7XG4gICAgZ3JvdXBzLnB1c2goc3Vic2V0W2luZGV4XS5yZXBsYWNlKC9bfFxcXFx7fSgpW1xcXV4kKyo/Ll0vZywgJ1xcXFwkJicpKVxuICB9XG5cbiAgcmV0dXJuIG5ldyBSZWdFeHAoJyg/OicgKyBncm91cHMuam9pbignfCcpICsgJyknLCAnZycpXG59XG4iLCAiLyoqXG4gKiBDb25maWd1cmFibGUgd2F5cyB0byBlbmNvZGUgY2hhcmFjdGVycyBhcyBoZXhhZGVjaW1hbCByZWZlcmVuY2VzLlxuICpcbiAqIEBwYXJhbSB7bnVtYmVyfSBjb2RlXG4gKiBAcGFyYW0ge251bWJlcn0gbmV4dFxuICogQHBhcmFtIHtib29sZWFufHVuZGVmaW5lZH0gb21pdFxuICogQHJldHVybnMge3N0cmluZ31cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvSGV4YWRlY2ltYWwoY29kZSwgbmV4dCwgb21pdCkge1xuICBjb25zdCB2YWx1ZSA9ICcmI3gnICsgY29kZS50b1N0cmluZygxNikudG9VcHBlckNhc2UoKVxuICByZXR1cm4gb21pdCAmJiBuZXh0ICYmICEvW1xcZEEtRmEtZl0vLnRlc3QoU3RyaW5nLmZyb21DaGFyQ29kZShuZXh0KSlcbiAgICA/IHZhbHVlXG4gICAgOiB2YWx1ZSArICc7J1xufVxuIiwgIi8qKlxuICogQ29uZmlndXJhYmxlIHdheXMgdG8gZW5jb2RlIGNoYXJhY3RlcnMgYXMgZGVjaW1hbCByZWZlcmVuY2VzLlxuICpcbiAqIEBwYXJhbSB7bnVtYmVyfSBjb2RlXG4gKiBAcGFyYW0ge251bWJlcn0gbmV4dFxuICogQHBhcmFtIHtib29sZWFufHVuZGVmaW5lZH0gb21pdFxuICogQHJldHVybnMge3N0cmluZ31cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvRGVjaW1hbChjb2RlLCBuZXh0LCBvbWl0KSB7XG4gIGNvbnN0IHZhbHVlID0gJyYjJyArIFN0cmluZyhjb2RlKVxuICByZXR1cm4gb21pdCAmJiBuZXh0ICYmICEvXFxkLy50ZXN0KFN0cmluZy5mcm9tQ2hhckNvZGUobmV4dCkpXG4gICAgPyB2YWx1ZVxuICAgIDogdmFsdWUgKyAnOydcbn1cbiIsICIvKipcbiAqIExpc3Qgb2YgbGVnYWN5IEhUTUwgbmFtZWQgY2hhcmFjdGVyIHJlZmVyZW5jZXMgdGhhdCBkb25cdTIwMTl0IG5lZWQgYSB0cmFpbGluZyBzZW1pY29sb24uXG4gKlxuICogQHR5cGUge0FycmF5PHN0cmluZz59XG4gKi9cbmV4cG9ydCBjb25zdCBjaGFyYWN0ZXJFbnRpdGllc0xlZ2FjeSA9IFtcbiAgJ0FFbGlnJyxcbiAgJ0FNUCcsXG4gICdBYWN1dGUnLFxuICAnQWNpcmMnLFxuICAnQWdyYXZlJyxcbiAgJ0FyaW5nJyxcbiAgJ0F0aWxkZScsXG4gICdBdW1sJyxcbiAgJ0NPUFknLFxuICAnQ2NlZGlsJyxcbiAgJ0VUSCcsXG4gICdFYWN1dGUnLFxuICAnRWNpcmMnLFxuICAnRWdyYXZlJyxcbiAgJ0V1bWwnLFxuICAnR1QnLFxuICAnSWFjdXRlJyxcbiAgJ0ljaXJjJyxcbiAgJ0lncmF2ZScsXG4gICdJdW1sJyxcbiAgJ0xUJyxcbiAgJ050aWxkZScsXG4gICdPYWN1dGUnLFxuICAnT2NpcmMnLFxuICAnT2dyYXZlJyxcbiAgJ09zbGFzaCcsXG4gICdPdGlsZGUnLFxuICAnT3VtbCcsXG4gICdRVU9UJyxcbiAgJ1JFRycsXG4gICdUSE9STicsXG4gICdVYWN1dGUnLFxuICAnVWNpcmMnLFxuICAnVWdyYXZlJyxcbiAgJ1V1bWwnLFxuICAnWWFjdXRlJyxcbiAgJ2FhY3V0ZScsXG4gICdhY2lyYycsXG4gICdhY3V0ZScsXG4gICdhZWxpZycsXG4gICdhZ3JhdmUnLFxuICAnYW1wJyxcbiAgJ2FyaW5nJyxcbiAgJ2F0aWxkZScsXG4gICdhdW1sJyxcbiAgJ2JydmJhcicsXG4gICdjY2VkaWwnLFxuICAnY2VkaWwnLFxuICAnY2VudCcsXG4gICdjb3B5JyxcbiAgJ2N1cnJlbicsXG4gICdkZWcnLFxuICAnZGl2aWRlJyxcbiAgJ2VhY3V0ZScsXG4gICdlY2lyYycsXG4gICdlZ3JhdmUnLFxuICAnZXRoJyxcbiAgJ2V1bWwnLFxuICAnZnJhYzEyJyxcbiAgJ2ZyYWMxNCcsXG4gICdmcmFjMzQnLFxuICAnZ3QnLFxuICAnaWFjdXRlJyxcbiAgJ2ljaXJjJyxcbiAgJ2lleGNsJyxcbiAgJ2lncmF2ZScsXG4gICdpcXVlc3QnLFxuICAnaXVtbCcsXG4gICdsYXF1bycsXG4gICdsdCcsXG4gICdtYWNyJyxcbiAgJ21pY3JvJyxcbiAgJ21pZGRvdCcsXG4gICduYnNwJyxcbiAgJ25vdCcsXG4gICdudGlsZGUnLFxuICAnb2FjdXRlJyxcbiAgJ29jaXJjJyxcbiAgJ29ncmF2ZScsXG4gICdvcmRmJyxcbiAgJ29yZG0nLFxuICAnb3NsYXNoJyxcbiAgJ290aWxkZScsXG4gICdvdW1sJyxcbiAgJ3BhcmEnLFxuICAncGx1c21uJyxcbiAgJ3BvdW5kJyxcbiAgJ3F1b3QnLFxuICAncmFxdW8nLFxuICAncmVnJyxcbiAgJ3NlY3QnLFxuICAnc2h5JyxcbiAgJ3N1cDEnLFxuICAnc3VwMicsXG4gICdzdXAzJyxcbiAgJ3N6bGlnJyxcbiAgJ3Rob3JuJyxcbiAgJ3RpbWVzJyxcbiAgJ3VhY3V0ZScsXG4gICd1Y2lyYycsXG4gICd1Z3JhdmUnLFxuICAndW1sJyxcbiAgJ3V1bWwnLFxuICAneWFjdXRlJyxcbiAgJ3llbicsXG4gICd5dW1sJ1xuXVxuIiwgIi8qKlxuICogTWFwIG9mIG5hbWVkIGNoYXJhY3RlciByZWZlcmVuY2VzIGZyb20gSFRNTCA0LlxuICpcbiAqIEB0eXBlIHtSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+fVxuICovXG5leHBvcnQgY29uc3QgY2hhcmFjdGVyRW50aXRpZXNIdG1sNCA9IHtcbiAgbmJzcDogJ1x1MDBBMCcsXG4gIGlleGNsOiAnXHUwMEExJyxcbiAgY2VudDogJ1x1MDBBMicsXG4gIHBvdW5kOiAnXHUwMEEzJyxcbiAgY3VycmVuOiAnXHUwMEE0JyxcbiAgeWVuOiAnXHUwMEE1JyxcbiAgYnJ2YmFyOiAnXHUwMEE2JyxcbiAgc2VjdDogJ1x1MDBBNycsXG4gIHVtbDogJ1x1MDBBOCcsXG4gIGNvcHk6ICdcdTAwQTknLFxuICBvcmRmOiAnXHUwMEFBJyxcbiAgbGFxdW86ICdcdTAwQUInLFxuICBub3Q6ICdcdTAwQUMnLFxuICBzaHk6ICdcdTAwQUQnLFxuICByZWc6ICdcdTAwQUUnLFxuICBtYWNyOiAnXHUwMEFGJyxcbiAgZGVnOiAnXHUwMEIwJyxcbiAgcGx1c21uOiAnXHUwMEIxJyxcbiAgc3VwMjogJ1x1MDBCMicsXG4gIHN1cDM6ICdcdTAwQjMnLFxuICBhY3V0ZTogJ1x1MDBCNCcsXG4gIG1pY3JvOiAnXHUwMEI1JyxcbiAgcGFyYTogJ1x1MDBCNicsXG4gIG1pZGRvdDogJ1x1MDBCNycsXG4gIGNlZGlsOiAnXHUwMEI4JyxcbiAgc3VwMTogJ1x1MDBCOScsXG4gIG9yZG06ICdcdTAwQkEnLFxuICByYXF1bzogJ1x1MDBCQicsXG4gIGZyYWMxNDogJ1x1MDBCQycsXG4gIGZyYWMxMjogJ1x1MDBCRCcsXG4gIGZyYWMzNDogJ1x1MDBCRScsXG4gIGlxdWVzdDogJ1x1MDBCRicsXG4gIEFncmF2ZTogJ1x1MDBDMCcsXG4gIEFhY3V0ZTogJ1x1MDBDMScsXG4gIEFjaXJjOiAnXHUwMEMyJyxcbiAgQXRpbGRlOiAnXHUwMEMzJyxcbiAgQXVtbDogJ1x1MDBDNCcsXG4gIEFyaW5nOiAnXHUwMEM1JyxcbiAgQUVsaWc6ICdcdTAwQzYnLFxuICBDY2VkaWw6ICdcdTAwQzcnLFxuICBFZ3JhdmU6ICdcdTAwQzgnLFxuICBFYWN1dGU6ICdcdTAwQzknLFxuICBFY2lyYzogJ1x1MDBDQScsXG4gIEV1bWw6ICdcdTAwQ0InLFxuICBJZ3JhdmU6ICdcdTAwQ0MnLFxuICBJYWN1dGU6ICdcdTAwQ0QnLFxuICBJY2lyYzogJ1x1MDBDRScsXG4gIEl1bWw6ICdcdTAwQ0YnLFxuICBFVEg6ICdcdTAwRDAnLFxuICBOdGlsZGU6ICdcdTAwRDEnLFxuICBPZ3JhdmU6ICdcdTAwRDInLFxuICBPYWN1dGU6ICdcdTAwRDMnLFxuICBPY2lyYzogJ1x1MDBENCcsXG4gIE90aWxkZTogJ1x1MDBENScsXG4gIE91bWw6ICdcdTAwRDYnLFxuICB0aW1lczogJ1x1MDBENycsXG4gIE9zbGFzaDogJ1x1MDBEOCcsXG4gIFVncmF2ZTogJ1x1MDBEOScsXG4gIFVhY3V0ZTogJ1x1MDBEQScsXG4gIFVjaXJjOiAnXHUwMERCJyxcbiAgVXVtbDogJ1x1MDBEQycsXG4gIFlhY3V0ZTogJ1x1MDBERCcsXG4gIFRIT1JOOiAnXHUwMERFJyxcbiAgc3psaWc6ICdcdTAwREYnLFxuICBhZ3JhdmU6ICdcdTAwRTAnLFxuICBhYWN1dGU6ICdcdTAwRTEnLFxuICBhY2lyYzogJ1x1MDBFMicsXG4gIGF0aWxkZTogJ1x1MDBFMycsXG4gIGF1bWw6ICdcdTAwRTQnLFxuICBhcmluZzogJ1x1MDBFNScsXG4gIGFlbGlnOiAnXHUwMEU2JyxcbiAgY2NlZGlsOiAnXHUwMEU3JyxcbiAgZWdyYXZlOiAnXHUwMEU4JyxcbiAgZWFjdXRlOiAnXHUwMEU5JyxcbiAgZWNpcmM6ICdcdTAwRUEnLFxuICBldW1sOiAnXHUwMEVCJyxcbiAgaWdyYXZlOiAnXHUwMEVDJyxcbiAgaWFjdXRlOiAnXHUwMEVEJyxcbiAgaWNpcmM6ICdcdTAwRUUnLFxuICBpdW1sOiAnXHUwMEVGJyxcbiAgZXRoOiAnXHUwMEYwJyxcbiAgbnRpbGRlOiAnXHUwMEYxJyxcbiAgb2dyYXZlOiAnXHUwMEYyJyxcbiAgb2FjdXRlOiAnXHUwMEYzJyxcbiAgb2NpcmM6ICdcdTAwRjQnLFxuICBvdGlsZGU6ICdcdTAwRjUnLFxuICBvdW1sOiAnXHUwMEY2JyxcbiAgZGl2aWRlOiAnXHUwMEY3JyxcbiAgb3NsYXNoOiAnXHUwMEY4JyxcbiAgdWdyYXZlOiAnXHUwMEY5JyxcbiAgdWFjdXRlOiAnXHUwMEZBJyxcbiAgdWNpcmM6ICdcdTAwRkInLFxuICB1dW1sOiAnXHUwMEZDJyxcbiAgeWFjdXRlOiAnXHUwMEZEJyxcbiAgdGhvcm46ICdcdTAwRkUnLFxuICB5dW1sOiAnXHUwMEZGJyxcbiAgZm5vZjogJ1x1MDE5MicsXG4gIEFscGhhOiAnXHUwMzkxJyxcbiAgQmV0YTogJ1x1MDM5MicsXG4gIEdhbW1hOiAnXHUwMzkzJyxcbiAgRGVsdGE6ICdcdTAzOTQnLFxuICBFcHNpbG9uOiAnXHUwMzk1JyxcbiAgWmV0YTogJ1x1MDM5NicsXG4gIEV0YTogJ1x1MDM5NycsXG4gIFRoZXRhOiAnXHUwMzk4JyxcbiAgSW90YTogJ1x1MDM5OScsXG4gIEthcHBhOiAnXHUwMzlBJyxcbiAgTGFtYmRhOiAnXHUwMzlCJyxcbiAgTXU6ICdcdTAzOUMnLFxuICBOdTogJ1x1MDM5RCcsXG4gIFhpOiAnXHUwMzlFJyxcbiAgT21pY3JvbjogJ1x1MDM5RicsXG4gIFBpOiAnXHUwM0EwJyxcbiAgUmhvOiAnXHUwM0ExJyxcbiAgU2lnbWE6ICdcdTAzQTMnLFxuICBUYXU6ICdcdTAzQTQnLFxuICBVcHNpbG9uOiAnXHUwM0E1JyxcbiAgUGhpOiAnXHUwM0E2JyxcbiAgQ2hpOiAnXHUwM0E3JyxcbiAgUHNpOiAnXHUwM0E4JyxcbiAgT21lZ2E6ICdcdTAzQTknLFxuICBhbHBoYTogJ1x1MDNCMScsXG4gIGJldGE6ICdcdTAzQjInLFxuICBnYW1tYTogJ1x1MDNCMycsXG4gIGRlbHRhOiAnXHUwM0I0JyxcbiAgZXBzaWxvbjogJ1x1MDNCNScsXG4gIHpldGE6ICdcdTAzQjYnLFxuICBldGE6ICdcdTAzQjcnLFxuICB0aGV0YTogJ1x1MDNCOCcsXG4gIGlvdGE6ICdcdTAzQjknLFxuICBrYXBwYTogJ1x1MDNCQScsXG4gIGxhbWJkYTogJ1x1MDNCQicsXG4gIG11OiAnXHUwM0JDJyxcbiAgbnU6ICdcdTAzQkQnLFxuICB4aTogJ1x1MDNCRScsXG4gIG9taWNyb246ICdcdTAzQkYnLFxuICBwaTogJ1x1MDNDMCcsXG4gIHJobzogJ1x1MDNDMScsXG4gIHNpZ21hZjogJ1x1MDNDMicsXG4gIHNpZ21hOiAnXHUwM0MzJyxcbiAgdGF1OiAnXHUwM0M0JyxcbiAgdXBzaWxvbjogJ1x1MDNDNScsXG4gIHBoaTogJ1x1MDNDNicsXG4gIGNoaTogJ1x1MDNDNycsXG4gIHBzaTogJ1x1MDNDOCcsXG4gIG9tZWdhOiAnXHUwM0M5JyxcbiAgdGhldGFzeW06ICdcdTAzRDEnLFxuICB1cHNpaDogJ1x1MDNEMicsXG4gIHBpdjogJ1x1MDNENicsXG4gIGJ1bGw6ICdcdTIwMjInLFxuICBoZWxsaXA6ICdcdTIwMjYnLFxuICBwcmltZTogJ1x1MjAzMicsXG4gIFByaW1lOiAnXHUyMDMzJyxcbiAgb2xpbmU6ICdcdTIwM0UnLFxuICBmcmFzbDogJ1x1MjA0NCcsXG4gIHdlaWVycDogJ1x1MjExOCcsXG4gIGltYWdlOiAnXHUyMTExJyxcbiAgcmVhbDogJ1x1MjExQycsXG4gIHRyYWRlOiAnXHUyMTIyJyxcbiAgYWxlZnN5bTogJ1x1MjEzNScsXG4gIGxhcnI6ICdcdTIxOTAnLFxuICB1YXJyOiAnXHUyMTkxJyxcbiAgcmFycjogJ1x1MjE5MicsXG4gIGRhcnI6ICdcdTIxOTMnLFxuICBoYXJyOiAnXHUyMTk0JyxcbiAgY3JhcnI6ICdcdTIxQjUnLFxuICBsQXJyOiAnXHUyMUQwJyxcbiAgdUFycjogJ1x1MjFEMScsXG4gIHJBcnI6ICdcdTIxRDInLFxuICBkQXJyOiAnXHUyMUQzJyxcbiAgaEFycjogJ1x1MjFENCcsXG4gIGZvcmFsbDogJ1x1MjIwMCcsXG4gIHBhcnQ6ICdcdTIyMDInLFxuICBleGlzdDogJ1x1MjIwMycsXG4gIGVtcHR5OiAnXHUyMjA1JyxcbiAgbmFibGE6ICdcdTIyMDcnLFxuICBpc2luOiAnXHUyMjA4JyxcbiAgbm90aW46ICdcdTIyMDknLFxuICBuaTogJ1x1MjIwQicsXG4gIHByb2Q6ICdcdTIyMEYnLFxuICBzdW06ICdcdTIyMTEnLFxuICBtaW51czogJ1x1MjIxMicsXG4gIGxvd2FzdDogJ1x1MjIxNycsXG4gIHJhZGljOiAnXHUyMjFBJyxcbiAgcHJvcDogJ1x1MjIxRCcsXG4gIGluZmluOiAnXHUyMjFFJyxcbiAgYW5nOiAnXHUyMjIwJyxcbiAgYW5kOiAnXHUyMjI3JyxcbiAgb3I6ICdcdTIyMjgnLFxuICBjYXA6ICdcdTIyMjknLFxuICBjdXA6ICdcdTIyMkEnLFxuICBpbnQ6ICdcdTIyMkInLFxuICB0aGVyZTQ6ICdcdTIyMzQnLFxuICBzaW06ICdcdTIyM0MnLFxuICBjb25nOiAnXHUyMjQ1JyxcbiAgYXN5bXA6ICdcdTIyNDgnLFxuICBuZTogJ1x1MjI2MCcsXG4gIGVxdWl2OiAnXHUyMjYxJyxcbiAgbGU6ICdcdTIyNjQnLFxuICBnZTogJ1x1MjI2NScsXG4gIHN1YjogJ1x1MjI4MicsXG4gIHN1cDogJ1x1MjI4MycsXG4gIG5zdWI6ICdcdTIyODQnLFxuICBzdWJlOiAnXHUyMjg2JyxcbiAgc3VwZTogJ1x1MjI4NycsXG4gIG9wbHVzOiAnXHUyMjk1JyxcbiAgb3RpbWVzOiAnXHUyMjk3JyxcbiAgcGVycDogJ1x1MjJBNScsXG4gIHNkb3Q6ICdcdTIyQzUnLFxuICBsY2VpbDogJ1x1MjMwOCcsXG4gIHJjZWlsOiAnXHUyMzA5JyxcbiAgbGZsb29yOiAnXHUyMzBBJyxcbiAgcmZsb29yOiAnXHUyMzBCJyxcbiAgbGFuZzogJ1x1MjMyOScsXG4gIHJhbmc6ICdcdTIzMkEnLFxuICBsb3o6ICdcdTI1Q0EnLFxuICBzcGFkZXM6ICdcdTI2NjAnLFxuICBjbHViczogJ1x1MjY2MycsXG4gIGhlYXJ0czogJ1x1MjY2NScsXG4gIGRpYW1zOiAnXHUyNjY2JyxcbiAgcXVvdDogJ1wiJyxcbiAgYW1wOiAnJicsXG4gIGx0OiAnPCcsXG4gIGd0OiAnPicsXG4gIE9FbGlnOiAnXHUwMTUyJyxcbiAgb2VsaWc6ICdcdTAxNTMnLFxuICBTY2Fyb246ICdcdTAxNjAnLFxuICBzY2Fyb246ICdcdTAxNjEnLFxuICBZdW1sOiAnXHUwMTc4JyxcbiAgY2lyYzogJ1x1MDJDNicsXG4gIHRpbGRlOiAnXHUwMkRDJyxcbiAgZW5zcDogJ1x1MjAwMicsXG4gIGVtc3A6ICdcdTIwMDMnLFxuICB0aGluc3A6ICdcdTIwMDknLFxuICB6d25qOiAnXHUyMDBDJyxcbiAgendqOiAnXHUyMDBEJyxcbiAgbHJtOiAnXHUyMDBFJyxcbiAgcmxtOiAnXHUyMDBGJyxcbiAgbmRhc2g6ICdcdTIwMTMnLFxuICBtZGFzaDogJ1x1MjAxNCcsXG4gIGxzcXVvOiAnXHUyMDE4JyxcbiAgcnNxdW86ICdcdTIwMTknLFxuICBzYnF1bzogJ1x1MjAxQScsXG4gIGxkcXVvOiAnXHUyMDFDJyxcbiAgcmRxdW86ICdcdTIwMUQnLFxuICBiZHF1bzogJ1x1MjAxRScsXG4gIGRhZ2dlcjogJ1x1MjAyMCcsXG4gIERhZ2dlcjogJ1x1MjAyMScsXG4gIHBlcm1pbDogJ1x1MjAzMCcsXG4gIGxzYXF1bzogJ1x1MjAzOScsXG4gIHJzYXF1bzogJ1x1MjAzQScsXG4gIGV1cm86ICdcdTIwQUMnXG59XG4iLCAiLyoqXG4gKiBMaXN0IG9mIGxlZ2FjeSAodGhhdCBkb25cdTIwMTl0IG5lZWQgYSB0cmFpbGluZyBgO2ApIG5hbWVkIHJlZmVyZW5jZXMgd2hpY2ggY291bGQsXG4gKiBkZXBlbmRpbmcgb24gd2hhdCBmb2xsb3dzIHRoZW0sIHR1cm4gaW50byBhIGRpZmZlcmVudCBtZWFuaW5nXG4gKlxuICogQHR5cGUge0FycmF5PHN0cmluZz59XG4gKi9cbmV4cG9ydCBjb25zdCBkYW5nZXJvdXMgPSBbXG4gICdjZW50JyxcbiAgJ2NvcHknLFxuICAnZGl2aWRlJyxcbiAgJ2d0JyxcbiAgJ2x0JyxcbiAgJ25vdCcsXG4gICdwYXJhJyxcbiAgJ3RpbWVzJ1xuXVxuIiwgImltcG9ydCB7Y2hhcmFjdGVyRW50aXRpZXNMZWdhY3l9IGZyb20gJ2NoYXJhY3Rlci1lbnRpdGllcy1sZWdhY3knXG5pbXBvcnQge2NoYXJhY3RlckVudGl0aWVzSHRtbDR9IGZyb20gJ2NoYXJhY3Rlci1lbnRpdGllcy1odG1sNCdcbmltcG9ydCB7ZGFuZ2Vyb3VzfSBmcm9tICcuLi9jb25zdGFudC9kYW5nZXJvdXMuanMnXG5cbmNvbnN0IG93biA9IHt9Lmhhc093blByb3BlcnR5XG5cbi8qKlxuICogYGNoYXJhY3RlckVudGl0aWVzSHRtbDRgIGJ1dCBpbnZlcnRlZC5cbiAqXG4gKiBAdHlwZSB7UmVjb3JkPHN0cmluZywgc3RyaW5nPn1cbiAqL1xuY29uc3QgY2hhcmFjdGVycyA9IHt9XG5cbi8qKiBAdHlwZSB7c3RyaW5nfSAqL1xubGV0IGtleVxuXG5mb3IgKGtleSBpbiBjaGFyYWN0ZXJFbnRpdGllc0h0bWw0KSB7XG4gIGlmIChvd24uY2FsbChjaGFyYWN0ZXJFbnRpdGllc0h0bWw0LCBrZXkpKSB7XG4gICAgY2hhcmFjdGVyc1tjaGFyYWN0ZXJFbnRpdGllc0h0bWw0W2tleV1dID0ga2V5XG4gIH1cbn1cblxuLyoqXG4gKiBDb25maWd1cmFibGUgd2F5cyB0byBlbmNvZGUgY2hhcmFjdGVycyBhcyBuYW1lZCByZWZlcmVuY2VzLlxuICpcbiAqIEBwYXJhbSB7bnVtYmVyfSBjb2RlXG4gKiBAcGFyYW0ge251bWJlcn0gbmV4dFxuICogQHBhcmFtIHtib29sZWFufHVuZGVmaW5lZH0gb21pdFxuICogQHBhcmFtIHtib29sZWFufHVuZGVmaW5lZH0gYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICovXG5leHBvcnQgZnVuY3Rpb24gdG9OYW1lZChjb2RlLCBuZXh0LCBvbWl0LCBhdHRyaWJ1dGUpIHtcbiAgY29uc3QgY2hhcmFjdGVyID0gU3RyaW5nLmZyb21DaGFyQ29kZShjb2RlKVxuXG4gIGlmIChvd24uY2FsbChjaGFyYWN0ZXJzLCBjaGFyYWN0ZXIpKSB7XG4gICAgY29uc3QgbmFtZSA9IGNoYXJhY3RlcnNbY2hhcmFjdGVyXVxuICAgIGNvbnN0IHZhbHVlID0gJyYnICsgbmFtZVxuXG4gICAgaWYgKFxuICAgICAgb21pdCAmJlxuICAgICAgY2hhcmFjdGVyRW50aXRpZXNMZWdhY3kuaW5jbHVkZXMobmFtZSkgJiZcbiAgICAgICFkYW5nZXJvdXMuaW5jbHVkZXMobmFtZSkgJiZcbiAgICAgICghYXR0cmlidXRlIHx8XG4gICAgICAgIChuZXh0ICYmXG4gICAgICAgICAgbmV4dCAhPT0gNjEgLyogYD1gICovICYmXG4gICAgICAgICAgL1teXFxkYS16XS9pLnRlc3QoU3RyaW5nLmZyb21DaGFyQ29kZShuZXh0KSkpKVxuICAgICkge1xuICAgICAgcmV0dXJuIHZhbHVlXG4gICAgfVxuXG4gICAgcmV0dXJuIHZhbHVlICsgJzsnXG4gIH1cblxuICByZXR1cm4gJydcbn1cbiIsICIvKipcbiAqIEB0eXBlZGVmIEZvcm1hdFNtYXJ0T3B0aW9uc1xuICogQHByb3BlcnR5IHtib29sZWFufSBbdXNlTmFtZWRSZWZlcmVuY2VzPWZhbHNlXVxuICogICBQcmVmZXIgbmFtZWQgY2hhcmFjdGVyIHJlZmVyZW5jZXMgKGAmYW1wO2ApIHdoZXJlIHBvc3NpYmxlLlxuICogQHByb3BlcnR5IHtib29sZWFufSBbdXNlU2hvcnRlc3RSZWZlcmVuY2VzPWZhbHNlXVxuICogICBQcmVmZXIgdGhlIHNob3J0ZXN0IHBvc3NpYmxlIHJlZmVyZW5jZSwgaWYgdGhhdCByZXN1bHRzIGluIGxlc3MgYnl0ZXMuXG4gKiAgICoqTm90ZSoqOiBgdXNlTmFtZWRSZWZlcmVuY2VzYCBjYW4gYmUgb21pdHRlZCB3aGVuIHVzaW5nIGB1c2VTaG9ydGVzdFJlZmVyZW5jZXNgLlxuICogQHByb3BlcnR5IHtib29sZWFufSBbb21pdE9wdGlvbmFsU2VtaWNvbG9ucz1mYWxzZV1cbiAqICAgV2hldGhlciB0byBvbWl0IHNlbWljb2xvbnMgd2hlbiBwb3NzaWJsZS5cbiAqICAgKipOb3RlKio6IFRoaXMgY3JlYXRlcyB3aGF0IEhUTUwgY2FsbHMgXHUyMDFDcGFyc2UgZXJyb3JzXHUyMDFEIGJ1dCBpcyBvdGhlcndpc2Ugc3RpbGwgdmFsaWQgSFRNTCBcdTIwMTQgZG9uXHUyMDE5dCB1c2UgdGhpcyBleGNlcHQgd2hlbiBidWlsZGluZyBhIG1pbmlmaWVyLlxuICogICBPbWl0dGluZyBzZW1pY29sb25zIGlzIHBvc3NpYmxlIGZvciBjZXJ0YWluIG5hbWVkIGFuZCBudW1lcmljIHJlZmVyZW5jZXMgaW4gc29tZSBjYXNlcy5cbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbn0gW2F0dHJpYnV0ZT1mYWxzZV1cbiAqICAgQ3JlYXRlIGNoYXJhY3RlciByZWZlcmVuY2VzIHdoaWNoIGRvblx1MjAxOXQgZmFpbCBpbiBhdHRyaWJ1dGVzLlxuICogICAqKk5vdGUqKjogYGF0dHJpYnV0ZWAgb25seSBhcHBsaWVzIHdoZW4gb3BlcmF0aW5nIGRhbmdlcm91c2x5IHdpdGhcbiAqICAgYG9taXRPcHRpb25hbFNlbWljb2xvbnM6IHRydWVgLlxuICovXG5cbmltcG9ydCB7dG9IZXhhZGVjaW1hbH0gZnJvbSAnLi90by1oZXhhZGVjaW1hbC5qcydcbmltcG9ydCB7dG9EZWNpbWFsfSBmcm9tICcuL3RvLWRlY2ltYWwuanMnXG5pbXBvcnQge3RvTmFtZWR9IGZyb20gJy4vdG8tbmFtZWQuanMnXG5cbi8qKlxuICogQ29uZmlndXJhYmxlIHdheXMgdG8gZW5jb2RlIGEgY2hhcmFjdGVyIHlpZWxkaW5nIHByZXR0eSBvciBzbWFsbCByZXN1bHRzLlxuICpcbiAqIEBwYXJhbSB7bnVtYmVyfSBjb2RlXG4gKiBAcGFyYW0ge251bWJlcn0gbmV4dFxuICogQHBhcmFtIHtGb3JtYXRTbWFydE9wdGlvbnN9IG9wdGlvbnNcbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXRTbWFydChjb2RlLCBuZXh0LCBvcHRpb25zKSB7XG4gIGxldCBudW1lcmljID0gdG9IZXhhZGVjaW1hbChjb2RlLCBuZXh0LCBvcHRpb25zLm9taXRPcHRpb25hbFNlbWljb2xvbnMpXG4gIC8qKiBAdHlwZSB7c3RyaW5nfHVuZGVmaW5lZH0gKi9cbiAgbGV0IG5hbWVkXG5cbiAgaWYgKG9wdGlvbnMudXNlTmFtZWRSZWZlcmVuY2VzIHx8IG9wdGlvbnMudXNlU2hvcnRlc3RSZWZlcmVuY2VzKSB7XG4gICAgbmFtZWQgPSB0b05hbWVkKFxuICAgICAgY29kZSxcbiAgICAgIG5leHQsXG4gICAgICBvcHRpb25zLm9taXRPcHRpb25hbFNlbWljb2xvbnMsXG4gICAgICBvcHRpb25zLmF0dHJpYnV0ZVxuICAgIClcbiAgfVxuXG4gIC8vIFVzZSB0aGUgc2hvcnRlc3QgbnVtZXJpYyByZWZlcmVuY2Ugd2hlbiByZXF1ZXN0ZWQuXG4gIC8vIEEgc2ltcGxlIGFsZ29yaXRobSB3b3VsZCB1c2UgZGVjaW1hbCBmb3IgYWxsIGNvZGUgcG9pbnRzIHVuZGVyIDEwMCwgYXNcbiAgLy8gdGhvc2UgYXJlIHNob3J0ZXIgdGhhbiBoZXhhZGVjaW1hbDpcbiAgLy9cbiAgLy8gKiBgJiM5OTtgIHZzIGAmI3g2MztgIChkZWNpbWFsIHNob3J0ZXIpXG4gIC8vICogYCYjMTAwO2AgdnMgYCYjeDY0O2AgKGVxdWFsKVxuICAvL1xuICAvLyBIb3dldmVyLCBiZWNhdXNlIHdlIHRha2UgYG5leHRgIGludG8gY29uc2lkZXJhdGlvbiB3aGVuIGBvbWl0YCBpcyB1c2VkLFxuICAvLyBBbmQgaXQgd291bGQgYmUgcG9zc2libGUgdGhhdCBkZWNpbWFscyBhcmUgc2hvcnRlciBvbiBiaWdnZXIgdmFsdWVzIGFzXG4gIC8vIHdlbGwgaWYgYG5leHRgIGlzIGhleGFkZWNpbWFsIGJ1dCBub3QgZGVjaW1hbCwgd2UgaW5zdGVhZCBjb21wYXJlIGJvdGguXG4gIGlmIChcbiAgICAob3B0aW9ucy51c2VTaG9ydGVzdFJlZmVyZW5jZXMgfHwgIW5hbWVkKSAmJlxuICAgIG9wdGlvbnMudXNlU2hvcnRlc3RSZWZlcmVuY2VzXG4gICkge1xuICAgIGNvbnN0IGRlY2ltYWwgPSB0b0RlY2ltYWwoY29kZSwgbmV4dCwgb3B0aW9ucy5vbWl0T3B0aW9uYWxTZW1pY29sb25zKVxuXG4gICAgaWYgKGRlY2ltYWwubGVuZ3RoIDwgbnVtZXJpYy5sZW5ndGgpIHtcbiAgICAgIG51bWVyaWMgPSBkZWNpbWFsXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG5hbWVkICYmXG4gICAgKCFvcHRpb25zLnVzZVNob3J0ZXN0UmVmZXJlbmNlcyB8fCBuYW1lZC5sZW5ndGggPCBudW1lcmljLmxlbmd0aClcbiAgICA/IG5hbWVkXG4gICAgOiBudW1lcmljXG59XG4iLCAiLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCcuL2NvcmUuanMnKS5Db3JlT3B0aW9ucyAmIGltcG9ydCgnLi91dGlsL2Zvcm1hdC1zbWFydC5qcycpLkZvcm1hdFNtYXJ0T3B0aW9uc30gT3B0aW9uc1xuICogQHR5cGVkZWYge2ltcG9ydCgnLi9jb3JlLmpzJykuQ29yZU9wdGlvbnN9IExpZ2h0T3B0aW9uc1xuICovXG5cbmltcG9ydCB7Y29yZX0gZnJvbSAnLi9jb3JlLmpzJ1xuaW1wb3J0IHtmb3JtYXRTbWFydH0gZnJvbSAnLi91dGlsL2Zvcm1hdC1zbWFydC5qcydcbmltcG9ydCB7Zm9ybWF0QmFzaWN9IGZyb20gJy4vdXRpbC9mb3JtYXQtYmFzaWMuanMnXG5cbi8qKlxuICogRW5jb2RlIHNwZWNpYWwgY2hhcmFjdGVycyBpbiBgdmFsdWVgLlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSB2YWx1ZVxuICogICBWYWx1ZSB0byBlbmNvZGUuXG4gKiBAcGFyYW0ge09wdGlvbnN9IFtvcHRpb25zXVxuICogICBDb25maWd1cmF0aW9uLlxuICogQHJldHVybnMge3N0cmluZ31cbiAqICAgRW5jb2RlZCB2YWx1ZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHN0cmluZ2lmeUVudGl0aWVzKHZhbHVlLCBvcHRpb25zKSB7XG4gIHJldHVybiBjb3JlKHZhbHVlLCBPYmplY3QuYXNzaWduKHtmb3JtYXQ6IGZvcm1hdFNtYXJ0fSwgb3B0aW9ucykpXG59XG5cbi8qKlxuICogRW5jb2RlIHNwZWNpYWwgY2hhcmFjdGVycyBpbiBgdmFsdWVgIGFzIGhleGFkZWNpbWFscy5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gdmFsdWVcbiAqICAgVmFsdWUgdG8gZW5jb2RlLlxuICogQHBhcmFtIHtMaWdodE9wdGlvbnN9IFtvcHRpb25zXVxuICogICBDb25maWd1cmF0aW9uLlxuICogQHJldHVybnMge3N0cmluZ31cbiAqICAgRW5jb2RlZCB2YWx1ZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHN0cmluZ2lmeUVudGl0aWVzTGlnaHQodmFsdWUsIG9wdGlvbnMpIHtcbiAgcmV0dXJuIGNvcmUodmFsdWUsIE9iamVjdC5hc3NpZ24oe2Zvcm1hdDogZm9ybWF0QmFzaWN9LCBvcHRpb25zKSlcbn1cbiIsICIvKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ2hhc3QnKS5Db21tZW50fSBDb21tZW50XG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdoYXN0JykuUGFyZW50c30gUGFyZW50c1xuICpcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJy4uL2luZGV4LmpzJykuU3RhdGV9IFN0YXRlXG4gKi9cblxuaW1wb3J0IHtzdHJpbmdpZnlFbnRpdGllc30gZnJvbSAnc3RyaW5naWZ5LWVudGl0aWVzJ1xuXG4vKipcbiAqIFNlcmlhbGl6ZSBhIGNvbW1lbnQuXG4gKlxuICogQHBhcmFtIHtDb21tZW50fSBub2RlXG4gKiAgIE5vZGUgdG8gaGFuZGxlLlxuICogQHBhcmFtIHtudW1iZXIgfCB1bmRlZmluZWR9IF8xXG4gKiAgIEluZGV4IG9mIGBub2RlYCBpbiBgcGFyZW50LlxuICogQHBhcmFtIHtQYXJlbnRzIHwgdW5kZWZpbmVkfSBfMlxuICogICBQYXJlbnQgb2YgYG5vZGVgLlxuICogQHBhcmFtIHtTdGF0ZX0gc3RhdGVcbiAqICAgSW5mbyBwYXNzZWQgYXJvdW5kIGFib3V0IHRoZSBjdXJyZW50IHN0YXRlLlxuICogQHJldHVybnMge3N0cmluZ31cbiAqICAgU2VyaWFsaXplZCBub2RlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY29tbWVudChub2RlLCBfMSwgXzIsIHN0YXRlKSB7XG4gIC8vIFNlZTogPGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL3N5bnRheC5odG1sI2NvbW1lbnRzPlxuICByZXR1cm4gc3RhdGUuc2V0dGluZ3MuYm9ndXNDb21tZW50c1xuICAgID8gJzw/JyArXG4gICAgICAgIHN0cmluZ2lmeUVudGl0aWVzKFxuICAgICAgICAgIG5vZGUudmFsdWUsXG4gICAgICAgICAgT2JqZWN0LmFzc2lnbih7fSwgc3RhdGUuc2V0dGluZ3MuY2hhcmFjdGVyUmVmZXJlbmNlcywge3N1YnNldDogWyc+J119KVxuICAgICAgICApICtcbiAgICAgICAgJz4nXG4gICAgOiAnPCEtLScgKyBub2RlLnZhbHVlLnJlcGxhY2UoL14+fF4tPnw8IS0tfC0tPnwtLSE+fDwhLSQvZywgZW5jb2RlKSArICctLT4nXG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSAkMFxuICAgKi9cbiAgZnVuY3Rpb24gZW5jb2RlKCQwKSB7XG4gICAgcmV0dXJuIHN0cmluZ2lmeUVudGl0aWVzKFxuICAgICAgJDAsXG4gICAgICBPYmplY3QuYXNzaWduKHt9LCBzdGF0ZS5zZXR0aW5ncy5jaGFyYWN0ZXJSZWZlcmVuY2VzLCB7XG4gICAgICAgIHN1YnNldDogWyc8JywgJz4nXVxuICAgICAgfSlcbiAgICApXG4gIH1cbn1cbiIsICIvKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ2hhc3QnKS5Eb2N0eXBlfSBEb2N0eXBlXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdoYXN0JykuUGFyZW50c30gUGFyZW50c1xuICpcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJy4uL2luZGV4LmpzJykuU3RhdGV9IFN0YXRlXG4gKi9cblxuLy8gTWFrZSBWUyBjb2RlIHNlZSByZWZlcmVuY2VzIHRvIHRoZSBhYm92ZSB0eXBlcy5cbicnXG5cbi8qKlxuICogU2VyaWFsaXplIGEgZG9jdHlwZS5cbiAqXG4gKiBAcGFyYW0ge0RvY3R5cGV9IF8xXG4gKiAgIE5vZGUgdG8gaGFuZGxlLlxuICogQHBhcmFtIHtudW1iZXIgfCB1bmRlZmluZWR9IF8yXG4gKiAgIEluZGV4IG9mIGBub2RlYCBpbiBgcGFyZW50LlxuICogQHBhcmFtIHtQYXJlbnRzIHwgdW5kZWZpbmVkfSBfM1xuICogICBQYXJlbnQgb2YgYG5vZGVgLlxuICogQHBhcmFtIHtTdGF0ZX0gc3RhdGVcbiAqICAgSW5mbyBwYXNzZWQgYXJvdW5kIGFib3V0IHRoZSBjdXJyZW50IHN0YXRlLlxuICogQHJldHVybnMge3N0cmluZ31cbiAqICAgU2VyaWFsaXplZCBub2RlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZG9jdHlwZShfMSwgXzIsIF8zLCBzdGF0ZSkge1xuICByZXR1cm4gKFxuICAgICc8IScgK1xuICAgIChzdGF0ZS5zZXR0aW5ncy51cHBlckRvY3R5cGUgPyAnRE9DVFlQRScgOiAnZG9jdHlwZScpICtcbiAgICAoc3RhdGUuc2V0dGluZ3MudGlnaHREb2N0eXBlID8gJycgOiAnICcpICtcbiAgICAnaHRtbD4nXG4gIClcbn1cbiIsICIvKipcbiAqIENvdW50IGhvdyBvZnRlbiBhIGNoYXJhY3RlciAob3Igc3Vic3RyaW5nKSBpcyB1c2VkIGluIGEgc3RyaW5nLlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSB2YWx1ZVxuICogICBWYWx1ZSB0byBzZWFyY2ggaW4uXG4gKiBAcGFyYW0ge3N0cmluZ30gY2hhcmFjdGVyXG4gKiAgIENoYXJhY3RlciAob3Igc3Vic3RyaW5nKSB0byBsb29rIGZvci5cbiAqIEByZXR1cm4ge251bWJlcn1cbiAqICAgTnVtYmVyIG9mIHRpbWVzIGBjaGFyYWN0ZXJgIG9jY3VycmVkIGluIGB2YWx1ZWAuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjY291bnQodmFsdWUsIGNoYXJhY3Rlcikge1xuICBjb25zdCBzb3VyY2UgPSBTdHJpbmcodmFsdWUpXG5cbiAgaWYgKHR5cGVvZiBjaGFyYWN0ZXIgIT09ICdzdHJpbmcnKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcignRXhwZWN0ZWQgY2hhcmFjdGVyJylcbiAgfVxuXG4gIGxldCBjb3VudCA9IDBcbiAgbGV0IGluZGV4ID0gc291cmNlLmluZGV4T2YoY2hhcmFjdGVyKVxuXG4gIHdoaWxlIChpbmRleCAhPT0gLTEpIHtcbiAgICBjb3VudCsrXG4gICAgaW5kZXggPSBzb3VyY2UuaW5kZXhPZihjaGFyYWN0ZXIsIGluZGV4ICsgY2hhcmFjdGVyLmxlbmd0aClcbiAgfVxuXG4gIHJldHVybiBjb3VudFxufVxuIiwgIi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgnaGFzdCcpLk5vZGVzfSBOb2Rlc1xuICovXG5cbi8vIEhUTUwgd2hpdGVzcGFjZSBleHByZXNzaW9uLlxuLy8gU2VlIDxodHRwczovL2luZnJhLnNwZWMud2hhdHdnLm9yZy8jYXNjaWktd2hpdGVzcGFjZT4uXG5jb25zdCByZSA9IC9bIFxcdFxcblxcZlxccl0vZ1xuXG4vKipcbiAqIENoZWNrIGlmIHRoZSBnaXZlbiB2YWx1ZSBpcyAqaW50ZXItZWxlbWVudCB3aGl0ZXNwYWNlKi5cbiAqXG4gKiBAcGFyYW0ge05vZGVzIHwgc3RyaW5nfSB0aGluZ1xuICogICBUaGluZyB0byBjaGVjayAoYE5vZGVgIG9yIGBzdHJpbmdgKS5cbiAqIEByZXR1cm5zIHtib29sZWFufVxuICogICBXaGV0aGVyIHRoZSBgdmFsdWVgIGlzIGludGVyLWVsZW1lbnQgd2hpdGVzcGFjZSAoYGJvb2xlYW5gKTogY29uc2lzdGluZyBvZlxuICogICB6ZXJvIG9yIG1vcmUgb2Ygc3BhY2UsIHRhYiAoYFxcdGApLCBsaW5lIGZlZWQgKGBcXG5gKSwgY2FycmlhZ2UgcmV0dXJuXG4gKiAgIChgXFxyYCksIG9yIGZvcm0gZmVlZCAoYFxcZmApOyBpZiBhIG5vZGUgaXMgcGFzc2VkIGl0IG11c3QgYmUgYSBgVGV4dGAgbm9kZSxcbiAqICAgd2hvc2UgYHZhbHVlYCBmaWVsZCBpcyBjaGVja2VkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gd2hpdGVzcGFjZSh0aGluZykge1xuICByZXR1cm4gdHlwZW9mIHRoaW5nID09PSAnb2JqZWN0J1xuICAgID8gdGhpbmcudHlwZSA9PT0gJ3RleHQnXG4gICAgICA/IGVtcHR5KHRoaW5nLnZhbHVlKVxuICAgICAgOiBmYWxzZVxuICAgIDogZW1wdHkodGhpbmcpXG59XG5cbi8qKlxuICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAqL1xuZnVuY3Rpb24gZW1wdHkodmFsdWUpIHtcbiAgcmV0dXJuIHZhbHVlLnJlcGxhY2UocmUsICcnKSA9PT0gJydcbn1cbiIsICIvKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ2hhc3QnKS5QYXJlbnRzfSBQYXJlbnRzXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdoYXN0JykuUm9vdENvbnRlbnR9IFJvb3RDb250ZW50XG4gKi9cblxuaW1wb3J0IHt3aGl0ZXNwYWNlfSBmcm9tICdoYXN0LXV0aWwtd2hpdGVzcGFjZSdcblxuZXhwb3J0IGNvbnN0IHNpYmxpbmdBZnRlciA9IHNpYmxpbmdzKDEpXG5leHBvcnQgY29uc3Qgc2libGluZ0JlZm9yZSA9IHNpYmxpbmdzKC0xKVxuXG4vKiogQHR5cGUge0FycmF5PFJvb3RDb250ZW50Pn0gKi9cbmNvbnN0IGVtcHR5Q2hpbGRyZW4gPSBbXVxuXG4vKipcbiAqIEZhY3RvcnkgdG8gY2hlY2sgc2libGluZ3MgaW4gYSBkaXJlY3Rpb24uXG4gKlxuICogQHBhcmFtIHtudW1iZXJ9IGluY3JlbWVudFxuICovXG5mdW5jdGlvbiBzaWJsaW5ncyhpbmNyZW1lbnQpIHtcbiAgcmV0dXJuIHNpYmxpbmdcblxuICAvKipcbiAgICogRmluZCBhcHBsaWNhYmxlIHNpYmxpbmdzIGluIGEgZGlyZWN0aW9uLlxuICAgKlxuICAgKiBAdGVtcGxhdGUge1BhcmVudHN9IFBhcmVudFxuICAgKiAgIFBhcmVudCB0eXBlLlxuICAgKiBAcGFyYW0ge1BhcmVudCB8IHVuZGVmaW5lZH0gcGFyZW50XG4gICAqICAgUGFyZW50LlxuICAgKiBAcGFyYW0ge251bWJlciB8IHVuZGVmaW5lZH0gaW5kZXhcbiAgICogICBJbmRleCBvZiBjaGlsZCBpbiBgcGFyZW50YC5cbiAgICogQHBhcmFtIHtib29sZWFuIHwgdW5kZWZpbmVkfSBbaW5jbHVkZVdoaXRlc3BhY2U9ZmFsc2VdXG4gICAqICAgV2hldGhlciB0byBpbmNsdWRlIHdoaXRlc3BhY2UgKGRlZmF1bHQ6IGBmYWxzZWApLlxuICAgKiBAcmV0dXJucyB7UGFyZW50IGV4dGVuZHMge2NoaWxkcmVuOiBBcnJheTxpbmZlciBDaGlsZD59ID8gQ2hpbGQgfCB1bmRlZmluZWQgOiBuZXZlcn1cbiAgICogICBDaGlsZCBvZiBwYXJlbnQuXG4gICAqL1xuICBmdW5jdGlvbiBzaWJsaW5nKHBhcmVudCwgaW5kZXgsIGluY2x1ZGVXaGl0ZXNwYWNlKSB7XG4gICAgY29uc3Qgc2libGluZ3MgPSBwYXJlbnQgPyBwYXJlbnQuY2hpbGRyZW4gOiBlbXB0eUNoaWxkcmVuXG4gICAgbGV0IG9mZnNldCA9IChpbmRleCB8fCAwKSArIGluY3JlbWVudFxuICAgIGxldCBuZXh0ID0gc2libGluZ3Nbb2Zmc2V0XVxuXG4gICAgaWYgKCFpbmNsdWRlV2hpdGVzcGFjZSkge1xuICAgICAgd2hpbGUgKG5leHQgJiYgd2hpdGVzcGFjZShuZXh0KSkge1xuICAgICAgICBvZmZzZXQgKz0gaW5jcmVtZW50XG4gICAgICAgIG5leHQgPSBzaWJsaW5nc1tvZmZzZXRdXG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gQHRzLWV4cGVjdC1lcnJvcjogaXRcdTIwMTlzIGEgY29ycmVjdCBjaGlsZC5cbiAgICByZXR1cm4gbmV4dFxuICB9XG59XG4iLCAiLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdoYXN0JykuRWxlbWVudH0gRWxlbWVudFxuICogQHR5cGVkZWYge2ltcG9ydCgnaGFzdCcpLlBhcmVudHN9IFBhcmVudHNcbiAqL1xuXG4vKipcbiAqIEBjYWxsYmFjayBPbWl0SGFuZGxlXG4gKiAgIENoZWNrIGlmIGEgdGFnIGNhbiBiZSBvbWl0dGVkLlxuICogQHBhcmFtIHtFbGVtZW50fSBlbGVtZW50XG4gKiAgIEVsZW1lbnQgdG8gY2hlY2suXG4gKiBAcGFyYW0ge251bWJlciB8IHVuZGVmaW5lZH0gaW5kZXhcbiAqICAgSW5kZXggb2YgZWxlbWVudCBpbiBwYXJlbnQuXG4gKiBAcGFyYW0ge1BhcmVudHMgfCB1bmRlZmluZWR9IHBhcmVudFxuICogICBQYXJlbnQgb2YgZWxlbWVudC5cbiAqIEByZXR1cm5zIHtib29sZWFufVxuICogICBXaGV0aGVyIHRvIG9taXQgYSB0YWcuXG4gKlxuICovXG5cbmNvbnN0IG93biA9IHt9Lmhhc093blByb3BlcnR5XG5cbi8qKlxuICogRmFjdG9yeSB0byBjaGVjayBpZiBhIGdpdmVuIG5vZGUgY2FuIGhhdmUgYSB0YWcgb21pdHRlZC5cbiAqXG4gKiBAcGFyYW0ge1JlY29yZDxzdHJpbmcsIE9taXRIYW5kbGU+fSBoYW5kbGVyc1xuICogICBPbWlzc2lvbiBoYW5kbGVycywgd2hlcmUgZWFjaCBrZXkgaXMgYSB0YWcgbmFtZSwgYW5kIGVhY2ggdmFsdWUgaXMgdGhlXG4gKiAgIGNvcnJlc3BvbmRpbmcgaGFuZGxlci5cbiAqIEByZXR1cm5zIHtPbWl0SGFuZGxlfVxuICogICBXaGV0aGVyIHRvIG9taXQgYSB0YWcgb2YgYW4gZWxlbWVudC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG9taXNzaW9uKGhhbmRsZXJzKSB7XG4gIHJldHVybiBvbWl0XG5cbiAgLyoqXG4gICAqIENoZWNrIGlmIGEgZ2l2ZW4gbm9kZSBjYW4gaGF2ZSBhIHRhZyBvbWl0dGVkLlxuICAgKlxuICAgKiBAdHlwZSB7T21pdEhhbmRsZX1cbiAgICovXG4gIGZ1bmN0aW9uIG9taXQobm9kZSwgaW5kZXgsIHBhcmVudCkge1xuICAgIHJldHVybiAoXG4gICAgICBvd24uY2FsbChoYW5kbGVycywgbm9kZS50YWdOYW1lKSAmJlxuICAgICAgaGFuZGxlcnNbbm9kZS50YWdOYW1lXShub2RlLCBpbmRleCwgcGFyZW50KVxuICAgIClcbiAgfVxufVxuIiwgIi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgnaGFzdCcpLkVsZW1lbnR9IEVsZW1lbnRcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ2hhc3QnKS5QYXJlbnRzfSBQYXJlbnRzXG4gKi9cblxuaW1wb3J0IHt3aGl0ZXNwYWNlfSBmcm9tICdoYXN0LXV0aWwtd2hpdGVzcGFjZSdcbmltcG9ydCB7c2libGluZ0FmdGVyfSBmcm9tICcuL3V0aWwvc2libGluZ3MuanMnXG5pbXBvcnQge29taXNzaW9ufSBmcm9tICcuL29taXNzaW9uLmpzJ1xuXG5leHBvcnQgY29uc3QgY2xvc2luZyA9IG9taXNzaW9uKHtcbiAgYm9keSxcbiAgY2FwdGlvbjogaGVhZE9yQ29sZ3JvdXBPckNhcHRpb24sXG4gIGNvbGdyb3VwOiBoZWFkT3JDb2xncm91cE9yQ2FwdGlvbixcbiAgZGQsXG4gIGR0LFxuICBoZWFkOiBoZWFkT3JDb2xncm91cE9yQ2FwdGlvbixcbiAgaHRtbCxcbiAgbGksXG4gIG9wdGdyb3VwLFxuICBvcHRpb24sXG4gIHAsXG4gIHJwOiBydWJ5RWxlbWVudCxcbiAgcnQ6IHJ1YnlFbGVtZW50LFxuICB0Ym9keSxcbiAgdGQ6IGNlbGxzLFxuICB0Zm9vdCxcbiAgdGg6IGNlbGxzLFxuICB0aGVhZCxcbiAgdHJcbn0pXG5cbi8qKlxuICogTWFjcm8gZm9yIGA8L2hlYWQ+YCwgYDwvY29sZ3JvdXA+YCwgYW5kIGA8L2NhcHRpb24+YC5cbiAqXG4gKiBAcGFyYW0ge0VsZW1lbnR9IF9cbiAqICAgRWxlbWVudC5cbiAqIEBwYXJhbSB7bnVtYmVyIHwgdW5kZWZpbmVkfSBpbmRleFxuICogICBJbmRleCBvZiBlbGVtZW50IGluIHBhcmVudC5cbiAqIEBwYXJhbSB7UGFyZW50cyB8IHVuZGVmaW5lZH0gcGFyZW50XG4gKiAgIFBhcmVudCBvZiBlbGVtZW50LlxuICogQHJldHVybnMge2Jvb2xlYW59XG4gKiAgIFdoZXRoZXIgdGhlIGNsb3NpbmcgdGFnIGNhbiBiZSBvbWl0dGVkLlxuICovXG5mdW5jdGlvbiBoZWFkT3JDb2xncm91cE9yQ2FwdGlvbihfLCBpbmRleCwgcGFyZW50KSB7XG4gIGNvbnN0IG5leHQgPSBzaWJsaW5nQWZ0ZXIocGFyZW50LCBpbmRleCwgdHJ1ZSlcbiAgcmV0dXJuIChcbiAgICAhbmV4dCB8fFxuICAgIChuZXh0LnR5cGUgIT09ICdjb21tZW50JyAmJlxuICAgICAgIShuZXh0LnR5cGUgPT09ICd0ZXh0JyAmJiB3aGl0ZXNwYWNlKG5leHQudmFsdWUuY2hhckF0KDApKSkpXG4gIClcbn1cblxuLyoqXG4gKiBXaGV0aGVyIHRvIG9taXQgYDwvaHRtbD5gLlxuICpcbiAqIEBwYXJhbSB7RWxlbWVudH0gX1xuICogICBFbGVtZW50LlxuICogQHBhcmFtIHtudW1iZXIgfCB1bmRlZmluZWR9IGluZGV4XG4gKiAgIEluZGV4IG9mIGVsZW1lbnQgaW4gcGFyZW50LlxuICogQHBhcmFtIHtQYXJlbnRzIHwgdW5kZWZpbmVkfSBwYXJlbnRcbiAqICAgUGFyZW50IG9mIGVsZW1lbnQuXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAqICAgV2hldGhlciB0aGUgY2xvc2luZyB0YWcgY2FuIGJlIG9taXR0ZWQuXG4gKi9cbmZ1bmN0aW9uIGh0bWwoXywgaW5kZXgsIHBhcmVudCkge1xuICBjb25zdCBuZXh0ID0gc2libGluZ0FmdGVyKHBhcmVudCwgaW5kZXgpXG4gIHJldHVybiAhbmV4dCB8fCBuZXh0LnR5cGUgIT09ICdjb21tZW50J1xufVxuXG4vKipcbiAqIFdoZXRoZXIgdG8gb21pdCBgPC9ib2R5PmAuXG4gKlxuICogQHBhcmFtIHtFbGVtZW50fSBfXG4gKiAgIEVsZW1lbnQuXG4gKiBAcGFyYW0ge251bWJlciB8IHVuZGVmaW5lZH0gaW5kZXhcbiAqICAgSW5kZXggb2YgZWxlbWVudCBpbiBwYXJlbnQuXG4gKiBAcGFyYW0ge1BhcmVudHMgfCB1bmRlZmluZWR9IHBhcmVudFxuICogICBQYXJlbnQgb2YgZWxlbWVudC5cbiAqIEByZXR1cm5zIHtib29sZWFufVxuICogICBXaGV0aGVyIHRoZSBjbG9zaW5nIHRhZyBjYW4gYmUgb21pdHRlZC5cbiAqL1xuZnVuY3Rpb24gYm9keShfLCBpbmRleCwgcGFyZW50KSB7XG4gIGNvbnN0IG5leHQgPSBzaWJsaW5nQWZ0ZXIocGFyZW50LCBpbmRleClcbiAgcmV0dXJuICFuZXh0IHx8IG5leHQudHlwZSAhPT0gJ2NvbW1lbnQnXG59XG5cbi8qKlxuICogV2hldGhlciB0byBvbWl0IGA8L3A+YC5cbiAqXG4gKiBAcGFyYW0ge0VsZW1lbnR9IF9cbiAqICAgRWxlbWVudC5cbiAqIEBwYXJhbSB7bnVtYmVyIHwgdW5kZWZpbmVkfSBpbmRleFxuICogICBJbmRleCBvZiBlbGVtZW50IGluIHBhcmVudC5cbiAqIEBwYXJhbSB7UGFyZW50cyB8IHVuZGVmaW5lZH0gcGFyZW50XG4gKiAgIFBhcmVudCBvZiBlbGVtZW50LlxuICogQHJldHVybnMge2Jvb2xlYW59XG4gKiAgIFdoZXRoZXIgdGhlIGNsb3NpbmcgdGFnIGNhbiBiZSBvbWl0dGVkLlxuICovXG5mdW5jdGlvbiBwKF8sIGluZGV4LCBwYXJlbnQpIHtcbiAgY29uc3QgbmV4dCA9IHNpYmxpbmdBZnRlcihwYXJlbnQsIGluZGV4KVxuICByZXR1cm4gbmV4dFxuICAgID8gbmV4dC50eXBlID09PSAnZWxlbWVudCcgJiZcbiAgICAgICAgKG5leHQudGFnTmFtZSA9PT0gJ2FkZHJlc3MnIHx8XG4gICAgICAgICAgbmV4dC50YWdOYW1lID09PSAnYXJ0aWNsZScgfHxcbiAgICAgICAgICBuZXh0LnRhZ05hbWUgPT09ICdhc2lkZScgfHxcbiAgICAgICAgICBuZXh0LnRhZ05hbWUgPT09ICdibG9ja3F1b3RlJyB8fFxuICAgICAgICAgIG5leHQudGFnTmFtZSA9PT0gJ2RldGFpbHMnIHx8XG4gICAgICAgICAgbmV4dC50YWdOYW1lID09PSAnZGl2JyB8fFxuICAgICAgICAgIG5leHQudGFnTmFtZSA9PT0gJ2RsJyB8fFxuICAgICAgICAgIG5leHQudGFnTmFtZSA9PT0gJ2ZpZWxkc2V0JyB8fFxuICAgICAgICAgIG5leHQudGFnTmFtZSA9PT0gJ2ZpZ2NhcHRpb24nIHx8XG4gICAgICAgICAgbmV4dC50YWdOYW1lID09PSAnZmlndXJlJyB8fFxuICAgICAgICAgIG5leHQudGFnTmFtZSA9PT0gJ2Zvb3RlcicgfHxcbiAgICAgICAgICBuZXh0LnRhZ05hbWUgPT09ICdmb3JtJyB8fFxuICAgICAgICAgIG5leHQudGFnTmFtZSA9PT0gJ2gxJyB8fFxuICAgICAgICAgIG5leHQudGFnTmFtZSA9PT0gJ2gyJyB8fFxuICAgICAgICAgIG5leHQudGFnTmFtZSA9PT0gJ2gzJyB8fFxuICAgICAgICAgIG5leHQudGFnTmFtZSA9PT0gJ2g0JyB8fFxuICAgICAgICAgIG5leHQudGFnTmFtZSA9PT0gJ2g1JyB8fFxuICAgICAgICAgIG5leHQudGFnTmFtZSA9PT0gJ2g2JyB8fFxuICAgICAgICAgIG5leHQudGFnTmFtZSA9PT0gJ2hlYWRlcicgfHxcbiAgICAgICAgICBuZXh0LnRhZ05hbWUgPT09ICdoZ3JvdXAnIHx8XG4gICAgICAgICAgbmV4dC50YWdOYW1lID09PSAnaHInIHx8XG4gICAgICAgICAgbmV4dC50YWdOYW1lID09PSAnbWFpbicgfHxcbiAgICAgICAgICBuZXh0LnRhZ05hbWUgPT09ICdtZW51JyB8fFxuICAgICAgICAgIG5leHQudGFnTmFtZSA9PT0gJ25hdicgfHxcbiAgICAgICAgICBuZXh0LnRhZ05hbWUgPT09ICdvbCcgfHxcbiAgICAgICAgICBuZXh0LnRhZ05hbWUgPT09ICdwJyB8fFxuICAgICAgICAgIG5leHQudGFnTmFtZSA9PT0gJ3ByZScgfHxcbiAgICAgICAgICBuZXh0LnRhZ05hbWUgPT09ICdzZWN0aW9uJyB8fFxuICAgICAgICAgIG5leHQudGFnTmFtZSA9PT0gJ3RhYmxlJyB8fFxuICAgICAgICAgIG5leHQudGFnTmFtZSA9PT0gJ3VsJylcbiAgICA6ICFwYXJlbnQgfHxcbiAgICAgICAgLy8gQ29uZnVzaW5nIHBhcmVudC5cbiAgICAgICAgIShcbiAgICAgICAgICBwYXJlbnQudHlwZSA9PT0gJ2VsZW1lbnQnICYmXG4gICAgICAgICAgKHBhcmVudC50YWdOYW1lID09PSAnYScgfHxcbiAgICAgICAgICAgIHBhcmVudC50YWdOYW1lID09PSAnYXVkaW8nIHx8XG4gICAgICAgICAgICBwYXJlbnQudGFnTmFtZSA9PT0gJ2RlbCcgfHxcbiAgICAgICAgICAgIHBhcmVudC50YWdOYW1lID09PSAnaW5zJyB8fFxuICAgICAgICAgICAgcGFyZW50LnRhZ05hbWUgPT09ICdtYXAnIHx8XG4gICAgICAgICAgICBwYXJlbnQudGFnTmFtZSA9PT0gJ25vc2NyaXB0JyB8fFxuICAgICAgICAgICAgcGFyZW50LnRhZ05hbWUgPT09ICd2aWRlbycpXG4gICAgICAgIClcbn1cblxuLyoqXG4gKiBXaGV0aGVyIHRvIG9taXQgYDwvbGk+YC5cbiAqXG4gKiBAcGFyYW0ge0VsZW1lbnR9IF9cbiAqICAgRWxlbWVudC5cbiAqIEBwYXJhbSB7bnVtYmVyIHwgdW5kZWZpbmVkfSBpbmRleFxuICogICBJbmRleCBvZiBlbGVtZW50IGluIHBhcmVudC5cbiAqIEBwYXJhbSB7UGFyZW50cyB8IHVuZGVmaW5lZH0gcGFyZW50XG4gKiAgIFBhcmVudCBvZiBlbGVtZW50LlxuICogQHJldHVybnMge2Jvb2xlYW59XG4gKiAgIFdoZXRoZXIgdGhlIGNsb3NpbmcgdGFnIGNhbiBiZSBvbWl0dGVkLlxuICovXG5mdW5jdGlvbiBsaShfLCBpbmRleCwgcGFyZW50KSB7XG4gIGNvbnN0IG5leHQgPSBzaWJsaW5nQWZ0ZXIocGFyZW50LCBpbmRleClcbiAgcmV0dXJuICFuZXh0IHx8IChuZXh0LnR5cGUgPT09ICdlbGVtZW50JyAmJiBuZXh0LnRhZ05hbWUgPT09ICdsaScpXG59XG5cbi8qKlxuICogV2hldGhlciB0byBvbWl0IGA8L2R0PmAuXG4gKlxuICogQHBhcmFtIHtFbGVtZW50fSBfXG4gKiAgIEVsZW1lbnQuXG4gKiBAcGFyYW0ge251bWJlciB8IHVuZGVmaW5lZH0gaW5kZXhcbiAqICAgSW5kZXggb2YgZWxlbWVudCBpbiBwYXJlbnQuXG4gKiBAcGFyYW0ge1BhcmVudHMgfCB1bmRlZmluZWR9IHBhcmVudFxuICogICBQYXJlbnQgb2YgZWxlbWVudC5cbiAqIEByZXR1cm5zIHtib29sZWFufVxuICogICBXaGV0aGVyIHRoZSBjbG9zaW5nIHRhZyBjYW4gYmUgb21pdHRlZC5cbiAqL1xuZnVuY3Rpb24gZHQoXywgaW5kZXgsIHBhcmVudCkge1xuICBjb25zdCBuZXh0ID0gc2libGluZ0FmdGVyKHBhcmVudCwgaW5kZXgpXG4gIHJldHVybiBCb29sZWFuKFxuICAgIG5leHQgJiZcbiAgICAgIG5leHQudHlwZSA9PT0gJ2VsZW1lbnQnICYmXG4gICAgICAobmV4dC50YWdOYW1lID09PSAnZHQnIHx8IG5leHQudGFnTmFtZSA9PT0gJ2RkJylcbiAgKVxufVxuXG4vKipcbiAqIFdoZXRoZXIgdG8gb21pdCBgPC9kZD5gLlxuICpcbiAqIEBwYXJhbSB7RWxlbWVudH0gX1xuICogICBFbGVtZW50LlxuICogQHBhcmFtIHtudW1iZXIgfCB1bmRlZmluZWR9IGluZGV4XG4gKiAgIEluZGV4IG9mIGVsZW1lbnQgaW4gcGFyZW50LlxuICogQHBhcmFtIHtQYXJlbnRzIHwgdW5kZWZpbmVkfSBwYXJlbnRcbiAqICAgUGFyZW50IG9mIGVsZW1lbnQuXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAqICAgV2hldGhlciB0aGUgY2xvc2luZyB0YWcgY2FuIGJlIG9taXR0ZWQuXG4gKi9cbmZ1bmN0aW9uIGRkKF8sIGluZGV4LCBwYXJlbnQpIHtcbiAgY29uc3QgbmV4dCA9IHNpYmxpbmdBZnRlcihwYXJlbnQsIGluZGV4KVxuICByZXR1cm4gKFxuICAgICFuZXh0IHx8XG4gICAgKG5leHQudHlwZSA9PT0gJ2VsZW1lbnQnICYmXG4gICAgICAobmV4dC50YWdOYW1lID09PSAnZHQnIHx8IG5leHQudGFnTmFtZSA9PT0gJ2RkJykpXG4gIClcbn1cblxuLyoqXG4gKiBXaGV0aGVyIHRvIG9taXQgYDwvcnQ+YCBvciBgPC9ycD5gLlxuICpcbiAqIEBwYXJhbSB7RWxlbWVudH0gX1xuICogICBFbGVtZW50LlxuICogQHBhcmFtIHtudW1iZXIgfCB1bmRlZmluZWR9IGluZGV4XG4gKiAgIEluZGV4IG9mIGVsZW1lbnQgaW4gcGFyZW50LlxuICogQHBhcmFtIHtQYXJlbnRzIHwgdW5kZWZpbmVkfSBwYXJlbnRcbiAqICAgUGFyZW50IG9mIGVsZW1lbnQuXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAqICAgV2hldGhlciB0aGUgY2xvc2luZyB0YWcgY2FuIGJlIG9taXR0ZWQuXG4gKi9cbmZ1bmN0aW9uIHJ1YnlFbGVtZW50KF8sIGluZGV4LCBwYXJlbnQpIHtcbiAgY29uc3QgbmV4dCA9IHNpYmxpbmdBZnRlcihwYXJlbnQsIGluZGV4KVxuICByZXR1cm4gKFxuICAgICFuZXh0IHx8XG4gICAgKG5leHQudHlwZSA9PT0gJ2VsZW1lbnQnICYmXG4gICAgICAobmV4dC50YWdOYW1lID09PSAncnAnIHx8IG5leHQudGFnTmFtZSA9PT0gJ3J0JykpXG4gIClcbn1cblxuLyoqXG4gKiBXaGV0aGVyIHRvIG9taXQgYDwvb3B0Z3JvdXA+YC5cbiAqXG4gKiBAcGFyYW0ge0VsZW1lbnR9IF9cbiAqICAgRWxlbWVudC5cbiAqIEBwYXJhbSB7bnVtYmVyIHwgdW5kZWZpbmVkfSBpbmRleFxuICogICBJbmRleCBvZiBlbGVtZW50IGluIHBhcmVudC5cbiAqIEBwYXJhbSB7UGFyZW50cyB8IHVuZGVmaW5lZH0gcGFyZW50XG4gKiAgIFBhcmVudCBvZiBlbGVtZW50LlxuICogQHJldHVybnMge2Jvb2xlYW59XG4gKiAgIFdoZXRoZXIgdGhlIGNsb3NpbmcgdGFnIGNhbiBiZSBvbWl0dGVkLlxuICovXG5mdW5jdGlvbiBvcHRncm91cChfLCBpbmRleCwgcGFyZW50KSB7XG4gIGNvbnN0IG5leHQgPSBzaWJsaW5nQWZ0ZXIocGFyZW50LCBpbmRleClcbiAgcmV0dXJuICFuZXh0IHx8IChuZXh0LnR5cGUgPT09ICdlbGVtZW50JyAmJiBuZXh0LnRhZ05hbWUgPT09ICdvcHRncm91cCcpXG59XG5cbi8qKlxuICogV2hldGhlciB0byBvbWl0IGA8L29wdGlvbj5gLlxuICpcbiAqIEBwYXJhbSB7RWxlbWVudH0gX1xuICogICBFbGVtZW50LlxuICogQHBhcmFtIHtudW1iZXIgfCB1bmRlZmluZWR9IGluZGV4XG4gKiAgIEluZGV4IG9mIGVsZW1lbnQgaW4gcGFyZW50LlxuICogQHBhcmFtIHtQYXJlbnRzIHwgdW5kZWZpbmVkfSBwYXJlbnRcbiAqICAgUGFyZW50IG9mIGVsZW1lbnQuXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAqICAgV2hldGhlciB0aGUgY2xvc2luZyB0YWcgY2FuIGJlIG9taXR0ZWQuXG4gKi9cbmZ1bmN0aW9uIG9wdGlvbihfLCBpbmRleCwgcGFyZW50KSB7XG4gIGNvbnN0IG5leHQgPSBzaWJsaW5nQWZ0ZXIocGFyZW50LCBpbmRleClcbiAgcmV0dXJuIChcbiAgICAhbmV4dCB8fFxuICAgIChuZXh0LnR5cGUgPT09ICdlbGVtZW50JyAmJlxuICAgICAgKG5leHQudGFnTmFtZSA9PT0gJ29wdGlvbicgfHwgbmV4dC50YWdOYW1lID09PSAnb3B0Z3JvdXAnKSlcbiAgKVxufVxuXG4vKipcbiAqIFdoZXRoZXIgdG8gb21pdCBgPC90aGVhZD5gLlxuICpcbiAqIEBwYXJhbSB7RWxlbWVudH0gX1xuICogICBFbGVtZW50LlxuICogQHBhcmFtIHtudW1iZXIgfCB1bmRlZmluZWR9IGluZGV4XG4gKiAgIEluZGV4IG9mIGVsZW1lbnQgaW4gcGFyZW50LlxuICogQHBhcmFtIHtQYXJlbnRzIHwgdW5kZWZpbmVkfSBwYXJlbnRcbiAqICAgUGFyZW50IG9mIGVsZW1lbnQuXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAqICAgV2hldGhlciB0aGUgY2xvc2luZyB0YWcgY2FuIGJlIG9taXR0ZWQuXG4gKi9cbmZ1bmN0aW9uIHRoZWFkKF8sIGluZGV4LCBwYXJlbnQpIHtcbiAgY29uc3QgbmV4dCA9IHNpYmxpbmdBZnRlcihwYXJlbnQsIGluZGV4KVxuICByZXR1cm4gQm9vbGVhbihcbiAgICBuZXh0ICYmXG4gICAgICBuZXh0LnR5cGUgPT09ICdlbGVtZW50JyAmJlxuICAgICAgKG5leHQudGFnTmFtZSA9PT0gJ3Rib2R5JyB8fCBuZXh0LnRhZ05hbWUgPT09ICd0Zm9vdCcpXG4gIClcbn1cblxuLyoqXG4gKiBXaGV0aGVyIHRvIG9taXQgYDwvdGJvZHk+YC5cbiAqXG4gKiBAcGFyYW0ge0VsZW1lbnR9IF9cbiAqICAgRWxlbWVudC5cbiAqIEBwYXJhbSB7bnVtYmVyIHwgdW5kZWZpbmVkfSBpbmRleFxuICogICBJbmRleCBvZiBlbGVtZW50IGluIHBhcmVudC5cbiAqIEBwYXJhbSB7UGFyZW50cyB8IHVuZGVmaW5lZH0gcGFyZW50XG4gKiAgIFBhcmVudCBvZiBlbGVtZW50LlxuICogQHJldHVybnMge2Jvb2xlYW59XG4gKiAgIFdoZXRoZXIgdGhlIGNsb3NpbmcgdGFnIGNhbiBiZSBvbWl0dGVkLlxuICovXG5mdW5jdGlvbiB0Ym9keShfLCBpbmRleCwgcGFyZW50KSB7XG4gIGNvbnN0IG5leHQgPSBzaWJsaW5nQWZ0ZXIocGFyZW50LCBpbmRleClcbiAgcmV0dXJuIChcbiAgICAhbmV4dCB8fFxuICAgIChuZXh0LnR5cGUgPT09ICdlbGVtZW50JyAmJlxuICAgICAgKG5leHQudGFnTmFtZSA9PT0gJ3Rib2R5JyB8fCBuZXh0LnRhZ05hbWUgPT09ICd0Zm9vdCcpKVxuICApXG59XG5cbi8qKlxuICogV2hldGhlciB0byBvbWl0IGA8L3Rmb290PmAuXG4gKlxuICogQHBhcmFtIHtFbGVtZW50fSBfXG4gKiAgIEVsZW1lbnQuXG4gKiBAcGFyYW0ge251bWJlciB8IHVuZGVmaW5lZH0gaW5kZXhcbiAqICAgSW5kZXggb2YgZWxlbWVudCBpbiBwYXJlbnQuXG4gKiBAcGFyYW0ge1BhcmVudHMgfCB1bmRlZmluZWR9IHBhcmVudFxuICogICBQYXJlbnQgb2YgZWxlbWVudC5cbiAqIEByZXR1cm5zIHtib29sZWFufVxuICogICBXaGV0aGVyIHRoZSBjbG9zaW5nIHRhZyBjYW4gYmUgb21pdHRlZC5cbiAqL1xuZnVuY3Rpb24gdGZvb3QoXywgaW5kZXgsIHBhcmVudCkge1xuICByZXR1cm4gIXNpYmxpbmdBZnRlcihwYXJlbnQsIGluZGV4KVxufVxuXG4vKipcbiAqIFdoZXRoZXIgdG8gb21pdCBgPC90cj5gLlxuICpcbiAqIEBwYXJhbSB7RWxlbWVudH0gX1xuICogICBFbGVtZW50LlxuICogQHBhcmFtIHtudW1iZXIgfCB1bmRlZmluZWR9IGluZGV4XG4gKiAgIEluZGV4IG9mIGVsZW1lbnQgaW4gcGFyZW50LlxuICogQHBhcmFtIHtQYXJlbnRzIHwgdW5kZWZpbmVkfSBwYXJlbnRcbiAqICAgUGFyZW50IG9mIGVsZW1lbnQuXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAqICAgV2hldGhlciB0aGUgY2xvc2luZyB0YWcgY2FuIGJlIG9taXR0ZWQuXG4gKi9cbmZ1bmN0aW9uIHRyKF8sIGluZGV4LCBwYXJlbnQpIHtcbiAgY29uc3QgbmV4dCA9IHNpYmxpbmdBZnRlcihwYXJlbnQsIGluZGV4KVxuICByZXR1cm4gIW5leHQgfHwgKG5leHQudHlwZSA9PT0gJ2VsZW1lbnQnICYmIG5leHQudGFnTmFtZSA9PT0gJ3RyJylcbn1cblxuLyoqXG4gKiBXaGV0aGVyIHRvIG9taXQgYDwvdGQ+YCBvciBgPC90aD5gLlxuICpcbiAqIEBwYXJhbSB7RWxlbWVudH0gX1xuICogICBFbGVtZW50LlxuICogQHBhcmFtIHtudW1iZXIgfCB1bmRlZmluZWR9IGluZGV4XG4gKiAgIEluZGV4IG9mIGVsZW1lbnQgaW4gcGFyZW50LlxuICogQHBhcmFtIHtQYXJlbnRzIHwgdW5kZWZpbmVkfSBwYXJlbnRcbiAqICAgUGFyZW50IG9mIGVsZW1lbnQuXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAqICAgV2hldGhlciB0aGUgY2xvc2luZyB0YWcgY2FuIGJlIG9taXR0ZWQuXG4gKi9cbmZ1bmN0aW9uIGNlbGxzKF8sIGluZGV4LCBwYXJlbnQpIHtcbiAgY29uc3QgbmV4dCA9IHNpYmxpbmdBZnRlcihwYXJlbnQsIGluZGV4KVxuICByZXR1cm4gKFxuICAgICFuZXh0IHx8XG4gICAgKG5leHQudHlwZSA9PT0gJ2VsZW1lbnQnICYmXG4gICAgICAobmV4dC50YWdOYW1lID09PSAndGQnIHx8IG5leHQudGFnTmFtZSA9PT0gJ3RoJykpXG4gIClcbn1cbiIsICIvKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ2hhc3QnKS5FbGVtZW50fSBFbGVtZW50XG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdoYXN0JykuUGFyZW50c30gUGFyZW50c1xuICovXG5cbmltcG9ydCB7d2hpdGVzcGFjZX0gZnJvbSAnaGFzdC11dGlsLXdoaXRlc3BhY2UnXG5pbXBvcnQge3NpYmxpbmdBZnRlciwgc2libGluZ0JlZm9yZX0gZnJvbSAnLi91dGlsL3NpYmxpbmdzLmpzJ1xuaW1wb3J0IHtjbG9zaW5nfSBmcm9tICcuL2Nsb3NpbmcuanMnXG5pbXBvcnQge29taXNzaW9ufSBmcm9tICcuL29taXNzaW9uLmpzJ1xuXG5leHBvcnQgY29uc3Qgb3BlbmluZyA9IG9taXNzaW9uKHtcbiAgYm9keSxcbiAgY29sZ3JvdXAsXG4gIGhlYWQsXG4gIGh0bWwsXG4gIHRib2R5XG59KVxuXG4vKipcbiAqIFdoZXRoZXIgdG8gb21pdCBgPGh0bWw+YC5cbiAqXG4gKiBAcGFyYW0ge0VsZW1lbnR9IG5vZGVcbiAqICAgRWxlbWVudC5cbiAqIEByZXR1cm5zIHtib29sZWFufVxuICogICBXaGV0aGVyIHRoZSBvcGVuaW5nIHRhZyBjYW4gYmUgb21pdHRlZC5cbiAqL1xuZnVuY3Rpb24gaHRtbChub2RlKSB7XG4gIGNvbnN0IGhlYWQgPSBzaWJsaW5nQWZ0ZXIobm9kZSwgLTEpXG4gIHJldHVybiAhaGVhZCB8fCBoZWFkLnR5cGUgIT09ICdjb21tZW50J1xufVxuXG4vKipcbiAqIFdoZXRoZXIgdG8gb21pdCBgPGhlYWQ+YC5cbiAqXG4gKiBAcGFyYW0ge0VsZW1lbnR9IG5vZGVcbiAqICAgRWxlbWVudC5cbiAqIEByZXR1cm5zIHtib29sZWFufVxuICogICBXaGV0aGVyIHRoZSBvcGVuaW5nIHRhZyBjYW4gYmUgb21pdHRlZC5cbiAqL1xuZnVuY3Rpb24gaGVhZChub2RlKSB7XG4gIGNvbnN0IGNoaWxkcmVuID0gbm9kZS5jaGlsZHJlblxuICAvKiogQHR5cGUge0FycmF5PHN0cmluZz59ICovXG4gIGNvbnN0IHNlZW4gPSBbXVxuICBsZXQgaW5kZXggPSAtMVxuXG4gIHdoaWxlICgrK2luZGV4IDwgY2hpbGRyZW4ubGVuZ3RoKSB7XG4gICAgY29uc3QgY2hpbGQgPSBjaGlsZHJlbltpbmRleF1cbiAgICBpZiAoXG4gICAgICBjaGlsZC50eXBlID09PSAnZWxlbWVudCcgJiZcbiAgICAgIChjaGlsZC50YWdOYW1lID09PSAndGl0bGUnIHx8IGNoaWxkLnRhZ05hbWUgPT09ICdiYXNlJylcbiAgICApIHtcbiAgICAgIGlmIChzZWVuLmluY2x1ZGVzKGNoaWxkLnRhZ05hbWUpKSByZXR1cm4gZmFsc2VcbiAgICAgIHNlZW4ucHVzaChjaGlsZC50YWdOYW1lKVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBjaGlsZHJlbi5sZW5ndGggPiAwXG59XG5cbi8qKlxuICogV2hldGhlciB0byBvbWl0IGA8Ym9keT5gLlxuICpcbiAqIEBwYXJhbSB7RWxlbWVudH0gbm9kZVxuICogICBFbGVtZW50LlxuICogQHJldHVybnMge2Jvb2xlYW59XG4gKiAgIFdoZXRoZXIgdGhlIG9wZW5pbmcgdGFnIGNhbiBiZSBvbWl0dGVkLlxuICovXG5mdW5jdGlvbiBib2R5KG5vZGUpIHtcbiAgY29uc3QgaGVhZCA9IHNpYmxpbmdBZnRlcihub2RlLCAtMSwgdHJ1ZSlcblxuICByZXR1cm4gKFxuICAgICFoZWFkIHx8XG4gICAgKGhlYWQudHlwZSAhPT0gJ2NvbW1lbnQnICYmXG4gICAgICAhKGhlYWQudHlwZSA9PT0gJ3RleHQnICYmIHdoaXRlc3BhY2UoaGVhZC52YWx1ZS5jaGFyQXQoMCkpKSAmJlxuICAgICAgIShcbiAgICAgICAgaGVhZC50eXBlID09PSAnZWxlbWVudCcgJiZcbiAgICAgICAgKGhlYWQudGFnTmFtZSA9PT0gJ21ldGEnIHx8XG4gICAgICAgICAgaGVhZC50YWdOYW1lID09PSAnbGluaycgfHxcbiAgICAgICAgICBoZWFkLnRhZ05hbWUgPT09ICdzY3JpcHQnIHx8XG4gICAgICAgICAgaGVhZC50YWdOYW1lID09PSAnc3R5bGUnIHx8XG4gICAgICAgICAgaGVhZC50YWdOYW1lID09PSAndGVtcGxhdGUnKVxuICAgICAgKSlcbiAgKVxufVxuXG4vKipcbiAqIFdoZXRoZXIgdG8gb21pdCBgPGNvbGdyb3VwPmAuXG4gKiBUaGUgc3BlYyBkZXNjcmliZXMgc29tZSBsb2dpYyBmb3IgdGhlIG9wZW5pbmcgdGFnLCBidXQgaXRcdTIwMTlzIGVhc2llciB0b1xuICogaW1wbGVtZW50IGluIHRoZSBjbG9zaW5nIHRhZywgdG8gdGhlIHNhbWUgZWZmZWN0LCBzbyB3ZSBoYW5kbGUgaXQgdGhlcmVcbiAqIGluc3RlYWQuXG4gKlxuICogQHBhcmFtIHtFbGVtZW50fSBub2RlXG4gKiAgIEVsZW1lbnQuXG4gKiBAcGFyYW0ge251bWJlciB8IHVuZGVmaW5lZH0gaW5kZXhcbiAqICAgSW5kZXggb2YgZWxlbWVudCBpbiBwYXJlbnQuXG4gKiBAcGFyYW0ge1BhcmVudHMgfCB1bmRlZmluZWR9IHBhcmVudFxuICogICBQYXJlbnQgb2YgZWxlbWVudC5cbiAqIEByZXR1cm5zIHtib29sZWFufVxuICogICBXaGV0aGVyIHRoZSBvcGVuaW5nIHRhZyBjYW4gYmUgb21pdHRlZC5cbiAqL1xuZnVuY3Rpb24gY29sZ3JvdXAobm9kZSwgaW5kZXgsIHBhcmVudCkge1xuICBjb25zdCBwcmV2aW91cyA9IHNpYmxpbmdCZWZvcmUocGFyZW50LCBpbmRleClcbiAgY29uc3QgaGVhZCA9IHNpYmxpbmdBZnRlcihub2RlLCAtMSwgdHJ1ZSlcblxuICAvLyBQcmV2aW91cyBjb2xncm91cCB3YXMgYWxyZWFkeSBvbWl0dGVkLlxuICBpZiAoXG4gICAgcGFyZW50ICYmXG4gICAgcHJldmlvdXMgJiZcbiAgICBwcmV2aW91cy50eXBlID09PSAnZWxlbWVudCcgJiZcbiAgICBwcmV2aW91cy50YWdOYW1lID09PSAnY29sZ3JvdXAnICYmXG4gICAgY2xvc2luZyhwcmV2aW91cywgcGFyZW50LmNoaWxkcmVuLmluZGV4T2YocHJldmlvdXMpLCBwYXJlbnQpXG4gICkge1xuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgcmV0dXJuIEJvb2xlYW4oaGVhZCAmJiBoZWFkLnR5cGUgPT09ICdlbGVtZW50JyAmJiBoZWFkLnRhZ05hbWUgPT09ICdjb2wnKVxufVxuXG4vKipcbiAqIFdoZXRoZXIgdG8gb21pdCBgPHRib2R5PmAuXG4gKlxuICogQHBhcmFtIHtFbGVtZW50fSBub2RlXG4gKiAgIEVsZW1lbnQuXG4gKiBAcGFyYW0ge251bWJlciB8IHVuZGVmaW5lZH0gaW5kZXhcbiAqICAgSW5kZXggb2YgZWxlbWVudCBpbiBwYXJlbnQuXG4gKiBAcGFyYW0ge1BhcmVudHMgfCB1bmRlZmluZWR9IHBhcmVudFxuICogICBQYXJlbnQgb2YgZWxlbWVudC5cbiAqIEByZXR1cm5zIHtib29sZWFufVxuICogICBXaGV0aGVyIHRoZSBvcGVuaW5nIHRhZyBjYW4gYmUgb21pdHRlZC5cbiAqL1xuZnVuY3Rpb24gdGJvZHkobm9kZSwgaW5kZXgsIHBhcmVudCkge1xuICBjb25zdCBwcmV2aW91cyA9IHNpYmxpbmdCZWZvcmUocGFyZW50LCBpbmRleClcbiAgY29uc3QgaGVhZCA9IHNpYmxpbmdBZnRlcihub2RlLCAtMSlcblxuICAvLyBQcmV2aW91cyB0YWJsZSBzZWN0aW9uIHdhcyBhbHJlYWR5IG9taXR0ZWQuXG4gIGlmIChcbiAgICBwYXJlbnQgJiZcbiAgICBwcmV2aW91cyAmJlxuICAgIHByZXZpb3VzLnR5cGUgPT09ICdlbGVtZW50JyAmJlxuICAgIChwcmV2aW91cy50YWdOYW1lID09PSAndGhlYWQnIHx8IHByZXZpb3VzLnRhZ05hbWUgPT09ICd0Ym9keScpICYmXG4gICAgY2xvc2luZyhwcmV2aW91cywgcGFyZW50LmNoaWxkcmVuLmluZGV4T2YocHJldmlvdXMpLCBwYXJlbnQpXG4gICkge1xuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgcmV0dXJuIEJvb2xlYW4oaGVhZCAmJiBoZWFkLnR5cGUgPT09ICdlbGVtZW50JyAmJiBoZWFkLnRhZ05hbWUgPT09ICd0cicpXG59XG4iLCAiLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdoYXN0JykuRWxlbWVudH0gRWxlbWVudFxuICogQHR5cGVkZWYge2ltcG9ydCgnaGFzdCcpLlBhcmVudHN9IFBhcmVudHNcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ2hhc3QnKS5Qcm9wZXJ0aWVzfSBQcm9wZXJ0aWVzXG4gKlxuICogQHR5cGVkZWYge2ltcG9ydCgnLi4vaW5kZXguanMnKS5TdGF0ZX0gU3RhdGVcbiAqL1xuXG5pbXBvcnQge2Njb3VudH0gZnJvbSAnY2NvdW50J1xuaW1wb3J0IHtzdHJpbmdpZnkgYXMgY29tbWFzfSBmcm9tICdjb21tYS1zZXBhcmF0ZWQtdG9rZW5zJ1xuaW1wb3J0IHtmaW5kLCBzdmd9IGZyb20gJ3Byb3BlcnR5LWluZm9ybWF0aW9uJ1xuaW1wb3J0IHtzdHJpbmdpZnkgYXMgc3BhY2VzfSBmcm9tICdzcGFjZS1zZXBhcmF0ZWQtdG9rZW5zJ1xuaW1wb3J0IHtzdHJpbmdpZnlFbnRpdGllc30gZnJvbSAnc3RyaW5naWZ5LWVudGl0aWVzJ1xuaW1wb3J0IHtjbG9zaW5nfSBmcm9tICcuLi9vbWlzc2lvbi9jbG9zaW5nLmpzJ1xuaW1wb3J0IHtvcGVuaW5nfSBmcm9tICcuLi9vbWlzc2lvbi9vcGVuaW5nLmpzJ1xuXG4vKipcbiAqIE1hcHMgb2Ygc3Vic2V0cy5cbiAqXG4gKiBFYWNoIHZhbHVlIGlzIGEgbWF0cml4IG9mIHR1cGxlcy5cbiAqIFRoZSB2YWx1ZSBhdCBgMGAgY2F1c2VzIHBhcnNlIGVycm9ycywgdGhlIHZhbHVlIGF0IGAxYCBpcyB2YWxpZC5cbiAqIE9mIGJvdGgsIHRoZSB2YWx1ZSBhdCBgMGAgaXMgdW5zYWZlLCBhbmQgdGhlIHZhbHVlIGF0IGAxYCBpcyBzYWZlLlxuICpcbiAqIEB0eXBlIHtSZWNvcmQ8J2RvdWJsZScgfCAnbmFtZScgfCAnc2luZ2xlJyB8ICd1bnF1b3RlZCcsIEFycmF5PFtBcnJheTxzdHJpbmc+LCBBcnJheTxzdHJpbmc+XT4+fVxuICovXG5jb25zdCBjb25zdGFudHMgPSB7XG4gIC8vIFNlZTogPGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvI2F0dHJpYnV0ZS1uYW1lLXN0YXRlPi5cbiAgbmFtZTogW1xuICAgIFsnXFx0XFxuXFxmXFxyICYvPT4nLnNwbGl0KCcnKSwgJ1xcdFxcblxcZlxcciBcIiZcXCcvPT5gJy5zcGxpdCgnJyldLFxuICAgIFsnXFwwXFx0XFxuXFxmXFxyIFwiJlxcJy88PT4nLnNwbGl0KCcnKSwgJ1xcMFxcdFxcblxcZlxcciBcIiZcXCcvPD0+YCcuc3BsaXQoJycpXVxuICBdLFxuICAvLyBTZWU6IDxodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnLyNhdHRyaWJ1dGUtdmFsdWUtKHVucXVvdGVkKS1zdGF0ZT4uXG4gIHVucXVvdGVkOiBbXG4gICAgWydcXHRcXG5cXGZcXHIgJj4nLnNwbGl0KCcnKSwgJ1xcMFxcdFxcblxcZlxcciBcIiZcXCc8PT5gJy5zcGxpdCgnJyldLFxuICAgIFsnXFwwXFx0XFxuXFxmXFxyIFwiJlxcJzw9PmAnLnNwbGl0KCcnKSwgJ1xcMFxcdFxcblxcZlxcciBcIiZcXCc8PT5gJy5zcGxpdCgnJyldXG4gIF0sXG4gIC8vIFNlZTogPGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvI2F0dHJpYnV0ZS12YWx1ZS0oc2luZ2xlLXF1b3RlZCktc3RhdGU+LlxuICBzaW5nbGU6IFtcbiAgICBbXCImJ1wiLnNwbGl0KCcnKSwgJ1wiJlxcJ2AnLnNwbGl0KCcnKV0sXG4gICAgW1wiXFwwJidcIi5zcGxpdCgnJyksICdcXDBcIiZcXCdgJy5zcGxpdCgnJyldXG4gIF0sXG4gIC8vIFNlZTogPGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvI2F0dHJpYnV0ZS12YWx1ZS0oZG91YmxlLXF1b3RlZCktc3RhdGU+LlxuICBkb3VibGU6IFtcbiAgICBbJ1wiJicuc3BsaXQoJycpLCAnXCImXFwnYCcuc3BsaXQoJycpXSxcbiAgICBbJ1xcMFwiJicuc3BsaXQoJycpLCAnXFwwXCImXFwnYCcuc3BsaXQoJycpXVxuICBdXG59XG5cbi8qKlxuICogU2VyaWFsaXplIGFuIGVsZW1lbnQgbm9kZS5cbiAqXG4gKiBAcGFyYW0ge0VsZW1lbnR9IG5vZGVcbiAqICAgTm9kZSB0byBoYW5kbGUuXG4gKiBAcGFyYW0ge251bWJlciB8IHVuZGVmaW5lZH0gaW5kZXhcbiAqICAgSW5kZXggb2YgYG5vZGVgIGluIGBwYXJlbnQuXG4gKiBAcGFyYW0ge1BhcmVudHMgfCB1bmRlZmluZWR9IHBhcmVudFxuICogICBQYXJlbnQgb2YgYG5vZGVgLlxuICogQHBhcmFtIHtTdGF0ZX0gc3RhdGVcbiAqICAgSW5mbyBwYXNzZWQgYXJvdW5kIGFib3V0IHRoZSBjdXJyZW50IHN0YXRlLlxuICogQHJldHVybnMge3N0cmluZ31cbiAqICAgU2VyaWFsaXplZCBub2RlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZWxlbWVudChub2RlLCBpbmRleCwgcGFyZW50LCBzdGF0ZSkge1xuICBjb25zdCBzY2hlbWEgPSBzdGF0ZS5zY2hlbWFcbiAgY29uc3Qgb21pdCA9IHNjaGVtYS5zcGFjZSA9PT0gJ3N2ZycgPyBmYWxzZSA6IHN0YXRlLnNldHRpbmdzLm9taXRPcHRpb25hbFRhZ3NcbiAgbGV0IHNlbGZDbG9zaW5nID1cbiAgICBzY2hlbWEuc3BhY2UgPT09ICdzdmcnXG4gICAgICA/IHN0YXRlLnNldHRpbmdzLmNsb3NlRW1wdHlFbGVtZW50c1xuICAgICAgOiBzdGF0ZS5zZXR0aW5ncy52b2lkcy5pbmNsdWRlcyhub2RlLnRhZ05hbWUudG9Mb3dlckNhc2UoKSlcbiAgLyoqIEB0eXBlIHtBcnJheTxzdHJpbmc+fSAqL1xuICBjb25zdCBwYXJ0cyA9IFtdXG4gIC8qKiBAdHlwZSB7c3RyaW5nfSAqL1xuICBsZXQgbGFzdFxuXG4gIGlmIChzY2hlbWEuc3BhY2UgPT09ICdodG1sJyAmJiBub2RlLnRhZ05hbWUgPT09ICdzdmcnKSB7XG4gICAgc3RhdGUuc2NoZW1hID0gc3ZnXG4gIH1cblxuICBjb25zdCBhdHRycyA9IHNlcmlhbGl6ZUF0dHJpYnV0ZXMoc3RhdGUsIG5vZGUucHJvcGVydGllcylcblxuICBjb25zdCBjb250ZW50ID0gc3RhdGUuYWxsKFxuICAgIHNjaGVtYS5zcGFjZSA9PT0gJ2h0bWwnICYmIG5vZGUudGFnTmFtZSA9PT0gJ3RlbXBsYXRlJyA/IG5vZGUuY29udGVudCA6IG5vZGVcbiAgKVxuXG4gIHN0YXRlLnNjaGVtYSA9IHNjaGVtYVxuXG4gIC8vIElmIHRoZSBub2RlIGlzIGNhdGVnb3Jpc2VkIGFzIHZvaWQsIGJ1dCBpdCBoYXMgY2hpbGRyZW4sIHJlbW92ZSB0aGVcbiAgLy8gY2F0ZWdvcmlzYXRpb24uXG4gIC8vIFRoaXMgZW5hYmxlcyBmb3IgZXhhbXBsZSBgbWVudWl0ZW1gcywgd2hpY2ggYXJlIHZvaWQgaW4gVzNDIEhUTUwgYnV0IG5vdFxuICAvLyB2b2lkIGluIFdIQVRXRyBIVE1MLCB0byBiZSBzdHJpbmdpZmllZCBwcm9wZXJseS5cbiAgLy8gTm90ZTogYG1lbnVpdGVtYCBoYXMgc2luY2UgYmVlbiByZW1vdmVkIGZyb20gdGhlIEhUTUwgc3BlYywgYW5kIHNvIGlzIG5vXG4gIC8vIGxvbmdlciB2b2lkLlxuICBpZiAoY29udGVudCkgc2VsZkNsb3NpbmcgPSBmYWxzZVxuXG4gIGlmIChhdHRycyB8fCAhb21pdCB8fCAhb3BlbmluZyhub2RlLCBpbmRleCwgcGFyZW50KSkge1xuICAgIHBhcnRzLnB1c2goJzwnLCBub2RlLnRhZ05hbWUsIGF0dHJzID8gJyAnICsgYXR0cnMgOiAnJylcblxuICAgIGlmIChcbiAgICAgIHNlbGZDbG9zaW5nICYmXG4gICAgICAoc2NoZW1hLnNwYWNlID09PSAnc3ZnJyB8fCBzdGF0ZS5zZXR0aW5ncy5jbG9zZVNlbGZDbG9zaW5nKVxuICAgICkge1xuICAgICAgbGFzdCA9IGF0dHJzLmNoYXJBdChhdHRycy5sZW5ndGggLSAxKVxuICAgICAgaWYgKFxuICAgICAgICAhc3RhdGUuc2V0dGluZ3MudGlnaHRTZWxmQ2xvc2luZyB8fFxuICAgICAgICBsYXN0ID09PSAnLycgfHxcbiAgICAgICAgKGxhc3QgJiYgbGFzdCAhPT0gJ1wiJyAmJiBsYXN0ICE9PSBcIidcIilcbiAgICAgICkge1xuICAgICAgICBwYXJ0cy5wdXNoKCcgJylcbiAgICAgIH1cblxuICAgICAgcGFydHMucHVzaCgnLycpXG4gICAgfVxuXG4gICAgcGFydHMucHVzaCgnPicpXG4gIH1cblxuICBwYXJ0cy5wdXNoKGNvbnRlbnQpXG5cbiAgaWYgKCFzZWxmQ2xvc2luZyAmJiAoIW9taXQgfHwgIWNsb3Npbmcobm9kZSwgaW5kZXgsIHBhcmVudCkpKSB7XG4gICAgcGFydHMucHVzaCgnPC8nICsgbm9kZS50YWdOYW1lICsgJz4nKVxuICB9XG5cbiAgcmV0dXJuIHBhcnRzLmpvaW4oJycpXG59XG5cbi8qKlxuICogQHBhcmFtIHtTdGF0ZX0gc3RhdGVcbiAqIEBwYXJhbSB7UHJvcGVydGllcyB8IG51bGwgfCB1bmRlZmluZWR9IHByb3BzXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICovXG5mdW5jdGlvbiBzZXJpYWxpemVBdHRyaWJ1dGVzKHN0YXRlLCBwcm9wcykge1xuICAvKiogQHR5cGUge0FycmF5PHN0cmluZz59ICovXG4gIGNvbnN0IHZhbHVlcyA9IFtdXG4gIGxldCBpbmRleCA9IC0xXG4gIC8qKiBAdHlwZSB7c3RyaW5nfSAqL1xuICBsZXQga2V5XG5cbiAgaWYgKHByb3BzKSB7XG4gICAgZm9yIChrZXkgaW4gcHJvcHMpIHtcbiAgICAgIGlmIChwcm9wc1trZXldICE9PSBudWxsICYmIHByb3BzW2tleV0gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IHNlcmlhbGl6ZUF0dHJpYnV0ZShzdGF0ZSwga2V5LCBwcm9wc1trZXldKVxuICAgICAgICBpZiAodmFsdWUpIHZhbHVlcy5wdXNoKHZhbHVlKVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHdoaWxlICgrK2luZGV4IDwgdmFsdWVzLmxlbmd0aCkge1xuICAgIGNvbnN0IGxhc3QgPSBzdGF0ZS5zZXR0aW5ncy50aWdodEF0dHJpYnV0ZXNcbiAgICAgID8gdmFsdWVzW2luZGV4XS5jaGFyQXQodmFsdWVzW2luZGV4XS5sZW5ndGggLSAxKVxuICAgICAgOiB1bmRlZmluZWRcblxuICAgIC8vIEluIHRpZ2h0IG1vZGUsIGRvblx1MjAxOXQgYWRkIGEgc3BhY2UgYWZ0ZXIgcXVvdGVkIGF0dHJpYnV0ZXMuXG4gICAgaWYgKGluZGV4ICE9PSB2YWx1ZXMubGVuZ3RoIC0gMSAmJiBsYXN0ICE9PSAnXCInICYmIGxhc3QgIT09IFwiJ1wiKSB7XG4gICAgICB2YWx1ZXNbaW5kZXhdICs9ICcgJ1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB2YWx1ZXMuam9pbignJylcbn1cblxuLyoqXG4gKiBAcGFyYW0ge1N0YXRlfSBzdGF0ZVxuICogQHBhcmFtIHtzdHJpbmd9IGtleVxuICogQHBhcmFtIHtQcm9wZXJ0aWVzW2tleW9mIFByb3BlcnRpZXNdfSB2YWx1ZVxuICogQHJldHVybnMge3N0cmluZ31cbiAqL1xuZnVuY3Rpb24gc2VyaWFsaXplQXR0cmlidXRlKHN0YXRlLCBrZXksIHZhbHVlKSB7XG4gIGNvbnN0IGluZm8gPSBmaW5kKHN0YXRlLnNjaGVtYSwga2V5KVxuICBjb25zdCB4ID1cbiAgICBzdGF0ZS5zZXR0aW5ncy5hbGxvd1BhcnNlRXJyb3JzICYmIHN0YXRlLnNjaGVtYS5zcGFjZSA9PT0gJ2h0bWwnID8gMCA6IDFcbiAgY29uc3QgeSA9IHN0YXRlLnNldHRpbmdzLmFsbG93RGFuZ2Vyb3VzQ2hhcmFjdGVycyA/IDAgOiAxXG4gIGxldCBxdW90ZSA9IHN0YXRlLnF1b3RlXG4gIC8qKiBAdHlwZSB7c3RyaW5nIHwgdW5kZWZpbmVkfSAqL1xuICBsZXQgcmVzdWx0XG5cbiAgaWYgKGluZm8ub3ZlcmxvYWRlZEJvb2xlYW4gJiYgKHZhbHVlID09PSBpbmZvLmF0dHJpYnV0ZSB8fCB2YWx1ZSA9PT0gJycpKSB7XG4gICAgdmFsdWUgPSB0cnVlXG4gIH0gZWxzZSBpZiAoXG4gICAgaW5mby5ib29sZWFuIHx8XG4gICAgKGluZm8ub3ZlcmxvYWRlZEJvb2xlYW4gJiYgdHlwZW9mIHZhbHVlICE9PSAnc3RyaW5nJylcbiAgKSB7XG4gICAgdmFsdWUgPSBCb29sZWFuKHZhbHVlKVxuICB9XG5cbiAgaWYgKFxuICAgIHZhbHVlID09PSBudWxsIHx8XG4gICAgdmFsdWUgPT09IHVuZGVmaW5lZCB8fFxuICAgIHZhbHVlID09PSBmYWxzZSB8fFxuICAgICh0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInICYmIE51bWJlci5pc05hTih2YWx1ZSkpXG4gICkge1xuICAgIHJldHVybiAnJ1xuICB9XG5cbiAgY29uc3QgbmFtZSA9IHN0cmluZ2lmeUVudGl0aWVzKFxuICAgIGluZm8uYXR0cmlidXRlLFxuICAgIE9iamVjdC5hc3NpZ24oe30sIHN0YXRlLnNldHRpbmdzLmNoYXJhY3RlclJlZmVyZW5jZXMsIHtcbiAgICAgIC8vIEFsd2F5cyBlbmNvZGUgd2l0aG91dCBwYXJzZSBlcnJvcnMgaW4gbm9uLUhUTUwuXG4gICAgICBzdWJzZXQ6IGNvbnN0YW50cy5uYW1lW3hdW3ldXG4gICAgfSlcbiAgKVxuXG4gIC8vIE5vIHZhbHVlLlxuICAvLyBUaGVyZSBpcyBjdXJyZW50bHkgb25seSBvbmUgYm9vbGVhbiBwcm9wZXJ0eSBpbiBTVkc6IGBbZG93bmxvYWRdYCBvblxuICAvLyBgPGE+YC5cbiAgLy8gVGhpcyBwcm9wZXJ0eSBkb2VzIG5vdCBzZWVtIHRvIHdvcmsgaW4gYnJvd3NlcnMgKEZpcmVmb3gsIFNhZmFyaSwgQ2hyb21lKSxcbiAgLy8gc28gSSBjYW5cdTIwMTl0IHRlc3QgaWYgZHJvcHBpbmcgdGhlIHZhbHVlIHdvcmtzLlxuICAvLyBCdXQgSSBhc3N1bWUgdGhhdCBpdCBzaG91bGQ6XG4gIC8vXG4gIC8vIGBgYGh0bWxcbiAgLy8gPCFkb2N0eXBlIGh0bWw+XG4gIC8vIDxzdmcgdmlld0JveD1cIjAgMCAxMDAgMTAwXCI+XG4gIC8vICAgPGEgaHJlZj1odHRwczovL2V4YW1wbGUuY29tIGRvd25sb2FkPlxuICAvLyAgICAgPGNpcmNsZSBjeD01MCBjeT00MCByPTM1IC8+XG4gIC8vICAgPC9hPlxuICAvLyA8L3N2Zz5cbiAgLy8gYGBgXG4gIC8vXG4gIC8vIFNlZTogPGh0dHBzOi8vZ2l0aHViLmNvbS93b29vcm0vcHJvcGVydHktaW5mb3JtYXRpb24vYmxvYi9tYWluL2xpYi9zdmcuanM+XG4gIGlmICh2YWx1ZSA9PT0gdHJ1ZSkgcmV0dXJuIG5hbWVcblxuICAvLyBgc3BhY2VzYCBkb2Vzblx1MjAxOXQgYWNjZXB0IGEgc2Vjb25kIGFyZ3VtZW50LCBidXQgaXRcdTIwMTlzIGdpdmVuIGhlcmUganVzdCB0b1xuICAvLyBrZWVwIHRoZSBjb2RlIGNsZWFuZXIuXG4gIHZhbHVlID0gQXJyYXkuaXNBcnJheSh2YWx1ZSlcbiAgICA/IChpbmZvLmNvbW1hU2VwYXJhdGVkID8gY29tbWFzIDogc3BhY2VzKSh2YWx1ZSwge1xuICAgICAgICBwYWRMZWZ0OiAhc3RhdGUuc2V0dGluZ3MudGlnaHRDb21tYVNlcGFyYXRlZExpc3RzXG4gICAgICB9KVxuICAgIDogU3RyaW5nKHZhbHVlKVxuXG4gIGlmIChzdGF0ZS5zZXR0aW5ncy5jb2xsYXBzZUVtcHR5QXR0cmlidXRlcyAmJiAhdmFsdWUpIHJldHVybiBuYW1lXG5cbiAgLy8gQ2hlY2sgdW5xdW90ZWQgdmFsdWUuXG4gIGlmIChzdGF0ZS5zZXR0aW5ncy5wcmVmZXJVbnF1b3RlZCkge1xuICAgIHJlc3VsdCA9IHN0cmluZ2lmeUVudGl0aWVzKFxuICAgICAgdmFsdWUsXG4gICAgICBPYmplY3QuYXNzaWduKHt9LCBzdGF0ZS5zZXR0aW5ncy5jaGFyYWN0ZXJSZWZlcmVuY2VzLCB7XG4gICAgICAgIGF0dHJpYnV0ZTogdHJ1ZSxcbiAgICAgICAgc3Vic2V0OiBjb25zdGFudHMudW5xdW90ZWRbeF1beV1cbiAgICAgIH0pXG4gICAgKVxuICB9XG5cbiAgLy8gSWYgd2UgZG9uXHUyMDE5dCB3YW50IHVucXVvdGVkLCBvciBpZiBgdmFsdWVgIGNvbnRhaW5zIGNoYXJhY3RlciByZWZlcmVuY2VzIHdoZW5cbiAgLy8gdW5xdW90ZWRcdTIwMjZcbiAgaWYgKHJlc3VsdCAhPT0gdmFsdWUpIHtcbiAgICAvLyBJZiB0aGUgYWx0ZXJuYXRpdmUgaXMgbGVzcyBjb21tb24gdGhhbiBgcXVvdGVgLCBzd2l0Y2guXG4gICAgaWYgKFxuICAgICAgc3RhdGUuc2V0dGluZ3MucXVvdGVTbWFydCAmJlxuICAgICAgY2NvdW50KHZhbHVlLCBxdW90ZSkgPiBjY291bnQodmFsdWUsIHN0YXRlLmFsdGVybmF0aXZlKVxuICAgICkge1xuICAgICAgcXVvdGUgPSBzdGF0ZS5hbHRlcm5hdGl2ZVxuICAgIH1cblxuICAgIHJlc3VsdCA9XG4gICAgICBxdW90ZSArXG4gICAgICBzdHJpbmdpZnlFbnRpdGllcyhcbiAgICAgICAgdmFsdWUsXG4gICAgICAgIE9iamVjdC5hc3NpZ24oe30sIHN0YXRlLnNldHRpbmdzLmNoYXJhY3RlclJlZmVyZW5jZXMsIHtcbiAgICAgICAgICAvLyBBbHdheXMgZW5jb2RlIHdpdGhvdXQgcGFyc2UgZXJyb3JzIGluIG5vbi1IVE1MLlxuICAgICAgICAgIHN1YnNldDogKHF1b3RlID09PSBcIidcIiA/IGNvbnN0YW50cy5zaW5nbGUgOiBjb25zdGFudHMuZG91YmxlKVt4XVt5XSxcbiAgICAgICAgICBhdHRyaWJ1dGU6IHRydWVcbiAgICAgICAgfSlcbiAgICAgICkgK1xuICAgICAgcXVvdGVcbiAgfVxuXG4gIC8vIERvblx1MjAxOXQgYWRkIGEgYD1gIGZvciB1bnF1b3RlZCBlbXB0aWVzLlxuICByZXR1cm4gbmFtZSArIChyZXN1bHQgPyAnPScgKyByZXN1bHQgOiByZXN1bHQpXG59XG4iLCAiLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdoYXN0JykuUGFyZW50c30gUGFyZW50c1xuICogQHR5cGVkZWYge2ltcG9ydCgnaGFzdCcpLlRleHR9IFRleHRcbiAqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdtZGFzdC11dGlsLXRvLWhhc3QnKS5SYXd9IFJhd1xuICpcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJy4uL2luZGV4LmpzJykuU3RhdGV9IFN0YXRlXG4gKi9cblxuaW1wb3J0IHtzdHJpbmdpZnlFbnRpdGllc30gZnJvbSAnc3RyaW5naWZ5LWVudGl0aWVzJ1xuXG4vKipcbiAqIFNlcmlhbGl6ZSBhIHRleHQgbm9kZS5cbiAqXG4gKiBAcGFyYW0ge1JhdyB8IFRleHR9IG5vZGVcbiAqICAgTm9kZSB0byBoYW5kbGUuXG4gKiBAcGFyYW0ge251bWJlciB8IHVuZGVmaW5lZH0gX1xuICogICBJbmRleCBvZiBgbm9kZWAgaW4gYHBhcmVudC5cbiAqIEBwYXJhbSB7UGFyZW50cyB8IHVuZGVmaW5lZH0gcGFyZW50XG4gKiAgIFBhcmVudCBvZiBgbm9kZWAuXG4gKiBAcGFyYW0ge1N0YXRlfSBzdGF0ZVxuICogICBJbmZvIHBhc3NlZCBhcm91bmQgYWJvdXQgdGhlIGN1cnJlbnQgc3RhdGUuXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICogICBTZXJpYWxpemVkIG5vZGUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0ZXh0KG5vZGUsIF8sIHBhcmVudCwgc3RhdGUpIHtcbiAgLy8gQ2hlY2sgaWYgY29udGVudCBvZiBgbm9kZWAgc2hvdWxkIGJlIGVzY2FwZWQuXG4gIHJldHVybiBwYXJlbnQgJiZcbiAgICBwYXJlbnQudHlwZSA9PT0gJ2VsZW1lbnQnICYmXG4gICAgKHBhcmVudC50YWdOYW1lID09PSAnc2NyaXB0JyB8fCBwYXJlbnQudGFnTmFtZSA9PT0gJ3N0eWxlJylcbiAgICA/IG5vZGUudmFsdWVcbiAgICA6IHN0cmluZ2lmeUVudGl0aWVzKFxuICAgICAgICBub2RlLnZhbHVlLFxuICAgICAgICBPYmplY3QuYXNzaWduKHt9LCBzdGF0ZS5zZXR0aW5ncy5jaGFyYWN0ZXJSZWZlcmVuY2VzLCB7XG4gICAgICAgICAgc3Vic2V0OiBbJzwnLCAnJiddXG4gICAgICAgIH0pXG4gICAgICApXG59XG4iLCAiLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdoYXN0JykuUGFyZW50c30gUGFyZW50c1xuICpcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ21kYXN0LXV0aWwtdG8taGFzdCcpLlJhd30gUmF3XG4gKlxuICogQHR5cGVkZWYge2ltcG9ydCgnLi4vaW5kZXguanMnKS5TdGF0ZX0gU3RhdGVcbiAqL1xuXG5pbXBvcnQge3RleHR9IGZyb20gJy4vdGV4dC5qcydcblxuLyoqXG4gKiBTZXJpYWxpemUgYSByYXcgbm9kZS5cbiAqXG4gKiBAcGFyYW0ge1Jhd30gbm9kZVxuICogICBOb2RlIHRvIGhhbmRsZS5cbiAqIEBwYXJhbSB7bnVtYmVyIHwgdW5kZWZpbmVkfSBpbmRleFxuICogICBJbmRleCBvZiBgbm9kZWAgaW4gYHBhcmVudC5cbiAqIEBwYXJhbSB7UGFyZW50cyB8IHVuZGVmaW5lZH0gcGFyZW50XG4gKiAgIFBhcmVudCBvZiBgbm9kZWAuXG4gKiBAcGFyYW0ge1N0YXRlfSBzdGF0ZVxuICogICBJbmZvIHBhc3NlZCBhcm91bmQgYWJvdXQgdGhlIGN1cnJlbnQgc3RhdGUuXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICogICBTZXJpYWxpemVkIG5vZGUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByYXcobm9kZSwgaW5kZXgsIHBhcmVudCwgc3RhdGUpIHtcbiAgcmV0dXJuIHN0YXRlLnNldHRpbmdzLmFsbG93RGFuZ2Vyb3VzSHRtbFxuICAgID8gbm9kZS52YWx1ZVxuICAgIDogdGV4dChub2RlLCBpbmRleCwgcGFyZW50LCBzdGF0ZSlcbn1cbiIsICIvKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ2hhc3QnKS5QYXJlbnRzfSBQYXJlbnRzXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdoYXN0JykuUm9vdH0gUm9vdFxuICpcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJy4uL2luZGV4LmpzJykuU3RhdGV9IFN0YXRlXG4gKi9cblxuLy8gTWFrZSBWUyBjb2RlIHNlZSByZWZlcmVuY2VzIHRvIHRoZSBhYm92ZSB0eXBlcy5cbicnXG5cbi8qKlxuICogU2VyaWFsaXplIGEgcm9vdC5cbiAqXG4gKiBAcGFyYW0ge1Jvb3R9IG5vZGVcbiAqICAgTm9kZSB0byBoYW5kbGUuXG4gKiBAcGFyYW0ge251bWJlciB8IHVuZGVmaW5lZH0gXzFcbiAqICAgSW5kZXggb2YgYG5vZGVgIGluIGBwYXJlbnQuXG4gKiBAcGFyYW0ge1BhcmVudHMgfCB1bmRlZmluZWR9IF8yXG4gKiAgIFBhcmVudCBvZiBgbm9kZWAuXG4gKiBAcGFyYW0ge1N0YXRlfSBzdGF0ZVxuICogICBJbmZvIHBhc3NlZCBhcm91bmQgYWJvdXQgdGhlIGN1cnJlbnQgc3RhdGUuXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICogICBTZXJpYWxpemVkIG5vZGUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByb290KG5vZGUsIF8xLCBfMiwgc3RhdGUpIHtcbiAgcmV0dXJuIHN0YXRlLmFsbChub2RlKVxufVxuIiwgIi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgnaGFzdCcpLk5vZGVzfSBOb2Rlc1xuICogQHR5cGVkZWYge2ltcG9ydCgnaGFzdCcpLlBhcmVudHN9IFBhcmVudHNcbiAqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCcuLi9pbmRleC5qcycpLlN0YXRlfSBTdGF0ZVxuICovXG5cbmltcG9ydCB7endpdGNofSBmcm9tICd6d2l0Y2gnXG5pbXBvcnQge2NvbW1lbnR9IGZyb20gJy4vY29tbWVudC5qcydcbmltcG9ydCB7ZG9jdHlwZX0gZnJvbSAnLi9kb2N0eXBlLmpzJ1xuaW1wb3J0IHtlbGVtZW50fSBmcm9tICcuL2VsZW1lbnQuanMnXG5pbXBvcnQge3Jhd30gZnJvbSAnLi9yYXcuanMnXG5pbXBvcnQge3Jvb3R9IGZyb20gJy4vcm9vdC5qcydcbmltcG9ydCB7dGV4dH0gZnJvbSAnLi90ZXh0LmpzJ1xuXG4vKipcbiAqIEB0eXBlIHsobm9kZTogTm9kZXMsIGluZGV4OiBudW1iZXIgfCB1bmRlZmluZWQsIHBhcmVudDogUGFyZW50cyB8IHVuZGVmaW5lZCwgc3RhdGU6IFN0YXRlKSA9PiBzdHJpbmd9XG4gKi9cbmV4cG9ydCBjb25zdCBoYW5kbGUgPSB6d2l0Y2goJ3R5cGUnLCB7XG4gIGludmFsaWQsXG4gIHVua25vd24sXG4gIGhhbmRsZXJzOiB7Y29tbWVudCwgZG9jdHlwZSwgZWxlbWVudCwgcmF3LCByb290LCB0ZXh0fVxufSlcblxuLyoqXG4gKiBGYWlsIHdoZW4gYSBub24tbm9kZSBpcyBmb3VuZCBpbiB0aGUgdHJlZS5cbiAqXG4gKiBAcGFyYW0ge3Vua25vd259IG5vZGVcbiAqICAgVW5rbm93biB2YWx1ZS5cbiAqIEByZXR1cm5zIHtuZXZlcn1cbiAqICAgTmV2ZXIuXG4gKi9cbmZ1bmN0aW9uIGludmFsaWQobm9kZSkge1xuICB0aHJvdyBuZXcgRXJyb3IoJ0V4cGVjdGVkIG5vZGUsIG5vdCBgJyArIG5vZGUgKyAnYCcpXG59XG5cbi8qKlxuICogRmFpbCB3aGVuIGEgbm9kZSB3aXRoIGFuIHVua25vd24gdHlwZSBpcyBmb3VuZCBpbiB0aGUgdHJlZS5cbiAqXG4gKiBAcGFyYW0ge3Vua25vd259IG5vZGVfXG4gKiAgVW5rbm93biBub2RlLlxuICogQHJldHVybnMge25ldmVyfVxuICogICBOZXZlci5cbiAqL1xuZnVuY3Rpb24gdW5rbm93bihub2RlXykge1xuICAvLyBgdHlwZWAgaXMgZ3VhcmFudGVlZCBieSBydW50aW1lIEpTLlxuICBjb25zdCBub2RlID0gLyoqIEB0eXBlIHtOb2Rlc30gKi8gKG5vZGVfKVxuICB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBjb21waWxlIHVua25vd24gbm9kZSBgJyArIG5vZGUudHlwZSArICdgJylcbn1cbiIsICIvKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ2hhc3QnKS5Ob2Rlc30gTm9kZXNcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ2hhc3QnKS5QYXJlbnRzfSBQYXJlbnRzXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdoYXN0JykuUm9vdENvbnRlbnR9IFJvb3RDb250ZW50XG4gKlxuICogQHR5cGVkZWYge2ltcG9ydCgncHJvcGVydHktaW5mb3JtYXRpb24nKS5TY2hlbWF9IFNjaGVtYVxuICpcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ3N0cmluZ2lmeS1lbnRpdGllcycpLk9wdGlvbnN9IFN0cmluZ2lmeUVudGl0aWVzT3B0aW9uc1xuICovXG5cbi8qKlxuICogQHR5cGVkZWYge09taXQ8U3RyaW5naWZ5RW50aXRpZXNPcHRpb25zLCAnYXR0cmlidXRlJyB8ICdlc2NhcGVPbmx5JyB8ICdzdWJzZXQnPn0gQ2hhcmFjdGVyUmVmZXJlbmNlc1xuICpcbiAqIEB0eXBlZGVmIE9wdGlvbnNcbiAqICAgQ29uZmlndXJhdGlvbi5cbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbiB8IG51bGwgfCB1bmRlZmluZWR9IFthbGxvd0Rhbmdlcm91c0NoYXJhY3RlcnM9ZmFsc2VdXG4gKiAgIERvIG5vdCBlbmNvZGUgc29tZSBjaGFyYWN0ZXJzIHdoaWNoIGNhdXNlIFhTUyB2dWxuZXJhYmlsaXRpZXMgaW4gb2xkZXJcbiAqICAgYnJvd3NlcnMgKGRlZmF1bHQ6IGBmYWxzZWApLlxuICpcbiAqICAgPiBcdTI2QTBcdUZFMEYgKipEYW5nZXIqKjogb25seSBzZXQgdGhpcyBpZiB5b3UgY29tcGxldGVseSB0cnVzdCB0aGUgY29udGVudC5cbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbiB8IG51bGwgfCB1bmRlZmluZWR9IFthbGxvd0Rhbmdlcm91c0h0bWw9ZmFsc2VdXG4gKiAgIEFsbG93IGByYXdgIG5vZGVzIGFuZCBpbnNlcnQgdGhlbSBhcyByYXcgSFRNTCAoZGVmYXVsdDogYGZhbHNlYCkuXG4gKlxuICogICBXaGVuIGBmYWxzZWAsIGBSYXdgIG5vZGVzIGFyZSBlbmNvZGVkLlxuICpcbiAqICAgPiBcdTI2QTBcdUZFMEYgKipEYW5nZXIqKjogb25seSBzZXQgdGhpcyBpZiB5b3UgY29tcGxldGVseSB0cnVzdCB0aGUgY29udGVudC5cbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbiB8IG51bGwgfCB1bmRlZmluZWR9IFthbGxvd1BhcnNlRXJyb3JzPWZhbHNlXVxuICogICBEbyBub3QgZW5jb2RlIGNoYXJhY3RlcnMgd2hpY2ggY2F1c2UgcGFyc2UgZXJyb3JzIChldmVuIHRob3VnaCB0aGV5IHdvcmspLFxuICogICB0byBzYXZlIGJ5dGVzIChkZWZhdWx0OiBgZmFsc2VgKS5cbiAqXG4gKiAgIE5vdCB1c2VkIGluIHRoZSBTVkcgc3BhY2UuXG4gKlxuICogICA+IFx1RDgzRFx1REM0OSAqKk5vdGUqKjogaW50ZW50aW9uYWxseSBjcmVhdGVzIHBhcnNlIGVycm9ycyBpbiBtYXJrdXAgKGhvdyBwYXJzZVxuICogICA+IGVycm9ycyBhcmUgaGFuZGxlZCBpcyB3ZWxsIGRlZmluZWQsIHNvIHRoaXMgd29ya3MgYnV0IGlzblx1MjAxOXQgcHJldHR5KS5cbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbiB8IG51bGwgfCB1bmRlZmluZWR9IFtib2d1c0NvbW1lbnRzPWZhbHNlXVxuICogICBVc2UgXHUyMDFDYm9ndXMgY29tbWVudHNcdTIwMUQgaW5zdGVhZCBvZiBjb21tZW50cyB0byBzYXZlIGJ5ZXM6IGA8P2NoYXJsaWU+YFxuICogICBpbnN0ZWFkIG9mIGA8IS0tY2hhcmxpZS0tPmAgKGRlZmF1bHQ6IGBmYWxzZWApLlxuICpcbiAqICAgPiBcdUQ4M0RcdURDNDkgKipOb3RlKio6IGludGVudGlvbmFsbHkgY3JlYXRlcyBwYXJzZSBlcnJvcnMgaW4gbWFya3VwIChob3cgcGFyc2VcbiAqICAgPiBlcnJvcnMgYXJlIGhhbmRsZWQgaXMgd2VsbCBkZWZpbmVkLCBzbyB0aGlzIHdvcmtzIGJ1dCBpc25cdTIwMTl0IHByZXR0eSkuXG4gKiBAcHJvcGVydHkge0NoYXJhY3RlclJlZmVyZW5jZXMgfCBudWxsIHwgdW5kZWZpbmVkfSBbY2hhcmFjdGVyUmVmZXJlbmNlc11cbiAqICAgQ29uZmlndXJlIGhvdyB0byBzZXJpYWxpemUgY2hhcmFjdGVyIHJlZmVyZW5jZXMgKG9wdGlvbmFsKS5cbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbiB8IG51bGwgfCB1bmRlZmluZWR9IFtjbG9zZUVtcHR5RWxlbWVudHM9ZmFsc2VdXG4gKiAgIENsb3NlIFNWRyBlbGVtZW50cyB3aXRob3V0IGFueSBjb250ZW50IHdpdGggc2xhc2ggKGAvYCkgb24gdGhlIG9wZW5pbmcgdGFnXG4gKiAgIGluc3RlYWQgb2YgYW4gZW5kIHRhZzogYDxjaXJjbGUgLz5gIGluc3RlYWQgb2YgYDxjaXJjbGU+PC9jaXJjbGU+YFxuICogICAoZGVmYXVsdDogYGZhbHNlYCkuXG4gKlxuICogICBTZWUgYHRpZ2h0U2VsZkNsb3NpbmdgIHRvIGNvbnRyb2wgd2hldGhlciBhIHNwYWNlIGlzIHVzZWQgYmVmb3JlIHRoZVxuICogICBzbGFzaC5cbiAqXG4gKiAgIE5vdCB1c2VkIGluIHRoZSBIVE1MIHNwYWNlLlxuICogQHByb3BlcnR5IHtib29sZWFuIHwgbnVsbCB8IHVuZGVmaW5lZH0gW2Nsb3NlU2VsZkNsb3Npbmc9ZmFsc2VdXG4gKiAgIENsb3NlIHNlbGYtY2xvc2luZyBub2RlcyB3aXRoIGFuIGV4dHJhIHNsYXNoIChgL2ApOiBgPGltZyAvPmAgaW5zdGVhZCBvZlxuICogICBgPGltZz5gIChkZWZhdWx0OiBgZmFsc2VgKS5cbiAqXG4gKiAgIFNlZSBgdGlnaHRTZWxmQ2xvc2luZ2AgdG8gY29udHJvbCB3aGV0aGVyIGEgc3BhY2UgaXMgdXNlZCBiZWZvcmUgdGhlXG4gKiAgIHNsYXNoLlxuICpcbiAqICAgTm90IHVzZWQgaW4gdGhlIFNWRyBzcGFjZS5cbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbiB8IG51bGwgfCB1bmRlZmluZWR9IFtjb2xsYXBzZUVtcHR5QXR0cmlidXRlcz1mYWxzZV1cbiAqICAgQ29sbGFwc2UgZW1wdHkgYXR0cmlidXRlczogZ2V0IGBjbGFzc2AgaW5zdGVhZCBvZiBgY2xhc3M9XCJcImAgKGRlZmF1bHQ6XG4gKiAgIGBmYWxzZWApLlxuICpcbiAqICAgTm90IHVzZWQgaW4gdGhlIFNWRyBzcGFjZS5cbiAqXG4gKiAgID4gXHVEODNEXHVEQzQ5ICoqTm90ZSoqOiBib29sZWFuIGF0dHJpYnV0ZXMgKHN1Y2ggYXMgYGhpZGRlbmApIGFyZSBhbHdheXMgY29sbGFwc2VkLlxuICogQHByb3BlcnR5IHtib29sZWFuIHwgbnVsbCB8IHVuZGVmaW5lZH0gW29taXRPcHRpb25hbFRhZ3M9ZmFsc2VdXG4gKiAgIE9taXQgb3B0aW9uYWwgb3BlbmluZyBhbmQgY2xvc2luZyB0YWdzIChkZWZhdWx0OiBgZmFsc2VgKS5cbiAqXG4gKiAgIEZvciBleGFtcGxlLCBpbiBgPG9sPjxsaT5vbmU8L2xpPjxsaT50d288L2xpPjwvb2w+YCwgYm90aCBgPC9saT5gIGNsb3NpbmdcbiAqICAgdGFncyBjYW4gYmUgb21pdHRlZC5cbiAqICAgVGhlIGZpcnN0IGJlY2F1c2UgaXRcdTIwMTlzIGZvbGxvd2VkIGJ5IGFub3RoZXIgYGxpYCwgdGhlIGxhc3QgYmVjYXVzZSBpdFx1MjAxOXNcbiAqICAgZm9sbG93ZWQgYnkgbm90aGluZy5cbiAqXG4gKiAgIE5vdCB1c2VkIGluIHRoZSBTVkcgc3BhY2UuXG4gKiBAcHJvcGVydHkge2Jvb2xlYW4gfCBudWxsIHwgdW5kZWZpbmVkfSBbcHJlZmVyVW5xdW90ZWQ9ZmFsc2VdXG4gKiAgIExlYXZlIGF0dHJpYnV0ZXMgdW5xdW90ZWQgaWYgdGhhdCByZXN1bHRzIGluIGxlc3MgYnl0ZXMgKGRlZmF1bHQ6IGBmYWxzZWApLlxuICpcbiAqICAgTm90IHVzZWQgaW4gdGhlIFNWRyBzcGFjZS5cbiAqIEBwcm9wZXJ0eSB7UXVvdGUgfCBudWxsIHwgdW5kZWZpbmVkfSBbcXVvdGU9J1wiJ11cbiAqICAgUHJlZmVycmVkIHF1b3RlIHRvIHVzZSAoZGVmYXVsdDogYCdcIidgKS5cbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbiB8IG51bGwgfCB1bmRlZmluZWR9IFtxdW90ZVNtYXJ0PWZhbHNlXVxuICogICBVc2UgdGhlIG90aGVyIHF1b3RlIGlmIHRoYXQgcmVzdWx0cyBpbiBsZXNzIGJ5dGVzIChkZWZhdWx0OiBgZmFsc2VgKS5cbiAqIEBwcm9wZXJ0eSB7U3BhY2UgfCBudWxsIHwgdW5kZWZpbmVkfSBbc3BhY2U9J2h0bWwnXVxuICogICBXaGVuIGFuIGA8c3ZnPmAgZWxlbWVudCBpcyBmb3VuZCBpbiB0aGUgSFRNTCBzcGFjZSwgdGhpcyBwYWNrYWdlIGFscmVhZHlcbiAqICAgYXV0b21hdGljYWxseSBzd2l0Y2hlcyB0byBhbmQgZnJvbSB0aGUgU1ZHIHNwYWNlIHdoZW4gZW50ZXJpbmcgYW5kIGV4aXRpbmdcbiAqICAgaXQgKGRlZmF1bHQ6IGAnaHRtbCdgKS5cbiAqXG4gKiAgID4gXHVEODNEXHVEQzQ5ICoqTm90ZSoqOiBoYXN0IGlzIG5vdCBYTUwuXG4gKiAgID4gSXQgc3VwcG9ydHMgU1ZHIGFzIGVtYmVkZGVkIGluIEhUTUwuXG4gKiAgID4gSXQgZG9lcyBub3Qgc3VwcG9ydCB0aGUgZmVhdHVyZXMgYXZhaWxhYmxlIGluIFhNTC5cbiAqICAgPiBQYXNzaW5nIFNWRyBtaWdodCBicmVhayBidXQgZnJhZ21lbnRzIG9mIG1vZGVybiBTVkcgc2hvdWxkIGJlIGZpbmUuXG4gKiAgID4gVXNlIFtgeGFzdGBdW3hhc3RdIGlmIHlvdSBuZWVkIHRvIHN1cHBvcnQgU1ZHIGFzIFhNTC5cbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbiB8IG51bGwgfCB1bmRlZmluZWR9IFt0aWdodEF0dHJpYnV0ZXM9ZmFsc2VdXG4gKiAgIEpvaW4gYXR0cmlidXRlcyB0b2dldGhlciwgd2l0aG91dCB3aGl0ZXNwYWNlLCBpZiBwb3NzaWJsZTogZ2V0XG4gKiAgIGBjbGFzcz1cImEgYlwidGl0bGU9XCJjIGRcImAgaW5zdGVhZCBvZiBgY2xhc3M9XCJhIGJcIiB0aXRsZT1cImMgZFwiYCB0byBzYXZlXG4gKiAgIGJ5dGVzIChkZWZhdWx0OiBgZmFsc2VgKS5cbiAqXG4gKiAgIE5vdCB1c2VkIGluIHRoZSBTVkcgc3BhY2UuXG4gKlxuICogICA+IFx1RDgzRFx1REM0OSAqKk5vdGUqKjogaW50ZW50aW9uYWxseSBjcmVhdGVzIHBhcnNlIGVycm9ycyBpbiBtYXJrdXAgKGhvdyBwYXJzZVxuICogICA+IGVycm9ycyBhcmUgaGFuZGxlZCBpcyB3ZWxsIGRlZmluZWQsIHNvIHRoaXMgd29ya3MgYnV0IGlzblx1MjAxOXQgcHJldHR5KS5cbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbiB8IG51bGwgfCB1bmRlZmluZWR9IFt0aWdodENvbW1hU2VwYXJhdGVkTGlzdHM9ZmFsc2VdXG4gKiAgIEpvaW4ga25vd24gY29tbWEtc2VwYXJhdGVkIGF0dHJpYnV0ZSB2YWx1ZXMgd2l0aCBqdXN0IGEgY29tbWEgKGAsYCksXG4gKiAgIGluc3RlYWQgb2YgcGFkZGluZyB0aGVtIG9uIHRoZSByaWdodCBhcyB3ZWxsIChgLFx1MjQyMGAsIHdoZXJlIGBcdTI0MjBgIHJlcHJlc2VudHMgYVxuICogICBzcGFjZSkgKGRlZmF1bHQ6IGBmYWxzZWApLlxuICogQHByb3BlcnR5IHtib29sZWFuIHwgbnVsbCB8IHVuZGVmaW5lZH0gW3RpZ2h0RG9jdHlwZT1mYWxzZV1cbiAqICAgRHJvcCB1bm5lZWRlZCBzcGFjZXMgaW4gZG9jdHlwZXM6IGA8IWRvY3R5cGVodG1sPmAgaW5zdGVhZCBvZlxuICogICBgPCFkb2N0eXBlIGh0bWw+YCB0byBzYXZlIGJ5dGVzIChkZWZhdWx0OiBgZmFsc2VgKS5cbiAqXG4gKiAgID4gXHVEODNEXHVEQzQ5ICoqTm90ZSoqOiBpbnRlbnRpb25hbGx5IGNyZWF0ZXMgcGFyc2UgZXJyb3JzIGluIG1hcmt1cCAoaG93IHBhcnNlXG4gKiAgID4gZXJyb3JzIGFyZSBoYW5kbGVkIGlzIHdlbGwgZGVmaW5lZCwgc28gdGhpcyB3b3JrcyBidXQgaXNuXHUyMDE5dCBwcmV0dHkpLlxuICogQHByb3BlcnR5IHtib29sZWFuIHwgbnVsbCB8IHVuZGVmaW5lZH0gW3RpZ2h0U2VsZkNsb3Npbmc9ZmFsc2VdXG4gKiAgIERvIG5vdCB1c2UgYW4gZXh0cmEgc3BhY2Ugd2hlbiBjbG9zaW5nIHNlbGYtY2xvc2luZyBlbGVtZW50czogYDxpbWcvPmBcbiAqICAgaW5zdGVhZCBvZiBgPGltZyAvPmAgKGRlZmF1bHQ6IGBmYWxzZWApLlxuICpcbiAqICAgPiBcdUQ4M0RcdURDNDkgKipOb3RlKio6IG9ubHkgdXNlZCBpZiBgY2xvc2VTZWxmQ2xvc2luZzogdHJ1ZWAgb3JcbiAqICAgPiBgY2xvc2VFbXB0eUVsZW1lbnRzOiB0cnVlYC5cbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbiB8IG51bGwgfCB1bmRlZmluZWR9IFt1cHBlckRvY3R5cGU9ZmFsc2VdXG4gKiAgIFVzZSBhIGA8IURPQ1RZUEVcdTIwMjZgIGluc3RlYWQgb2YgYDwhZG9jdHlwZVx1MjAyNmAgKGRlZmF1bHQ6IGBmYWxzZWApLlxuICpcbiAqICAgVXNlbGVzcyBleGNlcHQgZm9yIFhIVE1MLlxuICogQHByb3BlcnR5IHtSZWFkb25seUFycmF5PHN0cmluZz4gfCBudWxsIHwgdW5kZWZpbmVkfSBbdm9pZHNdXG4gKiAgIFRhZyBuYW1lcyBvZiBlbGVtZW50cyB0byBzZXJpYWxpemUgd2l0aG91dCBjbG9zaW5nIHRhZyAoZGVmYXVsdDogYGh0bWwtdm9pZC1lbGVtZW50c2ApLlxuICpcbiAqICAgTm90IHVzZWQgaW4gdGhlIFNWRyBzcGFjZS5cbiAqXG4gKiAgID4gXHVEODNEXHVEQzQ5ICoqTm90ZSoqOiBJdFx1MjAxOXMgaGlnaGx5IHVubGlrZWx5IHRoYXQgeW91IHdhbnQgdG8gcGFzcyB0aGlzLCBiZWNhdXNlXG4gKiAgID4gaGFzdCBpcyBub3QgZm9yIFhNTCwgYW5kIEhUTUwgd2lsbCBub3QgYWRkIG1vcmUgdm9pZCBlbGVtZW50cy5cbiAqXG4gKiBAdHlwZWRlZiB7J1wiJyB8IFwiJ1wifSBRdW90ZVxuICogICBIVE1MIHF1b3RlcyBmb3IgYXR0cmlidXRlIHZhbHVlcy5cbiAqXG4gKiBAdHlwZWRlZiB7T21pdDxSZXF1aXJlZDx7W2tleSBpbiBrZXlvZiBPcHRpb25zXTogRXhjbHVkZTxPcHRpb25zW2tleV0sIG51bGwgfCB1bmRlZmluZWQ+fT4sICdzcGFjZScgfCAncXVvdGUnPn0gU2V0dGluZ3NcbiAqXG4gKiBAdHlwZWRlZiB7J2h0bWwnIHwgJ3N2Zyd9IFNwYWNlXG4gKiAgIE5hbWVzcGFjZS5cbiAqXG4gKiBAdHlwZWRlZiBTdGF0ZVxuICogICBJbmZvIHBhc3NlZCBhcm91bmQgYWJvdXQgdGhlIGN1cnJlbnQgc3RhdGUuXG4gKiBAcHJvcGVydHkgeyhub2RlOiBOb2RlcywgaW5kZXg6IG51bWJlciB8IHVuZGVmaW5lZCwgcGFyZW50OiBQYXJlbnRzIHwgdW5kZWZpbmVkKSA9PiBzdHJpbmd9IG9uZVxuICogICBTZXJpYWxpemUgb25lIG5vZGUuXG4gKiBAcHJvcGVydHkgeyhub2RlOiBQYXJlbnRzIHwgdW5kZWZpbmVkKSA9PiBzdHJpbmd9IGFsbFxuICogICBTZXJpYWxpemUgdGhlIGNoaWxkcmVuIG9mIGEgcGFyZW50IG5vZGUuXG4gKiBAcHJvcGVydHkge1NldHRpbmdzfSBzZXR0aW5nc1xuICogICBVc2VyIGNvbmZpZ3VyYXRpb24uXG4gKiBAcHJvcGVydHkge1NjaGVtYX0gc2NoZW1hXG4gKiAgIEN1cnJlbnQgc2NoZW1hLlxuICogQHByb3BlcnR5IHtRdW90ZX0gcXVvdGVcbiAqICAgUHJlZmVycmVkIHF1b3RlLlxuICogQHByb3BlcnR5IHtRdW90ZX0gYWx0ZXJuYXRpdmVcbiAqICAgQWx0ZXJuYXRpdmUgcXVvdGUuXG4gKi9cblxuaW1wb3J0IHtodG1sVm9pZEVsZW1lbnRzfSBmcm9tICdodG1sLXZvaWQtZWxlbWVudHMnXG5pbXBvcnQge2h0bWwsIHN2Z30gZnJvbSAncHJvcGVydHktaW5mb3JtYXRpb24nXG5pbXBvcnQge2hhbmRsZX0gZnJvbSAnLi9oYW5kbGUvaW5kZXguanMnXG5cbi8qKiBAdHlwZSB7T3B0aW9uc30gKi9cbmNvbnN0IGVtcHR5T3B0aW9ucyA9IHt9XG5cbi8qKiBAdHlwZSB7Q2hhcmFjdGVyUmVmZXJlbmNlc30gKi9cbmNvbnN0IGVtcHR5Q2hhcmFjdGVyUmVmZXJlbmNlcyA9IHt9XG5cbi8qKiBAdHlwZSB7QXJyYXk8bmV2ZXI+fSAqL1xuY29uc3QgZW1wdHlDaGlsZHJlbiA9IFtdXG5cbi8qKlxuICogU2VyaWFsaXplIGhhc3QgYXMgSFRNTC5cbiAqXG4gKiBAcGFyYW0ge0FycmF5PFJvb3RDb250ZW50PiB8IE5vZGVzfSB0cmVlXG4gKiAgIFRyZWUgdG8gc2VyaWFsaXplLlxuICogQHBhcmFtIHtPcHRpb25zIHwgbnVsbCB8IHVuZGVmaW5lZH0gW29wdGlvbnNdXG4gKiAgIENvbmZpZ3VyYXRpb24gKG9wdGlvbmFsKS5cbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKiAgIFNlcmlhbGl6ZWQgSFRNTC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvSHRtbCh0cmVlLCBvcHRpb25zKSB7XG4gIGNvbnN0IG9wdGlvbnNfID0gb3B0aW9ucyB8fCBlbXB0eU9wdGlvbnNcbiAgY29uc3QgcXVvdGUgPSBvcHRpb25zXy5xdW90ZSB8fCAnXCInXG4gIGNvbnN0IGFsdGVybmF0aXZlID0gcXVvdGUgPT09ICdcIicgPyBcIidcIiA6ICdcIidcblxuICBpZiAocXVvdGUgIT09ICdcIicgJiYgcXVvdGUgIT09IFwiJ1wiKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIHF1b3RlIGAnICsgcXVvdGUgKyAnYCwgZXhwZWN0ZWQgYFxcJ2Agb3IgYFwiYCcpXG4gIH1cblxuICAvKiogQHR5cGUge1N0YXRlfSAqL1xuICBjb25zdCBzdGF0ZSA9IHtcbiAgICBvbmUsXG4gICAgYWxsLFxuICAgIHNldHRpbmdzOiB7XG4gICAgICBvbWl0T3B0aW9uYWxUYWdzOiBvcHRpb25zXy5vbWl0T3B0aW9uYWxUYWdzIHx8IGZhbHNlLFxuICAgICAgYWxsb3dQYXJzZUVycm9yczogb3B0aW9uc18uYWxsb3dQYXJzZUVycm9ycyB8fCBmYWxzZSxcbiAgICAgIGFsbG93RGFuZ2Vyb3VzQ2hhcmFjdGVyczogb3B0aW9uc18uYWxsb3dEYW5nZXJvdXNDaGFyYWN0ZXJzIHx8IGZhbHNlLFxuICAgICAgcXVvdGVTbWFydDogb3B0aW9uc18ucXVvdGVTbWFydCB8fCBmYWxzZSxcbiAgICAgIHByZWZlclVucXVvdGVkOiBvcHRpb25zXy5wcmVmZXJVbnF1b3RlZCB8fCBmYWxzZSxcbiAgICAgIHRpZ2h0QXR0cmlidXRlczogb3B0aW9uc18udGlnaHRBdHRyaWJ1dGVzIHx8IGZhbHNlLFxuICAgICAgdXBwZXJEb2N0eXBlOiBvcHRpb25zXy51cHBlckRvY3R5cGUgfHwgZmFsc2UsXG4gICAgICB0aWdodERvY3R5cGU6IG9wdGlvbnNfLnRpZ2h0RG9jdHlwZSB8fCBmYWxzZSxcbiAgICAgIGJvZ3VzQ29tbWVudHM6IG9wdGlvbnNfLmJvZ3VzQ29tbWVudHMgfHwgZmFsc2UsXG4gICAgICB0aWdodENvbW1hU2VwYXJhdGVkTGlzdHM6IG9wdGlvbnNfLnRpZ2h0Q29tbWFTZXBhcmF0ZWRMaXN0cyB8fCBmYWxzZSxcbiAgICAgIHRpZ2h0U2VsZkNsb3Npbmc6IG9wdGlvbnNfLnRpZ2h0U2VsZkNsb3NpbmcgfHwgZmFsc2UsXG4gICAgICBjb2xsYXBzZUVtcHR5QXR0cmlidXRlczogb3B0aW9uc18uY29sbGFwc2VFbXB0eUF0dHJpYnV0ZXMgfHwgZmFsc2UsXG4gICAgICBhbGxvd0Rhbmdlcm91c0h0bWw6IG9wdGlvbnNfLmFsbG93RGFuZ2Vyb3VzSHRtbCB8fCBmYWxzZSxcbiAgICAgIHZvaWRzOiBvcHRpb25zXy52b2lkcyB8fCBodG1sVm9pZEVsZW1lbnRzLFxuICAgICAgY2hhcmFjdGVyUmVmZXJlbmNlczpcbiAgICAgICAgb3B0aW9uc18uY2hhcmFjdGVyUmVmZXJlbmNlcyB8fCBlbXB0eUNoYXJhY3RlclJlZmVyZW5jZXMsXG4gICAgICBjbG9zZVNlbGZDbG9zaW5nOiBvcHRpb25zXy5jbG9zZVNlbGZDbG9zaW5nIHx8IGZhbHNlLFxuICAgICAgY2xvc2VFbXB0eUVsZW1lbnRzOiBvcHRpb25zXy5jbG9zZUVtcHR5RWxlbWVudHMgfHwgZmFsc2VcbiAgICB9LFxuICAgIHNjaGVtYTogb3B0aW9uc18uc3BhY2UgPT09ICdzdmcnID8gc3ZnIDogaHRtbCxcbiAgICBxdW90ZSxcbiAgICBhbHRlcm5hdGl2ZVxuICB9XG5cbiAgcmV0dXJuIHN0YXRlLm9uZShcbiAgICBBcnJheS5pc0FycmF5KHRyZWUpID8ge3R5cGU6ICdyb290JywgY2hpbGRyZW46IHRyZWV9IDogdHJlZSxcbiAgICB1bmRlZmluZWQsXG4gICAgdW5kZWZpbmVkXG4gIClcbn1cblxuLyoqXG4gKiBTZXJpYWxpemUgYSBub2RlLlxuICpcbiAqIEB0aGlzIHtTdGF0ZX1cbiAqICAgSW5mbyBwYXNzZWQgYXJvdW5kIGFib3V0IHRoZSBjdXJyZW50IHN0YXRlLlxuICogQHBhcmFtIHtOb2Rlc30gbm9kZVxuICogICBOb2RlIHRvIGhhbmRsZS5cbiAqIEBwYXJhbSB7bnVtYmVyIHwgdW5kZWZpbmVkfSBpbmRleFxuICogICBJbmRleCBvZiBgbm9kZWAgaW4gYHBhcmVudC5cbiAqIEBwYXJhbSB7UGFyZW50cyB8IHVuZGVmaW5lZH0gcGFyZW50XG4gKiAgIFBhcmVudCBvZiBgbm9kZWAuXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICogICBTZXJpYWxpemVkIG5vZGUuXG4gKi9cbmZ1bmN0aW9uIG9uZShub2RlLCBpbmRleCwgcGFyZW50KSB7XG4gIHJldHVybiBoYW5kbGUobm9kZSwgaW5kZXgsIHBhcmVudCwgdGhpcylcbn1cblxuLyoqXG4gKiBTZXJpYWxpemUgYWxsIGNoaWxkcmVuIG9mIGBwYXJlbnRgLlxuICpcbiAqIEB0aGlzIHtTdGF0ZX1cbiAqICAgSW5mbyBwYXNzZWQgYXJvdW5kIGFib3V0IHRoZSBjdXJyZW50IHN0YXRlLlxuICogQHBhcmFtIHtQYXJlbnRzIHwgdW5kZWZpbmVkfSBwYXJlbnRcbiAqICAgUGFyZW50IHdob3NlIGNoaWxkcmVuIHRvIHNlcmlhbGl6ZS5cbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhbGwocGFyZW50KSB7XG4gIC8qKiBAdHlwZSB7QXJyYXk8c3RyaW5nPn0gKi9cbiAgY29uc3QgcmVzdWx0cyA9IFtdXG4gIGNvbnN0IGNoaWxkcmVuID0gKHBhcmVudCAmJiBwYXJlbnQuY2hpbGRyZW4pIHx8IGVtcHR5Q2hpbGRyZW5cbiAgbGV0IGluZGV4ID0gLTFcblxuICB3aGlsZSAoKytpbmRleCA8IGNoaWxkcmVuLmxlbmd0aCkge1xuICAgIHJlc3VsdHNbaW5kZXhdID0gdGhpcy5vbmUoY2hpbGRyZW5baW5kZXhdLCBpbmRleCwgcGFyZW50KVxuICB9XG5cbiAgcmV0dXJuIHJlc3VsdHMuam9pbignJylcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztLQUFBLFNBQTJDQSxJQUFNQyxJQUFBQTtBQUMxQixrQkFBQSxPQUFaQyxXQUEwQyxZQUFBLE9BQVhDLFVBQ3hDQSxRQUFPRCxVQUFVRCxHQUFBQSxJQUNRLGNBQUEsT0FBWEcsVUFBeUJBLE9BQU9DLE1BQzlDRCxPQUFPLENBQUEsR0FBSUgsRUFBQUEsSUFDZSxZQUFBLE9BQVpDLFVBQ2RBLFFBQWUsUUFBSUQsR0FB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V0FBVztBQUFBLEVBQ1gsWUFBWTtBQUFBLEVBQ1osY0FBYztBQUFBLEVBQ2QsVUFBVTtBQUFBLEVBQ1YsWUFBWTtBQUFBLEVBQ1osT0FBTztBQUFBLEVBQ1AsWUFBWTtBQUFBLEVBQ1osUUFBUTtBQUFBLEVBQ1IsT0FBTztBQUFBLEVBQ1AsUUFBUTtBQUFBLEVBQ1IsTUFBTTtBQUFBLEVBQ04sU0FBUztBQUFBLEVBQ1QsVUFBVTtBQUFBLEVBQ1YsT0FBTztBQUFBLEVBQ1AsT0FBTztBQUFBLEVBQ1AsUUFBUTtBQUFBLEVBQ1IsT0FBTztBQUFBLEVBQ1AsT0FBTztBQUFBLEVBQ1AsV0FBVztBQUFBLEVBQ1gsVUFBVTtBQUFBLEVBQ1YsTUFBTTtBQUFBLEVBQ04sVUFBVTtBQUFBLEVBQ1YsT0FBTztBQUFBLEVBQ1AsWUFBWTtBQUFBLEVBQ1osT0FBTztBQUFBLEVBQ1AsT0FBTztBQUFBLEVBQ1AsU0FBUztBQUFBLEVBQ1QsVUFBVTtBQUFBLEVBQ1YsV0FBVztBQUFBLEVBQ1gsWUFBWTtBQUFBLEVBQ1osUUFBUTtBQUFBLEVBQ1IsU0FBUztBQUFBLEVBQ1QsU0FBUztBQUFBLEVBQ1QsVUFBVTtBQUFBLEVBQ1YsUUFBUTtBQUFBLEVBQ1IsT0FBTztBQUFBLEVBQ1AsY0FBYztBQUFBLEVBQ2QsT0FBTztBQUFBLEVBQ1AsT0FBTztBQUFBLEVBQ1AsYUFBYTtBQUFBLEVBQ2IsT0FBTztBQUFBLEVBQ1AsVUFBVTtBQUFBLEVBQ1YsVUFBVTtBQUFBLEVBQ1YsaUJBQWlCO0FBQUEsRUFDakIsWUFBWTtBQUFBLEVBQ1osY0FBYztBQUFBLEVBQ2QsT0FBTztBQUFBLEVBQ1AsTUFBTTtBQUFBLEVBQ04sUUFBUTtBQUFBLEVBQ1IsZ0JBQWdCO0FBQUEsRUFDaEIsT0FBTztBQUFBLEVBQ1AsU0FBUztBQUFBLEVBQ1QsT0FBTztBQUFBLEVBQ1AsaUJBQWlCO0FBQUEsRUFDakIsUUFBUTtBQUFBLEVBQ1IsT0FBTztBQUFBLEVBQ1AsVUFBVTtBQUFBLEVBQ1YsNEJBQTRCO0FBQUEsRUFDNUIsT0FBTztBQUFBLEVBQ1AsT0FBTztBQUFBLEVBQ1AscUJBQXFCO0FBQUEsRUFDckIsT0FBTztBQUFBLEVBQ1AsU0FBUztBQUFBLEVBQ1QsWUFBWTtBQUFBLEVBQ1osVUFBVTtBQUFBLEVBQ1YsV0FBVztBQUFBLEVBQ1gsTUFBTTtBQUFBLEVBQ04sUUFBUTtBQUFBLEVBQ1IsTUFBTTtBQUFBLEVBQ04sT0FBTztBQUFBLEVBQ1AsaUJBQWlCO0FBQUEsRUFDakIsTUFBTTtBQUFBLEVBQ04sYUFBYTtBQUFBLEVBQ2IsVUFBVTtBQUFBLEVBQ1YsV0FBVztBQUFBLEVBQ1gsT0FBTztBQUFBLEVBQ1AsTUFBTTtBQUFBLEVBQ04sT0FBTztBQUFBLEVBQ1AsUUFBUTtBQUFBLEVBQ1IsUUFBUTtBQUFBLEVBQ1IsUUFBUTtBQUFBLEVBQ1IsUUFBUTtBQUFBLEVBQ1IsYUFBYTtBQUFBLEVBQ2Isc0JBQXNCO0FBQUEsRUFDdEIsT0FBTztBQUFBLEVBQ1AsVUFBVTtBQUFBLEVBQ1YsYUFBYTtBQUFBLEVBQ2IsWUFBWTtBQUFBLEVBQ1osYUFBYTtBQUFBLEVBQ2IsV0FBVztBQUFBLEVBQ1gsV0FBVztBQUFBLEVBQ1gsZUFBZTtBQUFBLEVBQ2Ysa0JBQWtCO0FBQUEsRUFDbEIsTUFBTTtBQUFBLEVBQ04sU0FBUztBQUFBLEVBQ1QsYUFBYTtBQUFBLEVBQ2IsUUFBUTtBQUFBLEVBQ1IsZUFBZTtBQUFBLEVBQ2YsU0FBUztBQUFBLEVBQ1QsU0FBUztBQUFBLEVBQ1QsZ0JBQWdCO0FBQUEsRUFDaEIsZ0JBQWdCO0FBQUEsRUFDaEIsY0FBYztBQUFBLEVBQ2QsT0FBTztBQUFBLEVBQ1AsTUFBTTtBQUFBLEVBQ04sU0FBUztBQUFBLEVBQ1QsT0FBTztBQUFBLEVBQ1AsU0FBUztBQUFBLEVBQ1QsT0FBTztBQUFBLEVBQ1AsV0FBVztBQUFBLEVBQ1gsWUFBWTtBQUFBLEVBQ1osTUFBTTtBQUFBLEVBQ04sU0FBUztBQUFBLEVBQ1QsU0FBUztBQUFBLEVBQ1QsY0FBYztBQUFBLEVBQ2QsUUFBUTtBQUFBLEVBQ1IsT0FBTztBQUFBLEVBQ1AsV0FBVztBQUFBLEVBQ1gsU0FBUztBQUFBLEVBQ1QsTUFBTTtBQUFBLEVBQ04scUJBQXFCO0FBQUEsRUFDckIsVUFBVTtBQUFBLEVBQ1YsYUFBYTtBQUFBLEVBQ2IsT0FBTztBQUFBLEVBQ1AsWUFBWTtBQUFBLEVBQ1osV0FBVztBQUFBLEVBQ1gsUUFBUTtBQUFBLEVBQ1IsUUFBUTtBQUFBLEVBQ1IsUUFBUTtBQUFBLEVBQ1IsU0FBUztBQUFBLEVBQ1QsbUJBQW1CO0FBQUEsRUFDbkIsY0FBYztBQUFBLEVBQ2QsUUFBUTtBQUFBLEVBQ1IsUUFBUTtBQUFBLEVBQ1IsUUFBUTtBQUFBLEVBQ1IsU0FBUztBQUFBLEVBQ1QsUUFBUTtBQUFBLEVBQ1IsY0FBYztBQUFBLEVBQ2QsUUFBUTtBQUFBLEVBQ1IsU0FBUztBQUFBLEVBQ1QsVUFBVTtBQUFBLEVBQ1YsWUFBWTtBQUFBLEVBQ1osUUFBUTtBQUFBLEVBQ1IsVUFBVTtBQUFBLEVBQ1YsZ0JBQWdCO0FBQUEsRUFDaEIsT0FBTztBQUFBLEVBQ1AsVUFBVTtBQUFBLEVBQ1YsTUFBTTtBQUFBLEVBQ04sY0FBYztBQUFBLEVBQ2QsU0FBUztBQUFBLEVBQ1QsT0FBTztBQUFBLEVBQ1AsVUFBVTtBQUFBLEVBQ1YsY0FBYztBQUFBLEVBQ2QsYUFBYTtBQUFBLEVBQ2IsWUFBWTtBQUFBLEVBQ1osU0FBUztBQUFBLEVBQ1QsY0FBYztBQUFBLEVBQ2QsTUFBTTtBQUFBLEVBQ04sV0FBVztBQUFBLEVBQ1gsY0FBYztBQUFBLEVBQ2QsVUFBVTtBQUFBLEVBQ1YsY0FBYztBQUFBLEVBQ2QsWUFBWTtBQUFBLEVBQ1osYUFBYTtBQUFBLEVBQ2IsVUFBVTtBQUFBLEVBQ1YsUUFBUTtBQUFBLEVBQ1IsTUFBTTtBQUFBLEVBQ04sVUFBVTtBQUFBLEVBQ1YsTUFBTTtBQUFBLEVBQ04sS0FBSztBQUFBLEVBQ0wsT0FBTztBQUFBLEVBQ1AsT0FBTztBQUFBLEVBQ1AsVUFBVTtBQUFBLEVBQ1YsU0FBUztBQUFBLEVBQ1QsT0FBTztBQUFBLEVBQ1AsT0FBTztBQUFBLEVBQ1AsU0FBUztBQUFBLEVBQ1QsT0FBTztBQUFBLEVBQ1AsT0FBTztBQUFBLEVBQ1AsUUFBUTtBQUFBLEVBQ1Isa0JBQWtCO0FBQUEsRUFDbEIsU0FBUztBQUFBLEVBQ1QsTUFBTTtBQUFBLEVBQ04sT0FBTztBQUFBLEVBQ1AsUUFBUTtBQUFBLEVBQ1IsUUFBUTtBQUFBLEVBQ1IsaUJBQWlCO0FBQUEsRUFDakIsY0FBYztBQUFBLEVBQ2QsZ0JBQWdCO0FBQUEsRUFDaEIsT0FBTztBQUFBLEVBQ1AsU0FBUztBQUFBLEVBQ1QsWUFBWTtBQUFBLEVBQ1osT0FBTztBQUFBLEVBQ1AsaUJBQWlCO0FBQUEsRUFDakIsT0FBTztBQUFBLEVBQ1AsT0FBTztBQUFBLEVBQ1AsVUFBVTtBQUFBLEVBQ1YsTUFBTTtBQUFBLEVBQ04sY0FBYztBQUFBLEVBQ2QsT0FBTztBQUFBLEVBQ1AsT0FBTztBQUFBLEVBQ1AsU0FBUztBQUFBLEVBQ1QsU0FBUztBQUFBLEVBQ1QsaUJBQWlCO0FBQUEsRUFDakIsVUFBVTtBQUFBLEVBQ1YsV0FBVztBQUFBLEVBQ1gsaUJBQWlCO0FBQUEsRUFDakIsU0FBUztBQUFBLEVBQ1QsTUFBTTtBQUFBLEVBQ04sU0FBUztBQUFBLEVBQ1QsT0FBTztBQUFBLEVBQ1AsT0FBTztBQUFBLEVBQ1AsUUFBUTtBQUFBLEVBQ1IsV0FBVztBQUFBLEVBQ1gsUUFBUTtBQUFBLEVBQ1IsUUFBUTtBQUFBLEVBQ1IsTUFBTTtBQUFBLEVBQ04sWUFBWTtBQUFBLEVBQ1osV0FBVztBQUFBLEVBQ1gsTUFBTTtBQUFBLEVBQ04sV0FBVztBQUFBLEVBQ1gsT0FBTztBQUFBLEVBQ1AsT0FBTztBQUFBLEVBQ1AsU0FBUztBQUFBLEVBQ1QsUUFBUTtBQUFBLEVBQ1IsT0FBTztBQUFBLEVBQ1AsZ0JBQWdCO0FBQUEsRUFDaEIsT0FBTztBQUFBLEVBQ1AsTUFBTTtBQUFBLEVBQ04sUUFBUTtBQUFBLEVBQ1IsV0FBVztBQUFBLEVBQ1gsVUFBVTtBQUFBLEVBQ1YsUUFBUTtBQUFBLEVBQ1IsUUFBUTtBQUFBLEVBQ1IsV0FBVztBQUFBLEVBQ1gsTUFBTTtBQUFBLEVBQ04s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LE9BQU07QUFBQSxFQUNOLE9BQU07QUFBQSxFQUNOLFFBQU87QUFBQSxFQUNQLGNBQWE7QUFBQSxFQUNiLFFBQU87QUFBQSxFQUNQLFNBQVE7QUFBQSxFQUNSLFFBQU87QUFBQSxFQUNQLFVBQVM7QUFBQSxFQUNULFlBQVc7QUFBQSxFQUNYLFFBQU87QUFBQSxFQUNQLE1BQUs7QUFBQSxFQUNMLFVBQVM7QUFBQSxFQUNULFVBQVM7QUFBQSxFQUNULFVBQVM7QUFBQSxFQUNULGFBQVk7QUFBQSxFQUNaLE9BQU07QUFBQSxFQUNOLFVBQVM7QUFBQSxFQUNULE1BQUs7QUFBQSxFQUNMLGNBQWE7QUFBQSxFQUNiLFNBQVE7QUFBQSxFQUNSLFFBQU87QUFBQSxFQUNQLE9BQU07QUFBQSxFQUNOLFVBQVM7QUFBQSxFQUNULGNBQWE7QUFBQSxFQUNiLGFBQVk7QUFBQSxFQUNaLFlBQVc7QUFBQSxFQUNYLFNBQVE7QUFBQSxFQUNSLGNBQWE7QUFBQSxFQUNiLE1BQUs7QUFBQSxFQUNMLFdBQVU7QUFBQSxFQUNWLGNBQWE7QUFBQSxFQUNiLGNBQWE7QUFBQSxFQUNiLFVBQVM7QUFBQSxFQUNULFVBQVM7QUFBQSxFQUNULGNBQWE7QUFBQSxFQUNiLFlBQVc7QUFBQSxFQUNYLE9BQU07QUFBQSxFQUNOLFVBQVM7QUFBQSxFQUNULFFBQU87QUFBQSxFQUNQLGFBQVk7QUFBQSxFQUNaLFVBQVM7QUFBQSxFQUNULGNBQWE7QUFBQSxFQUNiLFFBQU87QUFBQSxFQUNQLFVBQVM7QUFBQSxFQUNULE1BQUs7QUFBQSxFQUNMLFVBQVM7QUFBQSxFQUNULE1BQUs7QUFBQSxFQUNMLEtBQUk7QUFBQSxFQUNKLE9BQU07QUFBQSxFQUNOLFFBQU87QUFBQSxFQUNQLEtBQUk7QUFBQSxFQUNKLFVBQVM7QUFBQSxFQUNULE9BQU07QUFBQSxFQUNOLFVBQVM7QUFBQSxFQUNULE9BQU07QUFBQSxFQUNOLE9BQU07QUFBQSxFQUNOLFVBQVM7QUFBQSxFQUNULFNBQVE7QUFBQSxFQUNSLFFBQU87QUFBQSxFQUNQLFNBQVE7QUFBQSxFQUNS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RUFDWCxRQUFRO0FBQUEsRUFDUixRQUFRO0FBQUEsRUFDUixRQUFRO0FBQUEsRUFDUixRQUFRO0FBQUEsRUFDUixTQUFTO0FBQUEsRUFDVCxPQUFPO0FBQUEsRUFDUCxNQUFNO0FBQUEsRUFDTixRQUFRO0FBQUEsRUFDUixjQUFjO0FBQUEsRUFDZCxRQUFRO0FBQUEsRUFDUixTQUFTO0FBQUEsRUFDVCxTQUFTO0FBQUEsRUFDVCxVQUFVO0FBQUEsRUFDVixTQUFTO0FBQUEsRUFDVCxTQUFTO0FBQUEsRUFDVCxRQUFRO0FBQUEsRUFDUixVQUFVO0FBQUEsRUFDVixRQUFRO0FBQUEsRUFDUixjQUFjO0FBQUEsRUFDZCxZQUFZO0FBQUEsRUFDWixXQUFXO0FBQUEsRUFDWCxPQUFPO0FBQUEsRUFDUCxZQUFZO0FBQUEsRUFDWixVQUFVO0FBQUEsRUFDVixhQUFhO0FBQUEsRUFDYixPQUFPO0FBQUEsRUFDUCxXQUFXO0FBQUEsRUFDWCxTQUFTO0FBQUEsRUFDVCxPQUFPO0FBQUEsRUFDUCxPQUFPO0FBQUEsRUFDUCxRQUFRO0FBQUEsRUFDUixpQkFBaUI7QUFBQSxFQUNqQixlQUFlO0FBQUEsRUFDZixTQUFTO0FBQUEsRUFDVCxVQUFVO0FBQUEsRUFDVixVQUFVO0FBQUEsRUFDVixVQUFVO0FBQUEsRUFDVixRQUFRO0FBQUEsRUFDUixPQUFPO0FBQUEsRUFDUCxVQUFVO0FBQUEsRUFDVixjQUFjO0FBQUEsRUFDZCxZQUFZO0FBQUEsRUFDWixjQUFjO0FBQUEsRUFDZCxjQUFjO0FBQUEsRUFDZCxjQUFjO0FBQUEsRUFDZCxVQUFVO0FBQUEsRUFDVixvQkFBb0I7QUFBQSxFQUNwQixPQUFPO0FBQUEsRUFDUCxVQUFVO0FBQUEsRUFDVixjQUFjO0FBQUEsRUFDZCxVQUFVO0FBQUEsRUFDVixxQkFBcUI7QUFBQSxFQUNyQixNQUFNO0FBQUEsRUFDTixPQUFPO0FBQUEsRUFDUCxLQUFLO0FBQUEsRUFDTCxVQUFVO0FBQUEsRUFDVixZQUFZO0FBQUEsRUFDWixhQUFhO0FBQUEsRUFDYixhQUFhO0FBQUEsRUFDYixV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QSxFQUNYLFVBQVU7QUFBQSxFQUNWLFFBQVE7QUFBQSxFQUNSLGNBQWM7QUFBQSxFQUNkLFdBQVc7QUFBQSxFQUNYLFFBQVE7QUFBQSxFQUNSLFFBQVE7QUFBQSxFQUNSLFFBQVE7QUFBQSxFQUNSLFFBQVE7QUFBQSxFQUNSLFNBQVM7QUFBQSxFQUNULE9BQU87QUFBQSxFQUNQLE1BQU07QUFBQSxFQUNOLFFBQVE7QUFBQSxFQUNSLGNBQWM7QUFBQSxFQUNkLFFBQVE7QUFBQSxFQUNSLFNBQVM7QUFBQSxFQUNULFNBQVM7QUFBQSxFQUNULFVBQVU7QUFBQSxFQUNWLFNBQVM7QUFBQSxFQUNULFNBQVM7QUFBQSxFQUNULFFBQVE7QUFBQSxFQUNSLFVBQVU7QUFBQSxFQUNWLFFBQVE7QUFBQSxFQUNSLGNBQWM7QUFBQSxFQUNkLFlBQVk7QUFBQSxFQUNaLFdBQVc7QUFBQSxFQUNYLE9BQU87QUFBQSxFQUNQLFlBQVk7QUFBQSxFQUNaLFVBQVU7QUFBQSxFQUNWLGFBQWE7QUFBQSxFQUNiLE9BQU87QUFBQSxFQUNQLFdBQVc7QUFBQSxFQUNYLFNBQVM7QUFBQSxFQUNULE9BQU87QUFBQSxFQUNQLE9BQU87QUFBQSxFQUNQLFFBQVE7QUFBQSxFQUNSLGlCQUFpQjtBQUFBLEVBQ2pCLGVBQWU7QUFBQSxFQUNmLFNBQVM7QUFBQSxFQUNULFVBQVU7QUFBQSxFQUNWLFVBQVU7QUFBQSxFQUNWLFVBQVU7QUFBQSxFQUNWLFFBQVE7QUFBQSxFQUNSLE9BQU87QUFBQSxFQUNQLFVBQVU7QUFBQSxFQUNWLGNBQWM7QUFBQSxFQUNkLFlBQVk7QUFBQSxFQUNaLGNBQWM7QUFBQSxFQUNkLGNBQWM7QUFBQSxFQUNkLGNBQWM7QUFBQSxFQUNkLFVBQVU7QUFBQSxFQUNWLG9CQUFvQjtBQUFBLEVBQ3BCLE9BQU87QUFBQSxFQUNQLFVBQVU7QUFBQSxFQUNWLGNBQWM7QUFBQSxFQUNkLFVBQVU7QUFBQSxFQUNWLHFCQUFxQjtBQUFBLEVBQ3JCLE1BQU07QUFBQSxFQUNOLE9BQU87QUFBQSxFQUNQLEtBQUs7QUFBQSxFQUNM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TSxXQUFVQSxHQUFFLGlCQUFlLFdBQVVBLEdBQUUsV0FBUyxXQUFVQSxHQUFFLFVBQVEsV0FBVUEsR0FBRSxPQUFLLFdBQVVBLEdBQUUsV0FBUyxXQUFVQSxHQUFFLFdBQVMsV0FBVUEsR0FBRSxnQkFBYyxXQUFVQSxHQUFFLFdBQVMsV0FBVUEsR0FBRSxZQUFVLFdBQVVBLEdBQUUsV0FBUyxXQUFVQSxHQUFFLFlBQVUsV0FBVUEsR0FBRSxjQUFZLFdBQVVBLEdBQUUsaUJBQWUsV0FBVUEsR0FBRSxhQUFXLFdBQVVBLEdBQUUsYUFBVyxXQUFVQSxHQUFFLFVBQVEsV0FBVUEsR0FBRSxhQUFXLFdBQVVBLEdBQUUsZUFBYSxXQUFVQSxHQUFFLGdCQUFjLFdBQVVBLEdBQUUsZ0JBQWMsV0FBVUEsR0FBRSxnQkFBYyxXQUFVQSxHQUFFLGdCQUFjLFdBQVVBLEdBQUUsYUFBVyxXQUFVQSxHQUFFLFdBQVMsV0FBVUEsR0FBRSxjQUFZLFdBQVVBLEdBQUUsVUFBUSxXQUFVQSxHQUFFLFVBQVEsV0FBVUEsR0FBRSxhQUFXLFdBQVVBLEdBQUUsWUFBVSxXQUFVQSxHQUFFLGNBQVksV0FBVUEsR0FBRSxjQUFZLFdBQVVBLEdBQUUsWUFBVSxXQUFVQSxHQUFFLGFBQVcsV0FBVUEsR0FBRSxPQUFLLFdBQVVBLEdBQUUsWUFBVSxXQUFVQSxHQUFFLGNBQVksV0FBVUEsR0FBRSxPQUFLLFdBQVVBLEdBQUUsV0FBUyxXQUFVQSxHQUFFLFVBQVEsV0FBVUEsR0FBRSxZQUFVLFdBQVVBLEdBQUUsU0FBTyxXQUFVQSxHQUFFLFFBQU0sV0FBVUEsR0FBRSxRQUFNLFdBQVVBLEdBQUUsV0FBUyxXQUFVQSxHQUFFLGdCQUFjLFdBQVVBLEdBQUUsWUFBVSxXQUFVQSxHQUFFLGVBQWEsV0FBVUEsR0FBRSxZQUFVLFdBQVVBLEdBQUUsYUFBVyxXQUFVQSxHQUFFLFlBQVUsV0FBVUEsR0FBRSx1QkFBcUIsV0FBVUEsR0FBRSxZQUFVLFdBQVVBLEdBQUUsYUFBVyxXQUFVQSxHQUFFLFlBQVUsV0FBVUEsR0FBRSxZQUFVLFdBQVVBLEdBQUUsY0FBWSxXQUFVQSxHQUFFLGdCQUFjLFdBQVVBLEdBQUUsZUFBYSxXQUFVQSxHQUFFLGlCQUFlLFdBQVVBLEdBQUUsaUJBQWUsV0FBVUEsR0FBRSxpQkFBZSxXQUFVQSxHQUFFLGNBQVksV0FBVUEsR0FBRSxZQUFVLFdBQVVBLEdBQUUsUUFBTSxXQUFVQSxHQUFFLFVBQVEsV0FBVUEsR0FBRSxtQkFBaUIsV0FBVUEsR0FBRSxhQUFXLFdBQVVBLEdBQUUsZUFBYSxXQUFVQSxHQUFFLGVBQWEsV0FBVUEsR0FBRSxpQkFBZSxXQUFVQSxHQUFFLGtCQUFnQixXQUFVQSxHQUFFLG9CQUFrQixXQUFVQSxHQUFFLGtCQUFnQixXQUFVQSxHQUFFLGtCQUFnQixXQUFVQSxHQUFFLGVBQWEsV0FBVUEsR0FBRSxZQUFVLFdBQVVBLEdBQUUsWUFBVSxXQUFVQSxHQUFFLFdBQVMsV0FBVUEsR0FBRSxjQUFZLFdBQVVBLEdBQUUsVUFBUSxXQUFVQSxHQUFFLFlBQVUsV0FBVUEsR0FBRSxZQUFVLFdBQVVBLEdBQUUsU0FBTyxXQUFVQSxHQUFFLGdCQUFjLFdBQVVBLEdBQUUsWUFBVSxXQUFVQSxHQUFFLGdCQUFjLFdBQVVBLEdBQUUsZ0JBQWMsV0FBVUEsR0FBRSxhQUFXLFdBQVVBLEdBQUUsWUFBVSxXQUFVQSxHQUFFLE9BQUssV0FBVUEsR0FBRSxPQUFLLFdBQVVBLEdBQUUsT0FBSyxXQUFVQSxHQUFFLGFBQVcsV0FBVUEsR0FBRSxZQUFVLFdBQVVBLEdBQUUsWUFBVSxXQUFVQSxHQUFFLGNBQVksV0FBVUEsR0FBRSxTQUFPLFdBQVVBLEdBQUUsYUFBVyxXQUFVQSxHQUFFLFdBQVMsV0FBVUEsR0FBRSxXQUFTLFdBQVVBLEdBQUUsU0FBTyxXQUFVQSxHQUFFLFVBQVEsV0FBVUEsR0FBRSxZQUFVLFdBQVVBLEdBQUUsWUFBVSxXQUFVQSxHQUFFLFlBQVUsV0FBVUEsR0FBRSxPQUFLLFdBQVVBLEdBQUUsY0FBWSxXQUFVQSxHQUFFLFlBQVUsV0FBVUEsR0FBRSxNQUFJLFdBQVVBLEdBQUUsVUFBUSxXQUFVQSxHQUFF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QUlDLEtBQUVELEdBQUUsTUFBTSxDQUFDLEdBQUVFLEtBQUUsQ0FBQ0QsR0FBRSxDQUFDO0FBQUUsWUFBT0EsR0FBRSxDQUFDLEdBQUU7QUFBQSxNQUFDLEtBQUssRUFBRTtBQUFRLFFBQUFELEtBQUUsRUFBRSxNQUFJRSxLQUFFLEtBQUssRUFBRTtBQUFFO0FBQUEsTUFBTSxLQUFLLEVBQUU7QUFBTSxRQUFBRixLQUFFLEVBQUUsTUFBSUUsRUFBQztBQUFFO0FBQUEsTUFBTSxLQUFLLEVBQUU7QUFBUyxRQUFBRixLQUFFLEVBQUUsTUFBR0UsRUFBQztBQUFFO0FBQUEsTUFBTSxLQUFLLEVBQUU7QUFBQSxNQUFRO0FBQVEsUUFBQUYsS0FBRUU7QUFBQSxJQUFDO0FBQUEsRUFBQztBQUFDLFVBQU9GLEtBQUUsT0FBS0EsS0FBRSxPQUFLQSxNQUFHLE1BQUksS0FBSyxNQUFNQSxLQUFFLEdBQUcsSUFBR0E7QUFBQztBQUF6cEMsSUFBMnBDLElBQUUsU0FBU0EsSUFBRUMsSUFBRTtBQUFDLE1BQUlDO0FBQUUsVUFBT0QsSUFBRTtBQUFBLElBQUMsS0FBSyxFQUFFO0FBQVEsTUFBQUMsS0FBRSxFQUFFLFNBQVNGLElBQUU7QUFBQyxlQUFPQSxLQUFFLEtBQUssS0FBRztBQUFBLE1BQUcsRUFBRUEsRUFBQyxDQUFDO0FBQUU7QUFBQSxJQUFNLEtBQUssRUFBRTtBQUFNLE1BQUFFLEtBQUUsRUFBRUYsS0FBRSxHQUFHO0FBQUU7QUFBQSxJQUFNLEtBQUssRUFBRTtBQUFTLE1BQUFFLEtBQUUsRUFBRSxLQUFHLElBQUVGLEVBQUM7QUFBRTtBQUFBLElBQU0sS0FBSyxFQUFFO0FBQUEsSUFBUSxLQUFLLEVBQUU7QUFBQSxJQUFLO0FBQVEsTUFBQUUsS0FBRUY7QUFBQSxFQUFDO0FBQUMsU0FBT0U7QUFBQztBQUF6MkMsSUFBMjJDLElBQUUsU0FBU0YsSUFBRTtBQUFDLFdBQVFDLEtBQUUsQ0FBQyxHQUFFQyxLQUFFLEdBQUVBLEtBQUUsVUFBVSxRQUFPQTtBQUFJLElBQUFELEdBQUVDLEtBQUUsQ0FBQyxJQUFF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QUVELEdBQUUsQ0FBQyxLQUFHQSxHQUFFLENBQUMsQ0FBQyxHQUFFLEdBQUUsRUFBRUEsR0FBRSxDQUFDLEtBQUdBLEdBQUUsQ0FBQyxDQUFDLEdBQUUsR0FBRSxFQUFFQSxHQUFFLENBQUMsS0FBR0EsR0FBRSxDQUFDLENBQUMsRUFBQyxHQUFFRSxLQUFFRixHQUFFLENBQUMsS0FBR0EsR0FBRSxDQUFDO0FBQUUsU0FBTyxXQUFTRSxPQUFJRCxHQUFFLElBQUUsRUFBRUMsRUFBQyxJQUFFLE1BQUtEO0FBQUMsR0FBRSxFQUFFLEVBQUUsR0FBRyxJQUFFLFNBQVNGLElBQUU7QUFBQyxNQUFJQyxLQUFFRCxHQUFFLE1BQU0sRUFBRSxHQUFHLEdBQUVFLEtBQUUsRUFBRUQsR0FBRSxDQUFDLEtBQUdBLEdBQUUsQ0FBQyxDQUFDLEdBQUVFLEtBQUUsRUFBRUYsR0FBRSxDQUFDLEtBQUdBLEdBQUUsQ0FBQyxDQUFDLEdBQUVHLEtBQUUsRUFBRUgsR0FBRSxDQUFDLEtBQUdBLEdBQUUsQ0FBQyxDQUFDLEdBQUVJLEtBQUVKLEdBQUUsQ0FBQyxLQUFHQSxHQUFFLENBQUMsR0FBRTJCLEtBQUUsRUFBQyxHQUFFLEtBQUssSUFBSTFCLElBQUUsR0FBRyxHQUFFLEdBQUUsS0FBSyxJQUFJQyxJQUFFLEdBQUcsR0FBRSxHQUFFLEtBQUssSUFBSUMsSUFBRSxHQUFHLEVBQUM7QUFBRSxTQUFPLFdBQVNDLE9BQUl1QixHQUFFLElBQUUsR0FBR3ZCLEVBQUMsSUFBR3VCO0FBQUMsR0FBRSxFQUFFLEVBQUUsR0FBRyxJQUFFLFNBQVM1QixJQUFFO0FBQUMsTUFBSUMsS0FBRUQsR0FBRSxNQUFNLEVBQUUsR0FBRyxHQUFFRSxLQUFFLEVBQUVELEdBQUUsQ0FBQyxLQUFHQSxHQUFFLENBQUMsQ0FBQyxHQUFFRSxLQUFFLEVBQUVGLEdBQUUsQ0FBQyxLQUFHQSxHQUFFLENBQUMsQ0FBQyxHQUFFRyxLQUFFLEVBQUVILEdBQUUsQ0FBQyxLQUFHQSxHQUFFLENBQUMsQ0FBQyxHQUFFSSxLQUFFSixHQUFFLENBQUMsS0FBR0Es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QyxLQUFFLEdBQUcsSUFBSUQsRUFBQztBQUFFLFNBQU9DLEdBQUUsSUFBRSxFQUFFRCxJQUFFLEdBQUcsSUFBRSxFQUFFLE1BQUlBLEdBQUUsQ0FBQyxJQUFFLFFBQU9DO0FBQUMsR0FBRSxFQUFFLEVBQUUsR0FBRyxJQUFFLFNBQVNELElBQUVDLElBQUU7QUFBQyxNQUFJQyxLQUFFLEdBQUdGLElBQUVDLEVBQUM7QUFBRSxTQUFPLEVBQUVDLElBQUUsR0FBRyxLQUFHLE9BQU9BLEdBQUUsR0FBRUE7QUFBQyxHQUFFLEVBQUUsT0FBSyxTQUFTRixJQUFFQyxJQUFFO0FBQUMsTUFBSUMsS0FBRSxHQUFHLElBQUlGLElBQUVDLEVBQUM7QUFBRSxTQUFPQyxHQUFFLElBQUUsRUFBRUYsSUFBRSxHQUFHLElBQUUsRUFBRUEsR0FBRSxDQUFDLElBQUUsR0FBRUU7QUFBQyxHQUFFLEVBQUUsRUFBRSxHQUFHLElBQUUsU0FBU0YsSUFBRUMsSUFBRTtBQUFDLE1BQUlDLEtBQUUsRUFBRUYsR0FBRSxHQUFFQSxHQUFFLEdBQUVBLEdBQUUsQ0FBQztBQUFFLFNBQU8sT0FBT0UsR0FBRSxHQUFFLEdBQUdBLElBQUVELEVBQUM7QUFBQyxHQUFFLEVBQUUsT0FBSyxTQUFTRCxJQUFFQyxJQUFFO0FBQUMsTUFBSUMsS0FBRSxHQUFHLElBQUlGLElBQUVDLEVBQUM7QUFBRSxTQUFPQyxHQUFFLElBQUUsRUFBRUYsSUFBRSxHQUFHLElBQUUsRUFBRUEsR0FBRSxHQUFFQyxFQUFDLElBQUUsR0FBRUM7QUFBQyxHQUFFLEVBQUUsRUFBRSxJQUFJLElBQUUsU0FBU0YsSUFBRUMsSUFBRTtBQUFDLFNBQU8sR0FBRyxFQUFFRCxHQUFFLEdBQUVBLEdBQUUsR0FBRUEsR0FBRSxDQUFDLEdBQUVDLEVBQUM7QUFBQyxHQUFFLEVBQUUsUUFBTSxTQUFTRCxJQUFFQyxJQUFFO0FBQUMsTUFBSUMsS0FBRSxHQUFHLEtBQUtGLElBQUVDLEVBQUM7QUFBRSxTQUFPQyxHQUFFLElBQUUsRUFBRUYsSUFBRSxHQUFHLElBQUUsRUFBRUEsR0FB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QUMsQ0FBQyxDQUFDLElBQUUsR0FBRyxLQUFLLEVBQUUsRUFBRSxDQUFDLEdBQUUsRUFBRUEsR0FBRSxHQUFFQSxHQUFFLEdBQUVBLEdBQUUsQ0FBQyxDQUFDLEdBQUUsRUFBQyxHQUFFLEdBQUdBLEdBQUUsQ0FBQyxFQUFDLENBQUMsQ0FBQztBQUFBLEVBQUMsQ0FBRTtBQUFDLEdBQUUsRUFBRSxFQUFFLEdBQUcsSUFBRSxTQUFTRCxJQUFFQyxJQUFFQyxJQUFFQyxJQUFFQyxJQUFFO0FBQUMsU0FBT0gsR0FBRUQsSUFBRUUsRUFBQyxFQUFFLElBQUssU0FBU0YsSUFBRTtBQUFDLFdBQU9HLEtBQUUsRUFBRSxJQUFJLEVBQUVILEdBQUUsR0FBRUEsR0FBRSxHQUFFQSxHQUFFLENBQUMsR0FBRUksRUFBQyxJQUFFLEdBQUcsSUFBSSxFQUFFSixHQUFFLEdBQUVBLEdBQUUsR0FBRUEsR0FBRSxDQUFDLEdBQUVJLEdBQUUsUUFBUTtBQUFBLEVBQUMsQ0FBRTtBQUFDLEdBQUUsRUFBRSxPQUFLLFNBQVNILElBQUVDLElBQUVDLElBQUVDLElBQUVDLElBQUU7QUFBQyxTQUFPSCxHQUFFRCxJQUFFRSxFQUFDLEVBQUUsSUFBSyxTQUFTRixJQUFFO0FBQUMsV0FBT0csS0FBRSxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsR0FBRSxFQUFFSCxHQUFFLEdBQUVBLEdBQUUsR0FBRUEsR0FBRSxDQUFDLENBQUMsR0FBRSxFQUFDLEdBQUUsR0FBR0EsR0FBRSxDQUFDLEVBQUMsQ0FBQyxHQUFFSSxFQUFDLElBQUUsR0FBRyxLQUFLLEVBQUUsRUFBRSxDQUFDLEdBQUUsRUFBRUosR0FBRSxHQUFFQSxHQUFFLEdBQUVBLEdBQUUsQ0FBQyxDQUFDLEdBQUUsRUFBQyxHQUFFLEdBQUdBLEdBQUUsQ0FBQyxFQUFDLENBQUMsR0FBRUksR0FBRSxRQUFRO0FBQUEsRUFBQyxDQUFFO0FBQUMsR0FBRSxFQUFFLEVBQUUsR0FBRyxJQUFFLFNBQVNMLElBQUVDLElBQUVDLElBQUVDLElBQUVDLElBQUU7QUFBQyxTQUFPSCxHQUFF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LEVBQUUsT0FBSyxTQUFTSCxJQUFFQyxJQUFFQyxJQUFFQyxJQUFFO0FBQUMsTUFBSUMsS0FBRSxLQUFLLElBQUlKLElBQUVDLEVBQUM7QUFBRSxTQUFPQyxLQUFFLEVBQUUsSUFBSUUsSUFBRUQsRUFBQyxJQUFFLEdBQUcsS0FBS0MsSUFBRUQsR0FBRSxRQUFRO0FBQUMsR0FBRSxFQUFFLEVBQUUsR0FBRyxJQUFFLFNBQVNILElBQUVDLElBQUVDLElBQUVDLElBQUU7QUFBQyxNQUFJQyxLQUFFLEtBQUssSUFBSUosSUFBRUMsRUFBQyxHQUFFSSxLQUFFLEVBQUVELEdBQUUsR0FBRUEsR0FBRSxHQUFFQSxHQUFFLENBQUM7QUFBRSxTQUFPLE9BQU9BLEdBQUUsR0FBRSxPQUFPQyxHQUFFLEdBQUVILEtBQUUsRUFBRSxJQUFJRyxJQUFFRixFQUFDLElBQUUsR0FBRyxJQUFJQyxJQUFFRCxHQUFFLFFBQVE7QUFBQyxHQUFFLEVBQUUsT0FBSyxTQUFTSCxJQUFFQyxJQUFFQyxJQUFFQyxJQUFFO0FBQUMsTUFBSUMsS0FBRSxLQUFLLElBQUlKLElBQUVDLEVBQUMsR0FBRUksS0FBRSxFQUFFRCxHQUFFLEdBQUVBLEdBQUUsR0FBRUEsR0FBRSxHQUFFQSxHQUFFLENBQUM7QUFBRSxTQUFPRixLQUFFLEVBQUUsSUFBSUcsSUFBRUYsRUFBQyxJQUFFLEdBQUcsS0FBS0MsSUFBRUQsR0FBRSxRQUFRO0FBQUMsR0FBRTtBQUF6MVksSUFBNDFZLEtBQUcsU0FBU0YsSUFBRUMsSUFBRTtBQUFDLE1BQUlDLEtBQUUsRUFBRUYsR0FBRSxHQUFFQyxFQUFDLEdBQUVFLEtBQUUsRUFBRUgsR0FBRSxHQUFFQyxFQUFDLEdBQUVHLEtBQUUsRUFBRUosR0FBRSxHQUFFQyxFQUFDO0FBQUUsU0FBTyxFQUFFLEVBQUMsR0FBRUMsSUFBRSxHQUFFQyxJQUFFLEdBQUVDLEdBQUMsR0FBRSxFQUFFSixJQUFFLEdBQUcsSUFBRSxFQUFDLEdBQUUsRUFBRUEsR0FBRSxHQUFFQyxFQUFDLEVBQUMsSUFBRSxDQUFDLENBQUM7QUFBQztB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QUFFLEtBQUssSUFBSSxHQUFFLEtBQUssSUFBSSxHQUFFLEtBQUssSUFBSSxHQUFFLEtBQUssSUFBSSxDQUFDO0FBQUEsRUFBQyxHQUFFQSxHQUFFLFVBQVUsYUFBVyxXQUFVO0FBQUMsU0FBSyxPQUFLLEVBQUUsS0FBSyxJQUFJLEdBQUUsS0FBSyxJQUFJLEdBQUUsS0FBSyxJQUFJLENBQUM7QUFBQSxFQUFDLEdBQUVBLEdBQUUsVUFBVSxtQkFBaUIsV0FBVTtBQUFDLFdBQU8sS0FBSyxVQUFVLEdBQUUsS0FBSyxXQUFXLEdBQUU7QUFBQSxFQUFJLEdBQUVBLEdBQUUsVUFBVSxtQkFBaUIsV0FBVTtBQUFDLFdBQU8sS0FBSyxVQUFVLEdBQUUsS0FBSyxXQUFXLEdBQUU7QUFBQSxFQUFJLEdBQUVBLEdBQUUsVUFBVSxrQkFBZ0IsV0FBVTtBQUFDLFdBQU8sS0FBSyxrQkFBa0IsR0FBRSxLQUFLLFVBQVUsR0FBRTtBQUFBLEVBQUksR0FBRUEsR0FBRSxVQUFVLGFBQVcsU0FBU0QsSUFBRTtBQUFDLFdBQU8sV0FBU0EsT0FBSUEsS0FBRSxDQUFDLElBQUcsS0FBSyxXQUFTLEVBQUUsRUFBRSxDQUFDLEdBQUUsS0FBSyxRQUFRLEdBQUVBLEVBQUMsR0FBRTtBQUFBLEVBQUksR0FBRUMsR0FBRSxVQUFVLE9BQUssU0FBU0YsSUFBRTtBQUFDLFdBQU8sS0FBSyxJQUFJLElBQUUsRUFBRUEsRUFBQyxHQUFFLEtBQUssaUJBQWlCO0FBQUEsRUFBQyxHQUFFRSxHQUFFLFVBQVUsT0FBSyxTQUFTRixJQUFFO0FBQUMsV0FBTyxLQUFLLElBQUksSUFBRSxFQUFFQSxJQUFFLEdBQUUsR0FBRyxHQUFFLEtBQUssaUJBQWlCO0FBQUEsRUFBQyxHQUFFRSxHQUFFLFVBQVUsT0FBSyxTQUFTRixJQUFFO0FBQUMsV0FBTyxLQUFLLElBQUksSUFBRSxFQUFFQSxJQUFFLEdBQUUsR0FBRyxHQUFFLEtBQUssaUJBQWlCO0FBQUEsRUFBQyxHQUFFRSxHQUFFLFVBQVUsT0FBSyxTQUFTRixJQUFFO0FBQUMsV0FBTyxLQUFLLElBQUksSUFBRSxFQUFFQSxJQUFFLEdBQUUsR0FBRyxHQUFFLEtBQUssaUJBQWlCO0FBQUEsRUFBQyxHQUFFRSxHQUFFLFVBQVUsT0FBSyxTQUFTRixJQUFFO0FBQUMsV0FBTyxLQUFLLElBQUksSUFBRSxFQUFFQSxJQUFFLEdBQUUsR0FBRyxHQUFFLEtBQUssaUJBQWlCO0FBQUEsRUFBQyxHQUFFRSxHQUFFLFVBQVUsT0FBSyxTQUFTRixJQUFFO0FBQUMsV0FBTyxLQUFLLElBQUksSUFBRSxFQUFFQSxJQUFFLEdBQUUsR0FBRyxHQUFFLEtBQUssaUJBQWlCO0FBQUEsRUFBQyxHQUFFRSxHQUFFLFVBQVUsT0FBSyxTQUFTRixJQUFFO0FBQUMsV0FBTyxLQUFLLElBQUksSUFBRSxLQUFLLElBQUksSUFBRSxFQUFFQSxJQUFFLEdBQUUsQ0FBQyxHQUFFO0FBQUEsRUFBSSxHQUFFRSxHQUFFLFVBQVUsT0FBSyxTQUFTRixJQUFFO0FBQUMsV0FBTyxLQUFLLEtBQUssSUFBRSxFQUFFQSxJQUFFLEdBQUUsR0FBRyxHQUFFLEtBQUssZ0JBQWdCO0FBQUEsRUFBQyxHQUFFRSxHQUFFLFVBQVUsT0FBSyxTQUFTRixJQUFFO0FBQUMsV0FBTyxLQUFLLEtBQUssSUFBRSxFQUFFQSxJQUFFLEdBQUUsR0FBRyxHQUFFLEtBQUssZ0JBQWdCO0FBQUEsRUFBQyxHQUFFRSxHQUFFLFVBQVUsT0FBSyxTQUFTRixJQUFFO0FBQUMsV0FBTyxLQUFLLEtBQUssSUFBRSxFQUFFQSxJQUFFLEdBQUUsR0FBRyxHQUFFLEtBQUssZ0JBQWdCO0FBQUEsRUFBQyxHQUFFRSxHQUFFLFVBQVUsT0FBSyxTQUFTRixJQUFFO0FBQUMsV0FBTyxLQUFLLEtBQUssSUFBRSxFQUFFQSxJQUFFLEdBQUUsR0FBRyxHQUFFLEtBQUssZ0JBQWdCO0FBQUEsRUFBQyxHQUFFLE9BQU8sZUFBZUUsR0FBRSxXQUFVLFdBQVUsRUFBQyxLQUFJLFdBQVU7QUFBQyxXQUFPLEtBQUs7QUFBQSxFQUFRLEdBQUUsWUFBVyxPQUFHLGNBQWEsS0FBRSxDQUFDLEdBQUUsT0FBTyxlQUFlQSxHQUFFLFdBQVUsS0FBSSxFQUFDLEtBQUksV0FBVTtBQUFDLFdBQU8sRUFBRSxLQUFLLElBQUksR0FBRSxLQUFLLFFBQVEsUUFBUTtBQUFBLEVBQUMsR0FBRSxZQUFXLE9BQUcsY0FBYSxLQUFFLENBQUMsR0FBRSxPQUFPLGVBQWVBLEdBQUUsV0FBVSxLQUFJLEVBQUMsS0FBSSxXQUFVO0FBQUMsV0FBTyxFQUFFLEtBQUssSUFBSSxHQUFFLEtBQUssUUFBUSxRQUFRO0FBQUEsRUFBQyxHQUFFLFlBQVcsT0FBRyxjQUFhLEtBQUUsQ0FBQyxHQUFFLE9BQU8sZUFBZUEsR0FBRSxXQUFVLEtBQUksRUFBQyxLQUFJLFdBQVU7QUFBQyxXQUFPLEVBQUUsS0FBSyxJQUFJLEdBQUUsS0FBSyxRQUFRLFFBQVE7QUFBQSxFQUFDLEdBQUUsWUFBVyxPQUFHLGNBQWEsS0FBRSxDQUFDLEdBQUUsT0FBTyxlQUFlQSxHQUFFLFdBQVUsS0FBSSxFQUFDLEtBQUksV0FBVTtBQUFDLFdBQU8sRUFBRSxLQUFLLElBQUksR0FBRSxLQUFLLFFBQVEsUUFBUTtBQUFBLEVBQUMsR0FBRSxZQUFXLE9BQUcsY0FBYSxLQUFFLENBQUMsR0FBRSxPQUFPLGVBQWVBLEdBQUUsV0FBVSxLQUFJLEVBQUMsS0FBSSxXQUFVO0FBQUMsV0FBTyxFQUFFLEtBQUssSUFBSSxHQUFFLEtBQUssUUFBUSxRQUFRO0FBQUEsRUFBQyxHQUFFLFlBQVcsT0FBRyxjQUFhLEtBQUUsQ0FBQyxHQUFFLE9BQU8sZUFBZUEsR0FBRSxXQUFVLEtBQUksRUFBQyxLQUFJLFdBQVU7QUFBQyxXQUFPLEVBQUUsS0FBSyxJQUFJLEdBQUUsS0FBSyxRQUFRLFFBQVE7QUFBQSxFQUFDLEdBQUUsWUFBVyxPQUFHLGNBQWEsS0FBRSxDQUFDLEdBQUUsT0FBTyxlQUFlQSxHQUFFLFdBQVUsS0FBSSxFQUFDLEtBQUksV0FBVTtBQUFDLFdBQU8sRUFBRSxLQUFLLElBQUksR0FBRSxLQUFLLFFBQVEsUUFBUTtBQUFBLEVBQUMsR0FBRSxZQUFXLE9BQUcsY0FBYSxLQUFFLENBQUMsR0FBRSxPQUFPLGVBQWVBLEdBQUUsV0FBVSxLQUFJLEVBQUMsS0FBSSxXQUFVO0FBQUMsV0FBTyxFQUFFLEtBQUssS0FBSyxHQUFFLEtBQUssUUFBUSxRQUFRO0FBQUEsRUFBQyxHQUFFLFlBQVcsT0FBRyxjQUFhLEtBQUUsQ0FBQyxHQUFFLE9BQU8sZUFBZUEsR0FBRSxXQUFVLEtBQUksRUFBQyxLQUFJLFdBQVU7QUFBQyxXQUFPLEVBQUUsS0FBSyxLQUFLLEdBQUUsS0FBSyxRQUFRLFFBQVE7QUFBQSxFQUFDLEdBQUUsWUFBVyxPQUFHLGNBQWEsS0FBRSxDQUFDLEdBQUUsT0FBTyxlQUFlQSxHQUFFLFdBQVUsS0FBSSxFQUFDLEtBQUksV0FBVTtBQUFDLFdBQU8sRUFBRSxLQUFLLEtBQUssR0FBRSxLQUFLLFFBQVEsUUFBUTtBQUFBLEVBQUMsR0FBRSxZQUFXLE9BQUcsY0FBYSxLQUFFLENBQUMsR0FBRSxPQUFPLGVBQWVBLEdBQUUsV0FBVSxLQUFJLEVBQUMsS0FBSSxXQUFVO0FBQUMsV0FBTyxFQUFFLEtBQUssS0FBSyxHQUFFLEtBQUssUUFBUSxRQUFRO0FBQUEsRUFBQyxHQUFFLFlBQVcsT0FBRyxjQUFhLEtBQUUsQ0FBQyxHQUFFLE9BQU8sZUFBZUEsR0FBRSxXQUFVLGFBQVksRUFBQyxLQUFJLFdBQVU7QUFBQyxXQUFPLEdBQUcsSUFBSSxLQUFLLEdBQUc7QUFBQSxFQUFDLEdBQUUsWUFBVyxPQUFHLGNBQWEsS0FBRSxDQUFDLEdBQUUsT0FBTyxlQUFlQSxHQUFFLFdBQVUsY0FBYSxFQUFDLEtBQUksV0FBVTtBQUFDLFdBQU8sR0FBRyxLQUFLLEtBQUssR0FBRztBQUFBLEVBQUMsR0FBRSxZQUFXLE9BQUcsY0FBYSxLQUFFLENBQUMsR0FBRSxPQUFPLGVBQWVBLEdBQUUsV0FBVSxhQUFZLEVBQUMsS0FBSSxXQUFVO0FBQUMsV0FBTSxFQUFDLEdBQUUsS0FBSyxHQUFFLEdBQUUsS0FBSyxHQUFFLEdBQUUsS0FBSyxFQUFDO0FBQUEsRUFBQyxHQUFFLFlBQVcsT0FBRyxjQUFhLEtBQUUsQ0FBQyxHQUFFLE9BQU8sZUFBZUEsR0FBRSxXQUFVLGNBQWEsRUFBQyxLQUFJLFdBQVU7QUFBQyxXQUFPLEVBQUUsRUFBRSxDQUFDLEdBQUUsS0FBSyxTQUFTLEdBQUUsRUFBQyxHQUFFLEtBQUssRUFBQyxDQUFDO0FBQUEsRUFBQyxHQUFFLFlBQVcsT0FBRyxjQUFhLEtBQUUsQ0FBQyxHQUFFLE9BQU8sZUFBZUEsR0FBRSxXQUFVLGFBQVksRUFBQyxLQUFJLFdBQVU7QUFBQyxXQUFNLEVBQUMsR0FBRSxLQUFLLEdBQUUsR0FBRSxLQUFLLEdBQUUsR0FBRSxLQUFLLEVBQUM7QUFBQSxFQUFDLEdBQUUsWUFBVyxPQUFHLGNBQWEsS0FBRSxDQUFDLEdBQUUsT0FBTyxlQUFlQSxHQUFFLFdBQVUsY0FBYSxFQUFDLEtBQUksV0FBVTtBQUFDLFdBQU8sRUFBRSxFQUFFLENBQUMsR0FBRSxLQUFLLFNBQVMsR0FBRSxFQUFDLEdBQUUsS0FBSyxFQUFDLENBQUM7QUFBQSxFQUFDLEdBQUUsWUFBVyxPQUFHLGNBQWEsS0FBRSxDQUFDLEdBQUUsT0FBTyxlQUFlQSxHQUFFLFdBQVUsY0FBYSxFQUFDLEtBQUksV0FBVTtBQUFDLFdBQU0sRUFBQyxHQUFFLEtBQUssR0FBRSxHQUFFLEtBQUssR0FBRSxHQUFFLEtBQUssR0FBRSxHQUFFLEtBQUssRUFBQztBQUFBLEVBQUMsR0FBRSxZQUFXLE9BQUcsY0FBYSxLQUFFLENBQUMsR0FBRSxPQUFPLGVBQWVBLEdBQUUsV0FBVSxlQUFjLEVBQUMsS0FBSSxXQUFVO0FBQUMsV0FBTyxFQUFFLEVBQUUsQ0FBQyxHQUFFLEtBQUssVUFBVSxHQUFFLEVBQUMsR0FBRSxLQUFLLEVBQUMsQ0FBQztBQUFBLEVBQUMsR0FBRSxZQUFXLE9BQUcsY0FBYSxLQUFFLENBQUMsR0FBRSxPQUFPLGVBQWVBLEdBQUUsV0FBVSxPQUFNLEVBQUMsS0FBSSxXQUFVO0FBQUMsV0FBTyxFQUFFLElBQUksRUFBQyxHQUFFLEtBQUssR0FBRSxHQUFFLEtBQUssR0FBRSxHQUFFLEtBQUssRUFBQyxDQUFDO0FBQUEsRUFBQyxHQUFFLFlBQVcsT0FBRyxjQUFhLEtBQUUsQ0FBQyxHQUFFLE9BQU8sZUFBZUEsR0FBRSxXQUFVLFFBQU8sRUFBQyxLQUFJLFdBQVU7QUFBQyxXQUFPLEVBQUUsSUFBSSxFQUFDLEdBQUUsS0FBSyxHQUFFLEdBQUUsS0FBSyxHQUFFLEdBQUUsS0FBSyxHQUFFLEdBQUUsTUFBSSxLQUFLLEVBQUMsQ0FBQztBQUFBLEVBQUMsR0FBRSxZQUFXLE9BQUcsY0FBYSxLQUFFLENBQUMsR0FBRSxPQUFPLGVBQWVBLEdBQUUsV0FBVSxPQUFNLEVBQUMsS0FBSSxXQUFVO0FBQUMsV0FBTyxFQUFFLElBQUksRUFBQyxHQUFFLEtBQUssR0FBRSxHQUFFLEtBQUssR0FBRSxHQUFFLEtBQUssRUFBQyxHQUFFLEtBQUssT0FBTztBQUFBLEVBQUMsR0FBRSxZQUFXLE9BQUcsY0FBYSxLQUFFLENBQUMsR0FBRSxPQUFPLGVBQWVBLEdBQUUsV0FBVSxRQUFPLEVBQUMsS0FBSSxXQUFVO0FBQUMsV0FBTyxFQUFFLElBQUksRUFBQyxHQUFFLEtBQUssR0FBRSxHQUFFLEtBQUssR0FBRSxHQUFFLEtBQUssR0FBRSxHQUFFLEtBQUssRUFBQyxHQUFFLEtBQUssT0FBTztBQUFBLEVBQUMsR0FBRSxZQUFXLE9BQUcsY0FBYSxLQUFFLENBQUMsR0FBRSxPQUFPLGVBQWVBLEdBQUUsV0FBVSxPQUFNLEVBQUMsS0FBSSxXQUFVO0FBQUMsV0FBTyxFQUFFLElBQUksRUFBQyxHQUFFLEtBQUssR0FBRSxHQUFFLEtBQUssR0FBRSxHQUFFLEtBQUssRUFBQyxHQUFFLEtBQUssT0FBTztBQUFBLEVBQUMsR0FBRSxZQUFXLE9BQUcsY0FBYSxLQUFFLENBQUMsR0FBRSxPQUFPLGVBQWVBLEdBQUUsV0FBVSxRQUFPLEVBQUMsS0FBSSxXQUFVO0FBQUMsV0FBTyxFQUFFLElBQUksRUFBQyxHQUFFLEtBQUssR0FBRSxHQUFFLEtBQUssR0FBRSxHQUFFLEtBQUssR0FBRSxHQUFFLEtBQUssRUFBQyxHQUFFLEtBQUssT0FBTztBQUFBLEVBQUMsR0FBRSxZQUFXLE9BQUcsY0FBYSxLQUFFLENBQUMsR0FBRSxPQUFPLGVBQWVBLEdBQUUsV0FBVSxRQUFPLEVBQUMsS0FBSSxXQUFVO0FBQUMsV0FBTyxFQUFFLEtBQUssRUFBQyxHQUFFLEtBQUssR0FBRSxHQUFFLEtBQUssR0FBRSxHQUFFLEtBQUssR0FBRSxHQUFFLEtBQUssRUFBQyxHQUFFLEtBQUssT0FBTztBQUFBLEVBQUMsR0FBRSxZQUFXLE9BQUcsY0FBYSxLQUFFLENBQUMsR0FBRSxPQUFPLGVBQWVBLEdBQUUsV0FBVSxTQUFRLEVBQUMsS0FBSSxXQUFVO0FBQUMsV0FBTyxFQUFFLEtBQUssRUFBQyxHQUFFLEtBQUssR0FBRSxHQUFFLEtBQUssR0FBRSxHQUFFLEtBQUssR0FBRSxHQUFFLEtBQUssR0FBRSxHQUFFLEtBQUssRUFBQyxHQUFFLEtBQUssT0FBTztBQUFBLEVBQUMsR0FBRSxZQUFXLE9BQUcsY0FBYSxLQUFFLENBQUMsR0FBRUEsR0FBRSxjQUFZLFNBQVNGLElBQUU7QUFBQyxRQUFJQyxLQUFFLEdBQUdELEVBQUM7QUFBRSxXQUFPLEdBQUdBLElBQUVDLElBQUUsR0FBRSxHQUFHLEdBQUc7QUFBQSxFQUFDLEdBQUVDLEdBQUUsUUFBTSxTQUFTRixJQUFFO0FBQUMsV0FBTyxFQUFFLElBQUlFLEdBQUUsWUFBWUYsRUFBQyxDQUFDO0FBQUEsRUFBQyxHQUFFRSxHQUFFLGVBQWEsU0FBU0YsSUFBRTtBQUFDLFFBQUlDLEtBQUUsR0FBR0QsRUFBQztBQUFFLFdBQU8sR0FBR0EsSUFBRUMsSUFBRSxHQUFFLEdBQUcsSUFBSTtBQUFBLEVBQUMsR0FBRUMsR0FBRSxTQUFPLFNBQVNGLElBQUU7QUFBQyxXQUFPLEVBQUUsSUFBSUUsR0FBRSxhQUFhRixFQUFDLENBQUM7QUFBQSxFQUFDLEdBQUVFLEdBQUUsY0FBWSxTQUFTRixJQUFFQyxJQUFFO0FBQUMsZUFBU0EsT0FBSUEsS0FBRSxDQUFDO0FBQUcsUUFBSUMsS0FBRSxHQUFHRixFQUFDO0FBQUUsV0FBTyxHQUFHQSxJQUFFRSxJQUFFRCxHQUFFLFVBQVMsR0FBRyxHQUFHO0FBQUEsRUFBQyxHQUFFQyxHQUFFLFFBQU0sU0FBU0YsSUFBRUMsSUFBRTtBQUFDLGVBQVNBLE9BQUlBLEtBQUUsQ0FBQztBQUFHLFFBQUlDLEtBQUUsR0FBR0YsRUFBQyxHQUFFRyxLQUFFLEVBQUVGLElBQUVELEVBQUMsR0FBRUksS0FBRSxHQUFHSixJQUFFRSxJQUFFLEdBQUUsR0FBRyxHQUFHO0FBQUUsV0FBTyxFQUFFLElBQUlFLElBQUVELEVBQUM7QUFBQSxFQUFDLEdBQUVELEdBQUUsZUFBYSxTQUFTRixJQUFFQyxJQUFFO0FBQUMsZUFBU0EsT0FBSUEsS0FBRSxDQUFDO0FBQUcsUUFBSUMsS0FBRSxHQUFHRixFQUFDO0FBQUUsV0FBTyxHQUFHQSxJQUFFRSxJQUFFRCxHQUFFLFVBQVMsR0FBRyxJQUFJO0FBQUEsRUFBQyxHQUFFQyxHQUFFLFNBQU8sU0FBU0YsSUFBRUMsSUFBRTtBQUFDLGVBQVNBLE9BQUlBLEtBQUUsQ0FBQztBQUFHLFFBQUlDLEtBQUUsR0FBR0YsRUFBQyxHQUFFRyxLQUFFLEVBQUVGLElBQUVELEVBQUMsR0FBRUksS0FBRSxHQUFHSixJQUFFRSxJQUFFLEdBQUUsR0FBRyxJQUFJO0FBQUUsV0FBTyxFQUFFLElBQUlFLElBQUVELEVBQUM7QUFBQSxFQUFDLEdBQUVELEdBQUUsY0FBWSxTQUFTRixJQUFFQyxJQUFFO0FBQUMsZUFBU0EsT0FBSUEsS0FBRSxDQUFDO0FBQUcsUUFBSUMsS0FBRSxHQUFHRixFQUFDO0FBQUUsV0FBTyxHQUFHQSxJQUFFRSxJQUFFRCxHQUFFLFVBQVMsR0FBRyxHQUFHO0FBQUEsRUFBQyxHQUFFQyxHQUFFLFFBQU0sU0FBU0YsSUFBRUMsSUFBRTtBQUFDLGVBQVNBLE9BQUlBLEtBQUUsQ0FBQztBQUFHLFFBQUlDLEtBQUUsR0FBR0YsRUFBQyxHQUFFRyxLQUFFLEVBQUVGLElBQUVELEVBQUMsR0FBRUksS0FBRSxHQUFHSixJQUFFRSxJQUFFLEdBQUUsR0FBRyxHQUFHO0FBQUUsV0FBTyxFQUFFLElBQUlFLElBQUVELEVBQUM7QUFBQSxFQUFDLEdBQUVELEdBQUUsZUFBYSxTQUFTRixJQUFFQyxJQUFFO0FBQUMsZUFBU0EsT0FBSUEsS0FBRSxDQUFDO0FBQUcsUUFBSUMsS0FBRSxHQUFHRixFQUFDO0FBQUUsV0FBTyxHQUFHQSxJQUFFRSxJQUFFRCxHQUFFLFVBQVMsR0FBRyxJQUFJO0FBQUEsRUFBQyxHQUFFQyxHQUFFLFNBQU8sU0FBU0YsSUFBRUMsSUFBRTtBQUFDLGVBQVNBLE9BQUlBLEtBQUUsQ0FBQztBQUFHLFFBQUlDLEtBQUUsR0FBR0YsRUFBQyxHQUFFRyxLQUFFLEVBQUVGLElBQUVELEVBQUMsR0FBRUksS0FBRSxHQUFHSixJQUFFRSxJQUFFLEdBQUUsR0FBRyxJQUFJO0FBQUUsV0FBTyxFQUFFLElBQUlFLElBQUVELEVBQUM7QUFBQSxFQUFDLEdBQUVELEdBQUUsZUFBYSxTQUFTRixJQUFFQyxJQUFFO0FBQUMsZUFBU0EsT0FBSUEsS0FBRSxDQUFDO0FBQUcsUUFBSUMsS0FBRSxHQUFHRixFQUFDO0FBQUUsV0FBTyxHQUFHQSxJQUFFRSxJQUFFRCxHQUFFLFVBQVMsR0FBRyxJQUFJO0FBQUEsRUFBQyxHQUFFQyxHQUFFLFNBQU8sU0FBU0YsSUFBRUMsSUFBRTtBQUFDLGVBQVNBLE9BQUlBLEtBQUUsQ0FBQztBQUFHLFFBQUlDLEtBQUUsR0FBR0YsRUFBQyxHQUFFRyxLQUFFLEVBQUVGLElBQUVELEVBQUMsR0FBRUksS0FBRSxHQUFHSixJQUFFRSxJQUFFLEdBQUUsR0FBRyxJQUFJO0FBQUUsV0FBTyxFQUFFLEtBQUtFLElBQUVELEVBQUM7QUFBQSxFQUFDLEdBQUVELEdBQUUsZ0JBQWMsU0FBU0YsSUFBRUMsSUFBRTtBQUFDLGVBQVNBLE9BQUlBLEtBQUUsQ0FBQztBQUFHLFFBQUlDLEtBQUUsR0FBR0YsRUFBQztBQUFFLFdBQU8sR0FBR0EsSUFBRUUsSUFBRUQsR0FBRSxVQUFTLEdBQUcsS0FBSztBQUFBLEVBQUMsR0FBRUMsR0FBRSxVQUFRLFNBQVNGLElBQUVDLElBQUU7QUFBQyxlQUFTQSxPQUFJQSxLQUFFLENBQUM7QUFBRyxRQUFJQyxLQUFFLEdBQUdGLEVBQUMsR0FBRUcsS0FBRSxFQUFFRixJQUFFRCxFQUFDLEdBQUVJLEtBQUUsR0FBR0osSUFBRUUsSUFBRSxHQUFFLEdBQUcsS0FBSztBQUFFLFdBQU8sRUFBRSxLQUFLRSxJQUFFRCxFQUFDO0FBQUEsRUFBQyxHQUFFRCxHQUFFLG9CQUFrQixTQUFTRixJQUFFQyxJQUFFQyxJQUFFO0FBQUMsV0FBTyxXQUFTQSxPQUFJQSxLQUFFLElBQUcsR0FBR0YsSUFBRUMsSUFBRUMsSUFBRSxHQUFFLEdBQUcsR0FBRztBQUFBLEVBQUMsR0FBRUEsR0FBRSxjQUFZLFNBQVNGLElBQUVDLElBQUVFLElBQUU7QUFBQyxXQUFPLFdBQVNBLE9BQUlBLEtBQUUsSUFBR0QsR0FBRSxrQkFBa0JGLElBQUVDLElBQUVFLEVBQUMsRUFBRSxJQUFLLFNBQVNILElBQUU7QUFBQyxhQUFPLEVBQUUsSUFBSUEsRUFBQztBQUFBLElBQUMsQ0FBRTtBQUFBLEVBQUMsR0FBRUUsR0FBRSxxQkFBbUIsU0FBU0YsSUFBRUMsSUFBRUMsSUFBRTtBQUFDLFdBQU8sV0FBU0EsT0FBSUEsS0FBRSxJQUFHLEdBQUdGLElBQUVDLElBQUVDLElBQUUsR0FBRSxHQUFHLElBQUk7QUFBQSxFQUFDLEdBQUVBLEdBQUUsZUFBYSxTQUFTRixJQUFFQyxJQUFFRSxJQUFFO0FBQUMsV0FBTyxXQUFTQSxPQUFJQSxLQUFFLElBQUdELEdBQUUsbUJBQW1CRixJQUFFQyxJQUFFRSxFQUFDLEVBQUUsSUFBSyxTQUFTSCxJQUFFO0FBQUMsYUFBTyxFQUFFLElBQUlBLEVBQUM7QUFBQSxJQUFDLENBQUU7QUFBQSxFQUFDLEdBQUVFLEdBQUUsb0JBQWtCLFNBQVNGLElBQUVDLElBQUVDLElBQUVDLElBQUU7QUFBQyxXQUFPLFdBQVNELE9BQUlBLEtBQUUsSUFBRyxXQUFTQyxPQUFJQSxLQUFFLENBQUMsSUFBRyxHQUFHSCxJQUFFQyxJQUFFQyxJQUFFQyxHQUFFLFVBQVMsR0FBRyxHQUFHO0FBQUEsRUFBQyxHQUFFRCxHQUFFLGNBQVksU0FBU0YsSUFBRUMsSUFBRUMsSUFBRUMsSUFBRTtBQUFDLFdBQU8sV0FBU0QsT0FBSUEsS0FBRSxJQUFHLFdBQVNDLE9BQUlBLEtBQUUsQ0FBQyxJQUFHLEdBQUdILElBQUVDLElBQUVDLElBQUUsR0FBRSxHQUFHLEdBQUcsRUFBRSxJQUFLLFNBQVNBLElBQUU7QUFBQyxhQUFPLEVBQUUsSUFBSUEsSUFBRSxFQUFFQyxJQUFFSCxJQUFFQyxFQUFDLENBQUM7QUFBQSxJQUFDLENBQUU7QUFBQSxFQUFDLEdBQUVDLEdBQUUscUJBQW1CLFNBQVNGLElBQUVDLElBQUVDLElBQUVDLElBQUU7QUFBQyxXQUFPLFdBQVNELE9BQUlBLEtBQUUsSUFBRyxXQUFTQyxPQUFJQSxLQUFFLENBQUMsSUFBRyxHQUFHSCxJQUFFQyxJQUFFQyxJQUFFQyxHQUFFLFVBQVMsR0FBRyxJQUFJO0FBQUEsRUFBQyxHQUFFRCxHQUFFLGVBQWEsU0FBU0YsSUFBRUMsSUFBRUMsSUFBRUMsSUFBRTtBQUFDLFdBQU8sV0FBU0QsT0FBSUEsS0FBRSxJQUFHLFdBQVNDLE9BQUlBLEtBQUUsQ0FBQyxJQUFHLEdBQUdILElBQUVDLElBQUVDLElBQUUsR0FBRSxHQUFHLElBQUksRUFBRSxJQUFLLFNBQVNBLElBQUU7QUFBQyxhQUFPLEVBQUUsSUFBSUEsSUFBRSxFQUFFQyxJQUFFSCxJQUFFQyxFQUFDLENBQUM7QUFBQSxJQUFDLENBQUU7QUFBQSxFQUFDLEdBQUVDLEdBQUUsb0JBQWtCLFNBQVNGLElBQUVDLElBQUVDLElBQUVDLElBQUU7QUFBQyxXQUFPLFdBQVNELE9BQUlBLEtBQUUsSUFBRyxXQUFTQyxPQUFJQSxLQUFFLENBQUMsSUFBRyxHQUFHSCxJQUFFQyxJQUFFQyxJQUFFQyxHQUFFLFVBQVMsR0FBRyxHQUFHO0FBQUEsRUFBQyxHQUFFRCxHQUFFLGNBQVksU0FBU0YsSUFBRUMsSUFBRUMsSUFBRUMsSUFBRTtBQUFDLGVBQVNELE9BQUlBLEtBQUUsSUFBRyxXQUFTQyxPQUFJQSxLQUFFLENBQUM7QUFBRyxRQUFJQyxLQUFFLEVBQUVELElBQUVILElBQUVDLEVBQUM7QUFBRSxXQUFPLEdBQUdELElBQUVDLElBQUVDLElBQUUsR0FBRSxHQUFHLEdBQUcsRUFBRSxJQUFLLFNBQVNGLElBQUU7QUFBQyxhQUFPLEVBQUUsSUFBSUEsSUFBRUksRUFBQztBQUFBLElBQUMsQ0FBRTtBQUFBLEVBQUMsR0FBRUYsR0FBRSxxQkFBbUIsU0FBU0YsSUFBRUMsSUFBRUMsSUFBRUMsSUFBRTtBQUFDLFdBQU8sV0FBU0QsT0FBSUEsS0FBRSxJQUFHLFdBQVNDLE9BQUlBLEtBQUUsQ0FBQyxJQUFHLEdBQUdILElBQUVDLElBQUVDLElBQUVDLEdBQUUsVUFBUyxHQUFHLElBQUk7QUFBQSxFQUFDLEdBQUVELEdBQUUsZUFBYSxTQUFTRixJQUFFQyxJQUFFQyxJQUFFQyxJQUFFO0FBQUMsZUFBU0QsT0FBSUEsS0FBRSxJQUFHLFdBQVNDLE9BQUlBLEtBQUUsQ0FBQztBQUFHLFFBQUlDLEtBQUUsRUFBRUQsSUFBRUgsSUFBRUMsRUFBQztBQUFFLFdBQU8sR0FBR0QsSUFBRUMsSUFBRUMsSUFBRSxHQUFFLEdBQUcsSUFBSSxFQUFFLElBQUssU0FBU0YsSUFBRTtBQUFDLGFBQU8sRUFBRSxJQUFJQSxJQUFFSSxFQUFDO0FBQUEsSUFBQyxDQUFFO0FBQUEsRUFBQyxHQUFFRixHQUFFLGtCQUFnQixTQUFTRixJQUFFQyxJQUFFO0FBQUMsV0FBTyxXQUFTQSxPQUFJQSxLQUFFLEVBQUUsV0FBVSxHQUFHLElBQUlELElBQUVDLElBQUUsS0FBRTtBQUFBLEVBQUMsR0FBRUMsR0FBRSxZQUFVLFNBQVNGLElBQUVDLElBQUU7QUFBQyxXQUFPLFdBQVNBLE9BQUlBLEtBQUUsRUFBRSxXQUFVLEdBQUcsSUFBSUQsSUFBRUMsSUFBRSxJQUFFO0FBQUEsRUFBQyxHQUFFQyxHQUFFLG1CQUFpQixTQUFTRixJQUFFQyxJQUFFO0FBQUMsV0FBTyxXQUFTQSxPQUFJQSxLQUFFLEVBQUUsV0FBVSxHQUFHLEtBQUtELElBQUVDLElBQUUsS0FBRTtBQUFBLEVBQUMsR0FBRUMsR0FBRSxhQUFXLFNBQVNGLElBQUVDLElBQUU7QUFBQyxXQUFPLFdBQVNBLE9BQUlBLEtBQUUsRUFBRSxXQUFVLEdBQUcsS0FBS0QsSUFBRUMsSUFBRSxJQUFFO0FBQUEsRUFBQyxHQUFFQyxHQUFFLGtCQUFnQixTQUFTRixJQUFFRSxJQUFFQyxJQUFFO0FBQUMsV0FBTyxXQUFTRCxPQUFJQSxLQUFFLEVBQUUsV0FBVSxXQUFTQyxPQUFJQSxLQUFFLENBQUMsSUFBRyxHQUFHLElBQUlILElBQUVFLElBQUUsT0FBRyxFQUFFLE1BQU0sUUFBTyxFQUFFLENBQUNDLEVBQUMsR0FBRUgsSUFBRSxLQUFFLENBQUMsQ0FBQztBQUFBLEVBQUMsR0FBRUUsR0FBRSxZQUFVLFNBQVNGLElBQUVFLElBQUVDLElBQUU7QUFBQyxXQUFPLFdBQVNELE9BQUlBLEtBQUUsRUFBRSxXQUFVLFdBQVNDLE9BQUlBLEtBQUUsQ0FBQyxJQUFHLEdBQUcsSUFBSUgsSUFBRUUsSUFBRSxNQUFHLEVBQUUsTUFBTSxRQUFPLEVBQUUsQ0FBQ0MsRUFBQyxHQUFFSCxJQUFFLEtBQUUsQ0FBQyxDQUFDO0FBQUEsRUFBQyxHQUFFRSxHQUFFLG1CQUFpQixTQUFTRixJQUFFRSxJQUFFQyxJQUFFO0FBQUMsV0FBTyxXQUFTRCxPQUFJQSxLQUFFLEVBQUUsV0FBVSxXQUFTQyxPQUFJQSxLQUFFLENBQUMsSUFBRyxHQUFHLEtBQUtILElBQUVFLElBQUUsT0FBRyxFQUFFLE1BQU0sUUFBTyxFQUFFLENBQUNDLEVBQUMsR0FBRUgsSUFBRSxLQUFFLENBQUMsQ0FBQztBQUFBLEVBQUMsR0FBRUUsR0FBRSxhQUFXLFNBQVNGLElBQUVFLElBQUVDLElBQUU7QUFBQyxXQUFPLFdBQVNELE9BQUlBLEtBQUUsRUFBRSxXQUFVLFdBQVNDLE9BQUlBLEtBQUUsQ0FBQyxJQUFHLEdBQUcsS0FBS0gsSUFBRUUsSUFBRSxNQUFHLEVBQUUsTUFBTSxRQUFPLEVBQUUsQ0FBQ0MsRUFBQyxHQUFFSCxJQUFFLEtBQUUsQ0FBQyxDQUFDO0FBQUEsRUFBQyxHQUFFRSxHQUFFLGtCQUFnQixTQUFTRixJQUFFRSxJQUFFQyxJQUFFO0FBQUMsV0FBTyxXQUFTRCxPQUFJQSxLQUFFLEVBQUUsV0FBVSxXQUFTQyxPQUFJQSxLQUFFLENBQUMsSUFBRyxHQUFHLElBQUlILElBQUVFLElBQUUsT0FBRyxFQUFFLE1BQU0sUUFBTyxFQUFFLENBQUNDLEVBQUMsR0FBRUgsSUFBRSxLQUFFLENBQUMsQ0FBQztBQUFBLEVBQUMsR0FBRUUsR0FBRSxZQUFVLFNBQVNGLElBQUVFLElBQUVDLElBQUU7QUFBQyxXQUFPLFdBQVNELE9BQUlBLEtBQUUsRUFBRSxXQUFVLFdBQVNDLE9BQUlBLEtBQUUsQ0FBQyxJQUFHLEdBQUcsSUFBSUgsSUFBRUUsSUFBRSxNQUFHLEVBQUUsTUFBTSxRQUFPLEVBQUUsQ0FBQ0MsRUFBQyxHQUFFSCxJQUFFLEtBQUUsQ0FBQyxDQUFDO0FBQUEsRUFBQyxHQUFFRSxHQUFFLG1CQUFpQixTQUFTRixJQUFFRSxJQUFFQyxJQUFFO0FBQUMsV0FBTyxXQUFTRCxPQUFJQSxLQUFFLEVBQUUsV0FBVSxXQUFTQyxPQUFJQSxLQUFFLENBQUMsSUFBRyxHQUFHLEtBQUtILElBQUVFLElBQUUsT0FBRyxFQUFFLE1BQU0sUUFBTyxFQUFFLENBQUNDLEVBQUMsR0FBRUgsSUFBRSxLQUFFLENBQUMsQ0FBQztBQUFBLEVBQUMsR0FBRUUsR0FBRSxhQUFXLFNBQVNGLElBQUVFLElBQUVDLElBQUU7QUFBQyxXQUFPLFdBQVNELE9BQUlBLEtBQUUsRUFBRSxXQUFVLFdBQVNDLE9BQUlBLEtBQUUsQ0FBQyxJQUFHLEdBQUcsS0FBS0gsSUFBRUUsSUFBRSxNQUFHLEVBQUUsTUFBTSxRQUFPLEVBQUUsQ0FBQ0MsRUFBQyxHQUFFSCxJQUFFLEtBQUUsQ0FBQyxDQUFDO0FBQUEsRUFBQyxHQUFFRSxHQUFFLFlBQVUsU0FBU0YsSUFBRUMsSUFBRUMsSUFBRTtBQUFDLFdBQU8sV0FBU0EsT0FBSUEsS0FBRSxDQUFDLElBQUcsR0FBR0YsSUFBRUMsSUFBRSxNQUFHLEVBQUVDLElBQUVGLEVBQUMsQ0FBQztBQUFBLEVBQUMsR0FBRUUsR0FBRSxXQUFTLFNBQVNGLElBQUVDLElBQUVDLElBQUU7QUFBQyxXQUFPLFdBQVNBLE9BQUlBLEtBQUUsQ0FBQyxJQUFHLEdBQUdGLElBQUVDLElBQUUsT0FBRyxFQUFFQyxJQUFFRixFQUFDLENBQUM7QUFBQSxFQUFDLEdBQUVFLEdBQUUsYUFBVyxTQUFTRixJQUFFQyxJQUFFQyxJQUFFRyxJQUFFO0FBQUMsV0FBTyxXQUFTSixPQUFJQSxLQUFFLEVBQUUsZ0JBQWUsV0FBU0MsT0FBSUEsS0FBRSxFQUFFLFdBQVUsV0FBU0csT0FBSUEsS0FBRSxDQUFDLElBQUcsU0FBU0wsSUFBRUMsSUFBRUMsSUFBRUUsSUFBRTtBQUFDLFVBQUlDO0FBQUUsY0FBT0EsS0FBRSxDQUFDLEdBQUVBLEdBQUUsRUFBRSxTQUFTLElBQUUsR0FBRyxhQUFhSixJQUFFLElBQUdDLElBQUVFLEVBQUMsR0FBRUMsR0FBRSxFQUFFLGFBQWEsSUFBRSxHQUFHLGFBQWFKLElBQUUsSUFBR0MsSUFBRUUsRUFBQyxHQUFFQyxHQUFFLEVBQUUsbUJBQW1CLElBQUUsR0FBRyxhQUFhSixJQUFFLElBQUdDLElBQUVFLEVBQUMsR0FBRUMsR0FBRSxFQUFFLE9BQU8sSUFBRSxHQUFHLGFBQWFKLElBQUUsSUFBR0MsSUFBRUUsRUFBQyxHQUFFQyxHQUFFLEVBQUUsUUFBUSxJQUFFLEdBQUcsYUFBYUosSUFBRSxJQUFHQyxJQUFFRSxFQUFDLEdBQUVDLEdBQUUsRUFBRSxNQUFNLElBQUUsR0FBRyxhQUFhSixJQUFFLElBQUdDLElBQUVFLEVBQUMsR0FBRUMsSUFBR0wsRUFBQztBQUFBLElBQUMsRUFBRUMsSUFBRUQsSUFBRUUsSUFBRSxFQUFFRyxJQUFFTCxFQUFDLENBQUM7QUFBQSxFQUFDLEdBQUVFO0FBQUMsRUFBRTs7O0FET3ZtNUIsSUFBTSxrQkFBMEM7QUFBQSxFQUMvQyxRQUFRO0FBQUEsRUFDUixtQkFBbUI7QUFBQSxFQUNuQixVQUFVO0FBQ1g7QUFFTyxJQUFNLGNBQU4sY0FBMEIsaUNBQWlCO0FBQUEsRUFLakQsWUFBWSxLQUFVLFFBQTBCO0FBQy9DLFVBQU0sS0FBSyxNQUFNO0FBQ2pCLFNBQUssU0FBUztBQUNkLFNBQUssU0FBUyxDQUFDO0FBQ2YsU0FBSyx3QkFBd0IsQ0FBQztBQUFBLEVBQy9CO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFLQSxVQUFVO0FBQ1QsVUFBTSxFQUFDLFlBQVcsSUFBSTtBQUN0QixnQkFBWSxNQUFNO0FBQ2xCLGdCQUFZLFNBQVMsTUFBTSxFQUFDLE1BQU0sdUNBQXNDLENBQUM7QUFFekUsU0FBSyx3QkFBd0I7QUFBQSxNQUM1QixlQUFlLENBQUM7QUFBQSxNQUNoQixhQUFhLENBQUM7QUFBQSxNQUNkLHNCQUFzQixDQUFDO0FBQUEsTUFDdkIsdUJBQXVCLENBQUM7QUFBQSxNQUN4Qiw2QkFBNkIsQ0FBQztBQUFBLE1BQzlCLGdDQUFnQyxDQUFDO0FBQUEsTUFDakMsd0JBQXdCLENBQUM7QUFBQSxNQUN6Qix3QkFBd0IsQ0FBQztBQUFBLElBQzFCO0FBSUEsUUFBSSxnQkFBZ0MsV0FBVyxNQUFJO0FBQUEsSUFBQyxDQUFDO0FBRXJELFFBQUksd0JBQVEsV0FBVyxFQUNyQixRQUFRLG1CQUFtQixFQUMzQixRQUFRLG9RQUFvUSxFQUM1USxRQUFRLENBQUFtQyxVQUFRQSxNQUNmLGVBQWUsZ0NBQWdDLEVBQy9DLFNBQVMsS0FBSyxPQUFPLFNBQVMsa0JBQWtCLEVBQ2hELFNBQVMsQ0FBQyxVQUFVO0FBQ3BCLFdBQUssT0FBTyxTQUFTLHFCQUFxQjtBQUMxQyxPQUFDLFlBQVk7QUFBQyxjQUFNLEtBQUssT0FBTyxhQUFhO0FBQUEsTUFBRSxHQUFHO0FBQ2xELG1CQUFhLGFBQWE7QUFDMUIsc0JBQWdCLFdBQVcsTUFBSSxLQUFLLE9BQU8sa0JBQWtCLEdBQUUsR0FBSTtBQUFBLElBQ3BFLENBQUMsQ0FBQztBQUNKLFFBQUksaUJBQWlDLFdBQVcsTUFBSTtBQUFBLElBQUMsQ0FBQztBQUV0RCxRQUFJLHdCQUFRLFdBQVcsRUFDckIsUUFBUSxtQkFBbUIsRUFDM0IsUUFBUSwrUEFBK1AsRUFDdlEsUUFBUSxDQUFBQSxVQUFRQSxNQUNmLGVBQWUsd0JBQXdCLEVBQ3ZDLFNBQVMsS0FBSyxPQUFPLFNBQVMsaUJBQWlCLEVBQy9DLFNBQVMsQ0FBQyxVQUFVO0FBQ3BCLFdBQUssT0FBTyxTQUFTLG9CQUFvQjtBQUN6QyxPQUFDLFlBQVk7QUFBQyxjQUFNLEtBQUssT0FBTyxhQUFhO0FBQUEsTUFBRSxHQUFHO0FBQ2xELG1CQUFhLGNBQWM7QUFDM0IsdUJBQWlCLFdBQVcsTUFBSSxLQUFLLE9BQU8sa0JBQWtCLEdBQUUsR0FBSTtBQUFBLElBQ3JFLENBQUMsQ0FBQztBQUNKLFFBQUksd0JBQVEsV0FBVyxFQUNyQixRQUFRLHNCQUFzQixFQUM5QixRQUFRLDREQUE0RCxFQUNwRSxVQUFVLFlBQVUsT0FDbkIsU0FBUyxLQUFLLE9BQU8sU0FBUyxhQUFhLEVBQzNDLFNBQVMsQ0FBQyxVQUFVO0FBQ3BCLFdBQUssT0FBTyxTQUFTLGdCQUFnQjtBQUNyQyxPQUFDLFlBQVk7QUFBQyxjQUFNLEtBQUssT0FBTyxhQUFhO0FBQUEsTUFBRSxHQUFHO0FBQUEsSUFDbkQsQ0FBQyxDQUFDO0FBR0osZ0JBQVksU0FBUyxNQUFNLEVBQUMsTUFBTSxpQkFBZ0IsQ0FBQztBQUVuRCxRQUFJO0FBQ0osUUFBSSx3QkFBUSxXQUFXLEVBQ3JCLFFBQVEsY0FBYyxFQUN0QixZQUFZLENBQUMsYUFBYTtBQUMxQixzQkFBZ0I7QUFDaEIsV0FBSyxlQUFlLGVBQWMsS0FBSyxPQUFPLFFBQVE7QUFDdEQsb0JBQWMsU0FBUyxDQUFDLFVBQVU7QUFDakMsYUFBSyxPQUFPLFNBQVMsZ0JBQWdCO0FBQ3JDLGFBQUssT0FBTyxTQUFTLGVBQWUsZ0JBQWdCLEtBQUssT0FBTyxTQUFTLE9BQU8sS0FBSyxPQUFPLFNBQVMsYUFBYSxDQUFDO0FBQ25ILGFBQUssUUFBUTtBQUNiLFNBQUMsWUFBWTtBQUFDLGdCQUFNLEtBQUssT0FBTyxhQUFhO0FBQUEsUUFBRSxHQUFHO0FBQUEsTUFDbkQsQ0FBQztBQUFBLElBQ0YsQ0FBQyxFQUNBLGVBQWUsWUFBVTtBQUN6QixhQUFPLFdBQVcsY0FBYztBQUNoQyxhQUFPLFFBQVEsTUFBTTtBQUNyQixhQUFPLFFBQVEsTUFBTTtBQUNwQixhQUFLLE9BQU8sU0FBUyxPQUFPLEtBQUssT0FBTyxTQUFTLGFBQWEsSUFBSSxnQkFBZ0IsS0FBSyxPQUFPLFNBQVMsWUFBWTtBQUNuSCxhQUFLLDRCQUE0Qiw4QkFBOEI7QUFDL0QsWUFBSSx1QkFBTyxHQUFHLEtBQUssT0FBTyxTQUFTLGFBQWEsNEJBQTRCO0FBQzVFLFNBQUMsWUFBWTtBQUFDLGdCQUFNLEtBQUssT0FBTyxhQUFhO0FBQUEsUUFBRSxHQUFHO0FBQUEsTUFDbkQsQ0FBQztBQUFBLElBQ0YsQ0FBQyxFQUNBLGVBQWUsWUFBVTtBQUN6QixhQUFPLFdBQVcsY0FBYztBQUNoQyxhQUFPLFFBQVEsT0FBTztBQUN0QixhQUFPLFFBQVEsTUFBTTtBQUNwQixZQUFJLEtBQUssT0FBTyxTQUFTLGNBQWMsS0FBSyxFQUFFLFdBQVc7QUFDeEQsY0FBSSx1QkFBTyxnQ0FBZ0M7QUFBQSxpQkFDbkMsS0FBSyxPQUFPLFNBQVMsaUJBQWlCLGlCQUFpQjtBQUMvRCxjQUFJLHVCQUFPLHNDQUFzQztBQUFBLGFBQzdDO0FBQ0osaUJBQU8sS0FBSyxPQUFPLFNBQVMsT0FBTyxLQUFLLE9BQU8sU0FBUyxhQUFhO0FBQ3JFLGNBQUksdUJBQU8sR0FBRyxLQUFLLE9BQU8sU0FBUyxhQUFhLDhCQUE4QjtBQUM5RSxlQUFLLE9BQU8sU0FBUyxnQkFBZ0I7QUFDckMsZUFBSyxPQUFPLFNBQVMsZUFBZSxnQkFBZ0IsS0FBSyxPQUFPLFNBQVMsT0FBTyxLQUFLLE9BQU8sU0FBUyxhQUFhLENBQUM7QUFDbkgsZUFBSyxlQUFlLGVBQWMsS0FBSyxPQUFPLFFBQVE7QUFDdEQsZUFBSyxRQUFRO0FBQ2IsV0FBQyxZQUFZO0FBQUMsa0JBQU0sS0FBSyxPQUFPLGFBQWE7QUFBQSxVQUFFLEdBQUc7QUFBQSxRQUNuRDtBQUFBLE1BQ0QsQ0FBQztBQUFBLElBQ0YsQ0FBQztBQUNGLFFBQUk7QUFDSixRQUFJO0FBQ0osU0FBSyxPQUFPLFNBQVMsV0FBVztBQUNoQyxRQUFJLHdCQUFRLFdBQVcsRUFDckIsUUFBUSxlQUFlLEVBQ3ZCLFFBQVEsK0NBQStDLEVBQ3ZELFFBQVEsQ0FBQUEsVUFBUTtBQUFDLHFCQUFlQSxNQUMvQixlQUFlLGdCQUFnQixFQUMvQixTQUFTLEtBQUssT0FBTyxTQUFTLFFBQVEsRUFDdEMsU0FBUyxDQUFDLFVBQVU7QUFDcEIsYUFBSyxPQUFPLFNBQVMsV0FBVztBQUFBLE1BQ2pDLENBQUM7QUFBQSxJQUNGLENBQUMsRUFDQSxlQUFlLFlBQVU7QUFDekIsYUFBTyxXQUFXLFlBQVk7QUFDOUIsYUFBTyxRQUFRLE1BQU07QUFDckIsYUFBTyxRQUFRLE1BQU07QUFDcEIsWUFBSSxLQUFLLE9BQU8sU0FBUyxTQUFTLEtBQUssRUFBRSxXQUFXO0FBQ25ELGNBQUksdUJBQU8sMkJBQTJCO0FBQUEsaUJBQzlCLEtBQUssT0FBTyxTQUFTLFlBQVksaUJBQWlCO0FBQzFELGNBQUksdUJBQU8sd0NBQXdDO0FBQUEsYUFDL0M7QUFDSixjQUFJLEtBQUssT0FBTyxTQUFTLFlBQVksS0FBSyxPQUFPLFNBQVMsUUFBUTtBQUNqRSxpQkFBSyxPQUFPLFNBQVMsT0FBTyxLQUFLLE9BQU8sU0FBUyxRQUFRLElBQUksZ0JBQWdCLEtBQUssT0FBTyxTQUFTLFlBQVk7QUFDOUcsZ0JBQUksdUJBQU8sR0FBRyxLQUFLLE9BQU8sU0FBUyxRQUFRLDhCQUE4QjtBQUFBLFVBQzFFLE9BQU87QUFDTixpQkFBSyxPQUFPLFNBQVMsT0FBTyxLQUFLLE9BQU8sU0FBUyxRQUFRLElBQUksZ0JBQWdCLEtBQUssT0FBTyxTQUFTLFlBQVk7QUFDOUcsZ0JBQUksdUJBQU8sR0FBRyxLQUFLLE9BQU8sU0FBUyxRQUFRLDRCQUE0QjtBQUFBLFVBQ3hFO0FBQ0EsZUFBSyxPQUFPLFNBQVMsZ0JBQWdCLEtBQUssT0FBTyxTQUFTO0FBQzFELGVBQUssZUFBZSxlQUFjLEtBQUssT0FBTyxRQUFRO0FBQ3RELGVBQUssNEJBQTRCLDhCQUE4QjtBQUMvRCxlQUFLLE9BQU8sU0FBUyxXQUFXO0FBQ2hDLHVCQUFhLFNBQVMsRUFBRTtBQUN4QiwwQkFBZ0IsU0FBUyxLQUFLO0FBQzlCLFdBQUMsWUFBWTtBQUFDLGtCQUFNLEtBQUssT0FBTyxhQUFhO0FBQUEsVUFBRSxHQUFHO0FBQUEsUUFDbkQ7QUFBQSxNQUNELENBQUM7QUFBQSxJQUNGLENBQUM7QUFFRixnQkFBWSxTQUFTLE1BQU0sRUFBQyxNQUFNLHVCQUFzQixDQUFDO0FBQ3pELFFBQUksd0JBQVEsV0FBVyxFQUNyQixRQUFRLDZCQUE2QixFQUNyQyxLQUFLLENBQUMsWUFBWTtBQUFDLFdBQUs7QUFBQSxRQUN4QixLQUFLO0FBQUEsUUFBTztBQUFBLFFBQVk7QUFBQSxRQUN4QjtBQUFBLFFBQ0EsQ0FBQyx5QkFBaUQscUJBQXFCLGVBQWUsQ0FBQyxFQUFFLFVBQVU7QUFBQSxRQUNuRyxDQUFDLHNCQUE4QyxlQUF1QjtBQUFDLCtCQUFxQixlQUFlLENBQUMsRUFBRSxVQUFVLG1CQUFtQjtBQUFBLFFBQVc7QUFBQSxNQUN2SjtBQUFBLElBQUUsQ0FBQztBQUNKLFFBQUksd0JBQVEsV0FBVyxFQUNyQixRQUFRLHVCQUF1QixFQUMvQixLQUFLLENBQUMsWUFBWTtBQUFDLFdBQUs7QUFBQSxRQUN4QixLQUFLO0FBQUEsUUFBTztBQUFBLFFBQVk7QUFBQSxRQUN4QjtBQUFBLFFBQ0EsQ0FBQyx5QkFBaUQscUJBQXFCLGVBQWUsQ0FBQyxFQUFFLFVBQVU7QUFBQSxRQUNuRyxDQUFDLHNCQUE4QyxlQUF1QjtBQUFDLCtCQUFxQixlQUFlLENBQUMsRUFBRSxVQUFVLGFBQWE7QUFBQSxRQUFXO0FBQUEsTUFDako7QUFBQSxJQUFFLENBQUM7QUFDSixRQUFJLHdCQUFRLFdBQVcsRUFDckIsUUFBUSx3QkFBd0IsRUFDaEMsUUFBUSxnREFBZ0QsRUFDeEQsVUFBVSxZQUFVLE9BQ25CLFNBQVMsS0FBSyxPQUFPLFNBQVMsYUFBYSxTQUFTLFVBQVUsV0FBVyxFQUN6RSxTQUFTLENBQUMsVUFBVTtBQUNwQixXQUFLLE9BQU8sU0FBUyxhQUFhLFNBQVMsVUFBVSxjQUFjO0FBQ25FLFVBQUksQ0FBQztBQUNKLDhCQUFzQixTQUFTLEtBQUs7QUFDckMsV0FBSyxzQkFBc0IsV0FBVyxFQUFFLFFBQVEsZUFBYTtBQUFDLGtCQUFVLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFBRSxDQUFDO0FBQzdGLE9BQUMsWUFBWTtBQUFDLGNBQU0sS0FBSyxPQUFPLGFBQWE7QUFBQSxNQUFFLEdBQUc7QUFDbEQsV0FBSyxPQUFPLGtCQUFrQjtBQUFBLElBQy9CLENBQUMsQ0FBQztBQUNKLFFBQUksd0JBQVEsV0FBVyxFQUNyQixRQUFRLHFCQUFxQixFQUM3QixRQUFRLHlEQUF5RCxFQUNqRSxLQUFLLENBQUMsWUFBWTtBQUNsQixVQUFJO0FBQ0osY0FBUSxVQUFVLENBQUMsV0FBVztBQUFDLDJCQUFtQixPQUNoRCxVQUFVLEdBQUUsSUFBRyxDQUFDLEVBQ2hCLFNBQVMsS0FBSyxPQUFPLFNBQVMsYUFBYSxTQUFTLFVBQVUsU0FBUyxFQUN2RSxrQkFBa0IsRUFDbEIsU0FBUyxDQUFDLFVBQVU7QUFDcEIsZUFBSyxPQUFPLFNBQVMsYUFBYSxTQUFTLFVBQVUsWUFBWTtBQUNqRSxXQUFDLFlBQVk7QUFBQyxrQkFBTSxLQUFLLE9BQU8sYUFBYTtBQUFBLFVBQUUsR0FBRztBQUFBLFFBQ25ELENBQUM7QUFBQSxNQUNGLENBQUM7QUFDRCxjQUFRLGVBQWUsQ0FBQyxXQUFXO0FBQUMsZUFDbEMsUUFBUSxPQUFPLEVBQ2YsV0FBVywyQkFBMkIsRUFDdEMsUUFBUSxNQUFNO0FBQ2QsZUFBSyxPQUFPLFNBQVMsYUFBYSxTQUFTLFVBQVUsWUFBWSxLQUFLLE9BQU8sU0FBUyxPQUFPLEtBQUssT0FBTyxTQUFTLGFBQWEsRUFBRSxTQUFTLFVBQVU7QUFDcEosMkJBQWlCLFNBQVMsS0FBSyxPQUFPLFNBQVMsYUFBYSxTQUFTLFVBQVUsU0FBUztBQUN4RixXQUFDLFlBQVk7QUFBQyxrQkFBTSxLQUFLLE9BQU8sYUFBYTtBQUFBLFVBQUUsR0FBRztBQUFBLFFBQ25ELENBQUM7QUFBQSxNQUNGLENBQUM7QUFBQSxJQUNGLENBQUM7QUFFRixnQkFBWSxTQUFTLE1BQU0sRUFBQyxNQUFNLG9CQUFtQixDQUFDO0FBQ3RELFFBQUksd0JBQVEsV0FBVyxFQUNyQixRQUFRLHFCQUFxQixFQUM3QixRQUFRLG1EQUFtRCxFQUMzRCxVQUFVLFlBQVUsT0FDbkIsU0FBUyxLQUFLLE9BQU8sU0FBUyxhQUFhLFNBQVMsVUFBVSxXQUFXLEVBQ3pFLFNBQVMsQ0FBQyxVQUFVO0FBQ3BCLFdBQUssT0FBTyxTQUFTLGFBQWEsU0FBUyxVQUFVLGNBQWM7QUFDbkUsV0FBSyxzQkFBc0IsYUFBYSxFQUFFLFFBQVEsZUFBYTtBQUFDLGtCQUFVLFlBQVksQ0FBQyxLQUFLO0FBQUEsTUFBRSxDQUFDO0FBQy9GLE9BQUMsWUFBWTtBQUFDLGNBQU0sS0FBSyxPQUFPLGFBQWE7QUFBQSxNQUFFLEdBQUc7QUFBQSxJQUNuRCxDQUFDLENBQUM7QUFDSixRQUFJLHdCQUFRLFdBQVcsRUFDckIsUUFBUSwwQkFBMEIsRUFDbEMsS0FBSyxDQUFDLFlBQVk7QUFBQyxXQUFLO0FBQUEsUUFDeEIsS0FBSztBQUFBLFFBQU87QUFBQSxRQUFZO0FBQUEsUUFDeEI7QUFBQSxRQUNBLENBQUMseUJBQWlELHFCQUFxQixlQUFlLENBQUMsRUFBRSxPQUFPO0FBQUEsUUFDaEcsQ0FBQyxzQkFBOEMsZUFBdUI7QUFBQywrQkFBcUIsZUFBZSxDQUFDLEVBQUUsT0FBTyxtQkFBbUI7QUFBQSxRQUFXO0FBQUEsUUFDbkosTUFBTSxDQUFDLEtBQUssT0FBTyxTQUFTLGFBQWEsU0FBUyxVQUFVO0FBQUEsTUFDN0Q7QUFBQSxJQUFFLENBQUM7QUFDSixTQUFLLHNCQUFzQixhQUFhLEVBQUUsS0FBSyxLQUFLLE9BQU8sbUJBQW1CLEVBQUUsV0FBVztBQUMzRixRQUFJLHdCQUFRLFdBQVcsRUFDckIsUUFBUSxvQkFBb0IsRUFDNUIsS0FBSyxDQUFDLFlBQVk7QUFBQyxXQUFLO0FBQUEsUUFDeEIsS0FBSztBQUFBLFFBQU87QUFBQSxRQUFZO0FBQUEsUUFDeEI7QUFBQSxRQUNBLENBQUMseUJBQWlELHFCQUFxQixlQUFlLENBQUMsRUFBRSxPQUFPO0FBQUEsUUFDaEcsQ0FBQyxzQkFBOEMsZUFBdUI7QUFBQywrQkFBcUIsZUFBZSxDQUFDLEVBQUUsT0FBTyxhQUFhO0FBQUEsUUFBVztBQUFBLFFBQzdJLE1BQU0sQ0FBQyxLQUFLLE9BQU8sU0FBUyxhQUFhLFNBQVMsVUFBVTtBQUFBLE1BQzdEO0FBQUEsSUFBRSxDQUFDO0FBQ0osU0FBSyxzQkFBc0IsYUFBYSxFQUFFLEtBQUssS0FBSyxPQUFPLGFBQWEsRUFBRSxXQUFXO0FBQ3JGLFFBQUksd0JBQVEsV0FBVyxFQUNyQixRQUFRLHdCQUF3QixFQUNoQyxRQUFRLDhEQUE4RCxFQUN0RSxVQUFVLFlBQVU7QUFBQyxZQUFNLDZCQUE2QixPQUN2RCxTQUFTLEtBQUssT0FBTyxTQUFTLGFBQWEsU0FBUyxPQUFPLFNBQVMsRUFDcEUsWUFBWSxDQUFDLEtBQUssT0FBTyxTQUFTLGFBQWEsU0FBUyxVQUFVLFdBQVcsRUFDN0UsU0FBUyxDQUFDLFVBQVU7QUFDcEIsYUFBSyxPQUFPLFNBQVMsYUFBYSxTQUFTLE9BQU8sWUFBWTtBQUM5RCxTQUFDLFlBQVk7QUFBQyxnQkFBTSxLQUFLLE9BQU8sYUFBYTtBQUFBLFFBQUUsR0FBRztBQUFBLE1BQ25ELENBQUM7QUFDRixXQUFLLHNCQUFzQixhQUFhLEVBQUUsS0FBSywwQkFBMEI7QUFBQSxJQUN6RSxDQUFDO0FBQ0YsUUFBSSx3QkFBUSxXQUFXLEVBQ3JCLFFBQVEsOEJBQThCLEVBQ3RDLFFBQVEsNkZBQTZGLEVBQ3JHLFNBQVMsb0JBQW9CLEVBQzdCLFVBQVUsWUFBVTtBQUFDLFlBQU0sa0NBQWtDLE9BQzVELFNBQVMsS0FBSyxPQUFPLFNBQVMsYUFBYSxTQUFTLE9BQU8sVUFBVSxFQUNyRSxZQUFZLENBQUMsS0FBSyxPQUFPLFNBQVMsYUFBYSxTQUFTLFVBQVUsV0FBVyxFQUM3RSxTQUFTLENBQUMsVUFBVTtBQUNwQixhQUFLLE9BQU8sU0FBUyxhQUFhLFNBQVMsT0FBTyxhQUFhO0FBQy9ELFNBQUMsWUFBWTtBQUFDLGdCQUFNLEtBQUssT0FBTyxhQUFhO0FBQUEsUUFBRSxHQUFHO0FBQUEsTUFDbkQsQ0FBQztBQUNGLFdBQUssc0JBQXNCLGFBQWEsRUFBRSxLQUFLLCtCQUErQjtBQUFBLElBQzlFLENBQUMsRUFDQSxLQUFLLENBQUMsWUFBWTtBQUFDLFdBQUs7QUFBQSxRQUN4QixLQUFLO0FBQUEsUUFBTztBQUFBLFFBQVk7QUFBQSxRQUN4QjtBQUFBLFFBQ0EsQ0FBQyx5QkFBaUQscUJBQXFCLGVBQWUsQ0FBQyxFQUFFLE9BQU87QUFBQSxRQUNoRyxDQUFDLHNCQUE4QyxlQUF1QjtBQUFDLCtCQUFxQixlQUFlLENBQUMsRUFBRSxPQUFPLG1CQUFtQjtBQUFBLFFBQVc7QUFBQSxRQUNuSixNQUFNLENBQUMsS0FBSyxPQUFPLFNBQVMsYUFBYSxTQUFTLFVBQVU7QUFBQSxNQUM3RDtBQUFBLElBQUUsQ0FBQztBQUVKLGdCQUFZLFNBQVMsTUFBTSxFQUFDLE1BQU0sb0JBQW1CLENBQUM7QUFDdEQsUUFBSSx3QkFBUSxXQUFXLEVBQ3JCLFFBQVEsMEJBQTBCLEVBQ2xDLEtBQUssQ0FBQyxZQUFZO0FBQUMsV0FBSztBQUFBLFFBQ3hCLEtBQUs7QUFBQSxRQUFPO0FBQUEsUUFBWTtBQUFBLFFBQ3hCO0FBQUEsUUFDQSxDQUFDLHlCQUFpRCxxQkFBcUIsZUFBZSxDQUFDLEVBQUUsT0FBTztBQUFBLFFBQ2hHLENBQUMsc0JBQThDLGVBQXVCO0FBQUMsK0JBQXFCLGVBQWUsQ0FBQyxFQUFFLE9BQU8sbUJBQW1CO0FBQUEsUUFBVztBQUFBLE1BQ3BKO0FBQUEsSUFBRSxDQUFDO0FBQ0osUUFBSSx3QkFBUSxXQUFXLEVBQ3JCLFFBQVEsa0JBQWtCLEVBQzFCLFFBQVEsd0RBQXdELEVBQ2hFLEtBQUssQ0FBQyxZQUFZO0FBQ2xCLFVBQUk7QUFDSixjQUFRLFVBQVUsQ0FBQyxXQUFXO0FBQUMsMkJBQW1CLE9BQ2hELFVBQVUsR0FBRSxJQUFHLENBQUMsRUFDaEIsU0FBUyxLQUFLLE9BQU8sU0FBUyxhQUFhLFNBQVMsT0FBTyxRQUFRLEVBQ25FLGtCQUFrQixFQUNsQixTQUFTLENBQUMsVUFBVTtBQUNwQixlQUFLLE9BQU8sU0FBUyxhQUFhLFNBQVMsT0FBTyxXQUFXO0FBQzdELFdBQUMsWUFBWTtBQUFDLGtCQUFNLEtBQUssT0FBTyxhQUFhO0FBQUEsVUFBRSxHQUFHO0FBQUEsUUFDbkQsQ0FBQztBQUFBLE1BQ0YsQ0FBQztBQUNELGNBQVEsZUFBZSxDQUFDLFdBQVc7QUFBQyxlQUNsQyxRQUFRLE9BQU8sRUFDZixXQUFXLDJCQUEyQixFQUN0QyxRQUFRLE1BQU07QUFDZCxlQUFLLE9BQU8sU0FBUyxhQUFhLFNBQVMsT0FBTyxXQUFXLEtBQUssT0FBTyxTQUFTLE9BQU8sS0FBSyxPQUFPLFNBQVMsYUFBYSxFQUFFLFNBQVMsT0FBTztBQUM3SSwyQkFBaUIsU0FBUyxLQUFLLE9BQU8sU0FBUyxhQUFhLFNBQVMsT0FBTyxRQUFRO0FBQ3BGLFdBQUMsWUFBWTtBQUFDLGtCQUFNLEtBQUssT0FBTyxhQUFhO0FBQUEsVUFBRSxHQUFHO0FBQUEsUUFDbkQsQ0FBQztBQUFBLE1BQ0YsQ0FBQztBQUFBLElBQ0YsQ0FBQztBQUNGLFFBQUksd0JBQVEsV0FBVyxFQUNyQixRQUFRLDJCQUEyQixFQUNuQyxRQUFRLDJHQUEyRyxFQUNuSCxVQUFVLFlBQVU7QUFBQyxhQUNwQixXQUFXLHdCQUF3QixFQUNuQyxTQUFTLEtBQUssT0FBTyxTQUFTLGFBQWEsU0FBUyxPQUFPLE1BQU0sUUFBUSxFQUN6RSxTQUFTLENBQUMsVUFBVTtBQUNwQixhQUFLLE9BQU8sU0FBUyxhQUFhLFNBQVMsT0FBTyxNQUFNLFdBQVc7QUFDbkUsU0FBQyxZQUFZO0FBQUMsZ0JBQU0sS0FBSyxPQUFPLGFBQWE7QUFBQSxRQUFFLEdBQUc7QUFBQSxNQUNuRCxDQUFDO0FBQUEsSUFDRixDQUFDLEVBQ0EsVUFBVSxZQUFVO0FBQUMsYUFDcEIsV0FBVywwQkFBMEIsRUFDckMsU0FBUyxLQUFLLE9BQU8sU0FBUyxhQUFhLFNBQVMsT0FBTyxNQUFNLFVBQVUsRUFDM0UsU0FBUyxDQUFDLFVBQVU7QUFDcEIsYUFBSyxPQUFPLFNBQVMsYUFBYSxTQUFTLE9BQU8sTUFBTSxhQUFhO0FBQ3JFLFNBQUMsWUFBWTtBQUFDLGdCQUFNLEtBQUssT0FBTyxhQUFhO0FBQUEsUUFBRSxHQUFHO0FBQUEsTUFDbkQsQ0FBQztBQUFBLElBQ0YsQ0FBQyxFQUNBLFFBQVEsQ0FBQUEsVUFBUTtBQUFDLE1BQUFBLE1BQ2hCLGVBQWUsTUFBTSxFQUNyQixTQUFTLEtBQUssT0FBTyxTQUFTLGFBQWEsU0FBUyxPQUFPLE1BQU0sUUFBUSxFQUN6RSxTQUFTLENBQUMsVUFBVTtBQUNwQixhQUFLLE9BQU8sU0FBUyxhQUFhLFNBQVMsT0FBTyxNQUFNLFdBQVc7QUFDbkUsU0FBQyxZQUFZO0FBQUMsZ0JBQU0sS0FBSyxPQUFPLGFBQWE7QUFBQSxRQUFFLEdBQUc7QUFBQSxNQUNuRCxDQUFDO0FBQUEsSUFDRixDQUFDLEVBQ0EsS0FBSyxDQUFDLFlBQVk7QUFBQyxXQUFLO0FBQUEsUUFDeEIsS0FBSztBQUFBLFFBQU87QUFBQSxRQUFZO0FBQUEsUUFDeEI7QUFBQSxRQUNBLENBQUMseUJBQWlELHFCQUFxQixlQUFlLENBQUMsRUFBRSxPQUFPLE1BQU07QUFBQSxRQUN0RyxDQUFDLHNCQUE4QyxlQUF1QjtBQUFDLCtCQUFxQixlQUFlLENBQUMsRUFBRSxPQUFPLE1BQU0sYUFBYTtBQUFBLFFBQVc7QUFBQSxNQUNwSjtBQUFBLElBQUUsQ0FBQztBQUNKLFFBQUkseUJBQXlDLFdBQVcsTUFBSTtBQUFBLElBQUMsQ0FBQztBQUU5RCxRQUFJLHdCQUFRLFdBQVcsRUFDckIsUUFBUSx1QkFBdUIsRUFDL0IsUUFBUSx3RUFBd0UsRUFDaEYsUUFBUSxDQUFBQSxVQUFRQSxNQUNmLGVBQWUsZ0JBQWdCLEVBQy9CLFNBQVMsS0FBSyxPQUFPLFNBQVMsYUFBYSxTQUFTLE9BQU8sZUFBZSxFQUMxRSxTQUFTLENBQUMsVUFBVTtBQUNwQixXQUFLLE9BQU8sU0FBUyxhQUFhLFNBQVMsT0FBTyxrQkFBa0I7QUFDcEUsT0FBQyxZQUFZO0FBQUMsY0FBTSxLQUFLLE9BQU8sYUFBYTtBQUFBLE1BQUUsR0FBRztBQUNsRCxtQkFBYSxzQkFBc0I7QUFDbkMsK0JBQXlCLFdBQVcsTUFBSSxLQUFLLE9BQU8sa0JBQWtCLEdBQUUsR0FBSTtBQUFBLElBQzdFLENBQUMsQ0FBQztBQUNKLFFBQUksd0JBQVEsV0FBVyxFQUNyQixRQUFRLHlCQUF5QixFQUNqQyxRQUFRLHVFQUF1RSxFQUMvRSxLQUFLLENBQUMsWUFBWTtBQUFDLFdBQUs7QUFBQSxRQUN4QixLQUFLO0FBQUEsUUFBTztBQUFBLFFBQVk7QUFBQSxRQUN4QjtBQUFBLFFBQ0EsQ0FBQyx5QkFBaUQscUJBQXFCLGVBQWUsQ0FBQyxFQUFFLE9BQU87QUFBQSxRQUNoRyxDQUFDLHNCQUE4QyxlQUF1QjtBQUFDLCtCQUFxQixlQUFlLENBQUMsRUFBRSxPQUFPLGFBQWE7QUFBQSxRQUFXO0FBQUEsTUFDOUk7QUFBQSxJQUFFLENBQUM7QUFFSixnQkFBWSxTQUFTLE1BQU0sRUFBQyxNQUFNLGlDQUFnQyxDQUFDO0FBQ25FLFFBQUksd0JBQVEsV0FBVyxFQUNyQixRQUFRLDhCQUE4QixFQUN0QyxRQUFRLHVMQUEyTCxFQUNuTSxZQUFZLENBQUMsYUFBYSxTQUN6QixXQUFXLGVBQWUsRUFDMUIsU0FBUyxLQUFLLE9BQU8sU0FBUyxhQUFhLFNBQVMsT0FBTyxZQUFZLE9BQU8sRUFDOUUsU0FBUyxDQUFDLFVBQW1CO0FBQzdCLFdBQUssT0FBTyxTQUFTLGFBQWEsU0FBUyxPQUFPLFlBQVksVUFBVTtBQUN4RSxXQUFLLHNCQUFzQixvQkFBb0IsRUFBRSxRQUFRLGVBQWE7QUFBQyxrQkFBVSxZQUFZLFVBQVEsTUFBTTtBQUFBLE1BQUUsQ0FBQztBQUM5RyxPQUFDLFlBQVk7QUFBQyxjQUFNLEtBQUssT0FBTyxhQUFhO0FBQUEsTUFBRSxHQUFHO0FBQ2xELFdBQUssT0FBTyxrQkFBa0I7QUFBQSxJQUMvQixDQUFDLENBQUM7QUFDSixRQUFJLHdCQUFRLFdBQVcsRUFDckIsUUFBUSx1Q0FBdUMsRUFDL0MsS0FBSyxDQUFDLFlBQVk7QUFBQyxXQUFLO0FBQUEsUUFDeEIsS0FBSztBQUFBLFFBQU87QUFBQSxRQUFZO0FBQUEsUUFDeEI7QUFBQSxRQUNBLENBQUMseUJBQWlELHFCQUFxQixlQUFlLENBQUMsRUFBRSxPQUFPLFlBQVk7QUFBQSxRQUM1RyxDQUFDLHNCQUE4QyxlQUF1QjtBQUFDLCtCQUFxQixlQUFlLENBQUMsRUFBRSxPQUFPLFlBQVksbUJBQW1CO0FBQUEsUUFBVztBQUFBLFFBQy9KLE1BQU0sS0FBSyxPQUFPLFNBQVMsYUFBYSxTQUFTLE9BQU8sWUFBWSxZQUFZO0FBQUEsTUFDakY7QUFBQSxJQUFFLENBQUM7QUFDSixTQUFLLHNCQUFzQixvQkFBb0IsRUFBRSxLQUFLLEtBQUssT0FBTyxnQ0FBZ0MsRUFBRSxXQUFXO0FBQy9HLFFBQUk7QUFDSixRQUFJO0FBQ0osUUFBSTtBQUNKLFFBQUksd0JBQVEsV0FBVyxFQUNyQixRQUFRLGtDQUFrQyxFQUMxQyxRQUFRLGtIQUFrSCxFQUMxSCxVQUFVLFlBQVU7QUFBQywrQkFBeUIsT0FDN0MsV0FBVywrQkFBK0IsRUFDMUMsU0FBUyxLQUFLLE9BQU8sU0FBUyxhQUFhLFNBQVMsT0FBTyxZQUFZLFFBQVEsRUFDL0UsWUFBWSxLQUFLLE9BQU8sU0FBUyxhQUFhLFNBQVMsT0FBTyxZQUFZLFlBQVUsTUFBTSxFQUMxRixTQUFTLENBQUMsVUFBVTtBQUNwQixhQUFLLE9BQU8sU0FBUyxhQUFhLFNBQVMsT0FBTyxZQUFZLFdBQVc7QUFDekUsU0FBQyxZQUFZO0FBQUMsZ0JBQU0sS0FBSyxPQUFPLGFBQWE7QUFBQSxRQUFFLEdBQUc7QUFBQSxNQUNuRCxDQUFDO0FBQ0YsV0FBSyxzQkFBc0Isb0JBQW9CLEVBQUUsS0FBSyxzQkFBc0I7QUFBQSxJQUM1RSxDQUFDLEVBQ0EsVUFBVSxZQUFVO0FBQUMsaUNBQTJCLE9BQy9DLFdBQVcsaUNBQWlDLEVBQzVDLFNBQVMsS0FBSyxPQUFPLFNBQVMsYUFBYSxTQUFTLE9BQU8sWUFBWSxVQUFVLEVBQ2pGLFlBQVksS0FBSyxPQUFPLFNBQVMsYUFBYSxTQUFTLE9BQU8sWUFBWSxZQUFVLE1BQU0sRUFDMUYsU0FBUyxDQUFDLFVBQVU7QUFDcEIsYUFBSyxPQUFPLFNBQVMsYUFBYSxTQUFTLE9BQU8sWUFBWSxhQUFhO0FBQzNFLFNBQUMsWUFBWTtBQUFDLGdCQUFNLEtBQUssT0FBTyxhQUFhO0FBQUEsUUFBRSxHQUFHO0FBQUEsTUFDbkQsQ0FBQztBQUNGLFdBQUssc0JBQXNCLG9CQUFvQixFQUFFLEtBQUssd0JBQXdCO0FBQUEsSUFDOUUsQ0FBQyxFQUNBLFFBQVEsQ0FBQUEsVUFBUTtBQUFDLDhCQUF3QkEsTUFDeEMsZUFBZSxNQUFNLEVBQ3JCLFNBQVMsS0FBSyxPQUFPLFNBQVMsYUFBYSxTQUFTLE9BQU8sWUFBWSxRQUFRLEVBQy9FLFlBQVksS0FBSyxPQUFPLFNBQVMsYUFBYSxTQUFTLE9BQU8sWUFBWSxZQUFVLE1BQU0sRUFDMUYsU0FBUyxDQUFDLFVBQVU7QUFDcEIsYUFBSyxPQUFPLFNBQVMsYUFBYSxTQUFTLE9BQU8sWUFBWSxXQUFXO0FBQ3pFLFNBQUMsWUFBWTtBQUFDLGdCQUFNLEtBQUssT0FBTyxhQUFhO0FBQUEsUUFBRSxHQUFHO0FBQUEsTUFDbkQsQ0FBQztBQUNGLFdBQUssc0JBQXNCLG9CQUFvQixFQUFFLEtBQUsscUJBQXFCO0FBQUEsSUFDM0UsQ0FBQyxFQUNBLEtBQUssQ0FBQyxZQUFZO0FBQUMsV0FBSztBQUFBLFFBQ3hCLEtBQUs7QUFBQSxRQUFPO0FBQUEsUUFBWTtBQUFBLFFBQ3hCO0FBQUEsUUFDQSxDQUFDLHlCQUFpRCxxQkFBcUIsZUFBZSxDQUFDLEVBQUUsT0FBTyxZQUFZO0FBQUEsUUFDNUcsQ0FBQyxzQkFBOEMsZUFBdUI7QUFBQywrQkFBcUIsZUFBZSxDQUFDLEVBQUUsT0FBTyxZQUFZLGFBQWE7QUFBQSxRQUFXO0FBQUEsUUFDekosTUFBTSxLQUFLLE9BQU8sU0FBUyxhQUFhLFNBQVMsT0FBTyxZQUFZLFlBQVk7QUFBQSxNQUNqRjtBQUFBLElBQUUsQ0FBQztBQUNKLFNBQUssc0JBQXNCLG9CQUFvQixFQUFFLEtBQUssS0FBSyxPQUFPLDBCQUEwQixFQUFFLFdBQVc7QUFFekcsZ0JBQVksU0FBUyxNQUFNLEVBQUMsTUFBTSxrQ0FBaUMsQ0FBQztBQUNwRSxRQUFJLHdCQUFRLFdBQVcsRUFDckIsUUFBUSwrQkFBK0IsRUFDdkMsUUFBUSwwTEFBOEwsRUFDdE0sWUFBWSxDQUFDLGFBQWEsU0FDekIsV0FBVyxlQUFlLEVBQzFCLFNBQVMsS0FBSyxPQUFPLFNBQVMsYUFBYSxTQUFTLE9BQU8sYUFBYSxPQUFPLEVBQy9FLFNBQVMsQ0FBQyxVQUFtQjtBQUM3QixXQUFLLE9BQU8sU0FBUyxhQUFhLFNBQVMsT0FBTyxhQUFhLFVBQVU7QUFDekUsV0FBSyxzQkFBc0IscUJBQXFCLEVBQUUsUUFBUSxlQUFhO0FBQUMsa0JBQVUsWUFBWSxVQUFRLE1BQU07QUFBQSxNQUFFLENBQUM7QUFDL0csT0FBQyxZQUFZO0FBQUMsY0FBTSxLQUFLLE9BQU8sYUFBYTtBQUFBLE1BQUUsR0FBRztBQUNsRCxXQUFLLE9BQU8sa0JBQWtCO0FBQUEsSUFDL0IsQ0FBQyxDQUFDO0FBQ0osUUFBSTtBQUNKLFFBQUksd0JBQVEsV0FBVyxFQUNyQixRQUFRLHlCQUF5QixFQUNqQyxRQUFRLHNEQUFzRCxFQUM5RCxVQUFVLFlBQVU7QUFBQyxvQ0FBOEIsT0FDbEQsU0FBUyxLQUFLLE9BQU8sU0FBUyxhQUFhLFNBQVMsT0FBTyxhQUFhLGFBQWEsRUFDckYsWUFBWSxLQUFLLE9BQU8sU0FBUyxhQUFhLFNBQVMsT0FBTyxhQUFhLFlBQVUsTUFBTSxFQUMzRixTQUFTLENBQUMsVUFBVTtBQUNwQixhQUFLLE9BQU8sU0FBUyxhQUFhLFNBQVMsT0FBTyxhQUFhLGdCQUFnQjtBQUMvRSxTQUFDLFlBQVk7QUFBQyxnQkFBTSxLQUFLLE9BQU8sYUFBYTtBQUFBLFFBQUUsR0FBRztBQUFBLE1BQ25ELENBQUM7QUFDRixXQUFLLHNCQUFzQixxQkFBcUIsRUFBRSxLQUFLLDJCQUEyQjtBQUFBLElBQ2xGLENBQUM7QUFDRixRQUFJLHdCQUFRLFdBQVcsRUFDckIsUUFBUSxvQkFBb0IsRUFDNUIsUUFBUSwrQ0FBK0MsRUFDdkQsS0FBSyxDQUFDLFlBQVk7QUFDbEIsVUFBSTtBQUNKLGNBQVEsVUFBVSxDQUFDLFdBQVc7QUFBQywyQkFBbUIsT0FDaEQsVUFBVSxJQUFHLElBQUcsQ0FBQyxFQUNqQixTQUFTLEtBQUssT0FBTyxTQUFTLGFBQWEsU0FBUyxTQUFTLFFBQVEsRUFDckUsWUFBWSxLQUFLLE9BQU8sU0FBUyxhQUFhLFNBQVMsT0FBTyxhQUFhLFlBQVUsTUFBTSxFQUMzRixrQkFBa0IsRUFDbEIsU0FBUyxDQUFDLFVBQVU7QUFDcEIsZUFBSyxPQUFPLFNBQVMsYUFBYSxTQUFTLFNBQVMsV0FBVztBQUMvRCxXQUFDLFlBQVk7QUFBQyxrQkFBTSxLQUFLLE9BQU8sYUFBYTtBQUFBLFVBQUUsR0FBRztBQUFBLFFBQ25ELENBQUM7QUFDRixhQUFLLHNCQUFzQixxQkFBcUIsRUFBRSxLQUFLLGdCQUFnQjtBQUFBLE1BQ3ZFLENBQUM7QUFDRCxVQUFJO0FBQ0osY0FBUSxlQUFlLENBQUMsV0FBVztBQUFDLHNCQUFjLE9BQ2hELFFBQVEsT0FBTyxFQUNmLFlBQVksS0FBSyxPQUFPLFNBQVMsYUFBYSxTQUFTLE9BQU8sYUFBYSxZQUFVLE1BQU0sRUFDM0YsV0FBVywyQkFBMkIsRUFDdEMsUUFBUSxNQUFNO0FBQ2QsZUFBSyxPQUFPLFNBQVMsYUFBYSxTQUFTLFNBQVMsV0FBVyxLQUFLLE9BQU8sU0FBUyxPQUFPLEtBQUssT0FBTyxTQUFTLGFBQWEsRUFBRSxTQUFTLFNBQVM7QUFDakosMkJBQWlCLFNBQVMsS0FBSyxPQUFPLFNBQVMsYUFBYSxTQUFTLFNBQVMsUUFBUTtBQUN0RixXQUFDLFlBQVk7QUFBQyxrQkFBTSxLQUFLLE9BQU8sYUFBYTtBQUFBLFVBQUUsR0FBRztBQUFBLFFBQ25ELENBQUM7QUFDRixhQUFLLHNCQUFzQixxQkFBcUIsRUFBRSxLQUFLLFdBQVc7QUFBQSxNQUNsRSxDQUFDO0FBQUEsSUFDRixDQUFDO0FBRUYsZ0JBQVksU0FBUyxNQUFNLEVBQUMsTUFBTSwwQkFBeUIsQ0FBQztBQUM1RCxRQUFJLHdCQUFRLFdBQVcsRUFDckIsUUFBUSw4QkFBOEIsRUFDdEMsUUFBUSw0REFBNEQsRUFDcEUsU0FBUyxvQkFBb0IsRUFDN0IsVUFBVSxZQUFVO0FBQUMsYUFBTyxPQUMzQixXQUFXLHdDQUF3QyxFQUNuRCxTQUFTLEtBQUssT0FBTyxTQUFTLGFBQWEsU0FBUyxXQUFXLGdCQUFnQixFQUMvRSxTQUFTLENBQUMsVUFBVTtBQUNwQixhQUFLLE9BQU8sU0FBUyxhQUFhLFNBQVMsV0FBVyxtQkFBbUI7QUFDekUsYUFBSyxzQkFBc0IsMkJBQTJCLEVBQUUsUUFBUSxlQUFhO0FBQUMsb0JBQVUsWUFBWSxDQUFDLEtBQUs7QUFBQSxRQUFFLENBQUM7QUFDN0csU0FBQyxZQUFZO0FBQUMsZ0JBQU0sS0FBSyxPQUFPLGFBQWE7QUFBQSxRQUFFLEdBQUc7QUFBQSxNQUNuRCxDQUFDO0FBQUEsSUFDRixDQUFDLEVBQ0EsS0FBSyxDQUFDLFlBQVk7QUFBQyxXQUFLO0FBQUEsUUFDeEIsS0FBSztBQUFBLFFBQU87QUFBQSxRQUFZO0FBQUEsUUFDeEI7QUFBQSxRQUNBLENBQUMseUJBQWlELHFCQUFxQixlQUFlLENBQUMsRUFBRSxXQUFXO0FBQUEsUUFDcEcsQ0FBQyxzQkFBOEMsZUFBdUI7QUFBQywrQkFBcUIsZUFBZSxDQUFDLEVBQUUsV0FBVyx5QkFBeUI7QUFBQSxRQUFXO0FBQUEsUUFDN0osTUFBTSxDQUFDLEtBQUssT0FBTyxTQUFTLGFBQWEsU0FBUyxXQUFXO0FBQUEsTUFDOUQ7QUFBQSxJQUFFLENBQUM7QUFDSixTQUFLLHNCQUFzQiwyQkFBMkIsRUFBRSxLQUFLLEtBQUssT0FBTyw4QkFBOEIsRUFBRSxXQUFXO0FBQ3BILFFBQUksd0JBQVEsV0FBVyxFQUNyQixRQUFRLGlDQUFpQyxFQUN6QyxRQUFRLDJEQUEyRCxFQUNuRSxTQUFTLG9CQUFvQixFQUM3QixVQUFVLFlBQVU7QUFBQyxhQUFPLE9BQzNCLFNBQVMsS0FBSyxPQUFPLFNBQVMsYUFBYSxTQUFTLFdBQVcsbUJBQW1CLEVBQ2xGLFNBQVMsQ0FBQyxVQUFVO0FBQ3BCLGFBQUssT0FBTyxTQUFTLGFBQWEsU0FBUyxXQUFXLHNCQUFzQjtBQUM1RSxhQUFLLHNCQUFzQiw4QkFBOEIsRUFBRSxRQUFRLGVBQWE7QUFBQyxvQkFBVSxZQUFZLENBQUMsS0FBSztBQUFBLFFBQUUsQ0FBQztBQUNoSCxTQUFDLFlBQVk7QUFBQyxnQkFBTSxLQUFLLE9BQU8sYUFBYTtBQUFBLFFBQUUsR0FBRztBQUFBLE1BQ25ELENBQUM7QUFBQSxJQUNGLENBQUMsRUFDQSxLQUFLLENBQUMsWUFBWTtBQUFDLFdBQUs7QUFBQSxRQUN4QixLQUFLO0FBQUEsUUFBTztBQUFBLFFBQVk7QUFBQSxRQUN4QjtBQUFBLFFBQ0EsQ0FBQyx5QkFBaUQscUJBQXFCLGVBQWUsQ0FBQyxFQUFFLFdBQVc7QUFBQSxRQUNwRyxDQUFDLHNCQUE4QyxlQUF1QjtBQUFDLCtCQUFxQixlQUFlLENBQUMsRUFBRSxXQUFXLDRCQUE0QjtBQUFBLFFBQVc7QUFBQSxRQUNoSyxNQUFNLENBQUMsS0FBSyxPQUFPLFNBQVMsYUFBYSxTQUFTLFdBQVc7QUFBQSxNQUM5RDtBQUFBLElBQUUsQ0FBQztBQUNKLFNBQUssc0JBQXNCLDhCQUE4QixFQUFFLEtBQUssS0FBSyxPQUFPLGlDQUFpQyxFQUFFLFdBQVc7QUFDMUgsUUFBSSx3QkFBUSxXQUFXLEVBQ3JCLFFBQVEsMEJBQTBCLEVBQ2xDLFFBQVEsNkJBQTZCLEVBQ3JDLEtBQUssQ0FBQyxZQUFZO0FBQUMsV0FBSztBQUFBLFFBQ3hCLEtBQUs7QUFBQSxRQUFPO0FBQUEsUUFBWTtBQUFBLFFBQ3hCO0FBQUEsUUFDQSxDQUFDLHlCQUFpRCxxQkFBcUIsZUFBZSxDQUFDLEVBQUUsV0FBVztBQUFBLFFBQ3BHLENBQUMsc0JBQThDLGVBQXVCO0FBQUMsK0JBQXFCLGVBQWUsQ0FBQyxFQUFFLFdBQVcsZ0JBQWdCO0FBQUEsUUFBVztBQUFBLE1BQ3JKO0FBQUEsSUFBRSxDQUFDO0FBQ0osUUFBSTtBQUNKLFFBQUksd0JBQVEsV0FBVyxFQUNyQixRQUFRLDJCQUEyQixFQUNuQyxRQUFRLHdGQUF3RixFQUNoRyxRQUFRLFdBQVM7QUFBQyx5QkFBbUIsTUFDcEMsZUFBZSxrQkFBa0IsRUFDakMsU0FBUyxDQUFDQyxXQUFVO0FBQ3BCLGFBQUssT0FBTyxTQUFTLGVBQWVBO0FBQUEsTUFDckMsQ0FBQztBQUFBLElBQ0YsQ0FBQyxFQUNBLFVBQVUsQ0FBQyxXQUFXO0FBQ3RCLGFBQU8sY0FBYyxLQUFLO0FBQzFCLGFBQU8sUUFBUSxNQUFNO0FBQ3BCLFlBQUksS0FBSyxPQUFPLFNBQVMsYUFBYSxLQUFLLE1BQU07QUFDaEQsY0FBSSx1QkFBTyw2QkFBNkI7QUFBQSxpQkFDaEMsQ0FBQyxhQUFhLEtBQUssS0FBSyxPQUFPLFNBQVMsWUFBWTtBQUM1RCxjQUFJLHVCQUFPLElBQUksS0FBSyxPQUFPLFNBQVMsWUFBWSwrQkFBK0I7QUFBQSxpQkFDdkUsS0FBSyxPQUFPLFNBQVMsYUFBYSxLQUFLLEVBQUUsWUFBWSxNQUFNO0FBQ25FLGNBQUksdUJBQU8sa0RBQWtEO0FBQUEsaUJBQ3JELFdBQVcsU0FBUyxLQUFLLE9BQU8sU0FBUyxhQUFhLEtBQUssRUFBRSxZQUFZLENBQUM7QUFDbEYsY0FBSSx1QkFBTyxzQ0FBc0M7QUFBQSxhQUM3QztBQUNKLGNBQUksS0FBSyxPQUFPLFNBQVMsZ0JBQWdCLEtBQUssT0FBTyxTQUFTLGFBQWEsUUFBUSxNQUFNLFdBQVc7QUFDbkcsZ0JBQUksdUJBQU8sOEJBQThCLEtBQUssT0FBTyxTQUFTLFlBQVksbUJBQW1CO0FBQUEsZUFFekY7QUFDSixrQkFBTSxZQUFZLGdCQUFnQjtBQUNsQyxpQkFBSyxPQUFPLFNBQVMsYUFBYSxRQUFRLE1BQU0sV0FBVyxzQkFBc0IsS0FBSyxPQUFPLFNBQVMsWUFBWSxJQUFJO0FBQ3RILGlCQUFLLE9BQU8sU0FBUyxhQUFhLFFBQVEsS0FBSyxXQUFXLHNCQUFzQixLQUFLLE9BQU8sU0FBUyxZQUFZLElBQUk7QUFDckgsaUJBQUssNEJBQTRCLDhCQUE4QjtBQUMvRCxnQkFBSSx1QkFBTyxvQkFBb0IsS0FBSyxPQUFPLFNBQVMsWUFBWSxJQUFJO0FBQ3BFLGlCQUFLLE9BQU8sU0FBUyxlQUFlO0FBQ3BDLDZCQUFpQixTQUFTLEVBQUU7QUFDNUIsYUFBQyxZQUFZO0FBQUMsb0JBQU0sS0FBSyxPQUFPLGFBQWE7QUFBQSxZQUFFLEdBQUc7QUFDbEQsaUJBQUssT0FBTyxrQkFBa0I7QUFBQSxVQUMvQjtBQUFBLFFBQ0Q7QUFBQSxNQUNELENBQUM7QUFBQSxJQUNGLENBQUM7QUFDRixVQUFNLGlDQUFpQyxZQUFZLFVBQVU7QUFDN0QsU0FBSyw0QkFBNEIsOEJBQThCO0FBRS9ELGdCQUFZLFNBQVMsTUFBTSxFQUFDLE1BQU0seUJBQXdCLENBQUM7QUFDM0QsUUFBSSx3QkFBUSxXQUFXLEVBQ3JCLFFBQVEsOEJBQThCLEVBQ3RDLFFBQVEsNktBQTZLLEVBQ3JMLFVBQVUsWUFBVSxPQUNuQixTQUFTLEtBQUssT0FBTyxTQUFTLGFBQWEsU0FBUyxPQUFPLGVBQWUsRUFDMUUsU0FBUyxDQUFDLFVBQVU7QUFDcEIsV0FBSyxPQUFPLFNBQVMsYUFBYSxTQUFTLE9BQU8sa0JBQWtCO0FBQ3BFLE9BQUMsWUFBWTtBQUFDLGNBQU0sS0FBSyxPQUFPLGFBQWE7QUFBQSxNQUFFLEdBQUc7QUFDbEQsV0FBSyxPQUFPLGtCQUFrQjtBQUFBLElBQy9CLENBQUMsQ0FBQztBQUNKLFFBQUksd0JBQVEsV0FBVyxFQUNyQixRQUFRLCtCQUErQixFQUN2QyxLQUFLLENBQUMsWUFBWTtBQUFDLFdBQUs7QUFBQSxRQUN4QixLQUFLO0FBQUEsUUFBTztBQUFBLFFBQVk7QUFBQSxRQUN4QjtBQUFBLFFBQ0EsQ0FBQyx5QkFBaUQscUJBQXFCLGVBQWUsQ0FBQyxFQUFFLE9BQU87QUFBQSxRQUNoRyxDQUFDLHNCQUE4QyxlQUF1QjtBQUFDLCtCQUFxQixlQUFlLENBQUMsRUFBRSxPQUFPLG1CQUFtQjtBQUFBLFFBQVc7QUFBQSxNQUNwSjtBQUFBLElBQUUsQ0FBQztBQUNKLFFBQUksd0JBQVEsV0FBVyxFQUNyQixRQUFRLHlCQUF5QixFQUNqQyxLQUFLLENBQUMsWUFBWTtBQUFDLFdBQUs7QUFBQSxRQUN4QixLQUFLO0FBQUEsUUFBTztBQUFBLFFBQVk7QUFBQSxRQUN4QjtBQUFBLFFBQ0EsQ0FBQyx5QkFBaUQscUJBQXFCLGVBQWUsQ0FBQyxFQUFFLE9BQU87QUFBQSxRQUNoRyxDQUFDLHNCQUE4QyxlQUF1QjtBQUFDLCtCQUFxQixlQUFlLENBQUMsRUFBRSxPQUFPLGFBQWE7QUFBQSxRQUFXO0FBQUEsTUFDOUk7QUFBQSxJQUFFLENBQUM7QUFDSixRQUFJLHdCQUFRLFdBQVcsRUFDckIsUUFBUSxnQ0FBZ0MsRUFDeEMsUUFBUSwyQ0FBMkMsRUFDbkQsS0FBSyxDQUFDLFlBQVk7QUFBQyxXQUFLO0FBQUEsUUFDeEIsS0FBSztBQUFBLFFBQU87QUFBQSxRQUFZO0FBQUEsUUFDeEI7QUFBQSxRQUNBLENBQUMseUJBQWlELHFCQUFxQixlQUFlLENBQUMsRUFBRSxPQUFPO0FBQUEsUUFDaEcsQ0FBQyxzQkFBOEMsZUFBdUI7QUFBQywrQkFBcUIsZUFBZSxDQUFDLEVBQUUsT0FBTyxtQkFBbUI7QUFBQSxRQUFXO0FBQUEsTUFDcEo7QUFBQSxJQUFFLENBQUM7QUFDSixRQUFJLHdCQUFRLFdBQVcsRUFDckIsUUFBUSx5QkFBeUIsRUFDakMsUUFBUSwwQ0FBMEMsRUFDbEQsS0FBSyxDQUFDLFlBQVk7QUFDbEIsVUFBSTtBQUNKLGNBQVEsVUFBVSxDQUFDLFdBQVc7QUFBQywyQkFBbUIsT0FDaEQsVUFBVSxHQUFFLEdBQUUsQ0FBQyxFQUNmLFNBQVMsS0FBSyxPQUFPLFNBQVMsYUFBYSxTQUFTLE9BQU8sVUFBVSxFQUNyRSxrQkFBa0IsRUFDbEIsU0FBUyxDQUFDLFVBQVU7QUFDcEIsZUFBSyxPQUFPLFNBQVMsYUFBYSxTQUFTLE9BQU8sYUFBYTtBQUMvRCxXQUFDLFlBQVk7QUFBQyxrQkFBTSxLQUFLLE9BQU8sYUFBYTtBQUFBLFVBQUUsR0FBRztBQUFBLFFBQ25ELENBQUM7QUFBQSxNQUNGLENBQUM7QUFDRCxjQUFRLGVBQWUsQ0FBQyxXQUFXO0FBQUMsZUFDbEMsUUFBUSxPQUFPLEVBQ2YsV0FBVyw2QkFBNkIsRUFDeEMsUUFBUSxNQUFNO0FBQ2QsZUFBSyxPQUFPLFNBQVMsYUFBYSxTQUFTLE9BQU8sYUFBYSxLQUFLLE9BQU8sU0FBUyxPQUFPLEtBQUssT0FBTyxTQUFTLGFBQWEsRUFBRSxTQUFTLE9BQU87QUFDL0ksMkJBQWlCLFNBQVMsS0FBSyxPQUFPLFNBQVMsYUFBYSxTQUFTLE9BQU8sVUFBVTtBQUN0RixXQUFDLFlBQVk7QUFBQyxrQkFBTSxLQUFLLE9BQU8sYUFBYTtBQUFBLFVBQUUsR0FBRztBQUFBLFFBQ25ELENBQUM7QUFBQSxNQUNGLENBQUM7QUFBQSxJQUNGLENBQUM7QUFDRixRQUFJLHdCQUFRLFdBQVcsRUFDckIsUUFBUSx1QkFBdUIsRUFDL0IsUUFBUSxzREFBc0QsRUFDOUQsS0FBSyxDQUFDLFlBQVk7QUFDbEIsVUFBSTtBQUNKLGNBQVEsVUFBVSxDQUFDLFdBQVc7QUFBQywyQkFBbUIsT0FDaEQsVUFBVSxHQUFFLElBQUcsQ0FBQyxFQUNoQixTQUFTLEtBQUssT0FBTyxTQUFTLGFBQWEsU0FBUyxPQUFPLFNBQVMsRUFDcEUsa0JBQWtCLEVBQ2xCLFNBQVMsQ0FBQyxVQUFVO0FBQ3BCLGVBQUssT0FBTyxTQUFTLGFBQWEsU0FBUyxPQUFPLFlBQVk7QUFDOUQsV0FBQyxZQUFZO0FBQUMsa0JBQU0sS0FBSyxPQUFPLGFBQWE7QUFBQSxVQUFFLEdBQUc7QUFBQSxRQUNuRCxDQUFDO0FBQUEsTUFDRixDQUFDO0FBQ0QsY0FBUSxlQUFlLENBQUMsV0FBVztBQUFDLGVBQ2xDLFFBQVEsT0FBTyxFQUNmLFdBQVcsMkJBQTJCLEVBQ3RDLFFBQVEsTUFBTTtBQUNkLGVBQUssT0FBTyxTQUFTLGFBQWEsU0FBUyxPQUFPLFlBQVksS0FBSyxPQUFPLFNBQVMsT0FBTyxLQUFLLE9BQU8sU0FBUyxhQUFhLEVBQUUsU0FBUyxPQUFPO0FBQzlJLDJCQUFpQixTQUFTLEtBQUssT0FBTyxTQUFTLGFBQWEsU0FBUyxPQUFPLFNBQVM7QUFDckYsV0FBQyxZQUFZO0FBQUMsa0JBQU0sS0FBSyxPQUFPLGFBQWE7QUFBQSxVQUFFLEdBQUc7QUFBQSxRQUNuRCxDQUFDO0FBQUEsTUFDRixDQUFDO0FBQUEsSUFDRixDQUFDO0FBQ0YsUUFBSSx3QkFBUSxXQUFXLEVBQ3JCLFFBQVEsOEJBQThCLEVBQ3RDLFFBQVEsdUVBQXVFLEVBQy9FLEtBQUssQ0FBQyxZQUFZO0FBQ2xCLFVBQUk7QUFDSixjQUFRLFVBQVUsQ0FBQyxXQUFXO0FBQUMsMkJBQW1CLE9BQ2hELFVBQVUsR0FBRSxJQUFHLENBQUMsRUFDaEIsU0FBUyxLQUFLLE9BQU8sU0FBUyxhQUFhLFNBQVMsT0FBTyxlQUFlLEVBQzFFLGtCQUFrQixFQUNsQixTQUFTLENBQUMsVUFBVTtBQUNwQixlQUFLLE9BQU8sU0FBUyxhQUFhLFNBQVMsT0FBTyxrQkFBa0I7QUFDcEUsV0FBQyxZQUFZO0FBQUMsa0JBQU0sS0FBSyxPQUFPLGFBQWE7QUFBQSxVQUFFLEdBQUc7QUFBQSxRQUNuRCxDQUFDO0FBQUEsTUFDRixDQUFDO0FBQ0QsY0FBUSxlQUFlLENBQUMsV0FBVztBQUFDLGVBQ2xDLFFBQVEsT0FBTyxFQUNmLFdBQVcsa0NBQWtDLEVBQzdDLFFBQVEsTUFBTTtBQUNkLGVBQUssT0FBTyxTQUFTLGFBQWEsU0FBUyxPQUFPLGtCQUFrQixLQUFLLE9BQU8sU0FBUyxPQUFPLEtBQUssT0FBTyxTQUFTLGFBQWEsRUFBRSxTQUFTLE9BQU87QUFDcEosMkJBQWlCLFNBQVMsS0FBSyxPQUFPLFNBQVMsYUFBYSxTQUFTLE9BQU8sZUFBZTtBQUMzRixXQUFDLFlBQVk7QUFBQyxrQkFBTSxLQUFLLE9BQU8sYUFBYTtBQUFBLFVBQUUsR0FBRztBQUFBLFFBQ25ELENBQUM7QUFBQSxNQUNGLENBQUM7QUFBQSxJQUNGLENBQUM7QUFDRixRQUFJLHdCQUFRLFdBQVcsRUFDckIsUUFBUSxnQ0FBZ0MsRUFDeEMsUUFBUSx5RUFBeUUsRUFDakYsS0FBSyxDQUFDLFlBQVk7QUFDbEIsVUFBSTtBQUNKLGNBQVEsVUFBVSxDQUFDLFdBQVc7QUFBQywyQkFBbUIsT0FDaEQsVUFBVSxHQUFFLElBQUcsQ0FBQyxFQUNoQixTQUFTLEtBQUssT0FBTyxTQUFTLGFBQWEsU0FBUyxPQUFPLGlCQUFpQixFQUM1RSxrQkFBa0IsRUFDbEIsU0FBUyxDQUFDLFVBQVU7QUFDcEIsZUFBSyxPQUFPLFNBQVMsYUFBYSxTQUFTLE9BQU8sb0JBQW9CO0FBQ3RFLFdBQUMsWUFBWTtBQUFDLGtCQUFNLEtBQUssT0FBTyxhQUFhO0FBQUEsVUFBRSxHQUFHO0FBQUEsUUFDbkQsQ0FBQztBQUFBLE1BQ0YsQ0FBQztBQUNELGNBQVEsZUFBZSxDQUFDLFdBQVc7QUFBQyxlQUNsQyxRQUFRLE9BQU8sRUFDZixXQUFXLG9DQUFvQyxFQUMvQyxRQUFRLE1BQU07QUFDZCxlQUFLLE9BQU8sU0FBUyxhQUFhLFNBQVMsT0FBTyxvQkFBb0IsS0FBSyxPQUFPLFNBQVMsT0FBTyxLQUFLLE9BQU8sU0FBUyxhQUFhLEVBQUUsU0FBUyxPQUFPO0FBQ3RKLDJCQUFpQixTQUFTLEtBQUssT0FBTyxTQUFTLGFBQWEsU0FBUyxPQUFPLGlCQUFpQjtBQUM3RixXQUFDLFlBQVk7QUFBQyxrQkFBTSxLQUFLLE9BQU8sYUFBYTtBQUFBLFVBQUUsR0FBRztBQUFBLFFBQ25ELENBQUM7QUFBQSxNQUNGLENBQUM7QUFBQSxJQUNGLENBQUM7QUFDRixRQUFJLHdCQUFRLFdBQVcsRUFDckIsUUFBUSwrQkFBK0IsRUFDdkMsUUFBUSxvRkFBb0YsRUFDNUYsS0FBSyxDQUFDLFlBQVk7QUFDbEIsVUFBSTtBQUNKLGNBQVEsVUFBVSxDQUFDLFdBQVc7QUFBQywyQkFBbUIsT0FDaEQsVUFBVSxHQUFFLEdBQUUsQ0FBQyxFQUNmLFNBQVMsS0FBSyxPQUFPLFNBQVMsYUFBYSxTQUFTLE9BQU8sZ0JBQWdCLEVBQzNFLGtCQUFrQixFQUNsQixTQUFTLENBQUMsVUFBVTtBQUNwQixlQUFLLE9BQU8sU0FBUyxhQUFhLFNBQVMsT0FBTyxtQkFBbUI7QUFDckUsV0FBQyxZQUFZO0FBQUMsa0JBQU0sS0FBSyxPQUFPLGFBQWE7QUFBQSxVQUFFLEdBQUc7QUFBQSxRQUNuRCxDQUFDO0FBQUEsTUFDRixDQUFDO0FBQ0QsY0FBUSxlQUFlLENBQUMsV0FBVztBQUFDLGVBQ2xDLFFBQVEsT0FBTyxFQUNmLFdBQVcsbUNBQW1DLEVBQzlDLFFBQVEsTUFBTTtBQUNkLGVBQUssT0FBTyxTQUFTLGFBQWEsU0FBUyxPQUFPLG1CQUFtQixLQUFLLE9BQU8sU0FBUyxPQUFPLEtBQUssT0FBTyxTQUFTLGFBQWEsRUFBRSxTQUFTLE9BQU87QUFDckosMkJBQWlCLFNBQVMsS0FBSyxPQUFPLFNBQVMsYUFBYSxTQUFTLE9BQU8sZ0JBQWdCO0FBQzVGLFdBQUMsWUFBWTtBQUFDLGtCQUFNLEtBQUssT0FBTyxhQUFhO0FBQUEsVUFBRSxHQUFHO0FBQUEsUUFDbkQsQ0FBQztBQUFBLE1BQ0YsQ0FBQztBQUFBLElBQ0YsQ0FBQztBQUNGLFFBQUksd0JBQVEsV0FBVyxFQUNyQixRQUFRLDBCQUEwQixFQUNsQyxRQUFRLHdDQUF3QyxFQUNoRCxLQUFLLENBQUMsWUFBWTtBQUFDLFdBQUs7QUFBQSxRQUN4QixLQUFLO0FBQUEsUUFBTztBQUFBLFFBQVk7QUFBQSxRQUN4QjtBQUFBLFFBQ0EsQ0FBQyx5QkFBaUQscUJBQXFCLGVBQWUsQ0FBQyxFQUFFLE9BQU87QUFBQSxRQUNoRyxDQUFDLHNCQUE4QyxlQUF1QjtBQUFDLCtCQUFxQixlQUFlLENBQUMsRUFBRSxPQUFPLGtCQUFrQjtBQUFBLFFBQVc7QUFBQSxNQUNuSjtBQUFBLElBQUUsQ0FBQztBQUNKLFFBQUksd0JBQVEsV0FBVyxFQUNyQixRQUFRLCtCQUErQixFQUN2QyxRQUFRLGdEQUFnRCxFQUN4RCxLQUFLLENBQUMsWUFBWTtBQUNsQixVQUFJO0FBQ0osY0FBUSxVQUFVLENBQUMsV0FBVztBQUFDLDJCQUFtQixPQUNoRCxVQUFVLEdBQUUsR0FBRSxDQUFDLEVBQ2YsU0FBUyxLQUFLLE9BQU8sU0FBUyxhQUFhLFNBQVMsT0FBTyxlQUFlLEVBQzFFLGtCQUFrQixFQUNsQixTQUFTLENBQUMsVUFBVTtBQUNwQixlQUFLLE9BQU8sU0FBUyxhQUFhLFNBQVMsT0FBTyxrQkFBa0I7QUFDcEUsV0FBQyxZQUFZO0FBQUMsa0JBQU0sS0FBSyxPQUFPLGFBQWE7QUFBQSxVQUFFLEdBQUc7QUFBQSxRQUNuRCxDQUFDO0FBQUEsTUFDRixDQUFDO0FBQ0QsY0FBUSxlQUFlLENBQUMsV0FBVztBQUFDLGVBQ2xDLFFBQVEsT0FBTyxFQUNmLFdBQVcsNkJBQTZCLEVBQ3hDLFFBQVEsTUFBTTtBQUNkLGVBQUssT0FBTyxTQUFTLGFBQWEsU0FBUyxPQUFPLGtCQUFrQixLQUFLLE9BQU8sU0FBUyxPQUFPLEtBQUssT0FBTyxTQUFTLGFBQWEsRUFBRSxTQUFTLE9BQU87QUFDcEosMkJBQWlCLFNBQVMsS0FBSyxPQUFPLFNBQVMsYUFBYSxTQUFTLE9BQU8sZUFBZTtBQUMzRixXQUFDLFlBQVk7QUFBQyxrQkFBTSxLQUFLLE9BQU8sYUFBYTtBQUFBLFVBQUUsR0FBRztBQUFBLFFBQ25ELENBQUM7QUFBQSxNQUNGLENBQUM7QUFBQSxJQUNGLENBQUM7QUFHRixnQkFBWSxTQUFTLE1BQU0sRUFBQyxNQUFNLG9CQUFtQixDQUFDO0FBR3RELFFBQUk7QUFDSixRQUFJLHdCQUFRLFdBQVcsRUFDckIsUUFBUSxxQkFBcUIsRUFDN0IsUUFBUSxzS0FBd0ssRUFDaEwsVUFBVSxZQUFVO0FBQUMsOEJBQXdCLE9BQzVDLFNBQVMsS0FBSyxPQUFPLFNBQVMsYUFBYSxTQUFTLFVBQVUsZUFBZSxFQUM3RSxZQUFZLENBQUMsS0FBSyxPQUFPLFNBQVMsYUFBYSxTQUFTLFVBQVUsV0FBVyxFQUM3RSxTQUFTLENBQUMsVUFBVTtBQUNwQixhQUFLLE9BQU8sU0FBUyxhQUFhLFNBQVMsVUFBVSxrQkFBa0I7QUFDdkUsU0FBQyxZQUFZO0FBQUMsZ0JBQU0sS0FBSyxPQUFPLGFBQWE7QUFBQSxRQUFFLEdBQUc7QUFDbEQsYUFBSyxPQUFPLGtCQUFrQjtBQUFBLE1BQy9CLENBQUM7QUFDRixXQUFLLHNCQUFzQixXQUFXLEVBQUUsS0FBSyxxQkFBcUI7QUFBQSxJQUNsRSxDQUFDO0FBQ0YsUUFBSSx3QkFBUSxXQUFXLEVBQ3JCLFFBQVEsZUFBZSxFQUN2QixRQUFRLGdEQUFnRCxFQUN4RCxLQUFLLENBQUMsWUFBWTtBQUFDLFdBQUs7QUFBQSxRQUN4QixLQUFLO0FBQUEsUUFBTztBQUFBLFFBQVk7QUFBQSxRQUN4QjtBQUFBLFFBQ0EsQ0FBQyx5QkFBaUQscUJBQXFCLGVBQWUsQ0FBQyxFQUFFLFNBQVM7QUFBQSxRQUNsRyxDQUFDLHNCQUE4QyxlQUF1QjtBQUFDLCtCQUFxQixlQUFlLENBQUMsRUFBRSxTQUFTLGVBQWU7QUFBQSxRQUFXO0FBQUEsTUFDbEo7QUFBQSxJQUFFLENBQUM7QUFDSixRQUFJLHdCQUFRLFdBQVcsRUFDckIsUUFBUSxzQkFBc0IsRUFDOUIsUUFBUSxvQ0FBb0MsRUFDNUMsS0FBSyxDQUFDLFlBQVk7QUFBQyxXQUFLO0FBQUEsUUFDeEIsS0FBSztBQUFBLFFBQU87QUFBQSxRQUFZO0FBQUEsUUFDeEI7QUFBQSxRQUNBLENBQUMseUJBQWlELHFCQUFxQixlQUFlLENBQUMsRUFBRSxTQUFTO0FBQUEsUUFDbEcsQ0FBQyxzQkFBOEMsZUFBdUI7QUFBQywrQkFBcUIsZUFBZSxDQUFDLEVBQUUsU0FBUyxxQkFBcUI7QUFBQSxRQUFXO0FBQUEsTUFDeEo7QUFBQSxJQUFFLENBQUM7QUFDSixRQUFJLHdCQUFRLFdBQVcsRUFDckIsUUFBUSx1QkFBdUIsRUFDL0IsUUFBUSwwR0FBMEcsRUFDbEgsVUFBVSxZQUFVLE9BQ25CLFNBQVMsS0FBSyxPQUFPLFNBQVMsYUFBYSxTQUFTLFNBQVMsa0JBQWtCLEVBQy9FLFNBQVMsQ0FBQyxVQUFVO0FBQ3BCLFdBQUssT0FBTyxTQUFTLGFBQWEsU0FBUyxTQUFTLHFCQUFxQjtBQUN6RSxXQUFLLHNCQUFzQixzQkFBc0IsRUFBRSxRQUFRLGVBQWE7QUFBQyxrQkFBVSxZQUFZLENBQUMsS0FBSztBQUFBLE1BQUUsQ0FBQztBQUN4RyxPQUFDLFlBQVk7QUFBQyxjQUFNLEtBQUssT0FBTyxhQUFhO0FBQUEsTUFBRSxHQUFHO0FBQUEsSUFDbkQsQ0FBQyxDQUFDLEVBQ0YsS0FBSyxDQUFDLFlBQVk7QUFDbEIsVUFBSTtBQUNKLGNBQVEsVUFBVSxDQUFDLFdBQVc7QUFBQywyQkFBbUIsT0FDaEQsVUFBVSxHQUFFLEtBQUksQ0FBQyxFQUNqQixTQUFTLENBQUMsS0FBSyxPQUFPLFNBQVMsYUFBYSxTQUFTLFNBQVMsNkJBQTZCLE1BQU0sR0FBRSxFQUFFLENBQUMsRUFDdEcsWUFBWSxDQUFDLEtBQUssT0FBTyxTQUFTLGFBQWEsU0FBUyxTQUFTLGtCQUFrQixFQUNuRixrQkFBa0IsRUFDbEIsU0FBUyxDQUFDLFVBQVU7QUFDcEIsZUFBSyxPQUFPLFNBQVMsYUFBYSxTQUFTLFNBQVMsK0JBQStCLEdBQUcsS0FBSztBQUMzRixXQUFDLFlBQVk7QUFBQyxrQkFBTSxLQUFLLE9BQU8sYUFBYTtBQUFBLFVBQUUsR0FBRztBQUFBLFFBQ25ELENBQUM7QUFDRixhQUFLLHNCQUFzQixzQkFBc0IsRUFBRSxLQUFLLGdCQUFnQjtBQUFBLE1BQ3hFLENBQUM7QUFDRCxVQUFJO0FBQ0osY0FBUSxlQUFlLENBQUMsV0FBVztBQUFDLHNCQUFjLE9BQ2hELFFBQVEsT0FBTyxFQUNmLFlBQVksQ0FBQyxLQUFLLE9BQU8sU0FBUyxhQUFhLFNBQVMsU0FBUyxrQkFBa0IsRUFDbkYsV0FBVyw2QkFBNkIsRUFDeEMsUUFBUSxNQUFNO0FBQ2QsZUFBSyxPQUFPLFNBQVMsYUFBYSxTQUFTLFNBQVMsK0JBQStCLEtBQUssT0FBTyxTQUFTLE9BQU8sS0FBSyxPQUFPLFNBQVMsYUFBYSxFQUFFLFNBQVMsU0FBUztBQUNySywyQkFBaUIsU0FBUyxDQUFDLEtBQUssT0FBTyxTQUFTLGFBQWEsU0FBUyxTQUFTLDZCQUE2QixNQUFNLEdBQUUsRUFBRSxDQUFDO0FBQ3ZILFdBQUMsWUFBWTtBQUFDLGtCQUFNLEtBQUssT0FBTyxhQUFhO0FBQUEsVUFBRSxHQUFHO0FBQUEsUUFDbkQsQ0FBQztBQUNGLGFBQUssc0JBQXNCLHNCQUFzQixFQUFFLEtBQUssV0FBVztBQUFBLE1BQ25FLENBQUM7QUFBQSxJQUNGLENBQUM7QUFDRixRQUFJLHdCQUFRLFdBQVcsRUFDckIsUUFBUSwyQkFBMkIsRUFDbkMsUUFBUSw4SEFBOEgsRUFDdEksVUFBVSxZQUFVLE9BQ25CLFNBQVMsS0FBSyxPQUFPLFNBQVMsYUFBYSxTQUFTLFNBQVMsb0JBQW9CLEVBQ2pGLFNBQVMsQ0FBQyxVQUFVO0FBQ3BCLFdBQUssT0FBTyxTQUFTLGFBQWEsU0FBUyxTQUFTLHVCQUF1QjtBQUMzRSxXQUFLLHNCQUFzQixzQkFBc0IsRUFBRSxRQUFRLGVBQWE7QUFBQyxrQkFBVSxZQUFZLENBQUMsS0FBSztBQUFBLE1BQUUsQ0FBQztBQUN4RyxPQUFDLFlBQVk7QUFBQyxjQUFNLEtBQUssT0FBTyxhQUFhO0FBQUEsTUFBRSxHQUFHO0FBQUEsSUFDbkQsQ0FBQyxDQUFDLEVBQ0YsS0FBSyxDQUFDLFlBQVk7QUFDbEIsVUFBSTtBQUNKLGNBQVEsVUFBVSxDQUFDLFdBQVc7QUFBQywyQkFBbUIsT0FDaEQsVUFBVSxHQUFFLElBQUcsQ0FBQyxFQUNoQixTQUFTLEtBQUssT0FBTyxTQUFTLGFBQWEsU0FBUyxTQUFTLG1CQUFtQixFQUNoRixZQUFZLENBQUMsS0FBSyxPQUFPLFNBQVMsYUFBYSxTQUFTLFNBQVMsb0JBQW9CLEVBQ3JGLGtCQUFrQixFQUNsQixTQUFTLENBQUMsVUFBVTtBQUNwQixlQUFLLE9BQU8sU0FBUyxhQUFhLFNBQVMsU0FBUyxzQkFBc0I7QUFDMUUsV0FBQyxZQUFZO0FBQUMsa0JBQU0sS0FBSyxPQUFPLGFBQWE7QUFBQSxVQUFFLEdBQUc7QUFBQSxRQUNuRCxDQUFDO0FBQ0YsYUFBSyxzQkFBc0Isc0JBQXNCLEVBQUUsS0FBSyxnQkFBZ0I7QUFBQSxNQUN4RSxDQUFDO0FBQ0QsVUFBSTtBQUNKLGNBQVEsZUFBZSxDQUFDLFdBQVc7QUFBQyxzQkFBYyxPQUNoRCxRQUFRLE9BQU8sRUFDZixZQUFZLENBQUMsS0FBSyxPQUFPLFNBQVMsYUFBYSxTQUFTLFNBQVMsb0JBQW9CLEVBQ3JGLFdBQVcsNkJBQTZCLEVBQ3hDLFFBQVEsTUFBTTtBQUNkLGVBQUssT0FBTyxTQUFTLGFBQWEsU0FBUyxTQUFTLHNCQUFzQixLQUFLLE9BQU8sU0FBUyxPQUFPLEtBQUssT0FBTyxTQUFTLGFBQWEsRUFBRSxTQUFTLFNBQVM7QUFDNUosMkJBQWlCLFNBQVMsS0FBSyxPQUFPLFNBQVMsYUFBYSxTQUFTLFNBQVMsbUJBQW1CO0FBQ2pHLFdBQUMsWUFBWTtBQUFDLGtCQUFNLEtBQUssT0FBTyxhQUFhO0FBQUEsVUFBRSxHQUFHO0FBQUEsUUFDbkQsQ0FBQztBQUNGLGFBQUssc0JBQXNCLHNCQUFzQixFQUFFLEtBQUssV0FBVztBQUFBLE1BQ25FLENBQUM7QUFBQSxJQUNGLENBQUM7QUFFRixRQUFJLHdCQUFRLFdBQVcsRUFDckIsUUFBUSw0QkFBNEIsRUFDcEMsUUFBUSwyVUFBMlUsRUFDblYsU0FBUywrQkFBK0IsRUFDeEMsWUFBWSxjQUFZLFNBQ3ZCLFNBQVMsS0FBSyxVQUFVLEtBQUssT0FBTyxTQUFTLGlCQUFpQixNQUFJLE9BQUssS0FBRyxLQUFLLFVBQVUsS0FBSyxPQUFPLFNBQVMsbUJBQWtCLE1BQUssQ0FBQyxDQUFDLEVBQ3ZJLGVBQWUsS0FBSyxVQUFVLEVBQUMsTUFBTSxFQUFDLFFBQVEsV0FBVyxNQUFNLG9CQUFvQixLQUFLLEVBQUMsRUFBQyxHQUFFLE1BQUssQ0FBQyxDQUFDLEVBQ25HLFNBQVMsQ0FBQyxVQUFRO0FBQ2xCLFVBQUksVUFBVSxJQUFJO0FBQ2pCLGFBQUssT0FBTyxTQUFTLG9CQUFvQixDQUFDO0FBQzFDLFNBQUMsWUFBWTtBQUFDLGdCQUFNLEtBQUssT0FBTyxhQUFhO0FBQUEsUUFBRSxHQUFHO0FBQUEsTUFDbkQsT0FBTztBQUNOLFlBQUk7QUFDSCxlQUFLLE9BQU8sU0FBUyxvQkFBb0IsS0FBSyxNQUFNLEtBQUs7QUFDekQsZUFBSyxrQkFBa0I7QUFDdkIsV0FBQyxZQUFZO0FBQUMsa0JBQU0sS0FBSyxPQUFPLGFBQWE7QUFBQSxVQUFFLEdBQUc7QUFBQSxRQUNuRCxTQUFRQyxJQUFBO0FBQ1AsY0FBSSx1QkFBTyxjQUFjO0FBQUEsUUFDMUI7QUFBQSxNQUNEO0FBQUEsSUFDRCxDQUFDLENBQUM7QUFHSixVQUFNLGNBQWMsWUFBWSxTQUFTLE9BQU8sRUFBRSxLQUFLLHVCQUF3QixDQUFDO0FBQ2hGLFVBQU0sZUFBZSxTQUFTLEtBQUssRUFBQyxNQUFNLHVHQUFzRyxDQUFDO0FBQ2pKLGdCQUFZLFlBQVksWUFBWTtBQUNwQyxVQUFNLGlCQUFpQixTQUFTLEtBQUssRUFBRSxNQUFNLDBDQUF5QyxDQUFDO0FBQ3ZGLG1CQUFlLFlBQVk7QUFDM0IsZ0JBQVksWUFBWSxjQUFjO0FBQUEsRUFDdkM7QUFBQTtBQUFBLEVBR0Esb0JBQW9CO0FBQ25CLFdBQU8sUUFBUSxLQUFLLE9BQU8sU0FBUyxpQkFBaUIsRUFBRSxRQUFRLENBQUMsQ0FBQyxjQUFjLGdCQUFnQixNQUFnRDtBQUM5SSxVQUFJLFVBQVUsa0JBQWtCO0FBQy9CLFlBQUksZUFBZSxZQUFZLEtBQUssS0FBSyxPQUFPO0FBQy9DLGNBQUksZ0JBQWdCLEtBQUssT0FBTyxjQUFjLGVBQWUsWUFBWSxDQUFDLENBQUM7QUFDNUUsYUFBSyxPQUFPLGNBQWMsZUFBZSxZQUFZLENBQUMsSUFBSSxJQUFJLGdCQUFnQixJQUFJLEtBQUssQ0FBQywwR0FBMEcsaUJBQWlCLElBQUksUUFBUSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQyxDQUFDO0FBQUEsTUFDN1A7QUFBQSxJQUNELENBQUM7QUFBQSxFQUNGO0FBQUE7QUFBQSxFQUdBLFlBQVksUUFBMEIsYUFBMEIsU0FBa0IsSUFBWSx3QkFBZ0YseUJBQW1HLFVBQXdCO0FBQ3hTLFVBQU0sUUFBeUIsSUFBSSxnQkFBZ0IsUUFBTyxhQUFZLFNBQVEsd0JBQXVCLHVCQUF1QjtBQUM1SCxVQUNFLEdBQUcsUUFBUSxDQUFDLFFBQXlCLGFBQW9CO0FBQ3pELFVBQUksT0FBTyxhQUFhLGVBQWUsU0FBUztBQUMvQyxpQkFBUyxLQUFLO0FBQUEsSUFFaEIsQ0FBQyxFQUNBLEdBQUcsUUFBUSxDQUFDLFFBQXlCLGFBQThCO0FBQ25FLFlBQU0sY0FBc0IsSUFBSSxPQUFPLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxDQUFDLENBQUM7QUFDdkUsZUFBUyxLQUFLO0FBQ2QsZUFBUyxVQUFVLFdBQVc7QUFDOUIsZUFBUyxXQUFXLFdBQVc7QUFBQSxJQUNoQyxDQUFDLEVBQ0EsR0FBRyxVQUFVLENBQUMsYUFBOEI7QUFBQyxlQUFTLEtBQUs7QUFBQSxJQUFFLENBQUM7QUFDaEUsWUFBUSxlQUFlLENBQUMsV0FBVztBQUFDLFlBQU0sY0FBYyxPQUN0RCxRQUFRLE9BQU8sRUFDZixZQUFZLE9BQU8sYUFBYSxlQUFlLFNBQVMsQ0FBQyxFQUN6RCxXQUFXLHdCQUF3QixFQUNuQyxRQUFRLE1BQU07QUFBQyxjQUFNLFlBQVk7QUFBQSxNQUFFLENBQUM7QUFBQSxJQUN0QyxDQUFDO0FBQ0QsU0FBSyxPQUFPLEVBQUUsSUFBRTtBQUFBLEVBQ2pCO0FBQUE7QUFBQSxFQUdBLGVBQWUsVUFBNkIsVUFBOEI7QUFDekUsYUFBUyxTQUFTLE1BQU07QUFDeEIsV0FBTyxLQUFLLFNBQVMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxlQUF1QjtBQUM1RCxlQUFTLFVBQVUsWUFBWSxVQUFVO0FBQUEsSUFDMUMsQ0FBQztBQUNELGFBQVMsU0FBUyxTQUFTLGFBQWE7QUFBQSxFQUN6QztBQUFBLEVBQ0EsNEJBQTRCLGdDQUFnRDtBQUMzRSxtQ0FBK0IsTUFBTTtBQUNyQyxXQUFPLEtBQUssS0FBSyxPQUFPLFNBQVMsYUFBYSxRQUFRLE1BQU0sV0FBVyxxQkFBcUIsRUFBRSxRQUFRLENBQUMsNkJBQTZCO0FBQ25JLFVBQUksd0JBQVEsOEJBQThCLEVBQ3hDLFFBQVEsd0JBQXdCLEVBQ2hDLFFBQVEsbURBQW1ELHdCQUF3QixhQUFhLEVBQ2hHLEtBQUssQ0FBQyxZQUFZO0FBQ2xCLGFBQUs7QUFBQSxVQUNKLEtBQUs7QUFBQSxVQUFPO0FBQUEsVUFBK0I7QUFBQSxVQUMzQyx5QkFBeUIsd0JBQXdCO0FBQUEsVUFDakQsQ0FBQyx5QkFBaUQsNEJBQTRCLHFCQUFxQixNQUFNLFdBQVcsd0JBQXNCLHFCQUFxQixlQUFlLENBQUMsRUFBRSxXQUFXLHNCQUFzQix3QkFBd0IsSUFBRSxLQUFLLE9BQU8sU0FBUyxhQUFhLFFBQVEsZUFBZSxDQUFDLEVBQUUsV0FBVyxzQkFBc0Isd0JBQXdCO0FBQUEsVUFDalcsQ0FBQyxzQkFBOEMsZUFBdUI7QUFBQyxpQ0FBcUIsZUFBZSxDQUFDLEVBQUUsV0FBVyxzQkFBc0Isd0JBQXdCLElBQUk7QUFBQSxVQUFXO0FBQUEsUUFDdkw7QUFDQSxnQkFBUSxlQUFlLENBQUMsV0FBVztBQUFDLGlCQUNsQyxRQUFRLE9BQU8sRUFDZixXQUFXLGtCQUFrQixFQUM3QixRQUFRLE1BQU07QUFDZCxtQkFBTyxLQUFLLE9BQU8sU0FBUyxhQUFhLFFBQVEsTUFBTSxXQUFXLHNCQUFzQix3QkFBd0I7QUFDaEgsbUJBQU8sS0FBSyxPQUFPLFNBQVMsYUFBYSxRQUFRLEtBQUssV0FBVyxzQkFBc0Isd0JBQXdCO0FBQy9HLGdCQUFJLHVCQUFPLHNCQUFzQix3QkFBd0IsSUFBSTtBQUM3RCxpQkFBSyw0QkFBNEIsOEJBQThCO0FBQy9ELGFBQUMsWUFBWTtBQUFDLG9CQUFNLEtBQUssT0FBTyxhQUFhO0FBQUEsWUFBRSxHQUFHO0FBQUEsVUFDbkQsQ0FBQztBQUFBLFFBQ0YsQ0FBQztBQUFBLE1BQ0YsQ0FBQztBQUFBLElBQ0gsQ0FBQztBQUFBLEVBQ0Y7QUFDRDtBQUVBLElBQU0sa0JBQU4sY0FBOEIsYUFBQUMsUUFBTTtBQUFBLEVBTW5DLFlBQVksUUFBMEIsYUFBMEIsU0FBa0Isd0JBQWdGLHlCQUFtRyxTQUFrQjtBQUN0UixVQUFNLFdBQTBCO0FBQUEsTUFDL0IsSUFBSSxRQUFRLFVBQVUsVUFBVSxFQUFDLEtBQUssU0FBUSxDQUFDO0FBQUEsTUFDL0MsT0FBTztBQUFBLE1BQ1AsU0FBUyxVQUFVLHVCQUF1QixPQUFPLFNBQVMsYUFBYSxPQUFPLENBQUM7QUFBQSxNQUMvRSxVQUFVO0FBQUEsTUFDVixhQUFhO0FBQUEsTUFDYixZQUFZO0FBQUEsUUFDWCxTQUFTO0FBQUEsUUFDVCxLQUFLO0FBQUEsUUFDTCxTQUFTO0FBQUEsUUFDVCxhQUFhO0FBQUEsVUFDWixLQUFLO0FBQUEsVUFDTCxNQUFNO0FBQUEsVUFDTixNQUFNO0FBQUEsVUFDTixPQUFPO0FBQUEsVUFDUCxRQUFRO0FBQUEsVUFDUixNQUFNO0FBQUEsUUFDUDtBQUFBLE1BQ0Q7QUFBQSxNQUNBLE1BQU07QUFBQSxRQUNMLGFBQWE7QUFBQSxRQUNiLGNBQWUsT0FBTyxZQUFZLGNBQWEsVUFBUTtBQUFBLFFBQ3ZELGNBQWM7QUFBQSxRQUNkLGtCQUFrQjtBQUFBLE1BQ25CO0FBQUEsSUFDRDtBQUNBLFFBQUksWUFBWSxrQkFBa0I7QUFDakMsZUFBUyxZQUFZLFlBQVk7QUFDbEMsVUFBTSxRQUFRO0FBQ2QsU0FBSyxhQUFhLENBQUMsZUFBdUI7QUFDekMsOEJBQXdCLE9BQU8sU0FBUyxhQUFhLFNBQVEsVUFBVTtBQUN2RSxPQUFDLFlBQVk7QUFBQyxjQUFNLE9BQU8sYUFBYTtBQUFBLE1BQUUsR0FBRztBQUFBLElBQzlDO0FBQ0EsU0FBSyxjQUFjLE1BQU07QUFDeEIsWUFBTSxjQUFzQix1QkFBdUIsT0FBTyxTQUFTLE9BQU8sT0FBTyxTQUFTLGFBQWEsRUFBRSxPQUFPO0FBQ2hILFdBQUssU0FBUyxVQUFVLFdBQVcsQ0FBQztBQUNwQyxXQUFLLFdBQVcsV0FBVztBQUFBLElBQzVCO0FBQUEsRUFDRDtBQUNEO0FBR0EsU0FBUyxrQkFBMEI7QUFDbEMsUUFBTSxVQUFVO0FBQ2hCLE1BQUksU0FBUztBQUNiLFdBQVNDLEtBQUksR0FBR0EsS0FBSSxHQUFHQTtBQUN0QixjQUFVLFFBQVEsS0FBSyxNQUFNLEtBQUssT0FBTyxJQUFJLEVBQUUsQ0FBQztBQUNqRCxTQUFPLElBQUksTUFBTTtBQUNsQjtBQUNPLFNBQVMsVUFBVSxhQUE2QjtBQUN0RCxTQUFPLE1BQU0sV0FBVyxJQUFFLGVBQWUsV0FBVyxJQUFFO0FBQ3ZEO0FBQ08sU0FBUyxNQUFNLGFBQXlDO0FBQzlELFNBQU8sWUFBWSxXQUFXLElBQUksS0FBSyxPQUFPLGdCQUFnQjtBQUMvRDtBQUNBLFNBQVMsZUFBZSxhQUF1QjtBQUM5QyxRQUFNLGdCQUFnQixPQUFPLGlCQUFpQixTQUFTLElBQUksRUFBRSxpQkFBaUIsV0FBVyxFQUFFLEtBQUs7QUFDaEcsTUFBSSxPQUFPLGtCQUFrQixZQUFZLGNBQWMsV0FBVyxHQUFHO0FBQ3BFLFdBQU8sSUFBSSxjQUFjLEtBQUssRUFBRSxVQUFVLENBQUMsQ0FBQztBQUFBLFdBQ3BDLGNBQWMsV0FBVyxLQUFLO0FBQ3RDLFdBQU8sSUFBSSxHQUFnQixPQUFPLGNBQWMsUUFBUSxrQkFBaUIsQ0FBQyxPQUFNLFlBQVUsS0FBSyxPQUFPLENBQUMsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxDQUFDO0FBQUEsV0FDOUcsY0FBYyxXQUFXLEtBQUs7QUFDdEMsV0FBTyxJQUFJLEdBQWdCLE9BQU8sY0FBYyxRQUFRLGtCQUFpQixDQUFDLE9BQU0sWUFBVSxLQUFLLE9BQU8sQ0FBQyxDQUFDLEVBQUUsVUFBVSxDQUFDLENBQUM7QUFBQTtBQUV0SCxZQUFRLEtBQUssK0NBQStDLGFBQWEsRUFBRTtBQUM1RSxTQUFPLElBQUksR0FBZ0IsT0FBTyxhQUFhLEVBQUUsVUFBVSxDQUFDLENBQUM7QUFDOUQ7QUFDQSxTQUFTLEtBQUssWUFBNEI7QUFDekMsUUFBTSxjQUFjLFdBQVcsS0FBSyxFQUFFLFFBQVEsV0FBVSxJQUFJLEVBQUUsTUFBTSxHQUFHO0FBQ3ZFLFFBQU0sWUFBbUU7QUFBQSxJQUN4RSxLQUFLLENBQUMsTUFBYSxTQUF1QixLQUFLLElBQUksT0FBSyxNQUFLLENBQUM7QUFBQSxJQUM5RCxLQUFLLENBQUMsTUFBYSxTQUF1QixLQUFLLElBQUksT0FBSyxNQUFLLENBQUM7QUFBQSxFQUMvRDtBQUNBLE1BQUksWUFBWSxXQUFXO0FBQzFCLFFBQUksWUFBWSxDQUFDLEtBQUs7QUFDckIsYUFBTyxHQUFHLFVBQVUsWUFBWSxDQUFDLENBQUMsRUFBRSxXQUFXLFlBQVksQ0FBQyxDQUFDLEdBQUUsV0FBVyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFBQTtBQUU1RixVQUFRLEtBQUsscUNBQXFDO0FBQ2xELFNBQU87QUFDUjtBQUVBLFNBQVMsaUJBQWlCO0FBQ3pCLFFBQU1DLFFBQU8sU0FBUyxjQUFjLE1BQU07QUFDMUMsTUFBSUEsVUFBUyxNQUFLO0FBQ2pCLFFBQUlBLE1BQUssVUFBVSxTQUFTLGFBQWE7QUFDeEMsYUFBTztBQUFBLGFBQ0NBLE1BQUssVUFBVSxTQUFTLFlBQVk7QUFDNUMsYUFBTztBQUFBLEVBQ1Q7QUFDQSxVQUFRLEtBQUsscUNBQXFDO0FBQ2xELFNBQU87QUFDUjs7O0FFMWpDQSxJQUFNLFdBQVc7QUFDakIsSUFBTSxlQUEwQztBQUFBLEVBQy9DLFNBQVM7QUFBQSxJQUNSLFFBQVE7QUFBQSxNQUNQLE1BQU07QUFBQSxNQUNOLE9BQU87QUFBQSxJQUNSO0FBQUEsRUFDRDtBQUFBLEVBQ0Esb0JBQW9CO0FBQUEsSUFDbkIsUUFBUTtBQUFBLE1BQ1AsTUFBTTtBQUFBLE1BQ04sT0FBTztBQUFBLElBQ1I7QUFBQSxFQUNEO0FBQUEsRUFDQSxXQUFXO0FBQUEsSUFDVixPQUFPO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQUtSO0FBQUEsRUFDQSxlQUFlO0FBQUEsSUFDZCxXQUFXO0FBQUEsRUFDWjtBQUNEO0FBRU8sU0FBUyxjQUFjLFVBQThCLEtBQWdCO0FBQzNFLFFBQU0sZUFBZSxnQkFBZ0IsR0FBRztBQUN4QyxNQUFJLFdBQVcsU0FBUyxlQUFlLFFBQVE7QUFDL0MsTUFBSSxDQUFDLFVBQVU7QUFDZCxlQUFXLFNBQVMsY0FBYyxPQUFPO0FBQ3pDLGFBQVMsS0FBSztBQUNkLGFBQVMscUJBQXFCLE1BQU0sRUFBRSxDQUFDLEVBQUUsWUFBWSxRQUFRO0FBQUEsRUFDOUQ7QUFDQSxXQUFTLGFBQWEsa0JBQWtCLFNBQVMsYUFBYSxPQUFPLElBQUUsbUJBQW1CLFNBQVMsYUFBYSxVQUFTLFlBQVksSUFBRSxxQkFBcUIsU0FBUyxhQUFhLFVBQVMsU0FBUyxtQkFBa0IsWUFBWSxHQUFHLEtBQUssRUFBRSxRQUFRLFFBQU8sR0FBRztBQUM5UCwwQkFBd0IsU0FBUyxhQUFhLFFBQVE7QUFDdkQ7QUFFQSxTQUFTLGtCQUFtQixjQUE4QztBQUN6RSxTQUFPLE9BQU8sS0FBSyxhQUFhLE1BQU0sV0FBVyxxQkFBcUIsRUFBRSxPQUFPLENBQUMsUUFBZ0IseUJBQWlDO0FBQ2hJLFdBQU8sU0FBUztBQUFBLG9EQUNrQyxxQkFBcUIsUUFBUSxRQUFPLEdBQUcsRUFBRSxZQUFZLENBQUM7QUFBQSxzREFDcEQscUJBQXFCLFFBQVEsUUFBTyxHQUFHLEVBQUUsWUFBWSxDQUFDO0FBQUE7QUFBQTtBQUFBLEVBRzNHLEdBQUU7QUFBQTtBQUFBLEtBRUUsZ0JBQWdCLGFBQWEsS0FBSyxDQUFDO0FBQUE7QUFBQTtBQUFBLEtBR25DLGdCQUFnQixhQUFhLElBQUksQ0FBQztBQUFBO0FBQUEsRUFFckM7QUFDRjtBQUVBLFNBQVMsZ0JBQWlCLGtCQUFzRDtBQUMvRSxTQUFPLE9BQU8sUUFBUTtBQUFBLElBQ3JCLCtCQUErQixpQkFBaUIsVUFBVTtBQUFBLElBQzFELHlCQUF5QixpQkFBaUIsVUFBVTtBQUFBLElBQ3BELDRCQUE0QixpQkFBaUIsT0FBTztBQUFBLElBQ3BELHNCQUFzQixpQkFBaUIsT0FBTztBQUFBLElBQzlDLDZCQUE2QixpQkFBaUIsT0FBTztBQUFBLElBQ3JELDRCQUE0QixpQkFBaUIsT0FBTztBQUFBLElBQ3BELDRCQUE0QixpQkFBaUIsT0FBTyxNQUFNO0FBQUEsSUFDMUQseUNBQXlDLGlCQUFpQixPQUFPLFlBQVk7QUFBQSxJQUM3RSxtQ0FBbUMsaUJBQWlCLE9BQU8sWUFBWTtBQUFBLElBQ3ZFLDJCQUEyQixpQkFBaUIsT0FBTztBQUFBLElBQ25ELGdDQUFnQyxpQkFBaUIsV0FBVztBQUFBLElBQzVELDZCQUE2QixpQkFBaUIsV0FBVztBQUFBLElBQ3pELDRCQUE0QixpQkFBaUIsV0FBVztBQUFBLElBQ3hELGlCQUFpQixpQkFBaUIsU0FBUztBQUFBLElBQzNDLHdCQUF3QixpQkFBaUIsU0FBUztBQUFBLElBQ2xELGlCQUFpQixpQkFBaUIsT0FBTztBQUFBLElBQ3pDLHdCQUF3QixpQkFBaUIsT0FBTztBQUFBLElBQ2hELDRCQUE0QixpQkFBaUIsT0FBTztBQUFBLElBQ3BELHVCQUF1QixpQkFBaUIsT0FBTztBQUFBLElBQy9DLEdBQUcsT0FBTyxRQUFRLGlCQUFpQixXQUFXLHFCQUFxQixFQUFFLE9BQU8sQ0FBQyxRQUE4QixDQUFDLHNCQUFxQixNQUFNLE1BQThDO0FBQ3BMLGFBQU8sR0FBRyxxQkFBcUIsUUFBUSxRQUFPLEdBQUcsRUFBRSxZQUFZLENBQUMsbUJBQW1CLElBQUk7QUFDdkYsYUFBTztBQUFBLElBQ1IsR0FBRSxDQUFDLENBQUM7QUFBQSxFQUNMLENBQUMsRUFBRSxPQUFPLENBQUMsUUFBZ0IsQ0FBQyxhQUFZLE1BQU0sTUFBK0I7QUFDNUUsVUFBTSxjQUFjLE1BQU0sTUFBTSxJQUFFLE9BQU8sTUFBTSxNQUFJO0FBQ25ELFdBQU8sU0FBUyxpQkFBaUIsV0FBVyxLQUFLLFdBQVc7QUFBQSxFQUM3RCxHQUFFLEVBQUU7QUFDTDtBQUVBLFNBQVMsbUJBQW9CLGVBQXdDLGNBQThCO0FBcEduRyxNQUFBQyxLQUFBO0FBcUdDLFNBQU87QUFBQTtBQUFBLGtEQUUwQyxjQUFjLE9BQU8sWUFBWSxXQUFTLFNBQU8sUUFBUTtBQUFBLG9EQUN2RCxjQUFjLE9BQU8sWUFBWSxhQUFXLFdBQVMsUUFBUTtBQUFBLGtCQUMvRixjQUFjLE9BQU8sWUFBWSxhQUFXLEtBQUcsY0FBYyxPQUFPLFlBQVksV0FBUyxrQkFBa0I7QUFBQTtBQUFBO0FBQUEsMkNBR2xGLGNBQWMsT0FBTyxNQUFNLFdBQVMsU0FBTyxRQUFRO0FBQUEsNkNBQ2pELGNBQWMsT0FBTyxNQUFNLGFBQVcsV0FBUyxRQUFRO0FBQUEsa0JBQ2xGLGNBQWMsT0FBTyxZQUFZLGFBQVcsS0FBRyxjQUFjLE9BQU8sWUFBWSxXQUFTLGtCQUFrQjtBQUFBO0FBQUE7QUFBQSxzQkFHdkcsY0FBYyxVQUFVLFNBQVM7QUFBQSwyQkFDNUIsY0FBYyxTQUFTLFFBQVE7QUFBQSx3Q0FDbEIsY0FBYyxTQUFTLHFCQUFtQixjQUFjLFNBQVMsK0JBQTZCLE1BQU07QUFBQSx5QkFDbkgsY0FBYyxPQUFPLFFBQVE7QUFBQSxzQkFDaEMsY0FBYyxVQUFVLGNBQVksUUFBTSxVQUFVO0FBQUEsdUNBQ25DLGNBQWMsT0FBTyxVQUFVO0FBQUEseUNBQzdCLGNBQWMsT0FBTyxTQUFTO0FBQUEsNENBQzNCLGNBQWMsT0FBTyxlQUFlO0FBQUEsOENBQ2xDLGNBQWMsT0FBTyxpQkFBaUI7QUFBQSw2Q0FDdkMsY0FBYyxPQUFPLGdCQUFnQjtBQUFBLDZDQUNyQyxjQUFjLE9BQU8sZUFBZTtBQUFBLEtBQzVFLENBQUMsY0FBYyxVQUFVLGtCQUFnQixLQUFHLG1DQUFtQztBQUFBLEtBQy9FLGNBQWMsT0FBTyxhQUFhLGdCQUFjLEtBQUcsOEJBQThCO0FBQUE7QUFBQSxNQUVsRkEsTUFBQSw2Q0FBZSxrQkFBZixnQkFBQUEsSUFBOEIsVUFBTztBQUFBO0FBQUE7QUFBQSxFQUdwQyxhQUFhLFlBQVksRUFBRSxPQUFPLFFBQU07QUFBQTtBQUFBLEVBRXhDLGFBQWEsWUFBWSxFQUFFLE9BQU8sT0FBSztBQUFBO0FBQUE7QUFBQSxNQUd4QyxFQUFFO0FBQUEsTUFDRixrREFBZSxrQkFBZixtQkFBOEIsYUFBVTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLE1BT3hDLEVBQUU7QUFBQSxNQUNGLGtEQUFlLGtCQUFmLG1CQUE4QixTQUFNLGFBQWEsWUFBWSxFQUFFLFFBQU0sRUFBRTtBQUFBO0FBRTNFO0FBRUEsU0FBUyxxQkFBc0IsZUFBd0MsbUJBQW9FLGNBQThCO0FBQ3hLLFNBQU8sT0FBTyxRQUFRLGNBQWMsRUFBRSxPQUFPLENBQUMsUUFBZSxDQUFDLGNBQWMsbUJBQW1CLE1BQStCO0FBckovSCxRQUFBQSxLQUFBO0FBc0pFLFFBQUksdUJBQXVCLG9CQUFxQixnQkFBZ0IscUJBQXFCLFlBQVksa0JBQWtCLFlBQVksR0FBSTtBQUNsSSxnQkFBVTtBQUFBLGdCQUNHLFlBQVk7QUFBQSxrQ0FDSyxNQUFBQSxNQUFBLHVEQUFvQixrQkFBcEIsZ0JBQUFBLElBQW9DLGNBQXBDLFlBQWlELGlCQUFpQixtQkFBbUIsQ0FBQztBQUFBLGdDQUN2RixjQUFjLFNBQVMsdUJBQXFCLGNBQWMsU0FBUyxzQkFBb0IsQ0FBQztBQUFBO0FBQUE7QUFHckgsV0FBSSxrREFBZSxrQkFBZixtQkFBOEIsUUFBUTtBQUN6QyxrQkFBVTtBQUFBLGdHQUNrRixZQUFZO0FBQUE7QUFBQSxRQUUzRyxjQUFjLFNBQVMsdUJBQXFCLGNBQWMsU0FBUyxzQkFBb0IsYUFBYSxZQUFZLEVBQUUsT0FBTyxPQUFLLENBQUM7QUFBQTtBQUFBLE1BRTdIO0FBQUEsSUFDRDtBQUNBLFdBQU87QUFBQSxFQUNSLEdBQUUsRUFBRTtBQUNMO0FBRUEsU0FBUyx3QkFBeUIsZUFBOEM7QUFDL0UsZ0JBQWMsVUFBVSxjQUFjLFNBQVMsS0FBSyxVQUFVLElBQUksK0JBQStCLElBQUksU0FBUyxLQUFLLFVBQVUsT0FBTywrQkFBK0I7QUFDbkssZ0JBQWMsT0FBTyxZQUFZLFNBQVMsS0FBSyxVQUFVLElBQUksOEJBQThCLElBQUksU0FBUyxLQUFLLFVBQVUsT0FBTyw4QkFBOEI7QUFDNUosZ0JBQWMsT0FBTyxhQUFhLFNBQVMsS0FBSyxVQUFVLElBQUksZ0NBQWdDLElBQUksU0FBUyxLQUFLLFVBQVUsT0FBTyxnQ0FBZ0M7QUFFakssV0FBUyxLQUFLLFVBQVUsT0FBTyxxQ0FBb0MsK0NBQThDLDBDQUEwQztBQUMzSixNQUFJLGNBQWMsV0FBVyxvQkFBb0IsY0FBYyxXQUFXO0FBQ3pFLGFBQVMsS0FBSyxVQUFVLElBQUksbUNBQW1DO0FBQUEsV0FDdkQsY0FBYyxXQUFXLG9CQUFvQixDQUFDLGNBQWMsV0FBVztBQUMvRSxhQUFTLEtBQUssVUFBVSxJQUFJLDBDQUEwQztBQUFBLFdBQzlELENBQUMsY0FBYyxXQUFXLG9CQUFvQixjQUFjLFdBQVc7QUFDL0UsYUFBUyxLQUFLLFVBQVUsSUFBSSw2Q0FBNkM7QUFDM0U7QUFFTyxTQUFTLHlCQUErQjtBQXZML0MsTUFBQUE7QUF3TEMsR0FBQUEsTUFBQSxTQUFTLGVBQWUsUUFBUSxNQUFoQyxnQkFBQUEsSUFBbUM7QUFDbkMsV0FBUyxLQUFLLFVBQVU7QUFBQSxJQUN2QjtBQUFBLElBQ0E7QUFBQSxJQUNBO0FBQUEsSUFDQTtBQUFBLEVBQ0Q7QUFDRDtBQUVBLFNBQVMsZ0JBQWdCLEtBQWtCO0FBRTFDLFNBQU8sSUFBSSxNQUFNLFVBQVUsVUFBVTtBQUN0Qzs7O0FDcE1BLElBQUFDLG1CQUEyRTtBQUMzRSxrQkFBMEY7QUFDMUYsbUJBQTRJO0FBQzVJLHNCQUErQzs7O0FDbUQvQyxlQUFzQixxQkFBcUIsYUFBNEIsWUFBb0IsUUFBd0c7QUFFbE0sUUFBTSxVQUF5QyxPQUFPLElBQUksUUFBUTtBQUNsRSxRQUFNLGNBQXVCLHlCQUF5QjtBQUN0RCxRQUFNLGFBQW1DLENBQUM7QUFDMUMsUUFBTSx1QkFBbUQsQ0FBQztBQUMxRCxXQUFTLHNCQUFzQkMsY0FBa0M7QUE1RGxFLFFBQUFDO0FBNkRFLFFBQUlELGFBQVksV0FBVztBQUMxQjtBQUVELFVBQU0sdUJBQXVCLGVBQWVBLFlBQVc7QUFDdkQsUUFBSSxDQUFDO0FBQ0o7QUFFRCxVQUFNLGlCQUFnQkMsTUFBQSxrQ0FBa0MsS0FBSyxvQkFBb0IsTUFBM0QsZ0JBQUFBLElBQStEO0FBQ3JGLFFBQUksQ0FBQztBQUNKO0FBRUQsVUFBTSxxQkFBcUJELGFBQVksUUFBUSxvQkFBb0I7QUFDbkUsVUFBTSxzQkFBc0JBLGFBQVksTUFBTSxxQkFBbUIsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxTQUFPLElBQUksT0FBTyxrQkFBa0IsYUFBYSxNQUFNLGNBQWMsQ0FBQyxDQUFDLElBQUksRUFBRSxLQUFLLElBQUksQ0FBQztBQUN0SyxRQUFJLENBQUMsZUFBZSxDQUFDLHFDQUFxQyxLQUFLLG9CQUFvQjtBQUNsRixpQkFBVyxLQUFLQSxhQUFZLE1BQU0sR0FBRSxxQkFBbUIsSUFBRSxtQkFBbUIsQ0FBQztBQUFBO0FBRTdFLDRCQUFzQkEsYUFBWSxNQUFNLHFCQUFtQixHQUFFLHFCQUFtQixJQUFFLG1CQUFtQixDQUFDO0FBRXZHLDBCQUFzQkEsYUFBWSxNQUFNLHFCQUFtQixJQUFFLHNCQUFvQixDQUFDLENBQUM7QUFBQSxFQUNwRjtBQUNBLHdCQUFzQixXQUFXO0FBQ2pDLGFBQVcsa0JBQWtCLFlBQVk7QUFDeEMsVUFBTSxnQkFBZ0IsaUJBQWlCLGNBQWM7QUFDckQsUUFBSSxDQUFDO0FBQ0o7QUFDRCxRQUFJLHNCQUFzQix5QkFBeUIsZUFBYyxPQUFPLFNBQVMsWUFBWTtBQUU3RixRQUFJLFdBQVcsb0JBQW9CLFVBQVMsT0FBTyxTQUFTLGtCQUFrQjtBQUM3RTtBQUVELDBCQUFzQixNQUFNLHVCQUF1QixxQkFBb0IsU0FBUSxnQkFBZSxVQUFVO0FBQ3hHLHlCQUFxQixLQUFLLG1CQUFtQjtBQUFBLEVBQzlDO0FBQ0EsU0FBTyxFQUFDLHNCQUE0QyxRQUFRLFdBQVcsQ0FBQyxJQUFFLENBQUMsWUFBWSxhQUFZLFdBQVcsQ0FBQyxDQUFDLElBQUUsS0FBSTtBQUN2SDtBQUNPLFNBQVMsZ0JBQWdCLFVBQTJFO0FBRTFHLFFBQU0sUUFBUSwyQkFBMkIsS0FBSyxRQUFRO0FBRXRELE1BQUksRUFBQywrQkFBUSxPQUFNLEdBQUUsK0JBQVEsUUFBTSwrQkFBUTtBQUMxQyxXQUFPLEVBQUMsWUFBWSxNQUFNLE1BQU0sR0FBRTtBQUFBLFdBQzFCLCtCQUFRO0FBQ2hCLFdBQU8sRUFBQyxZQUFZLE1BQU0sTUFBTSxNQUFNLENBQUMsRUFBRSxVQUFVLE1BQU0sQ0FBQyxFQUFFLE1BQU0sRUFBQztBQUFBO0FBRW5FLFdBQU8sRUFBQyxZQUFZLDBCQUEwQixNQUFNLENBQUMsQ0FBQyxHQUFHLE1BQU0sTUFBTSxDQUFDLEVBQUM7QUFDekU7QUFFTyxTQUFTLHlCQUF5QixlQUF1QixPQUE2QztBQUM1RyxRQUFNLHNCQUEyQztBQUFBLElBQ2hELFVBQVU7QUFBQSxJQUNWLE9BQU87QUFBQSxJQUNQLE1BQU07QUFBQSxNQUNMLFNBQVM7QUFBQSxNQUNULGFBQWE7QUFBQSxJQUNkO0FBQUEsSUFDQSxhQUFhO0FBQUEsTUFDWixlQUFlO0FBQUEsTUFDZixnQkFBZ0I7QUFBQSxNQUNoQixRQUFRO0FBQUEsSUFDVDtBQUFBLElBQ0EsWUFBWTtBQUFBLE1BQ1gsZUFBZTtBQUFBLE1BQ2YsZ0JBQWdCO0FBQUEsTUFDaEIsWUFBWTtBQUFBLElBQ2I7QUFBQSxJQUNBLFlBQVk7QUFBQSxNQUNYLFNBQVM7QUFBQSxRQUNSLGFBQWEsQ0FBQztBQUFBLFFBQ2QsV0FBVyxDQUFDO0FBQUEsUUFDWixvQkFBb0IsQ0FBQztBQUFBLE1BQ3RCO0FBQUEsTUFDQSxhQUFhLENBQUM7QUFBQSxJQUNmO0FBQUEsSUFDQSxRQUFRO0FBQUEsRUFDVDtBQUNBLE1BQUksY0FBYyxXQUFXLEtBQUssR0FBRztBQUNwQyxvQkFBZ0IsY0FBYyxRQUFRLG1CQUFrQixFQUFFO0FBQUEsRUFDM0QsV0FBVyxjQUFjLFdBQVcsS0FBSyxHQUFHO0FBQzNDLG9CQUFnQixjQUFjLFFBQVEsbUJBQWtCLEVBQUU7QUFBQSxFQUMzRCxPQUFPO0FBQ04sV0FBTztBQUFBLEVBQ1I7QUFDQSxRQUFNLGdCQUFnQixjQUFjLFFBQVEsR0FBRztBQUMvQyxzQkFBb0IsV0FBVyxjQUFjLE1BQU0sR0FBRSxrQkFBa0IsS0FBRyxnQkFBYyxjQUFjLE1BQU0sRUFBRSxZQUFZO0FBQzFILE1BQUksa0JBQWtCO0FBQ3JCLFdBQU87QUFDUixRQUFNLG1CQUFtQixjQUFjLE1BQU0sZ0JBQWMsQ0FBQyxFQUFFLE1BQU0sZ0NBQWdDO0FBQ3BHLE1BQUksQ0FBQztBQUNKLFdBQU87QUFDUixtQkFBaUIsUUFBUSxDQUFDLG9CQUFvQiw4QkFBOEIsaUJBQWdCLHFCQUFvQixLQUFLLENBQUM7QUFDdEgsU0FBTztBQUNSO0FBQ0EsZUFBc0IsdUJBQXVCLHFCQUEwQyxTQUF3QyxnQkFBK0IsWUFBa0Q7QUF6SmhOLE1BQUFDLEtBQUE7QUEwSkMsTUFBSSxvQkFBb0IsYUFBYSxXQUFXO0FBQy9DLFVBQUlBLE1BQUEsbUNBQVUsNkJBQVYsZ0JBQUFBLElBQW9DLFdBQVEsd0NBQVUsNkJBQVYsbUJBQW9DLHdCQUF1QjtBQUMxRyxZQUFNLG9CQUFvQixNQUFNLFFBQVEsdUJBQXVCLEVBQUUsS0FBSyxlQUFlLE1BQU0sR0FBRSxFQUFFLEVBQUUsS0FBSyxJQUFJLEdBQUUsVUFBVTtBQUN0SCxVQUFJLENBQUMsb0JBQW9CLFlBQVksa0JBQWtCLENBQUMsb0JBQW9CLFlBQVksZUFBZTtBQUN0RyxZQUFJLE9BQU8sa0JBQWtCLFVBQVU7QUFDdEMsOEJBQW9CLFlBQVksU0FBUyxrQkFBa0IsUUFBUTtBQUNwRSw0QkFBb0IsWUFBWSxnQkFBZ0IsUUFBUSxrQkFBa0IsVUFBVTtBQUFBLE1BQ3JGO0FBQ0EsMEJBQW9CLFdBQVcsUUFBUSxjQUFjLENBQUMsR0FBRyxJQUFJLElBQUksb0JBQW9CLFdBQVcsUUFBUSxZQUFZLE9BQU8sTUFBTSxLQUFLLFFBQVEsdUJBQXVCLEVBQUUsc0JBQXNCLGtCQUFrQixPQUFNLGtCQUFrQixTQUFTLEdBQUUsQ0FBQyxDQUFDLEtBQUlDLEVBQUMsTUFBdUIsR0FBSSxDQUFDLENBQUMsQ0FBQztBQUN2UixVQUFJLG9CQUFvQixVQUFVO0FBQ2pDLDRCQUFvQixTQUFRLDZCQUFrQixTQUFTLE1BQU0sSUFBSSxFQUFFLElBQUksTUFBM0MsbUJBQThDLE1BQU0sS0FBSyxVQUF6RCxZQUFrRTtBQUMvRiwwQkFBb0IsV0FBVyxrQkFBa0I7QUFBQSxJQUNsRDtBQUFBLEVBQ0QsV0FBVyxvQkFBb0IsYUFBYSxXQUFXO0FBQ3RELFFBQUksa0JBQWtCLFNBQVM7QUFDOUIsWUFBTSx1QkFBc0IsMEJBQWUsQ0FBQyxFQUFFLE1BQU0sZ0NBQWdDLE1BQXhELG1CQUEyRCxXQUEzRCxtQkFBbUU7QUFDL0YsVUFBSSxPQUFPLHdCQUF3QjtBQUNsQyw0QkFBb0IsV0FBVztBQUFBLElBQ2pDO0FBQUEsRUFDRCxXQUFXLFVBQVUsS0FBSyxvQkFBb0IsUUFBUSxHQUFHO0FBQ3hELFlBQVEsSUFBSSxLQUFLO0FBQ2pCLFFBQUksa0JBQWtCLFNBQVM7QUFDOUIsVUFBSSxpQ0FBaUMsU0FBUyxvQkFBb0IsU0FBUyxNQUFNLENBQUMsQ0FBQztBQUNsRiw0QkFBb0IsV0FBVyxvQkFBb0IsU0FBUyxNQUFNLENBQUM7QUFBQSxJQUNyRTtBQUFBLEVBQ0Q7QUFDQSxTQUFPO0FBQ1I7QUFDQSxTQUFTLDBCQUEwQixlQUE2QztBQUMvRSxRQUFNLHVCQUE2QztBQUFBLElBQ2xELFVBQVU7QUFBQSxJQUNWLE9BQU87QUFBQSxJQUNQLE1BQU07QUFBQSxFQUNQO0FBQ0EsUUFBTSxnQkFBZ0IsY0FBYyxRQUFRLEdBQUc7QUFDL0MsdUJBQXFCLFdBQVcsY0FBYyxNQUFNLEdBQUUsa0JBQWtCLEtBQUcsZ0JBQWMsY0FBYyxNQUFNLEVBQUUsWUFBWTtBQUMzSCxNQUFJLGtCQUFrQjtBQUNyQixXQUFPO0FBQ1IsUUFBTSxtQkFBbUIsY0FBYyxNQUFNLGdCQUFjLENBQUMsRUFBRSxNQUFNLGdDQUFnQztBQUNwRyxNQUFJLENBQUM7QUFDSixXQUFPO0FBQ1IsbUJBQWlCLFFBQVEsQ0FBQyxvQkFBb0IsK0JBQStCLGlCQUFnQixvQkFBb0IsQ0FBQztBQUNsSCxTQUFPO0FBQ1I7QUFFQSxTQUFTLDhCQUE4QixpQkFBeUIscUJBQTBDLE9BQThCO0FBQ3ZJLE1BQUksZ0JBQWdCLFdBQVcsUUFBUSxHQUFHO0FBQ3pDLFVBQU0sYUFBYSxvQkFBb0IsS0FBSyxnQkFBZ0IsTUFBTSxTQUFTLE1BQU0sQ0FBQztBQUNsRixRQUFJO0FBQ0gsMEJBQW9CLFFBQVEsV0FBVyxDQUFDLEVBQUUsS0FBSztBQUFBLEVBQ2pELFdBQVcsZ0JBQWdCLFdBQVcsT0FBTyxHQUFHO0FBQy9DLFVBQU0sdUJBQXVCLG9CQUFvQixLQUFLLGdCQUFnQixNQUFNLFFBQVEsTUFBTSxDQUFDO0FBQzNGLFFBQUksc0JBQXNCO0FBQ3pCLDBCQUFvQixPQUFPO0FBQUEsUUFDMUIsU0FBUztBQUFBLFFBQ1QsYUFBYSxxQkFBcUIsQ0FBQyxFQUFFLEtBQUs7QUFBQSxNQUMzQztBQUFBLElBQ0Q7QUFBQSxFQUNELFdBQVcsb0JBQW9CLFFBQVE7QUFDdEMsd0JBQW9CLE9BQU87QUFBQSxNQUMxQixTQUFTO0FBQUEsTUFDVCxhQUFhO0FBQUEsSUFDZDtBQUFBLEVBQ0QsV0FBVyxvQkFBb0IsVUFBVTtBQUN4Qyx3QkFBb0IsU0FBUztBQUFBLEVBQzlCLFdBQVcsZ0JBQWdCLFdBQVcsS0FBSyxHQUFHO0FBQzdDLHNCQUFrQixnQkFBZ0IsTUFBTSxNQUFNLE1BQU07QUFDcEQsUUFBSSxRQUFRLEtBQUssZUFBZSxHQUFHO0FBQ2xDLDBCQUFvQixjQUFjO0FBQUEsUUFDakMsZUFBZTtBQUFBLFFBQ2YsZ0JBQWdCO0FBQUEsUUFDaEIsUUFBUSxTQUFTLGVBQWUsSUFBRTtBQUFBLE1BQ25DO0FBQUEsSUFDRCxXQUFXLGdCQUFnQixZQUFZLE1BQU0sUUFBUTtBQUNwRCwwQkFBb0IsY0FBYztBQUFBLFFBQ2pDLGVBQWU7QUFBQSxRQUNmLGdCQUFnQjtBQUFBLFFBQ2hCLFFBQVE7QUFBQSxNQUNUO0FBQUEsSUFDRCxXQUFXLGdCQUFnQixZQUFZLE1BQU0sU0FBUztBQUNyRCwwQkFBb0IsY0FBYztBQUFBLFFBQ2pDLGVBQWU7QUFBQSxRQUNmLGdCQUFnQjtBQUFBLFFBQ2hCLFFBQVE7QUFBQSxNQUNUO0FBQUEsSUFDRDtBQUFBLEVBQ0QsV0FBVyxvQkFBb0IsUUFBUTtBQUN0Qyx3QkFBb0IsYUFBYTtBQUFBLE1BQ2hDLGVBQWU7QUFBQSxNQUNmLGdCQUFnQjtBQUFBLE1BQ2hCLFlBQVk7QUFBQSxJQUNiO0FBQUEsRUFDRCxXQUFXLG9CQUFvQixVQUFVO0FBQ3hDLHdCQUFvQixhQUFhO0FBQUEsTUFDaEMsZUFBZTtBQUFBLE1BQ2YsZ0JBQWdCO0FBQUEsTUFDaEIsWUFBWTtBQUFBLElBQ2I7QUFBQSxFQUNELFdBQVcsZ0JBQWdCLFdBQVcsU0FBUyxHQUFHO0FBQ2pELHNCQUFrQixnQkFBZ0IsTUFBTSxVQUFVLE1BQU07QUFDeEQsUUFBSSxnQkFBZ0IsWUFBWSxNQUFNLFlBQVk7QUFDakQsMEJBQW9CLGFBQWE7QUFBQSxRQUNoQyxlQUFlO0FBQUEsUUFDZixnQkFBZ0I7QUFBQSxRQUNoQixZQUFZO0FBQUEsTUFDYjtBQUFBLElBQ0QsV0FBVyxnQkFBZ0IsWUFBWSxNQUFNLFFBQVE7QUFDcEQsMEJBQW9CLGFBQWE7QUFBQSxRQUNoQyxlQUFlO0FBQUEsUUFDZixnQkFBZ0I7QUFBQSxRQUNoQixZQUFZO0FBQUEsTUFDYjtBQUFBLElBQ0QsV0FBVyxnQkFBZ0IsWUFBWSxNQUFNLFNBQVM7QUFDckQsMEJBQW9CLGFBQWE7QUFBQSxRQUNoQyxlQUFlO0FBQUEsUUFDZixnQkFBZ0I7QUFBQSxRQUNoQixZQUFZO0FBQUEsTUFDYjtBQUFBLElBQ0Q7QUFBQSxFQUNELE9BQU87QUFDTixVQUFNLGlCQUFpQixlQUFlLEtBQUssZUFBZTtBQUMxRCxRQUFJLGdCQUFnQjtBQUNuQixZQUFNLGFBQWEsc0JBQXNCLGVBQWUsQ0FBQyxDQUFDO0FBQzFELFVBQUksZUFBZSxDQUFDLE1BQU07QUFDekIsNEJBQW9CLFdBQVcsVUFBVTtBQUFBLFdBQ3JDO0FBQ0osWUFBSSxlQUFlLENBQUMsS0FBSyxNQUFNLFFBQVEsTUFBTSxXQUFXO0FBQ3ZELDhCQUFvQixXQUFXLFlBQVksZUFBZSxDQUFDLENBQUMsSUFBSTtBQUFBLE1BQ2xFO0FBQUEsSUFDRDtBQUFBLEVBQ0Q7QUFDRDtBQUNBLFNBQVMsc0JBQXNCLHdCQUE0QztBQUMxRSxRQUFNLGlCQUFpQix1QkFBdUIsTUFBTSxHQUFHO0FBQ3ZELFFBQU0sY0FBMkIsb0JBQUksSUFBSTtBQUN6QyxRQUFNLFlBQXlCLG9CQUFJLElBQUk7QUFDdkMsUUFBTSxxQkFBa0Msb0JBQUksSUFBSTtBQUNoRCxpQkFBZSxRQUFRLG1CQUFpQjtBQUN2QyxRQUFJLFVBQVUsS0FBSyxhQUFhLEdBQUc7QUFDbEMsWUFBTSxDQUFDLE9BQU0sR0FBRyxJQUFJLGNBQWMsTUFBTSxHQUFHLEVBQUUsSUFBSSxTQUFPLFNBQVMsR0FBRyxDQUFDO0FBQ3JFLFVBQUksU0FBUyxPQUFPLFNBQVM7QUFDNUIsY0FBTSxLQUFLLEVBQUMsUUFBTyxNQUFJLFFBQU0sRUFBQyxHQUFHLENBQUNBLElBQUUsUUFBUSxNQUFNLEtBQUssRUFBRSxRQUFRLGdCQUFjLFlBQVksSUFBSSxVQUFVLENBQUM7QUFBQSxJQUM1RyxXQUFXLGFBQWEsS0FBSyxhQUFhLEdBQUc7QUFDNUMsVUFBSTtBQUNILDJCQUFtQixJQUFJLElBQUksT0FBTyxjQUFjLFFBQVEsY0FBYSxJQUFJLENBQUMsQ0FBQztBQUFBLE1BQzVFLFNBQVFDLElBQUE7QUFBQSxNQUVSO0FBQUEsSUFDRCxXQUFXLE9BQU8sS0FBSyxhQUFhLEdBQUc7QUFDdEMsZ0JBQVUsSUFBSSxjQUFjLFVBQVUsR0FBRSxjQUFjLFNBQU8sQ0FBQyxDQUFDO0FBQUEsSUFDaEUsV0FBVyxPQUFPLEtBQUssYUFBYSxHQUFHO0FBQ3RDLGdCQUFVLElBQUksY0FBYyxVQUFVLEdBQUUsY0FBYyxTQUFPLENBQUMsQ0FBQztBQUFBLElBQ2hFLFdBQVcsS0FBSyxLQUFLLGFBQWEsR0FBRztBQUNwQyxnQkFBVSxJQUFJLGFBQWE7QUFBQSxJQUM1QixXQUFXLE1BQU0sS0FBSyxhQUFhLEdBQUc7QUFDckMsa0JBQVksSUFBSSxTQUFTLGFBQWEsQ0FBQztBQUFBLElBQ3hDO0FBQUEsRUFDRCxDQUFDO0FBQ0QsU0FBTztBQUFBLElBQ04sYUFBYSxDQUFDLEdBQUcsV0FBVztBQUFBLElBQzVCLFdBQVcsQ0FBQyxHQUFHLFNBQVM7QUFBQSxJQUN4QixvQkFBb0IsQ0FBQyxHQUFHLGtCQUFrQjtBQUFBLEVBQzNDO0FBQ0Q7QUFDTyxTQUFTLFdBQVcsVUFBa0IseUJBQTBDO0FBQ3RGLFNBQU8sNEJBQTRCLHVCQUF1QixFQUFFLEtBQUssMkJBQXVCLHNCQUFzQixLQUFLLFFBQVEsQ0FBQztBQUM3SDtBQUNBLFNBQVMsNEJBQTRCLHlCQUFnRDtBQUNwRixTQUFPLHdCQUF3QixNQUFNLEdBQUcsRUFBRSxJQUFJLG1CQUFpQixJQUFJLE9BQU8sSUFBSSxjQUFjLEtBQUssRUFBRSxRQUFRLE9BQU0sSUFBSSxDQUFDLEtBQUksR0FBRyxDQUFDO0FBQy9IO0FBQ0EsU0FBUywrQkFBK0IsaUJBQXlCLHNCQUFrRDtBQUNsSCxNQUFJLGdCQUFnQixXQUFXLFFBQVEsR0FBRztBQUN6QyxVQUFNLGFBQWEsb0JBQW9CLEtBQUssZ0JBQWdCLE1BQU0sU0FBUyxNQUFNLENBQUM7QUFDbEYsUUFBSTtBQUNILDJCQUFxQixRQUFRLFdBQVcsQ0FBQyxFQUFFLEtBQUs7QUFBQSxFQUNsRCxXQUFXLG9CQUFvQixVQUFXLGdCQUFnQixXQUFXLE9BQU8sS0FBSyxnQkFBZ0IsWUFBWSxNQUFNO0FBQ2xILHlCQUFxQixPQUFPO0FBQzlCO0FBRU8sU0FBUyxpQkFBaUIsZ0JBQW1EO0FBQ25GLE1BQUksdUJBQXVCLGVBQWUsY0FBYztBQUN4RCxNQUFJLHlCQUF5Qix5QkFBeUIsZUFBZSxDQUFDLEtBQUssZUFBZSxLQUFLLG9CQUFvQjtBQUNsSCwyQkFBdUIsbUJBQW1CLG9CQUFvQjtBQUMvRCxTQUFPO0FBQ1I7QUFDQSxTQUFTLGVBQWUsZ0JBQW1EO0FBQzFFLFNBQU8sZUFBZSxLQUFLLENBQUMsU0FBZSxRQUFRLGdCQUFnQixJQUFJLENBQUMsQ0FBQztBQUMxRTtBQUNPLFNBQVMsZ0JBQWdCLGVBQStCO0FBQzlELFFBQU0sWUFBWSw2QkFBNkIsS0FBSyxhQUFhO0FBQ2pFLE1BQUksQ0FBQztBQUNKLFdBQU87QUFDUixNQUFJLGNBQWMsUUFBUSxVQUFVLENBQUMsR0FBRSxVQUFVLENBQUMsRUFBRSxTQUFPLFVBQVUsQ0FBQyxFQUFFLFNBQU8sQ0FBQyxNQUFJO0FBQ25GLFdBQU8sVUFBVSxDQUFDO0FBQ25CLFNBQU87QUFDUjtBQUNBLFNBQVMsbUJBQW1CLGVBQStCO0FBQzFELFNBQU8sa0JBQWtCLGFBQWEsRUFBRSxRQUFRLHlCQUF3QixJQUFJO0FBQzdFO0FBQ08sU0FBUyxrQkFBa0IsZUFBK0I7QUFDaEUsU0FBTyxjQUFjLEtBQUs7QUFDM0I7QUFFQSxlQUFzQixvQkFBb0IsWUFBb0IsUUFBOEQ7QUFDM0gsUUFBTSxPQUFPLE9BQU8sSUFBSSxNQUFNLHNCQUFzQixVQUFVO0FBQzlELE1BQUksQ0FBQyxNQUFNO0FBQ1YsWUFBUSxNQUFNLG1CQUFtQixVQUFVLEVBQUU7QUFDN0M7QUFBQSxFQUNEO0FBQ0EsUUFBTSxjQUFjLE1BQU0sT0FBTyxJQUFJLE1BQU0sV0FBbUIsSUFBSSxFQUFFLE1BQU0sQ0FBQyxVQUFVO0FBQ3BGLFlBQVEsTUFBTSx1QkFBdUIsTUFBTSxPQUFPLEVBQUU7QUFDcEQsV0FBTztBQUFBLEVBQ1IsQ0FBQztBQUNELE1BQUksQ0FBQztBQUNKO0FBQ0QsU0FBTyxZQUFZLE1BQU0sS0FBSztBQUMvQjtBQUVPLFNBQVMsWUFBWSxRQUF1QixRQUFpQztBQUNuRixTQUFPLE9BQU8sV0FBVyxPQUFPLFVBQVUsT0FBTyxNQUFNLENBQUMsT0FBTyxPQUFPLFNBQVMsRUFBRSxDQUFDO0FBQ25GOzs7QUNuWE8sU0FBUyxhQUFhLHFCQUEwQyxlQUF3QyxlQUFtRDtBQUNqSyxRQUFNLGtCQUFrQixVQUFVO0FBQ2xDLFFBQU0sVUFBVSxvQkFBb0IsV0FBUyxnQkFBZ0Isb0JBQW9CLFVBQVMsYUFBYSxJQUFFO0FBQ3pHLE1BQUksQ0FBQyxlQUFlLHFCQUFvQixlQUFjLE9BQU8sR0FBRztBQUMvRCxvQkFBZ0IsVUFBVSxJQUFJLDhCQUE4QjtBQUM1RCxRQUFJLG9CQUFvQixhQUFhLElBQUk7QUFDeEMsVUFBSSxvQkFBb0IscUJBQW9CLGVBQWMsT0FBTztBQUNoRSx3QkFBZ0IsWUFBWSxtQkFBbUIsU0FBa0IsVUFBVSxDQUFDLENBQUM7QUFDOUUsVUFBSSxtQkFBbUIscUJBQW9CLGFBQWE7QUFDdkQsd0JBQWdCLFlBQVksVUFBVSxFQUFDLEtBQUssbUNBQW1DLE1BQU0sZUFBZSxvQkFBb0IsUUFBUSxFQUFDLENBQUMsQ0FBQztBQUFBLElBQ3JJO0FBQ0Esb0JBQWdCLFlBQVksVUFBVSxFQUFDLEtBQUssMkJBQTJCLE1BQU0sb0JBQW9CLFVBQVUsb0JBQW9CLEtBQUssVUFBUyxvQkFBb0IsS0FBSyxlQUFlLGNBQWMsT0FBTyxtQkFBbUIsbUJBQWtCLElBQUcsQ0FBQyxDQUFDO0FBQUEsRUFDclA7QUFDQyxvQkFBZ0IsVUFBVSxJQUFJLHFDQUFxQztBQUNwRSxTQUFPO0FBQ1I7QUFDTyxTQUFTLG1CQUFtQixzQkFBNEMsZUFBc0MsbUJBQWtDLENBQUMsMkJBQTJCLEdBQWdCO0FBQ2xNLFFBQU0sa0JBQWtCLFdBQVcsRUFBQyxLQUFLLGlCQUFpQixLQUFLLEdBQUcsRUFBQyxDQUFDO0FBQ3BFLE1BQUkscUJBQXFCLE1BQU07QUFDOUIsVUFBTSxVQUFVLGdCQUFnQixxQkFBcUIsVUFBUyxhQUFhO0FBQzNFLFFBQUksT0FBTyxZQUFZO0FBQ3RCLHNCQUFnQixZQUFZLG1CQUFtQixTQUFRLFdBQVcsR0FBRSx5QkFBeUIsQ0FBQztBQUFBLEVBQ2hHO0FBQ0EsTUFBSSxxQkFBcUI7QUFDeEIsb0JBQWdCLFlBQVksV0FBVyxFQUFDLEtBQUssNEJBQTRCLE1BQU0scUJBQXFCLE1BQUssQ0FBQyxDQUFDO0FBQzVHLFNBQU87QUFDUjtBQUNBLFNBQVMsbUJBQW1CLFNBQWlCLGNBQTJCLFdBQVcsb0JBQWlDO0FBQ25ILFFBQU0sTUFBTSxTQUFTLGNBQWMsS0FBSztBQUN4QyxNQUFJLFVBQVUsSUFBSSxRQUFRO0FBQzFCLE1BQUksTUFBTTtBQUNWLGVBQWEsWUFBWSxHQUFHO0FBQzVCLFNBQU87QUFDUjtBQUVPLFNBQVMsZ0JBQWdCLFVBQWtCLGVBQTBEO0FBQzNHLFNBQU8sK0NBQWdCLGVBQWUsUUFBUTtBQUMvQztBQUNBLFNBQVMsZUFBZSxVQUFrQjtBQXpDMUMsTUFBQUMsS0FBQTtBQTBDQyxVQUFPLE1BQUFBLE1BQUEsbUNBQUFBLElBQWlCLGNBQWpCLFlBQStCLFNBQVMsT0FBTyxDQUFDLEVBQUUsWUFBWSxJQUFJLFNBQVMsTUFBTSxDQUFDLEtBQUs7QUFDL0Y7QUFDTyxTQUFTLGVBQWUscUJBQTBDLGVBQXdDLFNBQXNDO0FBQ3RKLFNBQU8sQ0FBQyxpQkFBaUIsbUJBQW1CLE1BQU0sb0JBQW9CLGFBQWEsTUFBTyxjQUFjLE9BQU8sWUFBWSxZQUFZLGFBQWEsY0FBYyxPQUFPLGFBQWEsWUFBWSxZQUFhLE9BQU8sV0FBVztBQUNsTztBQUNBLFNBQVMsb0JBQW9CLHFCQUEwQyxlQUF3QyxTQUFzQztBQUNwSixTQUFRLE9BQU8sWUFBWSxnQkFBaUIsY0FBYyxPQUFPLGFBQWEsWUFBWSxZQUFhLGlCQUFpQixtQkFBbUIsS0FBSyxjQUFjLE9BQU8sYUFBYSxZQUFZO0FBQy9MO0FBQ0EsU0FBUyxtQkFBbUIscUJBQTBDLGVBQWlEO0FBQ3RILFNBQU8sY0FBYyxPQUFPLFlBQVksWUFBWSxZQUFhLGlCQUFpQixtQkFBbUIsS0FBSyxjQUFjLE9BQU8sWUFBWSxZQUFZO0FBQ3hKO0FBQ0EsU0FBUyxpQkFBaUIscUJBQW1EO0FBQzVFLFNBQU8sb0JBQW9CLEtBQUssV0FBVyxvQkFBb0IsVUFBVTtBQUMxRTtBQUVPLFNBQVMsYUFBYSxxQkFBMEMsWUFBb0IsTUFBNkI7QUFDdkgsTUFBSSxZQUEyQixDQUFDO0FBQ2hDLE1BQUksb0JBQW9CLFdBQVcsUUFBUSxZQUFZLFNBQVMsYUFBVyxvQkFBb0IsWUFBWSxNQUFNLEtBQUssb0JBQW9CLFdBQVcsUUFBUSxVQUFVLEtBQUssQ0FBQUMsVUFBUSxLQUFLLFFBQVFBLEtBQUksSUFBSSxFQUFFLEtBQUssb0JBQW9CLFdBQVcsUUFBUSxtQkFBbUIsS0FBSyxZQUFVLE9BQU8sS0FBSyxJQUFJLENBQUM7QUFDelMsY0FBVSxLQUFLLDhCQUE4QjtBQUM5QyxTQUFPLFFBQVEsb0JBQW9CLFdBQVcsV0FBVyxFQUFFLFFBQVEsQ0FBQyxDQUFDLHNCQUFxQixnQkFBZ0IsTUFBMkI7QUFDcEksUUFBSSxpQkFBaUIsWUFBWSxTQUFTLGFBQVcsb0JBQW9CLFlBQVksTUFBTSxLQUFLLGlCQUFpQixVQUFVLEtBQUssQ0FBQUEsVUFBUSxLQUFLLFFBQVFBLEtBQUksSUFBSSxFQUFFLEtBQUssaUJBQWlCLG1CQUFtQixLQUFLLFlBQVUsT0FBTyxLQUFLLElBQUksQ0FBQztBQUN2TyxnQkFBVSxLQUFLLGdDQUFnQyxxQkFBcUIsUUFBUSxRQUFRLEdBQUcsRUFBRSxZQUFZLENBQUMsRUFBRTtBQUFBLEVBQzFHLENBQUM7QUFDRCxNQUFJLFVBQVUsV0FBVztBQUN4QixnQkFBWSxDQUFDLGtCQUFrQjtBQUNoQyxTQUFPO0FBQ1I7QUFDTyxTQUFTLHFCQUFxQixxQkFBa0Q7QUFDdEYsTUFBSSxvQkFBb0I7QUFDeEIsTUFBSSxDQUFDLG9CQUFvQixZQUFZLGlCQUFpQixvQkFBb0IsWUFBWTtBQUNyRix3QkFBb0I7QUFBQSxXQUNaLG9CQUFvQixZQUFZLGlCQUFpQixDQUFDLG9CQUFvQixZQUFZO0FBQzFGLHdCQUFvQjtBQUNyQixTQUFPO0FBQ1I7OztBRjVETyxTQUFTLG9DQUFvQyxVQUE4QixlQUFzQztBQUN2SCxRQUFNLGlCQUFpQix1QkFBVztBQUFBO0FBQUEsSUFDakMsTUFBTSxlQUFlO0FBQUEsTUFLcEIsWUFBWSxNQUFrQjtBQUM3QixhQUFLLFdBQVc7QUFDaEIsYUFBSyxjQUFjLHVCQUFXO0FBQzlCLGFBQUssaUJBQWlCLElBQUk7QUFDMUIsYUFBSyxtQkFBbUIsSUFBSSxpQkFBaUIsQ0FBQyxjQUFjO0FBQUMsb0JBQVUsUUFBUSxDQUFDLGFBQTZCO0FBQzVHLGdCQUFJLFNBQVMsU0FBUyxnQkFBZ0IsU0FBUyxrQkFBa0IsWUFDL0QsU0FBUyxPQUF1QixVQUFVLFNBQVMseUJBQXlCLEtBQzNFLFNBQVMsT0FBdUIsVUFBVSxTQUFTLHdDQUF3QyxLQUMzRixTQUFTLE9BQXVCLFVBQVUsU0FBUyx1QkFBdUIsSUFDMUU7QUFDRixtQkFBSyxpQkFBaUIsSUFBSTtBQUMxQixtQkFBSyxlQUFlO0FBQUEsWUFDckI7QUFBQSxVQUNELENBQUM7QUFBQSxRQUNELENBQUM7QUFDRCxhQUFLLGlCQUFpQixRQUFRLEtBQUssWUFBYTtBQUFBLFVBQy9DLFlBQVk7QUFBQSxVQUNaLFdBQVc7QUFBQSxVQUNYLFNBQVM7QUFBQSxVQUNULGlCQUFpQixDQUFDLE9BQU87QUFBQSxRQUMxQixDQUFDO0FBQUEsTUFDRjtBQUFBLE1BRUEsT0FBTyxRQUFvQjtBQUMxQixZQUFJLE9BQU8sY0FDVixPQUFPLG1CQUNQLE9BQU8sTUFBTSxNQUFNLHVDQUFzQixNQUFNLE9BQU8sV0FBVyxNQUFNLHVDQUFzQixLQUM3RixDQUFDLGNBQWMsT0FBTyxNQUFNLE1BQU0sYUFBYSxHQUFFLE9BQU8sV0FBVyxNQUFNLGFBQWEsQ0FBQyxHQUN0RjtBQUNELGVBQUssaUJBQWlCLE9BQU8sSUFBSTtBQUFBLFFBQ2xDO0FBQUEsTUFDRDtBQUFBLE1BRUEsaUJBQWlCLE1BQWtCO0FBeER0QyxZQUFBQztBQXlESSxZQUFJLEdBQUNBLE1BQUEsNkJBQU0sa0JBQU4sZ0JBQUFBLElBQXFCLFdBQVUsa0JBQWtCLEtBQUssS0FBSyxHQUFHO0FBQ2xFLGVBQUssY0FBYyx1QkFBVztBQUM5QjtBQUFBLFFBQ0Q7QUFDQSxjQUFNLFVBQVUsSUFBSSw2QkFBNEI7QUFDaEQsY0FBTSxhQUFhLDJCQUEyQixJQUFJO0FBQ2xELG1CQUFXLGFBQWEsWUFBWTtBQUNuQyxjQUFJO0FBQ0osY0FBSSxvQkFBb0I7QUFDeEIsY0FBSSxhQUFhO0FBQ2pCLGNBQUksYUFBYTtBQUNqQixjQUFJLG1CQUF1QztBQUMzQywwQ0FBVyxLQUFLLEtBQUssRUFBRSxRQUFRO0FBQUEsWUFBQyxNQUFNLFVBQVU7QUFBQSxZQUFNLElBQUksVUFBVTtBQUFBLFlBQ25FLE9BQU8sQ0FBQyxlQUFhO0FBQ3BCLG9CQUFNLE9BQU8sS0FBSyxNQUFNLElBQUksT0FBTyxXQUFXLElBQUk7QUFDbEQsb0JBQU0sV0FBVyxLQUFLLE1BQU0sU0FBUyxLQUFLLE1BQUssS0FBSyxFQUFFO0FBQ3RELG9CQUFNLFlBQVksV0FBVyxLQUFLLEtBQUssU0FBUyx5QkFBeUI7QUFDekUsb0JBQU0sVUFBVSxXQUFXLEtBQUssS0FBSyxTQUFTLHVCQUF1QjtBQUNyRSxrQkFBSSxXQUFXO0FBQ2Qsc0NBQXNCLHlCQUF5QixrQkFBa0IsUUFBUSxHQUFFLEtBQUssU0FBUyxZQUFZO0FBQ3JHLG9DQUFvQixXQUFXLG9CQUFvQixVQUFTLENBQUMsS0FBSyxTQUFTLG9CQUFtQixLQUFLLFNBQVMsaUJBQWlCLEVBQUUsS0FBSyxHQUFHLENBQUMsS0FBSyxvQkFBb0I7QUFDakssNkJBQWE7QUFDYixvQkFBSSxrQkFBa0IsS0FBSyxTQUFTO0FBQ3BDLHNCQUFNLGlCQUFpQixnQkFBZ0IsUUFBUTtBQUMvQyx1QkFBTyxtQkFBbUIsZ0JBQWdCLEtBQUssTUFBTSxJQUFJLEtBQUssZUFBZSxFQUFFLElBQUksR0FBRztBQUNyRixxQ0FBbUI7QUFBQSxnQkFDcEI7QUFDQSw2QkFBYSxrQkFBa0IsS0FBSyxTQUFTLElBQUksb0JBQW9CLFlBQVk7QUFDakYsb0JBQUksV0FBVyxTQUFTLEVBQUUsU0FBUztBQUNsQyxxQ0FBbUIsV0FBVyxTQUFTLEVBQUUsU0FBUyxLQUFLLE1BQU0sTUFBTSxjQUFjO0FBQUE7QUFFakYscUNBQW1CO0FBQUEsY0FDckI7QUFDQSxrQkFBSTtBQUNIO0FBQ0Qsa0JBQUksV0FBVyxLQUFLLEtBQUssU0FBUyxtQkFBbUIsR0FBRztBQUN2RCx3QkFBUSxJQUFJLFdBQVcsTUFBSyxXQUFXLE1BQUssdUJBQVcsS0FBSyxFQUFDLFlBQVksRUFBQyxPQUFPLCtCQUErQixtQkFBaUIsbUJBQWlCLE9BQUssa0RBQWtELElBQUksUUFBUyxLQUFLLFNBQVMsaUJBQWlCLEtBQUssWUFBVSxJQUFJLE9BQU8sTUFBTSxFQUFFLEtBQUssb0JBQW9CLFFBQVEsQ0FBQyxLQUFHLGFBQVcsVUFBUyxxQkFBbUIsYUFBYSxxQkFBb0IsWUFBVyxLQUFLLElBQUksRUFBRSxLQUFLLEdBQUcsTUFBSSxDQUFDLElBQUksRUFBRSxPQUFPLEtBQUssU0FBUyxnQkFBZ0IsRUFBRSxLQUFLLFlBQVUsSUFBSSxPQUFPLE1BQU0sRUFBRSxLQUFLLG9CQUFvQixRQUFRLENBQUMsSUFBRSxLQUFHLGFBQWEsb0JBQW9CLFFBQVEsSUFBRyxFQUFDLENBQUMsQ0FBQztBQUM1a0Isd0JBQVEsSUFBSSxXQUFXLE1BQUssV0FBVyxNQUFLLHVCQUFXLEtBQUssQ0FBQyxDQUFDLENBQUM7QUFDL0Qsd0JBQVEsSUFBSSxXQUFXLE1BQUssV0FBVyxNQUFLLHVCQUFXLE9BQU8sRUFBQyxRQUFRLElBQUksaUJBQWlCLFlBQVcscUJBQW9CLFlBQVcsYUFBVyxPQUFPLEVBQUMsQ0FBQyxDQUFDO0FBQzNKO0FBQUEsY0FDRDtBQUFBLFlBQ0Q7QUFBQSxVQUNELENBQUM7QUFBQSxRQUNGO0FBQ0EsYUFBSyxjQUFjLFFBQVEsT0FBTztBQUFBLE1BQ25DO0FBQUEsTUFFQSxVQUFVO0FBQ1QsYUFBSyxpQkFBaUIsV0FBVztBQUFBLE1BQ2xDO0FBQUEsSUFDRDtBQUFBLElBQ0E7QUFBQSxNQUNDLGFBQWEsQ0FBQyxVQUFVLE1BQU07QUFBQSxNQUM5QixTQUFTLENBQUMsV0FBVyx1QkFBVyxhQUFhLEdBQUcsQ0FBQyxTQUFPLEtBQUssTUFBTSxNQUFNLGVBQWUsS0FBSyx1QkFBVyxJQUFJO0FBQUE7QUFBQSxJQUM3RztBQUFBLEVBQ0Q7QUFDQSxRQUFNLHNCQUFzQix1QkFBVztBQUFBO0FBQUEsSUFDdEMsTUFBTSxxQkFBcUI7QUFBQTtBQUFBO0FBQUEsTUFPMUIsWUFBWSxNQUFrQjtBQUM3QixhQUFLLGNBQWMsdUJBQVc7QUFDOUIsYUFBSyxXQUFXO0FBQ2hCLGFBQUssa0JBQWtCLFNBQVMsYUFBYSxTQUFTLE9BQU87QUFDN0QsYUFBSyxpQkFBaUIsSUFBSTtBQUFBLE1BRzNCO0FBQUEsTUFFQSxPQUFPLFFBQW9CO0FBQzFCLFlBQUksT0FBTyxjQUFjLE9BQU8sbUJBQW1CLE9BQU8sZ0JBQWdCLE9BQU8sTUFBTSxNQUFNLHVDQUFzQixNQUFJLE9BQU8sV0FBVyxNQUFNLHVDQUFzQixLQUFLLEtBQUssU0FBUyxhQUFhLFNBQVMsT0FBTyxvQkFBb0IsS0FBSyxpQkFBaUI7QUFDOVAsZUFBSyxrQkFBa0IsS0FBSyxTQUFTLGFBQWEsU0FBUyxPQUFPO0FBQ2xFLGNBQUksT0FBTztBQUNWLGlCQUFLLGNBQWMsS0FBSyxZQUFZLElBQUksT0FBTyxPQUFPO0FBQ3ZELGVBQUssaUJBQWlCLE9BQU8sSUFBSTtBQUFBLFFBMEJsQztBQUFBLE1BQ0Q7QUFBQSxNQUVBLGlCQUFpQixNQUF3QjtBQXBLNUMsWUFBQUE7QUFxS0ksWUFBSSxHQUFDQSxNQUFBLDZCQUFNLGtCQUFOLGdCQUFBQSxJQUFxQixTQUFRO0FBQ2pDLGVBQUssY0FBYyx1QkFBVztBQUM5QjtBQUFBLFFBR0Q7QUFHQSxjQUFNLGFBQWEsa0JBQWtCLEtBQUssS0FBSztBQUMvQyxtQkFBVyxFQUFDLE1BQUssR0FBRSxLQUFLLEtBQUssZUFBZTtBQUMzQywwQ0FBVyxLQUFLLEtBQUssRUFBRSxRQUFRO0FBQUEsWUFBQztBQUFBLFlBQVk7QUFBQSxZQUMzQyxPQUFPLENBQUMsZUFBYTtBQWhMM0Isa0JBQUFBO0FBaUxPLG9CQUFNLGFBQWEsSUFBSSxLQUFJQSxNQUFBLFdBQVcsS0FBSyxLQUFLLEtBQWEsa0NBQWtCLE1BQXBELGdCQUFBQSxJQUF1RCxNQUFNLElBQUk7QUFDNUYsa0JBQUksRUFBRSxXQUFXLElBQUksYUFBYSxLQUFLLENBQUMsV0FBVyxJQUFJLFlBQVk7QUFDbEU7QUFDRCxvQkFBTSxrQkFBa0IsV0FBVyxLQUFLO0FBQ3hDLGtCQUFJLENBQUM7QUFDSjtBQUNELG9CQUFNLGdCQUFnQixnQkFBZ0IsS0FBRyxnQkFBZ0I7QUFDekQsb0JBQU0saUJBQWlCLEtBQUssTUFBTSxJQUFJLFlBQVksV0FBVyxNQUFNLFdBQVcsRUFBRTtBQUNoRixvQkFBTSxFQUFDLFlBQVcsTUFBQUMsTUFBSSxJQUFJLGdCQUFnQixjQUFjO0FBQ3hELG9CQUFNLGtCQUFrQixlQUFlLFlBQVlBLEtBQUk7QUFDdkQsa0JBQUksQ0FBQyxZQUFZO0FBQ2hCLG9CQUFJQSxPQUFNO0FBQ1Qsc0JBQUksS0FBSyxNQUFNLFVBQVUsT0FBTyxLQUFLLENBQUMsVUFBd0IsTUFBTSxNQUFNLFdBQVcsT0FBSyxpQkFBaUIsTUFBTSxRQUFRLFdBQVcsS0FBRyxhQUFhLEtBQUssa0JBQWtCLEtBQUssS0FBSztBQUNwTCx5QkFBSyxjQUFjLEtBQUssWUFBWSxPQUFPLEVBQUMsWUFBWSxXQUFXLE1BQU0sVUFBVSxXQUFXLE1BQU0sUUFBUSxNQUFJLE1BQUssQ0FBQztBQUFBO0FBRXRILHlCQUFLLGNBQWMsS0FBSyxZQUFZLE9BQU8sRUFBQyxLQUFLLENBQUMsRUFBQyxNQUFNLFdBQVcsTUFBTSxJQUFJLFdBQVcsT0FBTyxpQkFBaUIsT0FBTyx1QkFBVyxRQUFRLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDO0FBQUEsZ0JBQ25KO0FBQUEsY0FDRCxPQUFPO0FBQ04sb0JBQUksS0FBSyxNQUFNLFVBQVUsT0FBTyxLQUFLLENBQUMsVUFBd0IsTUFBTSxNQUFNLFdBQVcsT0FBSyxpQkFBaUIsTUFBTSxRQUFRLFdBQVcsS0FBRyxhQUFhLEdBQUc7QUFDdEosdUJBQUssWUFBWSxRQUFRLFdBQVcsTUFBTSxXQUFXLE1BQU0sQ0FBQ0MsT0FBY0MsUUFBYTtBQUN0Rix5QkFBSyxjQUFjLEtBQUssWUFBWSxPQUFPLEVBQUMsWUFBWUQsT0FBTSxVQUFVQyxLQUFJLFFBQVEsTUFBSSxNQUFLLENBQUM7QUFBQSxrQkFDL0YsQ0FBQztBQUNELHVCQUFLLGNBQWMsS0FBSyxZQUFZLE9BQU8sRUFBQyxLQUFLLENBQUMsRUFBQyxNQUFNLFdBQVcsTUFBTSxJQUFJLFdBQVcsT0FBTyxpQkFBaUIsT0FBTyx1QkFBVyxLQUFLLEVBQUMsT0FBTyxnQ0FBK0IsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDO0FBQUEsZ0JBQ3JMLE9BQU87QUFDTixzQkFBSSxZQUFZO0FBQ2hCLHVCQUFLLFlBQVksUUFBUSxXQUFXLE1BQU0sV0FBVyxNQUFNLENBQUNELE9BQWNDLEtBQVksb0JBQThCO0FBMU03SCx3QkFBQUg7QUEyTVUsd0JBQUksR0FBQ0EsTUFBQSxnQkFBZ0IsU0FBaEIsZ0JBQUFBLElBQXNCO0FBQzFCLGtDQUFZO0FBQUEsa0JBQ2QsQ0FBQztBQUNELHNCQUFJLENBQUMsYUFBYSxDQUFDLFlBQVk7QUFDOUIseUJBQUssY0FBYyxLQUFLLFlBQVksT0FBTyxFQUFDLEtBQUssQ0FBQyxFQUFDLE1BQU0sV0FBVyxNQUFNLElBQUksV0FBVyxPQUFPLGlCQUFpQixPQUFPLHVCQUFXLFFBQVEsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUM7QUFDakoseUJBQUkseUNBQVksV0FBVSx5Q0FBWSxTQUFRLGdCQUFnQixXQUFXLFVBQVMsYUFBYTtBQUM5RiwyQkFBSyxjQUFjLEtBQUssWUFBWSxPQUFPLEVBQUMsS0FBSyxDQUFDLEVBQUMsTUFBTSxXQUFXLE1BQU0sSUFBSSxXQUFXLE1BQU0sT0FBTyx1QkFBVyxRQUFRLEVBQUMsUUFBUSxJQUFJLGFBQWEsWUFBVyxhQUFhLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDO0FBQUEsa0JBQ25MO0FBQUEsZ0JBQ0Q7QUFDQSxxQkFBSyxjQUFjLEtBQUssWUFBWSxPQUFPLEVBQUMsWUFBWSxXQUFXLE9BQU8sa0JBQWdCLEdBQUcsVUFBVSxXQUFXLElBQUksUUFBUSxNQUFJLE1BQUssQ0FBQztBQUN4SSxvQkFBSTtBQUNILHVCQUFLLGNBQWMsS0FBSyxZQUFZLE9BQU8sRUFBQyxZQUFZLFdBQVcsTUFBTSxVQUFVLFdBQVcsT0FBTyxpQkFBaUIsUUFBUSxDQUFDRSxPQUFjQyxLQUFZLFVBQW9CLFdBQVcsTUFBTSxLQUFJLENBQUM7QUFDcE0sb0JBQUksQ0FBQyxTQUFTLGFBQWEsU0FBUyxPQUFPO0FBQzFDO0FBQ0QscUJBQUssY0FBYyxLQUFLLFlBQVksT0FBTyxFQUFDLEtBQUssY0FBYyxFQUFDLE9BQU8sV0FBVyxPQUFPLGlCQUFpQixNQUFNRixPQUFNLFVBQVUsV0FBVyxTQUFRLENBQUMsRUFBQyxDQUFDO0FBQUEsY0FHdko7QUFBQSxZQUNEO0FBQUEsVUFDRCxDQUFDO0FBQUEsUUFDRjtBQUFBLE1BRUQ7QUFBQSxJQUNEO0FBQUEsSUFDQTtBQUFBLE1BQ0MsYUFBYSxDQUFDLFVBQVUsTUFBTTtBQUFBLElBQy9CO0FBQUEsRUFDRDtBQUVBLFFBQU0sZ0JBQWdCLHdCQUFXLE9BQXNCO0FBQUEsSUFDdEQsU0FBd0I7QUFDdkIsYUFBTztBQUFBLFFBQ04sb0JBQW9CLFNBQVM7QUFBQSxRQUM3QixtQkFBbUIsU0FBUztBQUFBLFFBQzVCLHVCQUF1QixPQUFPLEtBQUssU0FBUyxhQUFhLFFBQVEsTUFBTSxXQUFXLHFCQUFxQjtBQUFBLE1BQ3hHO0FBQUEsSUFDRDtBQUFBLElBQ0EsT0FBTyxPQUFxQztBQUMzQyxVQUFJLGdCQUFnQixPQUFNLFFBQVEsR0FBRztBQUNwQyxlQUFPO0FBQUEsVUFDTixvQkFBb0IsU0FBUztBQUFBLFVBQzdCLG1CQUFtQixTQUFTO0FBQUEsVUFDNUIsdUJBQXVCLE9BQU8sS0FBSyxTQUFTLGFBQWEsUUFBUSxNQUFNLFdBQVcscUJBQXFCO0FBQUEsUUFDeEc7QUFBQSxNQUNEO0FBQ0EsYUFBTztBQUFBLElBQ1I7QUFBQSxFQUNELENBQUM7QUFDRCxRQUFNLGlCQUFpQix3QkFBVyxPQUFlO0FBQUEsSUFDaEQsT0FBTyxPQUE0QjtBQUNsQyxhQUFPLGFBQWEsT0FBTSxNQUFNLE1BQU0sa0NBQWlCLEVBQUUscUJBQXFCO0FBQUEsSUFDL0U7QUFBQSxJQUNBLE9BQU8sT0FBZSxhQUFrQztBQUN2RCxhQUFPLGFBQWEsWUFBWSxPQUFNLEtBQUs7QUFBQSxJQUM1QztBQUFBLEVBQ0QsQ0FBQztBQUNELFFBQU0sb0JBQW9CLHdCQUFXLE9BQXNCO0FBQUE7QUFBQSxJQUMxRCxPQUFPLE9BQW1DO0FBQ3pDLFVBQUksa0JBQWtCLEtBQUs7QUFDMUIsZUFBTyx1QkFBVztBQUNuQixhQUFPLGFBQWEsS0FBSztBQUFBLElBQzFCO0FBQUEsSUFDQSxPQUFPLE9BQXNCLGFBQXlDO0FBQ3JFLFVBQUksa0JBQWtCLFlBQVksS0FBSztBQUN0QyxlQUFPLHVCQUFXO0FBQ25CLGFBQU8sYUFBYSxZQUFZLE9BQU0sQ0FBQ0csY0FBVyxTQUFTLFlBQVksT0FBTUEsU0FBUSxDQUFDO0FBQUEsSUFDdkY7QUFBQSxJQUNBLFFBQVEsT0FBNkM7QUFDcEQsYUFBTyx1QkFBVyxZQUFZLEtBQUssS0FBSztBQUFBLElBQ3pDO0FBQUEsRUFDRCxDQUFDO0FBQ0QsUUFBTSxrQkFBa0Isd0JBQVcsT0FBc0I7QUFBQSxJQUN4RCxPQUFPLE9BQW1DO0FBblI1QyxVQUFBSjtBQW9SRyxVQUFJLGtCQUFrQixLQUFLO0FBQzFCLGVBQU8sdUJBQVc7QUFDbkIsWUFBTSxVQUFVLElBQUksNkJBQTRCO0FBQ2hELFlBQU0sMEJBQXlCQSxNQUFBLE1BQU0sTUFBTSxtQkFBa0IsS0FBSyxNQUFuQyxPQUFBQSxNQUF3Qyx1QkFBVztBQUNsRixlQUFTLE9BQU8sdUJBQXVCLEtBQUssR0FBRyxLQUFLLFVBQVUsTUFBTSxLQUFLLEtBQUssR0FBRztBQUNoRixZQUFJLENBQUMsS0FBSyxNQUFNLEtBQUssT0FBTyxvQkFBb0IsS0FBSztBQUNwRDtBQUNELDhCQUFzQixLQUFLLE1BQUssT0FBTSxDQUFDLFdBQVUsWUFBVTtBQUMxRCxrQkFBUSxJQUFJLFVBQVUsTUFBSyxRQUFRLElBQUcsZUFBZ0IsS0FBSyxNQUFxQixLQUFLLE9BQU8sb0JBQW9CLFFBQVEsQ0FBQztBQUFBLFFBQzFILENBQUM7QUFBQSxNQUNGO0FBQ0EsYUFBTyxRQUFRLE9BQU87QUFBQSxJQUN2QjtBQUFBLElBQ0EsT0FBTyxPQUFzQixhQUF5QztBQUNyRSxjQUFRLE1BQU0sSUFBSSxZQUFZLE9BQU87QUFDckMsY0FBUSxNQUFNLE9BQU8sRUFBQyxLQUFLLFlBQVksUUFBUSxPQUFPLFlBQVMsT0FBTyxHQUFHLElBQUksS0FBRyxPQUFPLEdBQUcsVUFBVSxDQUFFLEVBQUUsSUFBSSxZQUFRLFdBQVcsT0FBTyxLQUFLLENBQUMsRUFBQyxDQUFDO0FBQzlJLGtCQUFZLFFBQVEsT0FBTyxZQUFTLE9BQU8sR0FBRyxNQUFNLEtBQUcsT0FBTyxHQUFHLFFBQVEsQ0FBRSxFQUFFLFFBQVEsWUFBUSxRQUFNLE1BQU0sT0FBTyxhQUFhLE9BQU8sS0FBSyxDQUFDLENBQUM7QUFDM0ksa0JBQVksUUFBUSxPQUFPLFlBQVEsT0FBTyxHQUFHLFVBQVUsQ0FBQyxFQUFFLFFBQVEsWUFBUSxRQUFNLE1BQU0sT0FBTyxtQkFBbUIsT0FBTyxLQUFLLENBQUMsQ0FBQztBQUM5SCxhQUFPO0FBQUEsSUFDUjtBQUFBLElBQ0EsUUFBUSxPQUE2QztBQUNwRCxhQUFPLHVCQUFXLFlBQVksS0FBSyxLQUFLO0FBQUEsSUFDekM7QUFBQSxFQUNELENBQUM7QUFDRCxRQUFNLG9CQUFvQix3QkFBVyxPQUFzQjtBQUFBLElBQzFELFNBQXdCO0FBQ3ZCLGFBQU8sdUJBQVc7QUFBQSxJQUNuQjtBQUFBLElBQ0EsT0FBTyxPQUFzQixhQUF5QztBQUNyRSxVQUFJLFlBQVksUUFBUSxLQUFLLFlBQVEsT0FBTyxHQUFHLE9BQU8sQ0FBQztBQUN0RCxlQUFPLHVCQUFXO0FBQ25CLGNBQVEsTUFBTSxJQUFJLFlBQVksT0FBTztBQUNyQyxjQUFRLE1BQU0sT0FBTyxFQUFDLEtBQUssWUFBWSxRQUFRLE9BQU8sWUFBUSxPQUFPLEdBQUcsUUFBUSxDQUFDLEVBQUUsSUFBSSxZQUFRLE9BQU8sS0FBSyxFQUFDLENBQUM7QUFDN0csa0JBQVksUUFBUSxPQUFPLFlBQVEsT0FBTyxHQUFHLFVBQVUsQ0FBQyxFQUFFLFFBQVEsWUFBUSxRQUFNLE1BQU0sT0FBTyxpQkFBaUIsT0FBTyxLQUFLLENBQUMsQ0FBQztBQUM1SCxrQkFBWSxRQUFRLE9BQU8sWUFBUSxPQUFPLEdBQUcsVUFBVSxDQUFDLEVBQUUsUUFBUSxZQUFRLFFBQU0sTUFBTSxPQUFPLG1CQUFtQixPQUFPLEtBQUssQ0FBQyxDQUFDO0FBQzlILGFBQU87QUFBQSxJQUNSO0FBQUEsRUFDRCxDQUFDO0FBRUQsV0FBUyxxQkFBcUI7QUFDN0IsV0FBTyx5QkFBWSxvQkFBb0IsR0FBRyxDQUFDLGdCQUE2QjtBQTVUMUUsVUFBQUEsS0FBQTtBQTZURyxZQUFNLGFBQTBDLENBQUM7QUFDakQsWUFBTSx3QkFBdUIsTUFBQUEsTUFBQSxZQUFZLFdBQVcsTUFBTSxpQkFBZ0IsS0FBSyxNQUFsRCxnQkFBQUEsSUFBcUQsSUFBSSxZQUFZLGFBQXJFLFlBQWlGLHVCQUFXO0FBQ3pILFlBQU0sMEJBQXlCLHVCQUFZLFdBQVcsTUFBTSxtQkFBa0IsS0FBSyxNQUFwRCxtQkFBdUQsSUFBSSxZQUFZLGFBQXZFLFlBQW1GLHVCQUFXO0FBQzdILGtCQUFZLGFBQWEsT0FBTyxRQUFRLENBQUMsVUFBd0I7QUFDaEUsNkJBQXFCLFFBQVEsTUFBTSxNQUFNLE1BQU0sSUFBSSxDQUFDLFVBQVUsUUFBUSxvQkFBb0I7QUFDekYsY0FBSSxZQUFZLE1BQU0sUUFBUSxNQUFNLFFBQVE7QUFDM0MsdUJBQVcsS0FBSyxTQUFTLEdBQUcsRUFBQyxNQUFNLFVBQVUsSUFBSSxRQUFRLE9BQU8sZ0JBQWUsQ0FBQyxDQUFDO0FBQUEsUUFDbkYsQ0FBQztBQUNELGlCQUFTLE9BQU8sdUJBQXVCLEtBQUssR0FBRyxLQUFLLFVBQVUsTUFBTSxLQUFLLEtBQUssR0FBRztBQUNoRixjQUFJLEVBQUUsS0FBSyxRQUFRLE1BQU0sUUFBUSxNQUFNLFFBQVEsS0FBSztBQUNuRCx1QkFBVyxLQUFLLFdBQVcsR0FBRyxFQUFDLE1BQU0sS0FBSyxNQUFNLElBQUksS0FBSyxJQUFJLE9BQU8sS0FBSyxNQUFLLENBQUMsQ0FBQztBQUFBLFFBQ2xGO0FBQUEsTUFDRCxDQUFDO0FBQ0QsYUFBUSxXQUFXLFdBQVcsSUFBRyxFQUFDLFNBQVMsV0FBVSxJQUFFO0FBQUEsSUFDeEQsQ0FBQztBQUFBLEVBQ0Y7QUFDQSxXQUFTLHVCQUF1QjtBQUMvQixXQUFPLHlCQUFZLG9CQUFvQixHQUFHLENBQUMsZ0JBQWdCO0FBQzFELFVBQUksYUFBMEMsQ0FBQztBQUMvQyxrQkFBWSxRQUFRLE9BQU8sWUFBUSxPQUFPLEdBQUcsT0FBTyxDQUFDLEVBQUUsUUFBUSxZQUFRO0FBaFYxRSxZQUFBQTtBQWlWSSxZQUFJLFNBQU9BLE1BQUEsT0FBTyxVQUFQLGdCQUFBQSxJQUFjLFlBQVc7QUFDbkMsdUJBQWEsV0FBVyxPQUFPLGFBQWEsWUFBWSxZQUFXLE9BQU8sTUFBTSxNQUFNLENBQUM7QUFBQTtBQUV2Rix1QkFBYSxXQUFXLE9BQU8sYUFBYSxZQUFZLFVBQVUsQ0FBQztBQUFBLE1BQ3JFLENBQUM7QUFDRCxhQUFRLFdBQVcsV0FBVyxJQUFHLEVBQUMsU0FBUyxXQUFVLElBQUU7QUFBQSxJQUN4RCxDQUFDO0FBQUEsRUFDRjtBQUNBLFdBQVMseUJBQXlCO0FBQ2pDLFdBQU8seUJBQVksb0JBQW9CLEdBQUcsQ0FBQyxnQkFBZ0I7QUFDMUQsVUFBSSxhQUEwQyxDQUFDO0FBQy9DLFlBQU0sa0JBQWtCLFlBQVksV0FBVyxNQUFNLGFBQWE7QUFDbEUsVUFBSSxxQkFBb0MsQ0FBQztBQUN6QyxVQUFJLHNCQUFxQyxDQUFDO0FBQzFDLFVBQUksZ0JBQWdCLHVCQUF1QixTQUFTLG9CQUFvQjtBQUN2RSxjQUFNLDRCQUE0QixnQkFBZ0IsbUJBQW1CLE1BQU0sR0FBRyxFQUFFLElBQUksVUFBTSxLQUFLLEtBQUssQ0FBQztBQUNyRyxjQUFNLDRCQUE0QixTQUFTLG1CQUFtQixNQUFNLEdBQUcsRUFBRSxJQUFJLFVBQU0sS0FBSyxLQUFLLENBQUM7QUFDOUYsOEJBQXNCLG9CQUFvQixPQUFPLGNBQWMsMkJBQTBCLHlCQUF5QixDQUFrQjtBQUNwSSw2QkFBcUIsbUJBQW1CLE9BQU8sY0FBYywyQkFBMEIseUJBQXlCLENBQWtCO0FBQUEsTUFDbkk7QUFDQSxVQUFJLGdCQUFnQixzQkFBc0IsU0FBUyxtQkFBbUI7QUFDckUsY0FBTSwyQkFBMkIsZ0JBQWdCLGtCQUFrQixNQUFNLEdBQUcsRUFBRSxJQUFJLFVBQU0sS0FBSyxLQUFLLENBQUM7QUFDbkcsY0FBTSwyQkFBMkIsU0FBUyxrQkFBa0IsTUFBTSxHQUFHLEVBQUUsSUFBSSxVQUFNLEtBQUssS0FBSyxDQUFDO0FBQzVGLDhCQUFzQixvQkFBb0IsT0FBTyxjQUFjLDBCQUF5Qix3QkFBd0IsQ0FBa0I7QUFDbEksNkJBQXFCLG1CQUFtQixPQUFPLGNBQWMsMEJBQXlCLHdCQUF3QixDQUFrQjtBQUFBLE1BQ2pJO0FBQ0EsVUFBSSxvQkFBb0IsV0FBVztBQUNsQyxtQkFBVyxLQUFLLFdBQVcsR0FBRyxtQkFBbUIsQ0FBQztBQUNuRCxVQUFJLG1CQUFtQixXQUFXO0FBQ2pDLHFCQUFhLFdBQVcsT0FBTyxpQkFBaUIsYUFBWSxrQkFBa0IsQ0FBQztBQUNoRixhQUFRLFdBQVcsV0FBVyxJQUFHLEVBQUMsU0FBUyxXQUFVLElBQUU7QUFBQSxJQUN4RCxDQUFDO0FBQUEsRUFDRjtBQUFBLEVBR0EsTUFBTSx5QkFBeUIsdUJBQVc7QUFBQSxJQU16QyxZQUFZLFlBQW9CLHFCQUEwQyxZQUFvQkssUUFBZ0I7QUFDN0csWUFBTTtBQUNOLFdBQUssYUFBYTtBQUNsQixXQUFLLHNCQUFzQjtBQUMzQixXQUFLLGFBQWE7QUFDbEIsV0FBSyxRQUFRQTtBQUFBLElBQ2Q7QUFBQSxJQUVBLEdBQUcsT0FBa0M7QUFDcEMsYUFBTyxLQUFLLGVBQWUsTUFBTSxjQUFjLEtBQUssb0JBQW9CLFlBQVksa0JBQWtCLE1BQU0sb0JBQW9CLFlBQVksaUJBQWlCLEtBQUssb0JBQW9CLFlBQVksbUJBQW1CLE1BQU0sb0JBQW9CLFlBQVksa0JBQWtCLEtBQUssb0JBQW9CLFlBQVksV0FBVyxNQUFNLG9CQUFvQixZQUFZLFVBQVUsS0FBSyxlQUFlLE1BQU0sY0FBYyxLQUFLLFVBQVUsTUFBTTtBQUFBLElBQzNhO0FBQUEsSUFFQSxNQUFNLE1BQStCO0FBQ3BDLGFBQU8sV0FBVyxFQUFDLE1BQU0sRUFBQyxPQUFPLEtBQUssV0FBVyxTQUFTLEVBQUUsVUFBVSxLQUFLLGFBQWEsS0FBSyxvQkFBb0IsWUFBWSxRQUFRLFNBQVMsRUFBRSxTQUFPLDRDQUEwQyxHQUFFLEdBQUcsS0FBSywwQkFBMEIscUJBQXFCLEtBQUssbUJBQW1CLENBQUMsSUFBSSxNQUFNLEtBQUssUUFBTSxNQUFJLEtBQUssYUFBYSxLQUFLLG9CQUFvQixZQUFZLFFBQVEsU0FBUyxFQUFDLENBQUM7QUFBQSxJQUN2WDtBQUFBLEVBQ0Q7QUFBQSxFQUNBLE1BQU0scUJBQXFCLHVCQUFXO0FBQUEsSUFRckMsWUFBWSxxQkFBMEMsUUFBaUIsZUFBd0NDLGdCQUFzQztBQUNwSixZQUFNO0FBQ04sV0FBSyxzQkFBc0IsZ0JBQWdCLG1CQUFtQjtBQUM5RCxXQUFLLGdCQUFnQixnQkFBZ0IsYUFBYTtBQUNsRCxXQUFLLGdCQUFnQkE7QUFDckIsV0FBSyxVQUFVLGdCQUFnQixLQUFLLG9CQUFvQixVQUFTQSxjQUFhO0FBQzlFLFdBQUssU0FBUztBQUNkLFdBQUssU0FBUyxlQUFlLEtBQUsscUJBQW9CLEtBQUssZUFBYyxLQUFLLE9BQU87QUFBQSxJQUN0RjtBQUFBLElBRUEsR0FBRyxPQUE4QjtBQUNoQyxhQUNDLEtBQUssb0JBQW9CLGFBQWEsTUFBTSxvQkFBb0IsWUFDaEUsS0FBSyxvQkFBb0IsVUFBVSxNQUFNLG9CQUFvQixTQUM3RCxLQUFLLG9CQUFvQixLQUFLLFlBQVksTUFBTSxvQkFBb0IsS0FBSyxXQUN6RSxLQUFLLG9CQUFvQixLQUFLLGdCQUFnQixNQUFNLG9CQUFvQixLQUFLLGVBQzdFLEtBQUssY0FBYyxPQUFPLG9CQUFvQixNQUFNLGNBQWMsT0FBTyxtQkFDekUsS0FBSyxjQUFjLE9BQU8sYUFBYSxZQUFZLE1BQU0sY0FBYyxPQUFPLGFBQWEsV0FDM0YsS0FBSyxjQUFjLE9BQU8sWUFBWSxZQUFZLE1BQU0sY0FBYyxPQUFPLFlBQVksV0FDekYsS0FBSyxXQUFXLE1BQU0sVUFDdEIsS0FBSyxZQUFZLE1BQU07QUFBQSxJQUV6QjtBQUFBLElBRUEsTUFBTSxNQUErQjtBQUNwQyxZQUFNLGtCQUFrQixhQUFhLEtBQUsscUJBQW9CLEtBQUssZUFBYyxLQUFLLGFBQWE7QUFDbkcsVUFBSSxLQUFLLG9CQUFvQixhQUFXO0FBQ3ZDLHdCQUFnQixVQUFVLElBQUksWUFBWSxLQUFLLG9CQUFvQixRQUFRLEVBQUU7QUFDOUUsVUFBSSxLQUFLO0FBQ1Isd0JBQWdCLFVBQVUsSUFBSSwyQkFBMkI7QUFDMUQsc0JBQWdCLFVBQVUsV0FBUztBQUFDLG9CQUFZLE1BQUssaUJBQWdCLEtBQUssUUFBTyxLQUFLLG9CQUFvQixRQUFRO0FBQUEsTUFBRTtBQUNwSCxhQUFPO0FBQUEsSUFDUjtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBS0Q7QUFBQSxFQUNBLE1BQU0scUJBQXFCLHVCQUFXO0FBQUEsSUFJckMsWUFBYSxzQkFBNENBLGdCQUFzQztBQUM5RixZQUFNO0FBQ04sV0FBSyx1QkFBdUI7QUFDNUIsV0FBSyxnQkFBZ0JBO0FBQUEsSUFDdEI7QUFBQSxJQUVBLEdBQUcsT0FBOEI7QUFDaEMsYUFDQyxLQUFLLHFCQUFxQixZQUFZLE1BQU0scUJBQXFCLFlBQ2pFLEtBQUsscUJBQXFCLFNBQVMsTUFBTSxxQkFBcUIsU0FDOUQsS0FBSyxxQkFBcUIsUUFBUSxNQUFNLHFCQUFxQixRQUM3RCxnQkFBZ0IsS0FBSyxxQkFBcUIsVUFBUyxLQUFLLGFBQWEsS0FBSyxnQkFBZ0IsTUFBTSxxQkFBcUIsVUFBUyxNQUFNLGFBQWE7QUFBQSxJQUVuSjtBQUFBLElBRUEsTUFBTSxNQUErQjtBQUNwQyxhQUFPLG1CQUFtQixLQUFLLHNCQUFxQixLQUFLLGVBQWMsQ0FBQyw2QkFBNEIsZ0JBQWdCLENBQUM7QUFBQSxJQUN0SDtBQUFBLEVBQ0Q7QUFFQSxXQUFTLGFBQWEsT0FBb0IsWUFBK0QsQ0FBQ0YsV0FBUyxnQkFBYyxhQUE0QjtBQUM1SixVQUFNLFVBQVUsSUFBSSw2QkFBNEI7QUFDaEQsUUFBSSxZQUFxQjtBQUN6QixRQUFJLGlCQUF5QjtBQUM3QixRQUFJO0FBQ0osYUFBU0csS0FBSSxHQUFHQSxLQUFJLE1BQU0sSUFBSSxPQUFPQSxNQUFLO0FBQ3pDLFlBQU0sT0FBTyxNQUFNLElBQUksS0FBS0EsRUFBQztBQUM3QixZQUFNLFdBQVcsS0FBSyxLQUFLLFNBQVM7QUFDcEMsWUFBTSxtQkFBbUIsZ0JBQWdCLFFBQVE7QUFDakQsVUFBSSxrQkFBa0I7QUFDckIsWUFBSSxXQUFXO0FBQ2Qsc0JBQVk7QUFDWiwyQkFBaUI7QUFDakIsZ0NBQXNCLHlCQUF5QixrQkFBa0IsUUFBUSxHQUFFLFNBQVMsWUFBWTtBQUNoRyxjQUFJLENBQUMsV0FBVyxvQkFBb0IsVUFBUyxDQUFDLFNBQVMsb0JBQW1CLFNBQVMsaUJBQWlCLEVBQUUsS0FBSyxHQUFHLENBQUMsS0FBSyxDQUFDLG9CQUFvQixRQUFRO0FBQ2hKLGdCQUFJLENBQUMsU0FBUyxpQkFBaUIsS0FBSyxZQUFVLElBQUksT0FBTyxNQUFNLEVBQUUsS0FBSyxvQkFBb0IsUUFBUSxDQUFDO0FBQ2xHLHNCQUFRLElBQUksS0FBSyxNQUFLLEtBQUssTUFBSyx1QkFBVyxPQUFPLEVBQUMsUUFBUSxJQUFJLGFBQWEscUJBQW9CLFVBQVUsS0FBSyxNQUFLLG9CQUFvQixLQUFLLE9BQU8sR0FBRSxTQUFTLGFBQWEsVUFBUyxhQUFhLEdBQUcsT0FBTyxNQUFNLE1BQU0sR0FBRSxDQUFDLENBQUM7QUFBQTtBQUU1TjtBQUFBLFVBQ0Y7QUFBQSxRQUNELE9BQU87QUFDTixjQUFJLHFCQUFxQjtBQUN4Qix3QkFBWTtBQUFBLFFBQ2Q7QUFBQSxNQUNEO0FBQUEsSUFDRDtBQUNBLFdBQU8sUUFBUSxPQUFPO0FBQUEsRUFDdkI7QUFDQSxXQUFTLGlCQUFpQixhQUEwQixnQkFBK0I7QUE1ZXBGLFFBQUFQO0FBNmVFLFVBQU0sYUFBMEMsQ0FBQztBQUNqRCxVQUFNLDBCQUF5QkEsTUFBQSxZQUFZLE1BQU0sTUFBTSxtQkFBa0IsS0FBSyxNQUEvQyxPQUFBQSxNQUFvRCx1QkFBVztBQUM5RixhQUFTLE9BQU8sdUJBQXVCLEtBQUssR0FBRyxLQUFLLFVBQVUsTUFBTSxLQUFLLEtBQUssR0FBRztBQUNoRixVQUFJLENBQUMsS0FBSyxNQUFNLEtBQUssT0FBTyxvQkFBb0IsS0FBSyxXQUFXLENBQUMsZUFBZSxTQUFTLEtBQUssTUFBTSxLQUFLLE9BQU8sb0JBQW9CLFFBQVE7QUFDM0k7QUFDRCw0QkFBc0IsS0FBSyxNQUFLLFlBQVksT0FBTSxDQUFDLFdBQVUsWUFBVTtBQUN0RSxtQkFBVyxLQUFLLEtBQUssR0FBRyxFQUFDLE1BQU0sVUFBVSxNQUFLLElBQUksUUFBUSxJQUFHLE9BQU8sRUFBQyxNQUFNLEVBQUMsVUFBVyxLQUFLLE1BQXFCLEtBQUssT0FBTyxvQkFBb0IsU0FBUSxFQUFDLEVBQUMsQ0FBQyxDQUFDO0FBQUEsTUFDOUosQ0FBQztBQUFBLElBQ0Y7QUFDQSxXQUFPO0FBQUEsRUFDUjtBQUNBLFdBQVMsU0FBUyxPQUFvQkksV0FBMkI7QUF4ZmxFLFFBQUFKO0FBeWZFLFFBQUksU0FBUztBQUNiLEtBQUFBLE1BQUEsTUFBTSxNQUFNLGlCQUFnQixLQUFLLE1BQWpDLGdCQUFBQSxJQUFvQyxRQUFRSSxXQUFTQSxXQUFTLE1BQUk7QUFDakUsZUFBUztBQUFBLElBQ1Y7QUFDQSxXQUFPO0FBQUEsRUFDUjtBQUNBLFdBQVMsYUFBYSxPQUFvQixRQUErQztBQS9mMUYsUUFBQUo7QUFnZ0JFLFVBQU0sYUFBMEMsQ0FBQztBQUNqRCxVQUFNLFFBQVMsT0FBTyxXQUFXO0FBQ2pDLFVBQU0sMEJBQXlCQSxNQUFBLE1BQU0sTUFBTSxtQkFBa0IsS0FBSyxNQUFuQyxPQUFBQSxNQUF3Qyx1QkFBVztBQUNsRixhQUFTLE9BQU8sdUJBQXVCLEtBQUssR0FBRyxLQUFLLFVBQVUsTUFBTSxLQUFLLEtBQUssR0FBRztBQUNoRixVQUFJLEtBQUssTUFBTSxLQUFLLE9BQU87QUFDMUI7QUFDRCxZQUFNLFNBQVMsS0FBSyxNQUFNLEtBQUssT0FBTztBQUN0QyxZQUFNLGNBQWMsS0FBSyxNQUFNLEtBQUssT0FBTyxvQkFBb0IsS0FBSztBQUNwRSw0QkFBc0IsS0FBSyxNQUFLLE9BQU0sQ0FBQyxXQUFVLFlBQVU7QUFDMUQsWUFBSyxDQUFDLFNBQVMsVUFBVSxDQUFDLFVBQVksU0FBUyxDQUFDLFVBQVU7QUFDekQscUJBQVcsS0FBSyxLQUFLLEdBQUcsRUFBQyxNQUFNLFVBQVUsTUFBTSxJQUFJLFFBQVEsSUFBSSxPQUFPLEVBQUMsTUFBTSxFQUFDLFVBQVcsS0FBSyxNQUFxQixLQUFLLE9BQU8sb0JBQW9CLFNBQVEsRUFBQyxFQUFDLENBQUMsQ0FBQztBQUFBLGlCQUN0SixDQUFDLFNBQVMsQ0FBQyxVQUFVLFVBQVksU0FBUyxVQUFVLENBQUM7QUFDOUQscUJBQVcsS0FBSyxPQUFPLEdBQUcsRUFBQyxNQUFNLFVBQVUsTUFBTSxJQUFJLFFBQVEsR0FBRSxDQUFDLENBQUM7QUFBQSxNQUNuRSxDQUFDO0FBQUEsSUFDRjtBQUNBLFdBQU87QUFBQSxFQUNSO0FBRUEsU0FBTztBQUFBLElBQ047QUFBQSxJQUFjO0FBQUEsSUFBZTtBQUFBLElBQWtCO0FBQUEsSUFBZ0I7QUFBQSxJQUMvRDtBQUFBLElBQWU7QUFBQSxJQUNmLG1CQUFtQjtBQUFBLElBQUUscUJBQXFCO0FBQUEsSUFBRSx1QkFBdUI7QUFBQTtBQUFBLEVBRXBFO0FBQ0Q7QUFFQSxJQUFNLE9BQXVGLHlCQUFZLE9BQU87QUFDaEgsSUFBTSxTQUFzRCx5QkFBWSxPQUFPO0FBQy9FLElBQU0sV0FBK0MseUJBQVksT0FBTztBQUN4RSxJQUFNLGFBQWlELHlCQUFZLE9BQU87QUFDMUUsSUFBTSxhQUE2Qyx5QkFBWSxPQUFPO0FBQ3RFLElBQU0sVUFBK0MseUJBQVksT0FBTztBQUV4RSxTQUFTLGNBQWUsRUFBQyxPQUFNLE1BQUFDLE9BQUssU0FBUSxHQUE4RTtBQWppQjFILE1BQUFEO0FBa2lCQyxRQUFNLGtCQUE0QyxDQUFDO0FBRW5ELFFBQU0sT0FBTyxPQUFPLFdBQVcsUUFBUSxPQUFPLFdBQVcsV0FBU0EsTUFBQSxPQUFPLFdBQVcsZUFBZSxRQUFRLE1BQXpDLGdCQUFBQSxJQUE0QyxJQUFJO0FBQ2xILFFBQU0sUUFBUSxPQUFPLFdBQVcsV0FBVyxJQUFJO0FBQy9DLE1BQUksNkJBQU0sT0FBTztBQUNoQixVQUFNLFNBQVMsSUFBSSxPQUFPLFdBQVcsYUFBYUMsS0FBSTtBQUN0RCxXQUFPLENBQUMsT0FBTyxJQUFJLEdBQUc7QUFDckIsWUFBTU8sU0FBUSxLQUFLLE1BQU0sUUFBTyxLQUFLO0FBQ3JDLFVBQUlBO0FBQ0gsd0JBQWdCLEtBQUssRUFBQyxNQUFNLFFBQU0sT0FBTyxPQUFPLElBQUksUUFBTSxPQUFPLEtBQUssT0FBTyx1QkFBVyxLQUFLLEVBQUMsT0FBTyxNQUFNQSxNQUFLLEdBQUUsQ0FBQyxFQUFDLENBQUM7QUFDdEgsYUFBTyxRQUFRLE9BQU87QUFBQSxJQUN2QjtBQUFBLEVBQ0Q7QUFDQSxTQUFPO0FBQ1I7QUFFTyxTQUFTLG9CQUFvQixNQUFrQixRQUFrQjtBQUN2RSxPQUFLLFNBQVMsRUFBQyxTQUFTLFFBQVEsR0FBSSxPQUFPLFdBQVcsY0FBYSxFQUFDLE9BQWMsSUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDO0FBQ3hGLE9BQUssZUFBZTtBQUNyQjtBQUNBLFNBQVMsWUFBWSxNQUFrQixRQUFxQixRQUFpQixVQUFrQjtBQUM5Rix3QkFBc0IsS0FBSyxTQUFTLE1BQU0sR0FBRSxLQUFLLE9BQU0sQ0FBQyxXQUFVLFlBQVU7QUFDM0UsU0FBSyxTQUFTLEVBQUMsU0FBUyxVQUFVLENBQUMsUUFBTyxFQUFDLE1BQU0sVUFBVSxNQUFNLElBQUksUUFBUSxJQUFJLE9BQU8sRUFBQyxNQUFNLEVBQUMsU0FBa0IsRUFBQyxFQUFDLENBQUMsRUFBQyxDQUFDO0FBQ3ZILFNBQUssZUFBZTtBQUFBLEVBQ3JCLENBQUM7QUFDRjtBQUNBLFNBQVMsVUFBVSxRQUFpQixVQUE4RjtBQUNqSSxTQUFPLFNBQU8sS0FBSyxHQUFHLFFBQVEsSUFBRSxPQUFPLEdBQUcsRUFBQyxNQUFNLFNBQVMsTUFBTSxJQUFJLFNBQVMsR0FBRSxDQUFDO0FBQ2pGO0FBQ0EsU0FBUyxXQUFXLEVBQUMsTUFBTSxVQUFVLElBQUksUUFBUSxPQUFPLEVBQUMsTUFBTSxFQUFDLFNBQVEsRUFBQyxFQUFDLEdBQW9GO0FBQzdKLFNBQU8sZUFBZSxRQUFRLEVBQUUsTUFBTSxVQUFTLE1BQU07QUFDdEQ7QUFDQSxTQUFTLGFBQWEsRUFBQyxNQUFNLFVBQVUsSUFBSSxPQUFNLEdBQStCO0FBQy9FLFNBQU8sRUFBQyxRQUFRLENBQUMsTUFBYyxPQUFnQixNQUFNLFlBQVksUUFBUSxRQUFTLFlBQVksVUFBVSxVQUFVLE9BQU07QUFDekg7QUFDQSxTQUFTLG1CQUFtQixXQUEwQjtBQUNyRCxTQUFPLEVBQUMsUUFBUSxDQUFDLE1BQWMsSUFBWSxVQUFtQjtBQXRrQi9ELFFBQUFSO0FBc2tCa0UsWUFBQyxVQUFVLFVBQVNBLE1BQUEsK0JBQU8sU0FBUCxnQkFBQUEsSUFBYSxRQUFRO0FBQUEsSUFBQztBQUM1RztBQUNBLFNBQVMsaUJBQWlCLE9BQTBCO0FBQ25ELFNBQU8sRUFBQyxZQUFZLE1BQU0sTUFBTSxVQUFVLE1BQU0sSUFBSSxRQUFRLENBQUMsTUFBYyxPQUFhLEVBQUUsU0FBUyxNQUFNLFFBQVEsT0FBTyxNQUFNLElBQUc7QUFDbEk7QUFDQSxTQUFTLGVBQWUsVUFBOEI7QUFDckQsU0FBTyx1QkFBVyxRQUFRLEVBQUMsT0FBTyxNQUFNLFNBQWtCLENBQUM7QUFDNUQ7QUFFQSxTQUFTLHNCQUFzQixlQUF1QixPQUFvQixjQUFzRDtBQUMvSCxRQUFNLFlBQVksTUFBTSxJQUFJLE9BQU8sYUFBYTtBQUNoRCxRQUFNLGlCQUFpQixnQkFBZ0IsVUFBVSxLQUFLLFNBQVMsQ0FBQztBQUNoRSxNQUFJLFVBQXVCO0FBQzNCLFdBQVNPLEtBQUksVUFBVSxTQUFPLEdBQUdBLEtBQUksTUFBTSxJQUFJLE9BQU9BLE1BQUs7QUFDMUQsVUFBTSxPQUFPLE1BQU0sSUFBSSxLQUFLQSxFQUFDO0FBQzdCLFVBQU0sV0FBVyxLQUFLLEtBQUssU0FBUztBQUNwQyxRQUFJLGdCQUFnQixRQUFRLE1BQU0sZ0JBQWdCO0FBQ2pELGdCQUFVO0FBQ1Y7QUFBQSxJQUNEO0FBQUEsRUFDRDtBQUNBLE1BQUksWUFBWTtBQUNmLGlCQUFhLFdBQVUsT0FBTztBQUNoQztBQUNBLFNBQVMsMkJBQTJCLE1BQXdDO0FBQzNFLFFBQU0sYUFBYSxzQkFBc0IsSUFBSTtBQUM3QyxRQUFNLHlCQUErQyxDQUFDO0FBQ3RELFdBQVNBLEtBQUksR0FBR0EsS0FBSSxXQUFXLFFBQVFBO0FBQ3RDLFFBQUlBLE9BQU0sS0FBSyxXQUFXQSxFQUFDLEVBQUUsU0FBUyxXQUFXQSxLQUFJLENBQUMsRUFBRTtBQUN2RCw2QkFBdUIsS0FBSyxXQUFXQSxFQUFDLENBQUM7QUFDM0MsU0FBTztBQUNSO0FBQ0EsU0FBUyxzQkFBc0IsTUFBd0M7QUFDdEUsU0FBTyxlQUFlLElBQUksRUFBRSxPQUFPLENBQUMsY0FBYztBQUNqRCxXQUFPLEtBQUssY0FBYyxLQUFLLENBQUMsaUJBQWlCLFVBQVUsT0FBTyxhQUFhLE1BQU0sVUFBVSxLQUFLLGFBQWEsSUFBSTtBQUFBLEVBQ3RILENBQUM7QUFDRjtBQUNBLFNBQVMsZUFBZSxNQUF3QztBQUMvRCxRQUFNLGFBQW1DLENBQUM7QUFDMUMsa0NBQVcsS0FBSyxLQUFLLEVBQUUsUUFBUTtBQUFBLElBQzlCLE9BQU8sQ0FBQyxlQUFlO0FBQ3RCLFVBQUksV0FBVyxLQUFLLEtBQUssU0FBUyx5QkFBeUIsS0FBSyxXQUFXLEtBQUssU0FBUyw0Q0FBNEMsV0FBVyxLQUFLLEtBQUssU0FBUyx1QkFBdUI7QUFDekwsbUJBQVcsS0FBSyxVQUFVO0FBQUEsSUFDNUI7QUFBQSxFQUNELENBQUM7QUFDRCxTQUFPO0FBQ1I7QUFFQSxTQUFTLGtCQUFrQixPQUE2QjtBQXRuQnhELE1BQUFQLEtBQUE7QUF1bkJDLE1BQUksQ0FBQyxNQUFNLE1BQU0sdUNBQXNCO0FBQ3RDLFdBQU87QUFDUixRQUFNLFlBQVcsTUFBQUEsTUFBQSxNQUFNLE1BQU0sZ0NBQWUsTUFBM0IsZ0JBQUFBLElBQThCLFNBQTlCLG1CQUFvQztBQUNyRCxNQUFJLE9BQU8sYUFBYTtBQUN2QixhQUFPLGdCQUFLLElBQUksY0FBYyxTQUFTLFFBQVEsTUFBeEMsbUJBQTJDLGdCQUEzQyxtQkFBeUQsMkJBQTBCO0FBQzNGLFNBQU87QUFDUjtBQUNBLFNBQVMsYUFBYSxPQUFvQixlQUErQjtBQUN4RSxRQUFNLGFBQWEsTUFBTSxLQUFLLE1BQU0sTUFBTSxrQ0FBaUIsRUFBRSxXQUFXLGlCQUFpQix3QkFBd0IsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxRQUFzQixxQkFBaUQ7QUFDbE0sVUFBTSxjQUFjLGlCQUFpQjtBQUNyQyxRQUFJLENBQUM7QUFDSixhQUFPO0FBQ1IsVUFBTSxvQkFBb0IsWUFBWSxjQUFjLG9DQUFvQztBQUN4RixRQUFJLENBQUMscUJBQXFCLGtCQUFrQixVQUFVLFVBQVU7QUFDL0QsYUFBTztBQUNSLFVBQU0saUJBQWlCLE9BQU8saUJBQWlCLG1CQUFtQixJQUFJO0FBQ3RFLFdBQU8sTUFBTSxrQkFBa0Isc0JBQXNCLEVBQUUsUUFBUSxXQUFXLGVBQWUsV0FBVyxJQUFJLFdBQVcsZUFBZSxZQUFZLEtBQUssa0JBQWtCLFVBQVUsTUFBTTtBQUNyTCxXQUFPO0FBQUEsRUFDUixHQUFFLENBQUMsQ0FBQztBQUNKLE1BQUksV0FBVyxXQUFXO0FBQ3pCLFdBQU87QUFDUixTQUFPLFdBQVcsT0FBTyxDQUFDLFFBQU8sVUFBUSxTQUFPLE9BQU0sQ0FBQyxJQUFJLFdBQVc7QUFDdkU7QUFDQSxTQUFTLGdCQUFnQixlQUE2QixVQUE4QjtBQUNuRixTQUFPLENBQUMsY0FBYyxlQUFjLEVBQUMsb0JBQW9CLFNBQVMsb0JBQW9CLG1CQUFtQixTQUFTLG1CQUFtQix1QkFBdUIsT0FBTyxLQUFLLFNBQVMsYUFBYSxRQUFRLE1BQU0sV0FBVyxxQkFBcUIsRUFBQyxDQUFDO0FBQy9PO0FBQ0EsU0FBUyxjQUFjLHNCQUFxQyxrQkFBaUM7QUFDNUYsU0FBTyxxQkFBcUIsdUJBQXVCLGlCQUFpQixzQkFBc0IscUJBQXFCLHNCQUFzQixpQkFBaUIscUJBQXFCLFlBQVkscUJBQXFCLHVCQUFzQixpQkFBaUIscUJBQXFCO0FBQ3pRO0FBQ0EsU0FBUyxjQUFjLFFBQXdCLFFBQXdCO0FBQ3RFLFNBQU8sT0FBTyxPQUFPLENBQUFTLGFBQVcsQ0FBQyxPQUFPLFNBQVNBLFFBQU8sQ0FBQztBQUMxRDs7O0FHdHBCQSxJQUFBQyxtQkFBNkg7OztBQzJJdEgsSUFBTTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQWdCVCxTQUFVLE1BQU07QUFDZCxRQUFJLFNBQVMsUUFBUSxTQUFTLFFBQVc7QUFDdkMsYUFBTztBQUFBLElBQ1Q7QUFFQSxRQUFJLE9BQU8sU0FBUyxZQUFZO0FBQzlCLGFBQU8sWUFBWSxJQUFJO0FBQUEsSUFDekI7QUFFQSxRQUFJLE9BQU8sU0FBUyxVQUFVO0FBQzVCLGFBQU8sTUFBTSxRQUFRLElBQUksSUFBSSxXQUFXLElBQUksSUFBSSxhQUFhLElBQUk7QUFBQSxJQUNuRTtBQUVBLFFBQUksT0FBTyxTQUFTLFVBQVU7QUFDNUIsYUFBTyxZQUFZLElBQUk7QUFBQSxJQUN6QjtBQUVBLFVBQU0sSUFBSSxNQUFNLDhDQUE4QztBQUFBLEVBQ2hFO0FBQUE7QUFPSixTQUFTLFdBQVcsT0FBTztBQUV6QixRQUFNQyxVQUFTLENBQUM7QUFDaEIsTUFBSUMsU0FBUTtBQUVaLFNBQU8sRUFBRUEsU0FBUSxNQUFNLFFBQVE7QUFDN0IsSUFBQUQsUUFBT0MsTUFBSyxJQUFJLFFBQVEsTUFBTUEsTUFBSyxDQUFDO0FBQUEsRUFDdEM7QUFFQSxTQUFPLFlBQVksR0FBRztBQU10QixXQUFTLE9BQU8sWUFBWTtBQUMxQixRQUFJQSxTQUFRO0FBRVosV0FBTyxFQUFFQSxTQUFRRCxRQUFPLFFBQVE7QUFDOUIsVUFBSUEsUUFBT0MsTUFBSyxFQUFFLE1BQU0sTUFBTSxVQUFVO0FBQUcsZUFBTztBQUFBLElBQ3BEO0FBRUEsV0FBTztBQUFBLEVBQ1Q7QUFDRjtBQVFBLFNBQVMsYUFBYSxPQUFPO0FBQzNCLFFBQU07QUFBQTtBQUFBLElBQXdEO0FBQUE7QUFFOUQsU0FBTyxZQUFZQyxJQUFHO0FBTXRCLFdBQVNBLEtBQUksTUFBTTtBQUNqQixVQUFNO0FBQUE7QUFBQTtBQUFBLE1BQ29CO0FBQUE7QUFJMUIsUUFBSUM7QUFFSixTQUFLQSxRQUFPLE9BQU87QUFDakIsVUFBSSxhQUFhQSxJQUFHLE1BQU0sY0FBY0EsSUFBRztBQUFHLGVBQU87QUFBQSxJQUN2RDtBQUVBLFdBQU87QUFBQSxFQUNUO0FBQ0Y7QUFRQSxTQUFTLFlBQVksT0FBTztBQUMxQixTQUFPLFlBQVksSUFBSTtBQUt2QixXQUFTLEtBQUssTUFBTTtBQUNsQixXQUFPLFFBQVEsS0FBSyxTQUFTO0FBQUEsRUFDL0I7QUFDRjtBQVFBLFNBQVMsWUFBWSxjQUFjO0FBQ2pDLFNBQU87QUFNUCxXQUFTLE1BQU0sT0FBT0YsUUFBTyxRQUFRO0FBQ25DLFdBQU87QUFBQSxNQUNMLGVBQWUsS0FBSyxLQUNsQixhQUFhO0FBQUEsUUFDWDtBQUFBLFFBQ0E7QUFBQSxRQUNBLE9BQU9BLFdBQVUsV0FBV0EsU0FBUTtBQUFBLFFBQ3BDLFVBQVU7QUFBQSxNQUNaO0FBQUEsSUFDSjtBQUFBLEVBQ0Y7QUFDRjtBQUVBLFNBQVMsS0FBSztBQUNaLFNBQU87QUFDVDtBQU1BLFNBQVMsZUFBZSxPQUFPO0FBQzdCLFNBQU8sVUFBVSxRQUFRLE9BQU8sVUFBVSxZQUFZLFVBQVU7QUFDbEU7OztBQzlSTyxTQUFTLE1BQU1HLElBQUc7QUFDdkIsU0FBT0E7QUFDVDs7O0FDeU5BLElBQU0sUUFBUSxDQUFDO0FBS1IsSUFBTSxXQUFXO0FBS2pCLElBQU0sT0FBTztBQUtiLElBQU0sT0FBTztBQWlEYixTQUFTLGFBQWEsTUFBTSxNQUFNLFNBQVMsU0FBUztBQUV6RCxNQUFJO0FBRUosTUFBSSxPQUFPLFNBQVMsY0FBYyxPQUFPLFlBQVksWUFBWTtBQUMvRCxjQUFVO0FBRVYsY0FBVTtBQUFBLEVBQ1osT0FBTztBQUVMLFlBQVE7QUFBQSxFQUNWO0FBRUEsUUFBTUMsTUFBSyxRQUFRLEtBQUs7QUFDeEIsUUFBTSxPQUFPLFVBQVUsS0FBSztBQUU1QixVQUFRLE1BQU0sUUFBVyxDQUFDLENBQUMsRUFBRTtBQU83QixXQUFTLFFBQVEsTUFBTUMsUUFBTyxTQUFTO0FBQ3JDLFVBQU07QUFBQTtBQUFBLE1BQ0osUUFBUSxPQUFPLFNBQVMsV0FBVyxPQUFPLENBQUM7QUFBQTtBQUc3QyxRQUFJLE9BQU8sTUFBTSxTQUFTLFVBQVU7QUFDbEMsWUFBTTtBQUFBO0FBQUEsUUFFSixPQUFPLE1BQU0sWUFBWSxXQUNyQixNQUFNO0FBQUE7QUFBQSxVQUVSLE9BQU8sTUFBTSxTQUFTLFdBQ3BCLE1BQU0sT0FDTjtBQUFBO0FBQUE7QUFFTixhQUFPLGVBQWUsT0FBTyxRQUFRO0FBQUEsUUFDbkMsT0FDRSxXQUFXLE1BQU0sS0FBSyxRQUFRLE9BQU8sTUFBTSxPQUFPLE1BQU0sR0FBRyxJQUFJO0FBQUEsTUFDbkUsQ0FBQztBQUFBLElBQ0g7QUFFQSxXQUFPO0FBRVAsYUFBUyxRQUFRO0FBRWYsVUFBSSxTQUFTO0FBRWIsVUFBSTtBQUVKLFVBQUk7QUFFSixVQUFJO0FBRUosVUFBSSxDQUFDLFFBQVFELElBQUcsTUFBTUMsUUFBTyxRQUFRLFFBQVEsU0FBUyxDQUFDLEtBQUssTUFBUyxHQUFHO0FBRXRFLGlCQUFTLFNBQVMsUUFBUSxNQUFNLE9BQU8sQ0FBQztBQUV4QyxZQUFJLE9BQU8sQ0FBQyxNQUFNLE1BQU07QUFDdEIsaUJBQU87QUFBQSxRQUNUO0FBQUEsTUFDRjtBQUVBLFVBQUksY0FBYyxRQUFRLEtBQUssVUFBVTtBQUN2QyxjQUFNO0FBQUE7QUFBQSxVQUEyQztBQUFBO0FBRWpELFlBQUksYUFBYSxZQUFZLE9BQU8sQ0FBQyxNQUFNLE1BQU07QUFDL0Msb0JBQVUsVUFBVSxhQUFhLFNBQVMsU0FBUyxNQUFNO0FBQ3pELHlCQUFlLFFBQVEsT0FBTyxZQUFZO0FBRTFDLGlCQUFPLFNBQVMsTUFBTSxTQUFTLGFBQWEsU0FBUyxRQUFRO0FBQzNELGtCQUFNLFFBQVEsYUFBYSxTQUFTLE1BQU07QUFFMUMsd0JBQVksUUFBUSxPQUFPLFFBQVEsWUFBWSxFQUFFO0FBRWpELGdCQUFJLFVBQVUsQ0FBQyxNQUFNLE1BQU07QUFDekIscUJBQU87QUFBQSxZQUNUO0FBRUEscUJBQ0UsT0FBTyxVQUFVLENBQUMsTUFBTSxXQUFXLFVBQVUsQ0FBQyxJQUFJLFNBQVM7QUFBQSxVQUMvRDtBQUFBLFFBQ0Y7QUFBQSxNQUNGO0FBRUEsYUFBTztBQUFBLElBQ1Q7QUFBQSxFQUNGO0FBQ0Y7QUFVQSxTQUFTLFNBQVMsT0FBTztBQUN2QixNQUFJLE1BQU0sUUFBUSxLQUFLLEdBQUc7QUFDeEIsV0FBTztBQUFBLEVBQ1Q7QUFFQSxNQUFJLE9BQU8sVUFBVSxVQUFVO0FBQzdCLFdBQU8sQ0FBQyxVQUFVLEtBQUs7QUFBQSxFQUN6QjtBQUVBLFNBQU8sVUFBVSxRQUFRLFVBQVUsU0FBWSxRQUFRLENBQUMsS0FBSztBQUMvRDs7O0FDdllPLFNBQVNDLE1BQUs7QUFBQzs7O0FDQWYsSUFBTSxTQUFOLE1BQWE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU9sQixZQUFZLFVBQVUsUUFBUSxPQUFPO0FBQ25DLFNBQUssV0FBVztBQUNoQixTQUFLLFNBQVM7QUFDZCxRQUFJLE9BQU87QUFDVCxXQUFLLFFBQVE7QUFBQSxJQUNmO0FBQUEsRUFDRjtBQUNGO0FBR0EsT0FBTyxVQUFVLFdBQVcsQ0FBQztBQUU3QixPQUFPLFVBQVUsU0FBUyxDQUFDO0FBRTNCLE9BQU8sVUFBVSxRQUFROzs7QUNmbEIsU0FBUyxNQUFNLGFBQWEsT0FBTztBQUV4QyxRQUFNLFdBQVcsQ0FBQztBQUVsQixRQUFNLFNBQVMsQ0FBQztBQUNoQixNQUFJQyxTQUFRO0FBRVosU0FBTyxFQUFFQSxTQUFRLFlBQVksUUFBUTtBQUNuQyxXQUFPLE9BQU8sVUFBVSxZQUFZQSxNQUFLLEVBQUUsUUFBUTtBQUNuRCxXQUFPLE9BQU8sUUFBUSxZQUFZQSxNQUFLLEVBQUUsTUFBTTtBQUFBLEVBQ2pEO0FBRUEsU0FBTyxJQUFJLE9BQU8sVUFBVSxRQUFRLEtBQUs7QUFDM0M7OztBQ3JCTyxTQUFTLFVBQVUsT0FBTztBQUMvQixTQUFPLE1BQU0sWUFBWTtBQUMzQjs7O0FDTk8sSUFBTSxPQUFOLE1BQVc7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFNaEIsWUFBWSxVQUFVLFdBQVc7QUFFL0IsU0FBSyxXQUFXO0FBRWhCLFNBQUssWUFBWTtBQUFBLEVBQ25CO0FBQ0Y7QUFHQSxLQUFLLFVBQVUsUUFBUTtBQUN2QixLQUFLLFVBQVUsVUFBVTtBQUN6QixLQUFLLFVBQVUsYUFBYTtBQUM1QixLQUFLLFVBQVUsb0JBQW9CO0FBQ25DLEtBQUssVUFBVSxTQUFTO0FBQ3hCLEtBQUssVUFBVSxpQkFBaUI7QUFDaEMsS0FBSyxVQUFVLGlCQUFpQjtBQUNoQyxLQUFLLFVBQVUsd0JBQXdCO0FBQ3ZDLEtBQUssVUFBVSxrQkFBa0I7QUFDakMsS0FBSyxVQUFVLFVBQVU7OztBQ3hCekI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxJQUFJLFNBQVM7QUFFTixJQUFNLFVBQVUsVUFBVTtBQUMxQixJQUFNLGFBQWEsVUFBVTtBQUM3QixJQUFNLG9CQUFvQixVQUFVO0FBQ3BDLElBQU0sU0FBUyxVQUFVO0FBQ3pCLElBQU0saUJBQWlCLFVBQVU7QUFDakMsSUFBTSxpQkFBaUIsVUFBVTtBQUNqQyxJQUFNLHdCQUF3QixVQUFVO0FBRS9DLFNBQVMsWUFBWTtBQUNuQixTQUFPLEtBQUssRUFBRTtBQUNoQjs7O0FDUEEsSUFBTSxTQUFTLE9BQU8sS0FBSyxhQUFLO0FBRXpCLElBQU0sY0FBTixjQUEwQixLQUFLO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQVFwQyxZQUFZLFVBQVUsV0FBVyxNQUFNLE9BQU87QUFDNUMsUUFBSUMsU0FBUTtBQUVaLFVBQU0sVUFBVSxTQUFTO0FBRXpCLFNBQUssTUFBTSxTQUFTLEtBQUs7QUFFekIsUUFBSSxPQUFPLFNBQVMsVUFBVTtBQUM1QixhQUFPLEVBQUVBLFNBQVEsT0FBTyxRQUFRO0FBQzlCLGNBQU0sUUFBUSxPQUFPQSxNQUFLO0FBQzFCLGFBQUssTUFBTSxPQUFPQSxNQUFLLElBQUksT0FBTyxjQUFNLEtBQUssT0FBTyxjQUFNLEtBQUssQ0FBQztBQUFBLE1BQ2xFO0FBQUEsSUFDRjtBQUFBLEVBQ0Y7QUFDRjtBQUVBLFlBQVksVUFBVSxVQUFVO0FBT2hDLFNBQVMsS0FBSyxRQUFRQyxNQUFLLE9BQU87QUFDaEMsTUFBSSxPQUFPO0FBRVQsV0FBT0EsSUFBRyxJQUFJO0FBQUEsRUFDaEI7QUFDRjs7O0FDekJBLElBQU0sTUFBTSxDQUFDLEVBQUU7QUFNUixTQUFTLE9BQU8sWUFBWTtBQUVqQyxRQUFNLFdBQVcsQ0FBQztBQUVsQixRQUFNLFNBQVMsQ0FBQztBQUVoQixNQUFJO0FBRUosT0FBSyxRQUFRLFdBQVcsWUFBWTtBQUNsQyxRQUFJLElBQUksS0FBSyxXQUFXLFlBQVksSUFBSSxHQUFHO0FBQ3pDLFlBQU0sUUFBUSxXQUFXLFdBQVcsSUFBSTtBQUN4QyxZQUFNLE9BQU8sSUFBSTtBQUFBLFFBQ2Y7QUFBQSxRQUNBLFdBQVcsVUFBVSxXQUFXLGNBQWMsQ0FBQyxHQUFHLElBQUk7QUFBQSxRQUN0RDtBQUFBLFFBQ0EsV0FBVztBQUFBLE1BQ2I7QUFFQSxVQUNFLFdBQVcsbUJBQ1gsV0FBVyxnQkFBZ0IsU0FBUyxJQUFJLEdBQ3hDO0FBQ0EsYUFBSyxrQkFBa0I7QUFBQSxNQUN6QjtBQUVBLGVBQVMsSUFBSSxJQUFJO0FBRWpCLGFBQU8sVUFBVSxJQUFJLENBQUMsSUFBSTtBQUMxQixhQUFPLFVBQVUsS0FBSyxTQUFTLENBQUMsSUFBSTtBQUFBLElBQ3RDO0FBQUEsRUFDRjtBQUVBLFNBQU8sSUFBSSxPQUFPLFVBQVUsUUFBUSxXQUFXLEtBQUs7QUFDdEQ7OztBQ3ZETyxJQUFNLFFBQVEsT0FBTztBQUFBLEVBQzFCLE9BQU87QUFBQSxFQUNQLFVBQVVDLElBQUcsTUFBTTtBQUNqQixXQUFPLFdBQVcsS0FBSyxNQUFNLENBQUMsRUFBRSxZQUFZO0FBQUEsRUFDOUM7QUFBQSxFQUNBLFlBQVk7QUFBQSxJQUNWLGNBQWM7QUFBQSxJQUNkLGNBQWM7QUFBQSxJQUNkLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLFlBQVk7QUFBQSxJQUNaLFdBQVc7QUFBQSxFQUNiO0FBQ0YsQ0FBQzs7O0FDZE0sSUFBTSxNQUFNLE9BQU87QUFBQSxFQUN4QixPQUFPO0FBQUEsRUFDUCxVQUFVQyxJQUFHLE1BQU07QUFDakIsV0FBTyxTQUFTLEtBQUssTUFBTSxDQUFDLEVBQUUsWUFBWTtBQUFBLEVBQzVDO0FBQUEsRUFDQSxZQUFZLEVBQUMsU0FBUyxNQUFNLFNBQVMsTUFBTSxVQUFVLEtBQUk7QUFDM0QsQ0FBQzs7O0FDSE0sU0FBUyx1QkFBdUIsWUFBWSxXQUFXO0FBQzVELFNBQU8sYUFBYSxhQUFhLFdBQVcsU0FBUyxJQUFJO0FBQzNEOzs7QUNBTyxTQUFTLHlCQUF5QixZQUFZLFVBQVU7QUFDN0QsU0FBTyx1QkFBdUIsWUFBWSxTQUFTLFlBQVksQ0FBQztBQUNsRTs7O0FDTk8sSUFBTSxRQUFRLE9BQU87QUFBQSxFQUMxQixPQUFPO0FBQUEsRUFDUCxZQUFZLEVBQUMsWUFBWSxjQUFhO0FBQUEsRUFDdEMsV0FBVztBQUFBLEVBQ1gsWUFBWSxFQUFDLE9BQU8sTUFBTSxZQUFZLEtBQUk7QUFDNUMsQ0FBQzs7O0FDTE0sSUFBTSxPQUFPLE9BQU87QUFBQSxFQUN6QixVQUFVQyxJQUFHLE1BQU07QUFDakIsV0FBTyxTQUFTLFNBQVMsT0FBTyxVQUFVLEtBQUssTUFBTSxDQUFDLEVBQUUsWUFBWTtBQUFBLEVBQ3RFO0FBQUEsRUFDQSxZQUFZO0FBQUEsSUFDVixzQkFBc0I7QUFBQSxJQUN0QixZQUFZO0FBQUEsSUFDWixrQkFBa0I7QUFBQSxJQUNsQixVQUFVO0FBQUEsSUFDVixhQUFhO0FBQUEsSUFDYixjQUFjO0FBQUEsSUFDZCxjQUFjO0FBQUEsSUFDZCxhQUFhO0FBQUEsSUFDYixjQUFjO0FBQUEsSUFDZCxhQUFhO0FBQUEsSUFDYixpQkFBaUI7QUFBQSxJQUNqQixhQUFhO0FBQUEsSUFDYixjQUFjO0FBQUEsSUFDZCxnQkFBZ0I7QUFBQSxJQUNoQixrQkFBa0I7QUFBQSxJQUNsQixjQUFjO0FBQUEsSUFDZCxZQUFZO0FBQUEsSUFDWixhQUFhO0FBQUEsSUFDYixjQUFjO0FBQUEsSUFDZCxZQUFZO0FBQUEsSUFDWixhQUFhO0FBQUEsSUFDYixrQkFBa0I7QUFBQSxJQUNsQixXQUFXO0FBQUEsSUFDWCxnQkFBZ0I7QUFBQSxJQUNoQixXQUFXO0FBQUEsSUFDWCxVQUFVO0FBQUEsSUFDVixXQUFXO0FBQUEsSUFDWCxlQUFlO0FBQUEsSUFDZixxQkFBcUI7QUFBQSxJQUNyQixpQkFBaUI7QUFBQSxJQUNqQixVQUFVO0FBQUEsSUFDVixpQkFBaUI7QUFBQSxJQUNqQixjQUFjO0FBQUEsSUFDZCxhQUFhO0FBQUEsSUFDYixjQUFjO0FBQUEsSUFDZCxjQUFjO0FBQUEsSUFDZCxjQUFjO0FBQUEsSUFDZCxxQkFBcUI7QUFBQSxJQUNyQixjQUFjO0FBQUEsSUFDZCxjQUFjO0FBQUEsSUFDZCxhQUFhO0FBQUEsSUFDYixjQUFjO0FBQUEsSUFDZCxhQUFhO0FBQUEsSUFDYixVQUFVO0FBQUEsSUFDVixjQUFjO0FBQUEsSUFDZCxjQUFjO0FBQUEsSUFDZCxjQUFjO0FBQUEsSUFDZCxlQUFlO0FBQUEsSUFDZixNQUFNO0FBQUEsRUFDUjtBQUNGLENBQUM7OztBQy9DTSxJQUFNLE9BQU8sT0FBTztBQUFBLEVBQ3pCLE9BQU87QUFBQSxFQUNQLFlBQVk7QUFBQSxJQUNWLGVBQWU7QUFBQSxJQUNmLFdBQVc7QUFBQSxJQUNYLFNBQVM7QUFBQSxJQUNULFdBQVc7QUFBQSxFQUNiO0FBQUEsRUFDQSxXQUFXO0FBQUEsRUFDWCxpQkFBaUIsQ0FBQyxXQUFXLFlBQVksU0FBUyxVQUFVO0FBQUEsRUFDNUQsWUFBWTtBQUFBO0FBQUEsSUFFVixNQUFNO0FBQUEsSUFDTixRQUFRO0FBQUEsSUFDUixlQUFlO0FBQUEsSUFDZixXQUFXO0FBQUEsSUFDWCxRQUFRO0FBQUEsSUFDUixPQUFPO0FBQUEsSUFDUCxpQkFBaUI7QUFBQSxJQUNqQixxQkFBcUI7QUFBQSxJQUNyQixnQkFBZ0I7QUFBQSxJQUNoQixLQUFLO0FBQUEsSUFDTCxJQUFJO0FBQUEsSUFDSixPQUFPO0FBQUEsSUFDUCxnQkFBZ0I7QUFBQSxJQUNoQixjQUFjO0FBQUEsSUFDZCxXQUFXO0FBQUEsSUFDWCxVQUFVO0FBQUEsSUFDVixTQUFTO0FBQUEsSUFDVCxTQUFTO0FBQUEsSUFDVCxTQUFTO0FBQUEsSUFDVCxNQUFNO0FBQUEsSUFDTixXQUFXO0FBQUEsSUFDWCxNQUFNO0FBQUEsSUFDTixTQUFTO0FBQUEsSUFDVCxTQUFTO0FBQUEsSUFDVCxpQkFBaUI7QUFBQSxJQUNqQixVQUFVO0FBQUEsSUFDVixjQUFjO0FBQUEsSUFDZCxRQUFRLFNBQVM7QUFBQSxJQUNqQixhQUFhO0FBQUEsSUFDYixNQUFNO0FBQUEsSUFDTixVQUFVO0FBQUEsSUFDVixVQUFVO0FBQUEsSUFDVixTQUFTO0FBQUEsSUFDVCxPQUFPO0FBQUEsSUFDUCxLQUFLO0FBQUEsSUFDTCxTQUFTO0FBQUEsSUFDVCxVQUFVO0FBQUEsSUFDVixVQUFVO0FBQUEsSUFDVixXQUFXO0FBQUEsSUFDWCxTQUFTO0FBQUEsSUFDVCxjQUFjO0FBQUEsSUFDZCxNQUFNO0FBQUEsSUFDTixZQUFZO0FBQUEsSUFDWixhQUFhO0FBQUEsSUFDYixZQUFZO0FBQUEsSUFDWixnQkFBZ0I7QUFBQSxJQUNoQixZQUFZO0FBQUEsSUFDWixTQUFTO0FBQUEsSUFDVCxRQUFRO0FBQUEsSUFDUixRQUFRO0FBQUEsSUFDUixNQUFNO0FBQUEsSUFDTixNQUFNO0FBQUEsSUFDTixVQUFVO0FBQUEsSUFDVixTQUFTO0FBQUEsSUFDVCxXQUFXO0FBQUEsSUFDWCxJQUFJO0FBQUEsSUFDSixZQUFZO0FBQUEsSUFDWixhQUFhO0FBQUEsSUFDYixXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxJQUFJO0FBQUEsSUFDSixPQUFPO0FBQUEsSUFDUCxRQUFRO0FBQUEsSUFDUixVQUFVO0FBQUEsSUFDVixTQUFTO0FBQUEsSUFDVCxXQUFXO0FBQUEsSUFDWCxVQUFVO0FBQUEsSUFDVixNQUFNO0FBQUEsSUFDTixPQUFPO0FBQUEsSUFDUCxNQUFNO0FBQUEsSUFDTixVQUFVO0FBQUEsSUFDVixNQUFNO0FBQUEsSUFDTixTQUFTO0FBQUEsSUFDVCxNQUFNO0FBQUEsSUFDTixLQUFLO0FBQUEsSUFDTCxVQUFVO0FBQUEsSUFDVixLQUFLO0FBQUEsSUFDTCxXQUFXO0FBQUEsSUFDWCxPQUFPO0FBQUEsSUFDUCxRQUFRO0FBQUEsSUFDUixLQUFLO0FBQUEsSUFDTCxXQUFXO0FBQUEsSUFDWCxVQUFVO0FBQUEsSUFDVixPQUFPO0FBQUEsSUFDUCxNQUFNO0FBQUEsSUFDTixPQUFPO0FBQUEsSUFDUCxVQUFVO0FBQUEsSUFDVixZQUFZO0FBQUEsSUFDWixTQUFTO0FBQUEsSUFDVCxjQUFjO0FBQUEsSUFDZCxZQUFZO0FBQUEsSUFDWixlQUFlO0FBQUEsSUFDZixlQUFlO0FBQUEsSUFDZixnQkFBZ0I7QUFBQSxJQUNoQixRQUFRO0FBQUEsSUFDUixVQUFVO0FBQUEsSUFDVixXQUFXO0FBQUEsSUFDWCxrQkFBa0I7QUFBQSxJQUNsQixVQUFVO0FBQUEsSUFDVixTQUFTO0FBQUEsSUFDVCxTQUFTO0FBQUEsSUFDVCxlQUFlO0FBQUEsSUFDZixlQUFlO0FBQUEsSUFDZixtQkFBbUI7QUFBQSxJQUNuQixRQUFRO0FBQUEsSUFDUixhQUFhO0FBQUEsSUFDYixPQUFPO0FBQUEsSUFDUCxZQUFZO0FBQUEsSUFDWixRQUFRO0FBQUEsSUFDUixXQUFXO0FBQUEsSUFDWCxhQUFhO0FBQUEsSUFDYixZQUFZO0FBQUEsSUFDWixhQUFhO0FBQUEsSUFDYixZQUFZO0FBQUEsSUFDWixhQUFhO0FBQUEsSUFDYixRQUFRO0FBQUEsSUFDUixrQkFBa0I7QUFBQSxJQUNsQixXQUFXO0FBQUEsSUFDWCxTQUFTO0FBQUEsSUFDVCxTQUFTO0FBQUEsSUFDVCxTQUFTO0FBQUEsSUFDVCxZQUFZO0FBQUEsSUFDWixjQUFjO0FBQUEsSUFDZCxTQUFTO0FBQUEsSUFDVCxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxZQUFZO0FBQUEsSUFDWixTQUFTO0FBQUEsSUFDVCxrQkFBa0I7QUFBQSxJQUNsQixRQUFRO0FBQUEsSUFDUixjQUFjO0FBQUEsSUFDZCxrQkFBa0I7QUFBQSxJQUNsQixXQUFXO0FBQUEsSUFDWCxhQUFhO0FBQUEsSUFDYixXQUFXO0FBQUEsSUFDWCxnQkFBZ0I7QUFBQSxJQUNoQixhQUFhO0FBQUEsSUFDYixjQUFjO0FBQUEsSUFDZCxjQUFjO0FBQUEsSUFDZCxhQUFhO0FBQUEsSUFDYixZQUFZO0FBQUEsSUFDWixhQUFhO0FBQUEsSUFDYixXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxVQUFVO0FBQUEsSUFDVixZQUFZO0FBQUEsSUFDWixZQUFZO0FBQUEsSUFDWixTQUFTO0FBQUEsSUFDVCxTQUFTO0FBQUEsSUFDVCxRQUFRO0FBQUEsSUFDUixXQUFXO0FBQUEsSUFDWCxZQUFZO0FBQUEsSUFDWixZQUFZO0FBQUEsSUFDWixjQUFjO0FBQUEsSUFDZCxvQkFBb0I7QUFBQSxJQUNwQixTQUFTO0FBQUEsSUFDVCxVQUFVO0FBQUEsSUFDVixVQUFVO0FBQUEsSUFDVixhQUFhO0FBQUEsSUFDYiwyQkFBMkI7QUFBQSxJQUMzQixVQUFVO0FBQUEsSUFDVixXQUFXO0FBQUEsSUFDWCxVQUFVO0FBQUEsSUFDVixjQUFjO0FBQUEsSUFDZCxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxVQUFVO0FBQUEsSUFDVixXQUFXO0FBQUEsSUFDWCxjQUFjO0FBQUEsSUFDZCxVQUFVO0FBQUEsSUFDVixzQkFBc0I7QUFBQSxJQUN0QixVQUFVO0FBQUEsSUFDVixnQkFBZ0I7QUFBQSxJQUNoQixXQUFXO0FBQUEsSUFDWCxTQUFTO0FBQUEsSUFDVCxNQUFNO0FBQUEsSUFDTixTQUFTO0FBQUEsSUFDVCxTQUFTO0FBQUEsSUFDVCxNQUFNO0FBQUEsSUFDTixhQUFhO0FBQUEsSUFDYixhQUFhO0FBQUEsSUFDYixRQUFRO0FBQUEsSUFDUixTQUFTO0FBQUEsSUFDVCxVQUFVO0FBQUEsSUFDVixnQkFBZ0I7QUFBQSxJQUNoQixLQUFLO0FBQUEsSUFDTCxVQUFVO0FBQUEsSUFDVixVQUFVO0FBQUEsSUFDVixNQUFNO0FBQUEsSUFDTixTQUFTO0FBQUEsSUFDVCxTQUFTO0FBQUEsSUFDVCxPQUFPO0FBQUEsSUFDUCxRQUFRO0FBQUEsSUFDUixVQUFVO0FBQUEsSUFDVixVQUFVO0FBQUEsSUFDVixPQUFPO0FBQUEsSUFDUCxNQUFNO0FBQUEsSUFDTixPQUFPO0FBQUEsSUFDUCxNQUFNO0FBQUEsSUFDTixN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VUFBVTtBQUFBLElBQ1Ysa0JBQWtCO0FBQUEsSUFDbEIsa0JBQWtCO0FBQUEsSUFDbEIsYUFBYTtBQUFBLElBQ2IsVUFBVTtBQUFBLElBQ1YsWUFBWTtBQUFBLElBQ1osY0FBYztBQUFBLElBQ2QsWUFBWTtBQUFBLElBQ1osVUFBVTtBQUFBLElBQ1YsZ0JBQWdCO0FBQUEsSUFDaEIsYUFBYTtBQUFBLElBQ2IsV0FBVztBQUFBLElBQ1gsYUFBYTtBQUFBLElBQ2IsWUFBWTtBQUFBLElBQ1osV0FBVztBQUFBLElBQ1gsNEJBQTRCO0FBQUEsSUFDNUIsMEJBQTBCO0FBQUEsSUFDMUIsVUFBVTtBQUFBLElBQ1YsV0FBVztBQUFBLElBQ1gsY0FBYztBQUFBLElBQ2QsY0FBYztBQUFBLElBQ2QsZ0JBQWdCO0FBQUEsSUFDaEIsZUFBZTtBQUFBLElBQ2YsZUFBZTtBQUFBLElBQ2YsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsYUFBYTtBQUFBLElBQ2IsU0FBUztBQUFBLElBQ1QsYUFBYTtBQUFBLElBQ2IsY0FBYztBQUFBLElBQ2QsU0FBUztBQUFBLElBQ1QsU0FBUztBQUFBLElBQ1QsU0FBUztBQUFBLElBQ1QsVUFBVTtBQUFBLElBQ1YsT0FBTztBQUFBLElBQ1AsV0FBVztBQUFBLElBQ1gsWUFBWTtBQUFBLElBQ1osU0FBUztBQUFBLElBQ1QsWUFBWTtBQUFBLElBQ1osY0FBYztBQUFBLElBQ2QsZUFBZTtBQUFBLElBQ2YsU0FBUztBQUFBLElBQ1QsVUFBVTtBQUFBLElBQ1YsV0FBVztBQUFBLElBQ1gsa0JBQWtCO0FBQUEsSUFDbEIsVUFBVTtBQUFBLElBQ1YsU0FBUztBQUFBLElBQ1QsU0FBUztBQUFBLElBQ1QsUUFBUTtBQUFBLElBQ1IsYUFBYTtBQUFBLElBQ2IsT0FBTztBQUFBLElBQ1AsWUFBWTtBQUFBLElBQ1osUUFBUTtBQUFBLElBQ1IsV0FBVztBQUFBLElBQ1gsYUFBYTtBQUFBLElBQ2IsWUFBWTtBQUFBLElBQ1osYUFBYTtBQUFBLElBQ2IsWUFBWTtBQUFBLElBQ1osYUFBYTtBQUFBLElBQ2IsUUFBUTtBQUFBLElBQ1Isa0JBQWtCO0FBQUEsSUFDbEIsV0FBVztBQUFBLElBQ1gsT0FBTztBQUFBLElBQ1AsU0FBUztBQUFBLElBQ1QsU0FBUztBQUFBLElBQ1QsU0FBUztBQUFBLElBQ1QsV0FBVztBQUFBLElBQ1gsWUFBWTtBQUFBLElBQ1osY0FBYztBQUFBLElBQ2QsU0FBUztBQUFBLElBQ1QsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsWUFBWTtBQUFBLElBQ1osU0FBUztBQUFBLElBQ1QsUUFBUTtBQUFBLElBQ1IsY0FBYztBQUFBLElBQ2Qsa0JBQWtCO0FBQUEsSUFDbEIsYUFBYTtBQUFBLElBQ2IsV0FBVztBQUFBLElBQ1gsYUFBYTtBQUFBLElBQ2IsY0FBYztBQUFBLElBQ2QsY0FBYztBQUFBLElBQ2QsYUFBYTtBQUFBLElBQ2IsWUFBWTtBQUFBLElBQ1osYUFBYTtBQUFBLElBQ2IsV0FBVztBQUFBLElBQ1gsY0FBYztBQUFBLElBQ2QsV0FBVztBQUFBLElBQ1gsVUFBVTtBQUFBLElBQ1YsWUFBWTtBQUFBLElBQ1osWUFBWTtBQUFBLElBQ1osU0FBUztBQUFBLElBQ1QsU0FBUztBQUFBLElBQ1QsUUFBUTtBQUFBLElBQ1IsV0FBVztBQUFBLElBQ1gsWUFBWTtBQUFBLElBQ1osWUFBWTtBQUFBLElBQ1osY0FBYztBQUFBLElBQ2QsVUFBVTtBQUFBLElBQ1YsU0FBUztBQUFBLElBQ1QsVUFBVTtBQUFBLElBQ1YsVUFBVTtBQUFBLElBQ1YsVUFBVTtBQUFBLElBQ1YsV0FBVztBQUFBLElBQ1gsVUFBVTtBQUFBLElBQ1YsUUFBUTtBQUFBLElBQ1IsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsVUFBVTtBQUFBLElBQ1YsV0FBVztBQUFBLElBQ1gsY0FBYztBQUFBLElBQ2QsVUFBVTtBQUFBLElBQ1YsVUFBVTtBQUFBLElBQ1YsZ0JBQWdCO0FBQUEsSUFDaEIsV0FBVztBQUFBLElBQ1gsUUFBUTtBQUFBLElBQ1Isa0JBQWtCO0FBQUEsSUFDbEIsbUJBQW1CO0FBQUEs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QWE7QUFBQSxJQUNiLE1BQU07QUFBQSxJQUNOLGtCQUFrQjtBQUFBLElBQ2xCLFdBQVc7QUFBQSxJQUNYLGNBQWM7QUFBQSxJQUNkLEtBQUs7QUFBQSxJQUNMLE9BQU87QUFBQSxJQUNQLHdCQUF3QjtBQUFBLElBQ3hCLHVCQUF1QjtBQUFBLElBQ3ZCLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLFFBQVE7QUFBQSxJQUNSLEtBQUs7QUFBQSxJQUNMLE1BQU07QUFBQSxJQUNOLE1BQU07QUFBQSxJQUNOLFNBQVM7QUFBQSxJQUNULGFBQWE7QUFBQSxJQUNiLGNBQWM7QUFBQSxJQUNkLFNBQVM7QUFBQSxJQUNULFNBQVM7QUFBQSxJQUNULFNBQVM7QUFBQSxJQUNULFVBQVU7QUFBQSxJQUNWLE9BQU87QUFBQSxJQUNQLFdBQVc7QUFBQSxJQUNYLFlBQVk7QUFBQSxJQUNaLFlBQVk7QUFBQSxJQUNaLFVBQVU7QUFBQSxJQUNWLFFBQVE7QUFBQSxJQUNSLFNBQVM7QUFBQSxJQUNULFlBQVk7QUFBQSxJQUNaLGNBQWM7QUFBQSxJQUNkLGVBQWU7QUFBQSxJQUNmLFNBQVM7QUFBQSxJQUNULFVBQVU7QUFBQSxJQUNWLFdBQVc7QUFBQSxJQUNYLGtCQUFrQjtBQUFBLElBQ2xCLFVBQVU7QUFBQSxJQUNWLFNBQVM7QUFBQSxJQUNULFNBQVM7QUFBQSxJQUNULFFBQVE7QUFBQSxJQUNSLGFBQWE7QUFBQSxJQUNiLE9BQU87QUFBQSxJQUNQLFlBQVk7QUFBQSxJQUNaLFFBQVE7QUFBQSxJQUNSLFdBQVc7QUFBQSxJQUNYLGFBQWE7QUFBQSxJQUNiLFlBQVk7QUFBQSxJQUNaLGFBQWE7QUFBQSxJQUNiLFlBQVk7QUFBQSxJQUNaLGFBQWE7QUFBQSxJQUNiLFFBQVE7QUFBQSxJQUNSLGtCQUFrQjtBQUFBLElBQ2xCLFdBQVc7QUFBQSxJQUNYLE9BQU87QUFBQSxJQUNQLFNBQVM7QUFBQSxJQUNULFNBQVM7QUFBQSxJQUNULFNBQVM7QUFBQSxJQUNULFdBQVc7QUFBQSxJQUNYLFlBQVk7QUFBQSxJQUNaLGNBQWM7QUFBQSxJQUNkLFNBQVM7QUFBQSxJQUNULFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLFlBQVk7QUFBQSxJQUNaLFNBQVM7QUFBQSxJQUNULFFBQVE7QUFBQSxJQUNSLGNBQWM7QUFBQSxJQUNkLGtCQUFrQjtBQUFBLElBQ2xCLGFBQWE7QUFBQSxJQUNiLFdBQVc7QUFBQSxJQUNYLGFBQWE7QUFBQSxJQUNiLGNBQWM7QUFBQSxJQUNkLGNBQWM7QUFBQSxJQUNkLGFBQWE7QUFBQSxJQUNiLFlBQVk7QUFBQSxJQUNaLGFBQWE7QUFBQSxJQUNiLFdBQVc7QUFBQSxJQUNYLGNBQWM7QUFBQSxJQUNkLFdBQVc7QUFBQSxJQUNYLFVBQVU7QUFBQSxJQUNWLFlBQVk7QUFBQSxJQUNaLFlBQVk7QUFBQSxJQUNaLFNBQVM7QUFBQSxJQUNULFNBQVM7QUFBQSxJQUNULFFBQVE7QUFBQSxJQUNSLFdBQVc7QUFBQSxJQUNYLFlBQVk7QUFBQSxJQUNaLFlBQVk7QUFBQSxJQUNaLGNBQWM7QUFBQSxJQUNkLFVBQVU7QUFBQSxJQUNWLFNBQVM7QUFBQSxJQUNULFVBQVU7QUFBQSxJQUNWLFVBQVU7QUFBQSxJQUNWLFVBQVU7QUFBQSxJQUNWLFdBQVc7QUFBQSxJQUNYLFVBQVU7QUFBQSxJQUNWLFFBQVE7QUFBQSxJQUNSLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLFVBQVU7QUFBQSxJQUNWLFdBQVc7QUFBQSxJQUNYLGNBQWM7QUFBQSxJQUNkLFVBQVU7QUFBQSxJQUNWLFVBQVU7QUFBQSxJQUNWLGdCQUFnQjtBQUFBLElBQ2hCLFdBQVc7QUFBQSxJQUNYLFFBQVE7QUFBQSxJQUNSLFNBQVM7QUFBQSxJQUNULFVBQVU7QUFBQSxJQUNWLE9BQU87QUFBQSxJQUNQLFFBQVE7QUFBQSxJQUNSLGFBQWE7QUFBQSxJQUNiLFFBQVE7QUFBQSxJQUNSLFVBQVU7QUFBQSxJQUNWLFNBQVM7QUFBQSxJQUNULGtCQUFrQjtBQUFBLElBQ2xCLG1CQUFtQjtBQUFBLElBQ25CLFlBQVk7QUFBQSxJQUNaLFNBQVM7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RUFBQUEsV0FBVSxVQUFVLElBQUk7QUFDeEIsRUFBQUEsV0FBVSxTQUFTLElBQUk7QUFDdkIsRUFBQUEsV0FBVSxLQUFLLElBQUk7QUFDbkIsRUFBQUEsV0FBVSxZQUFZLElBQUk7QUFDMUIsRUFBQUEsV0FBVSxNQUFNLElBQUk7QUFDcEIsRUFBQUEsV0FBVSxJQUFJLElBQUk7QUFDbEIsRUFBQUEsV0FBVSxRQUFRLElBQUk7QUFDdEIsRUFBQUEsV0FBVSxTQUFTLElBQUk7QUFDdkIsRUFBQUEsV0FBVSxRQUFRLElBQUk7QUFDdEIsRUFBQUEsV0FBVSxNQUFNLElBQUk7QUFDcEIsRUFBQUEsV0FBVSxLQUFLLElBQUk7QUFDbkIsRUFBQUEsV0FBVSxVQUFVLElBQUk7QUFDeEIsRUFBQUEsV0FBVSxJQUFJLElBQUk7QUFDbEIsRUFBQUEsV0FBVSxNQUFNLElBQUk7QUFDcEIsRUFBQUEsV0FBVSxTQUFTLElBQUk7QUFDdkIsRUFBQUEsV0FBVSxRQUFRLElBQUk7QUFDdEIsRUFBQUEsV0FBVSxLQUFLLElBQUk7QUFDbkIsRUFBQUEsV0FBVSxLQUFLLElBQUk7QUFDbkIsRUFBQUEsV0FBVSxJQUFJLElBQUk7QUFDbEIsRUFBQUEsV0FBVSxJQUFJLElBQUk7QUFDbEIsRUFBQUEsV0FBVSxJQUFJLElBQUk7QUFDbEIsRUFBQUEsV0FBVSxPQUFPLElBQUk7QUFDckIsRUFBQUEsV0FBVSxVQUFVLElBQUk7QUFDeEIsRUFBQUEsV0FBVSxZQUFZLElBQUk7QUFDMUIsRUFBQUEsV0FBVSxRQUFRLElBQUk7QUFDdEIsRUFBQUEsV0FBVSxNQUFNLElBQUk7QUFDcEIsRUFBQUEsV0FBVSxRQUFRLElBQUk7QUFDdEIsRUFBQUEsV0FBVSxnQkFBZ0IsSUFBSTtBQUM5QixFQUFBQSxXQUFVLE1BQU0sSUFBSTtBQUNwQixFQUFBQSxXQUFVLE9BQU8sSUFBSTtBQUNyQixFQUFBQSxXQUFVLFVBQVUsSUFBSTtBQUN4QixFQUFBQSxXQUFVLElBQUksSUFBSTtBQUNsQixFQUFBQSxXQUFVLElBQUksSUFBSTtBQUNsQixFQUFBQSxXQUFVLElBQUksSUFBSTtBQUNsQixFQUFBQSxXQUFVLElBQUksSUFBSTtBQUNsQixFQUFBQSxXQUFVLElBQUksSUFBSTtBQUNsQixFQUFBQSxXQUFVLElBQUksSUFBSTtBQUNsQixFQUFBQSxXQUFVLE1BQU0sSUFBSTtBQUNwQixFQUFBQSxXQUFVLFFBQVEsSUFBSTtBQUN0QixFQUFBQSxXQUFVLFFBQVEsSUFBSTtBQUN0QixFQUFBQSxXQUFVLElBQUksSUFBSTtBQUNsQixFQUFBQSxXQUFVLE1BQU0sSUFBSTtBQUNwQixFQUFBQSxXQUFVLEdBQUcsSUFBSTtBQUNqQixFQUFBQSxXQUFVLEtBQUssSUFBSTtBQUNuQixFQUFBQSxXQUFVLE9BQU8sSUFBSTtBQUNyQixFQUFBQSxXQUFVLE9BQU8sSUFBSTtBQUNyQixFQUFBQSxXQUFVLFFBQVEsSUFBSTtBQUN0QixFQUFBQSxXQUFVLFFBQVEsSUFBSTtBQUN0QixFQUFBQSxXQUFVLE9BQU8sSUFBSTtBQUNyQixFQUFBQSxXQUFVLElBQUksSUFBSTtBQUNsQixFQUFBQSxXQUFVLE1BQU0sSUFBSTtBQUNwQixFQUFBQSxXQUFVLFNBQVMsSUFBSTtBQUN2QixFQUFBQSxXQUFVLE1BQU0sSUFBSTtBQUNwQixFQUFBQSxXQUFVLFlBQVksSUFBSTtBQUMxQixFQUFBQSxXQUFVLFNBQVMsSUFBSTtBQUN2QixFQUFBQSxXQUFVLE1BQU0sSUFBSTtBQUNwQixFQUFBQSxXQUFVLE1BQU0sSUFBSTtBQUNwQixFQUFBQSxXQUFVLE1BQU0sSUFBSTtBQUNwQixFQUFBQSxXQUFVLFFBQVEsSUFBSTtBQUN0QixFQUFBQSxXQUFVLElBQUksSUFBSTtBQUNsQixFQUFBQSxXQUFVLElBQUksSUFBSTtBQUNsQixFQUFBQSxXQUFVLElBQUksSUFBSTtBQUNsQixFQUFBQSxXQUFVLElBQUksSUFBSTtBQUNsQixFQUFBQSxXQUFVLE9BQU8sSUFBSTtBQUNyQixFQUFBQSxXQUFVLEtBQUssSUFBSTtBQUNuQixFQUFBQSxXQUFVLE1BQU0sSUFBSTtBQUNwQixFQUFBQSxXQUFVLFVBQVUsSUFBSTtBQUN4QixFQUFBQSxXQUFVLFNBQVMsSUFBSTtBQUN2QixFQUFBQSxXQUFVLFVBQVUsSUFBSTtBQUN4QixFQUFBQSxXQUFVLFFBQVEsSUFBSTtBQUN0QixFQUFBQSxXQUFVLElBQUksSUFBSTtBQUNsQixFQUFBQSxXQUFVLFVBQVUsSUFBSTtBQUN4QixFQUFBQSxXQUFVLFFBQVEsSUFBSTtBQUN0QixFQUFBQSxXQUFVLEdBQUcsSUFBSTtBQUNqQixFQUFBQSxXQUFVLE9BQU8sSUFBSTtBQUNyQixFQUFBQSxXQUFVLFdBQVcsSUFBSTtBQUN6QixFQUFBQSxXQUFVLEtBQUssSUFBSTtBQUNuQixFQUFBQSxXQUFVLElBQUksSUFBSTtBQUNsQixFQUFBQSxXQUFVLElBQUksSUFBSTtBQUNsQixFQUFBQSxXQUFVLElBQUksSUFBSTtBQUNsQixFQUFBQSxXQUFVLEtBQUssSUFBSTtBQUNuQixFQUFBQSxXQUFVLE1BQU0sSUFBSTtBQUNwQixFQUFBQSxXQUFVLEdBQUcsSUFBSTtBQUNqQixFQUFBQSxXQUFVLFFBQVEsSUFBSTtBQUN0QixFQUFBQSxXQUFVLFNBQVMsSUFBSTtBQUN2QixFQUFBQSxXQUFVLFFBQVEsSUFBSTtBQUN0QixFQUFBQSxXQUFVLFFBQVEsSUFBSTtBQUN0QixFQUFBQSxXQUFVLE9BQU8sSUFBSTtBQUNyQixFQUFBQSxXQUFVLE1BQU0sSUFBSTtBQUNwQixFQUFBQSxXQUFVLFFBQVEsSUFBSTtBQUN0QixFQUFBQSxXQUFVLFFBQVEsSUFBSTtBQUN0QixFQUFBQSxXQUFVLE9BQU8sSUFBSTtBQUNyQixFQUFBQSxXQUFVLEtBQUssSUFBSTtBQUNuQixFQUFBQSxXQUFVLFNBQVMsSUFBSTtBQUN2QixFQUFBQSxXQUFVLEtBQUssSUFBSTtBQUNuQixFQUFBQSxXQUFVLE9BQU8sSUFBSTtBQUNyQixFQUFBQSxXQUFVLE9BQU8sSUFBSTtBQUNyQixFQUFBQSxXQUFVLFVBQVUsSUFBSTtBQUN4QixFQUFBQSxXQUFVLFVBQVUsSUFBSTtBQUN4QixFQUFBQSxXQUFVLE9BQU8sSUFBSTtBQUNyQixFQUFBQSxXQUFVLElBQUksSUFBSTtBQUNsQixFQUFBQSxXQUFVLElBQUksSUFBSTtBQUNsQixFQUFBQSxXQUFVLE9BQU8sSUFBSTtBQUNyQixFQUFBQSxXQUFVLE9BQU8sSUFBSTtBQUNyQixFQUFBQSxXQUFVLElBQUksSUFBSTtBQUNsQixFQUFBQSxXQUFVLE9BQU8sSUFBSTtBQUNyQixFQUFBQSxXQUFVLElBQUksSUFBSTtBQUNsQixFQUFBQSxXQUFVLEdBQUcsSUFBSTtBQUNqQixFQUFBQSxXQUFVLElBQUksSUFBSTtBQUNsQixFQUFBQSxXQUFVLEtBQUssSUFBSTtBQUNuQixFQUFBQSxXQUFVLEtBQUssSUFBSTtBQUNuQixFQUFBQSxXQUFVLEtBQUssSUFBSTtBQUNuQixFQUFBQSxXQUFVLEtBQUssSUFBSTtBQUN2QixHQUFHLFlBQVksY0FBYyxZQUFZLENBQUMsRUFBRTtBQU1yQyxJQUFJO0FBQUEsQ0FDVixTQUFVQyxTQUFRO0FBQ2YsRUFBQUEsUUFBT0EsUUFBTyxTQUFTLElBQUksQ0FBQyxJQUFJO0FBQ2hDLEVBQUFBLFFBQU9BLFFBQU8sR0FBRyxJQUFJLENBQUMsSUFBSTtBQUMxQixFQUFBQSxRQUFPQSxRQUFPLFNBQVMsSUFBSSxDQUFDLElBQUk7QUFDaEMsRUFBQUEsUUFBT0EsUUFBTyxnQkFBZ0IsSUFBSSxDQUFDLElBQUk7QUFDdkMsRUFBQUEsUUFBT0EsUUFBTyxRQUFRLElBQUksQ0FBQyxJQUFJO0FBQy9CLEVBQUFBLFFBQU9BLFFBQU8sTUFBTSxJQUFJLENBQUMsSUFBSTtBQUM3QixFQUFBQSxRQUFPQSxRQUFPLFNBQVMsSUFBSSxDQUFDLElBQUk7QUFDaEMsRUFBQUEsUUFBT0EsUUFBTyxPQUFPLElBQUksQ0FBQyxJQUFJO0FBQzlCLEVBQUFBLFFBQU9BLFFBQU8sR0FBRyxJQUFJLENBQUMsSUFBSTtBQUMxQixFQUFBQSxRQUFPQSxRQUFPLE1BQU0sSUFBSSxDQUFDLElBQUk7QUFDN0IsRUFBQUEsUUFBT0EsUUFBTyxVQUFVLElBQUksRUFBRSxJQUFJO0FBQ2xDLEVBQUFBLFFBQU9BLFFBQU8sU0FBUyxJQUFJLEVBQUUsSUFBSTtBQUNqQyxFQUFBQSxRQUFPQSxRQUFPLEtBQUssSUFBSSxFQUFFLElBQUk7QUFDN0IsRUFBQUEsUUFBT0EsUUFBTyxZQUFZLElBQUksRUFBRSxJQUFJO0FBQ3BDLEVBQUFBLFFBQU9BLFFBQU8sTUFBTSxJQUFJLEVBQUUsSUFBSTtBQUM5QixFQUFBQSxRQUFPQSxRQUFPLElBQUksSUFBSSxFQUFFLElBQUk7QUFDNUIsRUFBQUEsUUFBT0EsUUFBTyxRQUFRLElBQUksRUFBRSxJQUFJO0FBQ2hDLEVBQUFBLFFBQU9BLFFBQU8sU0FBUyxJQUFJLEVBQUUsSUFBSTtBQUNqQyxFQUFBQSxRQUFPQSxRQUFPLFFBQVEsSUFBSSxFQUFFLElBQUk7QUFDaEMsRUFBQUEsUUFBT0EsUUFBTyxNQUFNLElBQUksRUFBRSxJQUFJO0FBQzlCLEVBQUFBLFFBQU9BLFFBQU8sS0FBSyxJQUFJLEVBQUUsSUFBSTtBQUM3QixFQUFBQSxRQUFPQSxRQUFPLFVBQVUsSUFBSSxFQUFFLElBQUk7QUFDbEMsRUFBQUEsUUFBT0EsUUFBTyxJQUFJLElBQUksRUFBRSxJQUFJO0FBQzVCLEVBQUFBLFFBQU9BLFFBQU8sTUFBTSxJQUFJLEVBQUUsSUFBSTtBQUM5QixFQUFBQSxRQUFPQSxRQUFPLFNBQVMsSUFBSSxFQUFFLElBQUk7QUFDakMsRUFBQUEsUUFBT0EsUUFBTyxRQUFRLElBQUksRUFBRSxJQUFJO0FBQ2hDLEVBQUFBLFFBQU9BLFFBQU8sS0FBSyxJQUFJLEVBQUUsSUFBSTtBQUM3QixFQUFBQSxRQUFPQSxRQUFPLEtBQUssSUFBSSxFQUFFLElBQUk7QUFDN0IsRUFBQUEsUUFBT0EsUUFBTyxJQUFJLElBQUksRUFBRSxJQUFJO0FBQzVCLEVBQUFBLFFBQU9BLFFBQU8sSUFBSSxJQUFJLEVBQUUsSUFBSTtBQUM1QixFQUFBQSxRQUFPQSxRQUFPLElBQUksSUFBSSxFQUFFLElBQUk7QUFDNUIsRUFBQUEsUUFBT0EsUUFBTyxPQUFPLElBQUksRUFBRSxJQUFJO0FBQy9CLEVB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QUFJLE9BQU8sRUFBRTtBQUFBLEVBQ3hCLENBQUMsVUFBVSxRQUFRLE9BQU8sTUFBTTtBQUFBLEVBQ2hDLENBQUMsVUFBVSxTQUFTLE9BQU8sT0FBTztBQUFBLEVBQ2xDLENBQUMsVUFBVSxRQUFRLE9BQU8sTUFBTTtBQUFBLEVBQ2hDLENBQUMsVUFBVSxNQUFNLE9BQU8sSUFBSTtBQUFBLEVBQzVCLENBQUMsVUFBVSxLQUFLLE9BQU8sR0FBRztBQUFBLEVBQzFCLENBQUMsVUFBVSxVQUFVLE9BQU8sUUFBUTtBQUFBLEVBQ3BDLENBQUMsVUFBVSxJQUFJLE9BQU8sRUFBRTtBQUFBLEVBQ3hCLENBQUMsVUFBVSxNQUFNLE9BQU8sSUFBSTtBQUFBLEVBQzVCLENBQUMsVUFBVSxTQUFTLE9BQU8sT0FBTztBQUFBLEVBQ2xDLENBQUMsVUFBVSxRQUFRLE9BQU8sTUFBTTtBQUFBLEVBQ2hDLENBQUMsVUFBVSxLQUFLLE9BQU8sR0FBRztBQUFBLEVBQzFCLENBQUMsVUFBVSxLQUFLLE9BQU8sR0FBRztBQUFBLEVBQzFCLENBQUMsVUFBVSxJQUFJLE9BQU8sRUFBRTtBQUFBLEVBQ3hCLENBQUMsVUFBVSxJQUFJLE9BQU8sRUFBRTtBQUFBLEVBQ3hCLENBQUMsVUFBVSxJQUFJLE9BQU8sRUFBRTtBQUFBLEVBQ3hCLENBQUMsVUFBVSxPQUFPLE9BQU8sS0FBSztBQUFBLEVBQzlCLENBQUMsVUFBVSxVQUFVLE9BQU8sUUFBUTtBQUFBLEVBQ3BDLENBQUMsVUFBVSxZQUFZLE9BQU8sVUFBVTtBQUFBLEVBQ3hDLENBQUMsVUFBVSxRQUFRLE9BQU8sTUFBTTtBQUFBLEVBQ2hDLENBQUMsVUFBVSxNQUFNLE9BQU8sSUFBSTtBQUFBLEVBQzVCLENBQUMsVUFBVSxRQUFRLE9BQU8sTUFBTTtBQUFBLEVBQ2hDLENBQUMsVUFBVSxnQkFBZ0IsT0FBTyxjQUFjO0FBQUEsRUFDaEQsQ0FBQyxVQUFVLE1BQU0sT0FBTyxJQUFJO0FBQUEsRUFDNUIsQ0FBQyxVQUFVLE9BQU8sT0FBTyxLQUFLO0FBQUEsRUFDOUIsQ0FBQyxVQUFVLFVBQVUsT0FBTyxRQUFRO0FBQUEsRUFDcEMsQ0FBQyxVQUFVLElBQUksT0FBTyxFQUFFO0FBQUEsRUFDeEIsQ0FBQyxVQUFVLElBQUksT0FBTyxFQUFFO0FBQUEsRUFDeEIsQ0FBQyxVQUFVLElBQUksT0FBTyxFQUFFO0FBQUEsRUFDeEIsQ0FBQyxVQUFVLElBQUksT0FBTyxFQUFFO0FBQUEsRUFDeEIsQ0FBQyxVQUFVLElBQUksT0FBTyxFQUFFO0FBQUEsRUFDeEIsQ0FBQyxVQUFVLElBQUksT0FBTyxFQUFFO0FBQUEsRUFDeEIsQ0FBQyxVQUFVLE1BQU0sT0FBTyxJQUFJO0FBQUEsRUFDNUIsQ0FBQyxVQUFVLFFBQVEsT0FBTyxNQUFNO0FBQUEsRUFDaEMsQ0FBQyxVQUFVLFFBQVEsT0FBTyxNQUFNO0FBQUEsRUFDaEMsQ0FBQyxVQUFVLElBQUksT0FBTyxFQUFFO0FBQUEsRUFDeEIsQ0FBQyxVQUFVLE1BQU0sT0FBTyxJQUFJO0FBQUEsRUFDNUIsQ0FBQyxVQUFVLEdBQUcsT0FBTyxDQUFDO0FBQUEsRUFDdEIsQ0FBQyxVQUFVLEtBQUssT0FBTyxHQUFHO0FBQUEsRUFDMUIsQ0FBQyxVQUFVLE9BQU8sT0FBTyxLQUFLO0FBQUEsRUFDOUIsQ0FBQyxVQUFVLE9BQU8sT0FBTyxLQUFLO0FBQUEsRUFDOUIsQ0FBQyxVQUFVLFFBQVEsT0FBTyxNQUFNO0FBQUEsRUFDaEMsQ0FBQyxVQUFVLFFBQVEsT0FBTyxNQUFNO0FBQUEsRUFDaEMsQ0FBQyxVQUFVLE9BQU8sT0FBTyxLQUFLO0FBQUEsRUFDOUIsQ0FBQyxVQUFVLElBQUksT0FBTyxFQUFFO0FBQUEsRUFDeEIsQ0FBQyxVQUFVLE1BQU0sT0FBTyxJQUFJO0FBQUEsRUFDNUIsQ0FBQyxVQUFVLFNBQVMsT0FBTyxPQUFPO0FBQUEsRUFDbEMsQ0FBQyxVQUFVLE1BQU0sT0FBTyxJQUFJO0FBQUEsRUFDNUIsQ0FBQyxVQUFVLFlBQVksT0FBTyxVQUFVO0FBQUEsRUFDeEMsQ0FBQyxVQUFVLFNBQVMsT0FBTyxPQUFPO0FBQUEsRUFDbEMsQ0FBQyxVQUFVLE1BQU0sT0FBTyxJQUFJO0FBQUEsRUFDNUIsQ0FBQyxVQUFVLE1BQU0sT0FBTyxJQUFJO0FBQUEsRUFDNUIsQ0FBQyxVQUFVLE1BQU0sT0FBTyxJQUFJO0FBQUEsRUFDNUIsQ0FBQyxVQUFVLFFBQVEsT0FBTyxNQUFNO0FBQUEsRUFDaEMsQ0FBQyxVQUFVLElBQUksT0FBTyxFQUFFO0FBQUEsRUFDeEIsQ0FBQyxVQUFVLElBQUksT0FBTyxFQUFFO0FBQUEsRUFDeEIsQ0FBQyxVQUFVLElBQUksT0FBTyxFQUFFO0FBQUEsRUFDeEIsQ0FBQyxVQUFVLElBQUksT0FBTyxFQUFFO0FBQUEsRUFDeEIsQ0FBQyxVQUFVLE9BQU8sT0FBTyxLQUFLO0FBQUEsRUFDOUIsQ0FBQyxVQUFVLEtBQUssT0FBTyxHQUFHO0FBQUEsRUFDMUIsQ0FBQyxVQUFVLE1BQU0sT0FBTyxJQUFJO0FBQUEsRUFDNUIsQ0FBQyxVQUFVLFVBQVUsT0FBTyxRQUFRO0FBQUEsRUFDcEMsQ0FBQyxVQUFVLFNBQVMsT0FBTyxPQUFPO0FBQUEsRUFDbEMsQ0FBQyxVQUFVLFVBQVUsT0FBTyxRQUFRO0FBQUEsRUFDcEMsQ0FBQyxVQUFVLFFBQVEsT0FBTyxNQUFNO0FBQUEsRUFDaEMsQ0FBQyxVQUFVLElBQUksT0FBTyxFQUFFO0FBQUEsRUFDeEIsQ0FBQyxVQUFVLFVBQVUsT0FBTyxRQUFRO0FBQUEsRUFDcEMsQ0FBQyxVQUFVLFFBQVEsT0FBTyxNQUFNO0FBQUEsRUFDaEMsQ0FBQyxVQUFVLEdBQUcsT0FBTyxDQUFDO0FBQUEsRUFDdEIsQ0FBQyxVQUFVLE9BQU8sT0FBTyxLQUFLO0FBQUEsRUFDOUIsQ0FBQyxVQUFVLFdBQVcsT0FBTyxTQUFTO0FBQUEsRUFDdEMsQ0FBQyxVQUFVLEtBQUssT0FBTyxHQUFHO0FBQUEsRUFDMUIsQ0FBQyxVQUFVLElBQUksT0FBTyxFQUFFO0FBQUEsRUFDeEIsQ0FBQyxVQUFVLElBQUksT0FBTyxFQUFFO0FBQUEsRUFDeEIsQ0FBQyxVQUFVLElBQUksT0FBTyxFQUFFO0FBQUEsRUFDeEIsQ0FBQyxVQUFVLEtBQUssT0FBTyxHQUFHO0FBQUEsRUFDMUIsQ0FBQyxVQUFVLE1BQU0sT0FBTyxJQUFJO0FBQUEsRUFDNUIsQ0FBQyxVQUFVLEdBQUcsT0FBTyxDQUFDO0FBQUEsRUFDdEIsQ0FBQyxVQUFVLFFBQVEsT0FBTyxNQUFNO0FBQUEsRUFDaEMsQ0FBQyxVQUFVLFNBQVMsT0FBTyxPQUFPO0FBQUEsRUFDbEMsQ0FBQyxVQUFVLFFBQVEsT0FBTyxNQUFNO0FBQUEsRUFDaEMsQ0FBQyxVQUFVLFFBQVEsT0FBTyxNQUFNO0FBQUEsRUFDaEMsQ0FBQyxVQUFVLE9BQU8sT0FBTyxLQUFLO0FBQUEsRUFDOUIsQ0FBQyxVQUFVLE1BQU0sT0FBTyxJQUFJO0FBQUEsRUFDNUIsQ0FBQyxVQUFVLFFBQVEsT0FBTyxNQUFNO0FBQUEsRUFDaEMsQ0FBQyxVQUFVLFFBQVEsT0FBTyxNQUFNO0FBQUEsRUFDaEMsQ0FBQyxVQUFVLE9BQU8sT0FBTyxLQUFLO0FBQUEsRUFDOUIsQ0FBQyxVQUFVLEtBQUssT0FBTyxHQUFHO0FBQUEsRUFDMUIsQ0FBQyxVQUFVLFNBQVMsT0FBTyxPQUFPO0FBQUEsRUFDbEMsQ0FBQyxVQUFVLEtBQUssT0FBTyxHQUFHO0FBQUEsRUFDMUIsQ0FBQyxVQUFVLE9BQU8sT0FBTyxLQUFLO0FBQUEsRUFDOUIsQ0FBQyxVQUFVLE9BQU8sT0FBTyxLQUFLO0FBQUEsRUFDOUIsQ0FBQyxVQUFVLFVBQVUsT0FBTyxRQUFRO0FBQUEsRUFDcEMsQ0FBQyxVQUFVLFVBQVUsT0FBTyxRQUFRO0FBQUEsRUFDcEMsQ0FBQyxVQUFVLE9BQU8sT0FBTyxLQUFLO0FBQUEsRUFDOUIsQ0FBQyxVQUFVLElBQUksT0FBTyxFQUFFO0FBQUEsRUFDeEIsQ0FBQyxVQUFVLElBQUksT0FBTyxFQUFFO0FBQUEsRUFDeEIsQ0FBQyxVQUFVLE9BQU8sT0FBTyxLQUFLO0FBQUEsRUFDOUIsQ0FBQyxVQUFVLE9BQU8sT0FBTyxLQUFLO0FBQUEsRUFDOUIsQ0FBQyxVQUFVLElBQUksT0FBTyxFQUFFO0FBQUEsRUFDeEIsQ0FBQyxVQUFVLE9BQU8sT0FBTyxLQUFLO0FBQUEsRUFDOUIsQ0FBQyxVQUFVLElBQUksT0FBTyxFQUFFO0FBQUEsRUFDeEIsQ0FBQyxVQUFVLEdBQUcsT0FBTyxDQUFDO0FBQUEsRUFDdEIsQ0FBQyxVQUFVLElBQUksT0FBTyxFQUFFO0FBQUEsRUFDeEIsQ0FBQyxVQUFVLEtBQUssT0FBTyxHQUFHO0FBQUEsRUFDMUIsQ0FBQyxVQUFVLEtBQUssT0FBTyxHQUFHO0FBQUEsRUFDMUIsQ0FBQyxVQUFVLEtBQUssT0FBTyxHQUFHO0FBQUEsRUFDMUIsQ0FBQyxVQUFVLEtBQUssT0FBTyxHQUFHO0FBQzlCLENBQUM7QUFDTSxTQUFTLFNBQVMsU0FBUztBQUM5QixNQUFJQztBQUNKLFVBQVFBLE1BQUssZUFBZSxJQUFJLE9BQU8sT0FBTyxRQUFRQSxRQUFPLFNBQVNBLE1BQUssT0FBTztBQUN0RjtBQUNBLElBQU1DLEtBQUk7QUFDSCxJQUFNLG1CQUFtQjtBQUFBLEVBQzVCLENBQUMsR0FBRyxJQUFJLEdBQUcsb0JBQUksSUFBSTtBQUFBLElBQ2ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLElBQ0ZBLEdBQUU7QUFBQSxJQUNGQSxHQUFFO0FBQUEsSUFDRkEsR0FBRTtBQUFBLEVBQ04sQ0FBQztBQUFBLEVBQ0QsQ0FBQyxHQUFHLE1BQU0sR0FBRyxvQkFB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QyxFQUFBQSxPQUFNQSxPQUFNLHFCQUFxQixJQUFJLENBQUMsSUFBSTtBQUMxQyxFQUFBQSxPQUFNQSxPQUFNLHFCQUFxQixJQUFJLEVBQUUsSUFBSTtBQUMzQyxFQUFBQSxPQUFNQSxPQUFNLHdCQUF3QixJQUFJLEVBQUUsSUFBSTtBQUM5QyxFQUFBQSxPQUFNQSxPQUFNLHNCQUFzQixJQUFJLEVBQUUsSUFBSTtBQUM1QyxFQUFBQSxPQUFNQSxPQUFNLHNCQUFzQixJQUFJLEVBQUUsSUFBSTtBQUM1QyxFQUFBQSxPQUFNQSxPQUFNLDRCQUE0QixJQUFJLEVBQUUsSUFBSTtBQUNsRCxFQUFBQSxPQUFNQSxPQUFNLDBCQUEwQixJQUFJLEVBQUUsSUFBSTtBQUNoRCxFQUFBQSxPQUFNQSxPQUFNLDBCQUEwQixJQUFJLEVBQUUsSUFBSTtBQUNoRCxFQUFBQSxPQUFNQSxPQUFNLDBCQUEwQixJQUFJLEVBQUUsSUFBSTtBQUNoRCxFQUFBQSxPQUFNQSxPQUFNLCtCQUErQixJQUFJLEVBQUUsSUFBSTtBQUNyRCxFQUFBQSxPQUFNQSxPQUFNLHFCQUFxQixJQUFJLEVBQUUsSUFBSTtBQUMzQyxFQUFBQSxPQUFNQSxPQUFNLDBCQUEwQixJQUFJLEVBQUUsSUFBSTtBQUNoRCxFQUFBQSxPQUFNQSxPQUFNLCtCQUErQixJQUFJLEVBQUUsSUFBSTtBQUNyRCxFQUFBQSxPQUFNQSxPQUFNLG9DQUFvQyxJQUFJLEVBQUUsSUFBSTtBQUMxRCxFQUFBQSxPQUFNQSxPQUFNLGtDQUFrQyxJQUFJLEVBQUUsSUFBSTtBQUN4RCxFQUFBQSxPQUFNQSxPQUFNLGtDQUFrQyxJQUFJLEVBQUUsSUFBSTtBQUN4RCxFQUFBQSxPQUFNQSxPQUFNLGlDQUFpQyxJQUFJLEVBQUUsSUFBSTtBQUN2RCxFQUFBQSxPQUFNQSxPQUFNLDRCQUE0QixJQUFJLEVBQUUsSUFBSTtBQUNsRCxFQUFBQSxPQUFNQSxPQUFNLGlDQUFpQyxJQUFJLEVBQUUsSUFBSTtBQUN2RCxFQUFBQSxPQUFNQSxPQUFNLHNDQUFzQyxJQUFJLEVBQUUsSUFBSTtBQUM1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QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUNKLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLFlBQVksR0FBRyxFQUFFLENBQUMsQ0FBQztBQUVyQyxJQUFNLHdCQUF3QixvQkFBSSxJQUFJO0FBQUEsRUFDbEMsT0FBRTtBQUFBLEVBQ0YsT0FBRTtBQUFBLEVBQ0YsT0FBRTtBQUFBLEVBQ0YsT0FBRTtBQUFBLEVBQ0YsT0FBRTtBQUFBLEVBQ0YsT0FBRTtBQUFBLEVBQ0YsT0FBRTtBQUFBLEVBQ0YsT0FBRTtBQUFBLEVBQ0YsT0FBRTtBQUFBLEVBQ0YsT0FBRTtBQUFBLEVBQ0YsT0FBRTtBQUFBLEVBQ0YsT0FBRTtBQUFBLEVBQ0YsT0FBRTtBQUFBLEVBQ0YsT0FBRTtBQUFBLEVBQ0YsT0FBRTtBQUFBLEVBQ0YsT0FBRTtBQUFBLEVBQ0YsT0FBRTtBQUFBLEVBQ0YsT0FBRTtBQUFBLEVBQ0YsT0FBRTtBQUFBLEVBQ0YsT0FBRTtBQUFBLEVBQ0YsT0FBRTtBQUFBLEVBQ0YsT0FBRTtBQUFBLEVBQ0YsT0FBRTtBQUFBLEVBQ0YsT0FBRTtBQUFBLEVBQ0YsT0FBRTtBQUFBLEVBQ0YsT0FBRTtBQUFBLEVBQ0YsT0FBRTtBQUFBLEVBQ0YsT0FBRTtBQUFBLEVBQ0YsT0FBRTtBQUFBLEVBQ0YsT0FBRTtBQUFBLEVBQ0YsT0FBRTtBQUFBLEVBQ0YsT0FBRTtBQUFBLEVBQ0Ys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QU0sU0FBUztBQUFBO0FBQUEsRUFFcEIsMkJBQTJCO0FBQUEsSUFDekIsUUFBUTtBQUFBLElBQ1IsYUFDRTtBQUFBLElBQ0YsS0FBSztBQUFBLEVBQ1A7QUFBQTtBQUFBLEVBRUEsNkJBQTZCO0FBQUEsSUFDM0IsUUFBUTtBQUFBLElBQ1IsYUFBYTtBQUFBLEVBQ2Y7QUFBQTtBQUFBLEVBRUEsK0JBQStCO0FBQUEsSUFDN0IsUUFBUTtBQUFBLElBQ1IsYUFDRTtBQUFBLEVBQ0o7QUFBQTtBQUFBLEVBRUEsK0JBQStCO0FBQUEsSUFDN0IsUUFBUTtBQUFBLElBQ1IsYUFDRTtBQUFBLEVBQ0o7QUFBQTtBQUFBLEVBRUEsNENBQTRDO0FBQUEsSUFDMUMsUUFBUTtBQUFBLElBQ1IsYUFDRTtBQUFBLEVBQ0o7QUFBQTtBQUFBLEVBRUEsb0JBQW9CO0FBQUEsSUFDbEIsUUFBUTtBQUFBLElBQ1IsYUFDRTtBQUFBLEVBQ0o7QUFBQTtBQUFBLEVBRUEsdUNBQXVDO0FBQUEsSUFDckMsUUFBUTtBQUFBLElBQ1IsYUFDRTtBQUFBLEVBQ0o7QUFBQTtBQUFBLEVBRUEsdUNBQXVDO0FBQUEsSUFDckMsUUFBUTtBQUFBLElBQ1IsYUFDRTtBQUFBLElBQ0YsS0FBSztBQUFBLEVBQ1A7QUFBQTtBQUFBLEVBRUEsK0JBQStCO0FBQUEsSUFDN0IsUUFBUTtBQUFBLElBQ1IsYUFDRTtBQUFBLEVBQ0o7QUFBQTtBQUFBLEVBRUEsMkJBQTJCO0FBQUEsSUFDekIsUUFBUTtBQUFBLElBQ1IsYUFDRTtBQUFBLEVBQ0o7QUFBQTtBQUFBLEVBRUEsbUNBQW1DO0FBQUEsSUFDakMsUUFBUTtBQUFBLElBQ1IsYUFDRTtBQUFBLElBQ0YsS0FBSztBQUFBLEVBQ1A7QUFBQTtBQUFBLEVBRUEsb0JBQW9CO0FBQUEsSUFDbEIsUUFBUTtBQUFBLElBQ1IsYUFDRTtBQUFBLEVBQ0o7QUFBQTtBQUFBLEVBRUEsc0JBQXNCO0FBQUEsSUFDcEIsUUFBUTtBQUFBLElBQ1IsYUFBYTtBQUFBLEVBQ2Y7QUFBQTtBQUFBLEVBRUEsMkJBQTJCO0FBQUEsSUFDekIsUUFBUTtBQUFBLElBQ1IsYUFBYTtBQUFBLEVBQ2Y7QUFBQTtBQUFBLEVBRUEsa0NBQWtDO0FBQUEsSUFDaEMsUUFBUTtBQUFBLElBQ1IsYUFBYTtBQUFBLElBQ2IsS0FBSztBQUFBLEVBQ1A7QUFBQTtBQUFBLEVBRUEsa0JBQWtCO0FBQUEsSUFDaEIsUUFBUTtBQUFBLElBQ1IsYUFBYTtBQUFBLEVBQ2Y7QUFBQTtBQUFBLEVBRUEsWUFBWTtBQUFBLElBQ1YsUUFBUTtBQUFBLElBQ1IsYUFBYTtBQUFBLEVBQ2Y7QUFBQTtBQUFBLEVBRUEsY0FBYztBQUFBLElBQ1osUUFBUTtBQUFBLElBQ1IsYUFBYTtBQUFBLEVBQ2Y7QUFBQTtBQUFBLEVBRUEsY0FBYztBQUFBLElBQ1osUUFBUTtBQUFBLElBQ1IsYUFDRTtBQUFBLEVBQ0o7QUFBQTtBQUFBLEVBRUEsb0NBQW9DO0FBQUEsSUFDbEMsUUFBUTtBQUFBLElBQ1IsYUFBYTtBQUFBLElBQ2IsS0FBSztBQUFBLEVBQ1A7QUFBQTtBQUFBLEVBRUEsZ0NBQWdDO0FBQUEsSUFDOUIsUUFBUTtBQUFBLElBQ1IsYUFBYTtBQUFBLEVBQ2Y7QUFBQTtBQUFBLEVBRUEsVUFBVTtBQUFBLElBQ1IsUUFBUTtBQUFBLElBQ1IsYUFBYTtBQUFBLEVBQ2Y7QUFBQTtBQUFBLEVBRUEsMEJBQTBCO0FBQUEsSUFDeEIsUUFBUTtBQUFBLElBQ1IsYUFBYTtBQUFBLEVBQ2Y7QUFBQTtBQUFBLEVBRUEsMEJBQTBCO0FBQUEsSUFDeEIsUUFBUTtBQUFBLElBQ1IsYUFBYTtBQUFBLEVBQ2Y7QUFBQTtBQUFBLEVBRUEsMENBQTBDO0FBQUEsSUFDeEMsUUFBUTtBQUFBLElBQ1IsYUFBYTtBQUFBLEVBQ2Y7QUFBQTtBQUFBLEVBRUEsZ0NBQWdDO0FBQUEsSUFDOUIsUUFBUTtBQUFBLElBQ1IsYUFBYTtBQUFBLEVBQ2Y7QUFBQTtBQUFBLEVBRUEsa0JBQWtCO0FBQUEsSUFDaEIsUUFBUTtBQUFBLElBQ1IsYUFBYTtBQUFBLElBQ2IsS0FBSztBQUFBLEVBQ1A7QUFBQTtBQUFBLEVB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LEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQ0Y7OztBQzNHTyxJQUFNLHlCQUF5QjtBQUFBLEVBQ3BDLE1BQU07QUFBQSxFQUNOLE9BQU87QUFBQSxFQUNQLE1BQU07QUFBQSxFQUNOLE9BQU87QUFBQSxFQUNQLFFBQVE7QUFBQSxFQUNSLEtBQUs7QUFBQSxFQUNMLFFBQVE7QUFBQSxFQUNSLE1BQU07QUFBQSxFQUNOLEtBQUs7QUFBQSxFQUNMLE1BQU07QUFBQSxFQUNOLE1BQU07QUFBQSxFQUNOLE9BQU87QUFBQSxFQUNQLEtBQUs7QUFBQSxFQUNMLEtBQUs7QUFBQSxFQUNMLEtBQUs7QUFBQSxFQUNMLE1BQU07QUFBQSxFQUNOLEtBQUs7QUFBQSxFQUNMLFFBQVE7QUFBQSxFQUNSLE1BQU07QUFBQSxFQUNOLE1BQU07QUFBQSxFQUNOLE9BQU87QUFBQSxFQUNQLE9BQU87QUFBQSxFQUNQLE1BQU07QUFBQSxFQUNOLFFBQVE7QUFBQSxFQUNSLE9BQU87QUFBQSxFQUNQLE1BQU07QUFBQSxFQUNOLE1BQU07QUFBQSxFQUNOLE9BQU87QUFBQSxFQUNQLFFBQVE7QUFBQSxFQUNSLFFBQVE7QUFBQSxFQUNSLFFBQVE7QUFBQSxFQUNSLFFBQVE7QUFBQSxFQUNSLFFBQVE7QUFBQSxFQUNSLFFBQVE7QUFBQSxFQUNSLE9BQU87QUFBQSxFQUNQLFFBQVE7QUFBQSxFQUNSLE1BQU07QUFBQSxFQUNOLE9BQU87QUFBQSxFQUNQLE9BQU87QUFBQSxFQUNQLFFBQVE7QUFBQSxFQUNSLFFBQVE7QUFBQSxFQUNSLFFBQVE7QUFBQSxFQUNSLE9BQU87QUFBQSxFQUNQLE1BQU07QUFBQSxFQUNOLFFBQVE7QUFBQSxFQUNSLFFBQVE7QUFBQSxFQUNSLE9BQU87QUFBQSxFQUNQLE1BQU07QUFBQSxFQUNOLEtBQUs7QUFBQSxFQUNMLFFBQVE7QUFBQSxFQUNSLFFBQVE7QUFBQSxFQUNSLFFBQVE7QUFBQSxFQUNSLE9BQU87QUFBQSxFQUNQLFFBQVE7QUFBQSxFQUNSLE1BQU07QUFBQSxFQUNOLE9BQU87QUFBQSxFQUNQLFFBQVE7QUFBQSxFQUNSLFFBQVE7QUFBQSxFQUNSLFFBQVE7QUFBQSxFQUNSLE9BQU87QUFBQSxFQUNQLE1BQU07QUFBQSxFQUNOLFFBQVE7QUFBQSxFQUNSLE9BQU87QUFBQSxFQUNQLE9BQU87QUFBQSxFQUNQLFFBQVE7QUFBQSxFQUNSLFFBQVE7QUFBQSxFQUNSLE9BQU87QUFBQSxFQUNQLFFBQVE7QUFBQSxFQUNSLE1BQU07QUFBQSxFQUNOLE9BQU87QUFBQSxFQUNQLE9BQU87QUFBQSxFQUNQLFFBQVE7QUFBQSxFQUNSLFFBQVE7QUFBQSxFQUNSLFFBQVE7QUFBQSxFQUNSLE9BQU87QUFBQSxFQUNQLE1BQU07QUFBQSxFQUNOLFFBQVE7QUFBQSxFQUNSLFFBQVE7QUFBQSxFQUNSLE9BQU87QUFBQSxFQUNQLE1BQU07QUFBQSxFQUNOLEtBQUs7QUFBQSxFQUNMLFFBQVE7QUFBQSxFQUNSLFFBQVE7QUFBQSxFQUNSLFFBQVE7QUFBQSxFQUNSLE9BQU87QUFBQSxFQUNQLFFBQVE7QUFBQSxFQUNSLE1BQU07QUFBQSxFQUNOLFFBQVE7QUFBQSxFQUNSLFFBQVE7QUFBQSxFQUNSLFFBQVE7QUFBQSxFQUNSLFFBQVE7QUFBQSxFQUNSLE9BQU87QUFBQSxFQUNQLE1BQU07QUFBQSxFQUNOLFFBQVE7QUFBQSxFQUNSLE9BQU87QUFBQSxFQUNQLE1BQU07QUFBQSxFQUNOLE1BQU07QUFBQSxFQUNOLE9BQU87QUFBQSxFQUNQLE1BQU07QUFBQSxFQUNOLE9BQU87QUFBQSxFQUNQLE9BQU87QUFBQSxFQUNQLFNBQVM7QUFBQSxFQUNULE1BQU07QUFBQSxFQUNOLEtBQUs7QUFBQSxFQUNMLE9BQU87QUFBQSxFQUNQLE1BQU07QUFBQSxFQUNOLE9BQU87QUFBQSxFQUNQLFFBQVE7QUFBQSxFQUNSLElBQUk7QUFBQSxFQUNKLElBQUk7QUFBQSxFQUNKLElBQUk7QUFBQSxFQUNKLFNBQVM7QUFBQSxFQUNULElBQUk7QUFBQSxFQUNKLEtBQUs7QUFBQSxFQUNMLE9BQU87QUFBQSxFQUNQLEtBQUs7QUFBQSxFQUNMLFNBQVM7QUFBQSxFQUNULEtBQUs7QUFBQSxFQUNMLEtBQUs7QUFBQSxFQUNMLEtBQUs7QUFBQSxFQUNMLE9BQU87QUFBQSxFQUNQLE9BQU87QUFBQSxFQUNQLE1BQU07QUFBQSxFQUNOLE9BQU87QUFBQSxFQUNQLE9BQU87QUFBQSxFQUNQLFNBQVM7QUFBQSxFQUNULE1BQU07QUFBQSxFQUNOLEtBQUs7QUFBQSxFQUNMLE9BQU87QUFBQSxFQUNQLE1BQU07QUFBQSxFQUNOLE9BQU87QUFBQSxFQUNQLFFBQVE7QUFBQSxFQUNSLElBQUk7QUFBQSxFQUNKLElBQUk7QUFBQSxFQUNKLElBQUk7QUFBQSxFQUNKLFNBQVM7QUFBQSxFQUNULElBQUk7QUFBQSxFQUNKLEtBQUs7QUFBQSxFQUNMLFFBQVE7QUFBQSxFQUNSLE9BQU87QUFBQSxFQUNQLEtBQUs7QUFBQSxFQUNMLFNBQVM7QUFBQSxFQUNULEtBQUs7QUFBQSxFQUNMLEtBQUs7QUFBQSxFQUNMLEtBQUs7QUFBQSxFQUNMLE9BQU87QUFBQSxFQUNQLFVBQVU7QUFBQSxFQUNWLE9BQU87QUFBQSxFQUNQLEtBQUs7QUFBQSxFQUNMLE1BQU07QUFBQSxFQUNOLFFBQVE7QUFBQSxFQUNSLE9BQU87QUFBQSxFQUNQLE9BQU87QUFBQSxFQUNQLE9BQU87QUFBQSxFQUNQLE9BQU87QUFBQSxFQUNQLFFBQVE7QUFBQSxFQUNSLE9BQU87QUFBQSxFQUNQLE1BQU07QUFBQSxFQUNOLE9BQU87QUFBQSxFQUNQLFNBQVM7QUFBQSxFQUNULE1BQU07QUFBQSxFQUNOLE1BQU07QUFBQSxFQUNOLE1BQU07QUFBQSxFQUNOLE1BQU07QUFBQSxFQUNOLE1BQU07QUFBQSxFQUNOLE9BQU87QUFBQSxFQUNQLE1BQU07QUFBQSxFQUNOLE1BQU07QUFBQSxFQUNOLE1BQU07QUFBQSxFQUNOLE1BQU07QUFBQSxFQUNOLE1BQU07QUFBQSxFQUNOLFFBQVE7QUFBQSxFQUNSLE1BQU07QUFBQSxFQUNOLE9BQU87QUFBQSxFQUNQLE9BQU87QUFBQSxFQUNQLE9BQU87QUFBQSxFQUNQLE1BQU07QUFBQSxFQUNOLE9BQU87QUFBQSxFQUNQLElBQUk7QUFBQSxFQUNKLE1BQU07QUFBQSxFQUNOLEtBQUs7QUFBQSxFQUNMLE9BQU87QUFBQSxFQUNQLFFBQVE7QUFBQSxFQUNSLE9BQU87QUFBQSxFQUNQLE1BQU07QUFBQSxFQUNOLE9BQU87QUFBQSxFQUNQLEtBQUs7QUFBQSxFQUNMLEtBQUs7QUFBQSxFQUNMLElBQUk7QUFBQSxFQUNKLEtBQUs7QUFBQSxFQUNMLEtBQUs7QUFBQSxFQUNMLEtBQUs7QUFBQSxFQUNMLFFBQVE7QUFBQSxFQUNSLEtBQUs7QUFBQSxFQUNMLE1BQU07QUFBQSxFQUNOLE9BQU87QUFBQSxFQUNQLElBQUk7QUFBQSxFQUNKLE9BQU87QUFBQSxFQUNQLElBQUk7QUFBQSxFQUNKLElBQUk7QUFBQSxFQUNKLEtBQUs7QUFBQSxFQUNMLEtBQUs7QUFBQSxFQUNMLE1BQU07QUFBQSxFQUNOLE1BQU07QUFBQSxFQUNOLE1BQU07QUFBQSxFQUNOLE9BQU87QUFBQSxFQUNQLFFBQVE7QUFBQSxFQUNSLE1BQU07QUFBQSxFQUNOLE1BQU07QUFBQSxFQUNOLE9BQU87QUFBQSxFQUNQLE9BQU87QUFBQSxFQUNQLFFBQVE7QUFBQSxFQUNSLFFBQVE7QUFBQSxFQUNSLE1BQU07QUFBQSxFQUNOLE1BQU07QUFBQSxFQUNOLEtBQUs7QUFBQSxFQUNMLFFBQVE7QUFBQSxFQUNSLE9BQU87QUFBQSxFQUNQLFFBQVE7QUFBQSxFQUNSLE9BQU87QUFBQSxFQUNQLE1BQU07QUFBQSxFQUNOLEtBQUs7QUFBQSxFQUNMLElBQUk7QUFBQSxFQUNKLElBQUk7QUFBQSxFQUNKLE9BQU87QUFBQSxFQUNQLE9BQU87QUFBQSxFQUNQLFFBQVE7QUFBQSxFQUNSLFFBQVE7QUFBQSxFQUNSLE1BQU07QUFBQSxFQUNOLE1BQU07QUFBQSxFQUNOLE9BQU87QUFBQSxFQUNQLE1BQU07QUFBQSxFQUNOLE1BQU07QUFBQSxFQUNOLFFBQVE7QUFBQSxFQUNSLE1BQU07QUFBQSxFQUNOLEtBQUs7QUFBQSxFQUNMLEtBQUs7QUFBQSxFQUNMLEtBQUs7QUFBQSxFQUNMLE9BQU87QUFBQSxFQUNQLE9BQU87QUFBQSxFQUNQLE9BQU87QUFBQSxFQUNQLE9BQU87QUFBQSxFQUNQLE9BQU87QUFBQSxFQUNQLE9BQU87QUFBQSxFQUNQLE9BQU87QUFBQSxFQUNQLE9BQU87QUFBQSxFQUNQLFFBQVE7QUFBQSxFQUNSLFFBQVE7QUFBQSxFQUNSLFFBQVE7QUFBQSxFQUNSLFFBQVE7QUFBQSxFQUNSLFFBQVE7QUFBQSxFQUNSLE1BQU07QUFDUjs7O0FDNVBPLElBQU0sWUFBWTtBQUFBLEVBQ3ZCO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFB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TyxPQUFPLENBQUMsR0FBRyxnQkFBZ0IsZ0JBQWdCLEdBQUcsTUFBTSxLQUFLLFNBQVMsQ0FBQztBQUFBLEVBQzNGO0FBQUEsRUFFQSxNQUFNLGVBQWU7QUFDcEIsVUFBTSxLQUFLLFNBQVMsS0FBSyxRQUFRO0FBQ2pDLFNBQUssSUFBSSxVQUFVLGNBQWM7QUFDakMsa0JBQWMsS0FBSyxVQUFTLEtBQUssR0FBRztBQUFBLEVBQ3JDO0FBQUEsRUFFQSxvQkFBb0I7QUFDbkIsU0FBSyxJQUFJLFVBQVUsa0JBQWtCLENBQUMsU0FBd0I7QUFDN0QsVUFBSSxLQUFLLGdCQUFnQixpQ0FBZ0IsS0FBSyxLQUFLLFFBQVEsTUFBTTtBQUNoRSxhQUFLLEtBQUssWUFBWSxTQUFTLElBQUk7QUFBQSxJQUNyQyxDQUFDO0FBQUEsRUFDRjtBQUNEOyIsCiAgIm5hbWVzIjogWyJyb290IiwgImZhY3RvcnkiLCAiZXhwb3J0cyIsICJtb2R1bGUiLCAiZGVmaW5lIiwgImFtZCIsICJzZWxmIiwgIl9fd2VicGFja19yZXF1aXJlX18iLCAiZGVmaW5pdGlvbiIsICJrZXkiLCAibyIsICJPYmplY3QiLCAiZGVmaW5lUHJvcGVydHkiLCAiZW51bWVyYWJsZSIsICJnZXQiLCAib2JqIiwgInByb3AiLCAicHJvdG90eXBlIiwgImhhc093blByb3BlcnR5IiwgImNhbGwiLCAiU3ltYm9sIiwgInRvU3RyaW5nVGFnIiwgInZhbHVlIiwgImUiLCAidCIsICJMIiwgImV2ZW50TGlzdGVuZXIiLCAibWV0aG9kIiwgImVsZW1lbnRzIiwgImV2ZW50cyIsICJmbiIsICJvcHRpb25zIiwgIkhUTUxDb2xsZWN0aW9uIiwgIk5vZGVMaXN0IiwgIkFycmF5IiwgImZyb20iLCAiaXNBcnJheSIsICJlbCIsICJldiIsICJjYXB0dXJlIiwgInNsaWNlIiwgImFyZ3VtZW50cyIsICJwIiwgInIiLCAiYSIsICJsIiwgInMiLCAiaSIsICJjIiwgIm9uIiwgImJpbmQiLCAib2ZmIiwgImNyZWF0ZUVsZW1lbnRGcm9tU3RyaW5nIiwgImh0bWwiLCAiZGl2IiwgImRvY3VtZW50IiwgImNyZWF0ZUVsZW1lbnQiLCAiaW5uZXJIVE1MIiwgInRyaW0iLCAiZmlyc3RFbGVtZW50Q2hpbGQiLCAiY3JlYXRlRnJvbVRlbXBsYXRlIiwgInN0ciIsICJyZW1vdmVBdHRyaWJ1dGUiLCAibmFtZSIsICJnZXRBdHRyaWJ1dGUiLCAicmVzb2x2ZSIsICJlbGVtZW50IiwgImJhc2UiLCAiY29uIiwgInN1YnRyZWUiLCAiY2hpbGQiLCAiY2hpbGRyZW4iLCAiYXJyIiwgInN1YiIsICJwdXNoIiwgImtleXMiLCAibGVuZ3RoIiwgImV2ZW50UGF0aCIsICJldnQiLCAicGF0aCIsICJjb21wb3NlZFBhdGgiLCAidGFyZ2V0IiwgInBhcmVudEVsZW1lbnQiLCAid2luZG93IiwgInJlc29sdmVFbGVtZW50IiwgInZhbCIsICJFbGVtZW50IiwgInNwbGl0IiwgInJlZHVjZSIsICJwdiIsICJjdiIsICJjaSIsICJxdWVyeVNlbGVjdG9yIiwgInNoYWRvd1Jvb3QiLCAiYWRqdXN0YWJsZUlucHV0TnVtYmVycyIsICJtYXBwZXIiLCAidiIsICJoYW5kbGVTY3JvbGwiLCAiaW5jIiwgIk51bWJlciIsICJzaGlmdEtleSIsICJjdHJsS2V5IiwgImRlbHRhWSIsICJpbmRleCIsICJzZWxlY3Rpb25TdGFydCIsICJyZXBsYWNlIiwgImZvY3VzIiwgInNldFNlbGVjdGlvblJhbmdlIiwgInByZXZlbnREZWZhdWx0IiwgImRpc3BhdGNoRXZlbnQiLCAiRXZlbnQiLCAicGFzc2l2ZSIsICJtaW4iLCAibWF4IiwgImZsb29yIiwgInJvdW5kIiwgIk1hdGgiLCAiaHN2VG9SZ2IiLCAiaCIsICJmIiwgInEiLCAibW9kIiwgImhzdlRvSHNsIiwgInJnYlRvSHN2IiwgImciLCAiYiIsICJtaW5WYWwiLCAibWF4VmFsIiwgImRlbHRhIiwgImRyIiwgImRnIiwgImRiIiwgImNteWtUb0hzdiIsICJtIiwgInkiLCAiayIsICJoc2xUb0hzdiIsICJucyIsICJpc05hTiIsICJoZXhUb0hzdiIsICJoZXgiLCAibWF0Y2giLCAibWFwIiwgInBhcnNlSW50IiwgInBhcnNlVG9IU1ZBIiwgInRvTG93ZXJDYXNlIiwgImN0eCIsICJnZXRDb250ZXh0IiwgImZpbGxTdHlsZSIsICJyZWdleCIsICJjbXlrIiwgInJnYmEiLCAiaHNsYSIsICJoc3ZhIiwgImhleGEiLCAibnVtYXJpemUiLCAiYXJyYXkiLCAidGVzdCIsICJ1bmRlZmluZWQiLCAiaW52YWxpZCIsICJ0eXBlIiwgImV4ZWMiLCAiYWxwaGFWYWxpZCIsICJ2YWx1ZXMiLCAiam9pbiIsICJyYXciLCAic3Vic3RyaW5nIiwgIkhTVmFDb2xvciIsICJvcmlnaW5hbCIsICJuZXh0IiwgInByZWNpc2lvbiIsICJ0b0ZpeGVkIiwgInRoYXQiLCAidG9IU1ZBIiwgInRvU3RyaW5nIiwgInRvSFNMQSIsICJ0b1JHQkEiLCAidG9DTVlLIiwgInJnYiIsICJ0b0hFWEEiLCAicGFkU3RhcnQiLCAiYWxwaGEiLCAidG9VcHBlckNhc2UiLCAiY2xvbmUiLCAiY2xhbXAiLCAiTW92ZWFibGUiLCAib3B0IiwgImFzc2lnbiIsICJsb2NrIiwgIm9uY2hhbmdlIiwgIm9uc3RvcCIsICJfa2V5Ym9hcmQiLCAiYWN0aXZlRWxlbWVudCIsICJ3cmFwcGVyIiwgInVwIiwgInJpZ2h0IiwgImRvd24iLCAibGVmdCIsICJ4bSIsICJ5bSIsICJ1cGRhdGUiLCAiY2FjaGUiLCAieCIsICJzdGFydHNXaXRoIiwgIl90YXBzdGFydCIsICJfIiwgIl90YXBzdG9wIiwgIl90YXBtb3ZlIiwgImNhbmNlbGFibGUiLCAiZ2V0Qm91bmRpbmdDbGllbnRSZWN0IiwgInRvdWNoIiwgInRvdWNoZXMiLCAiY2xpZW50WCIsICJjbGllbnRZIiwgIndpZHRoIiwgInRvcCIsICJoZWlnaHQiLCAic3R5bGUiLCAib2Zmc2V0V2lkdGgiLCAib2Zmc2V0SGVpZ2h0IiwgImN4IiwgImN5IiwgInRyaWdnZXIiLCAiZGVzdHJveSIsICJTZWxlY3RhYmxlIiwgImNsYXNzTmFtZSIsICJvblRhcCIsICJmb3JFYWNoIiwgImNsYXNzTGlzdCIsICJzdG9wUHJvcGFnYXRpb24iLCAiZGVmYXVsdHMiLCAidmFyaWFudEZsaXBPcmRlciIsICJzdGFydCIsICJtaWRkbGUiLCAiZW5kIiwgInBvc2l0aW9uRmxpcE9yZGVyIiwgImJvdHRvbSIsICJwb3NpdGlvbiIsICJtYXJnaW4iLCAicmVwb3NpdGlvbiIsICJyZWZlcmVuY2UiLCAicG9wcGVyIiwgImNvbnRhaW5lciIsICJkb2N1bWVudEVsZW1lbnQiLCAib3JpZ2luYWxMZWZ0IiwgIm9yaWdpbmFsVG9wIiwgInJlZkJveCIsICJwb3BCb3giLCAicG9zaXRpb25TdG9yZSIsICJ2YXJpYW50U3RvcmUiLCAidnMiLCAidm0iLCAidmUiLCAiaHMiLCAiaG0iLCAiaGUiLCAicG9zS2V5IiwgInZhcktleSIsICJwb3NpdGlvbnMiLCAidmFyaWFudHMiLCAidmVydGljYWwiLCAicG9zaXRpb25WYWwiLCAicG9zaXRpb25LZXkiLCAidmFyaWFudEtleSIsICJwb3NpdGlvblNpemUiLCAidmFyaWFudFNpemUiLCAicG9zaXRpb25NYXhpbXVtIiwgInZhcmlhbnRNYXhpbXVtIiwgInBvc2l0aW9uTWluaW11bSIsICJ2YXJpYW50TWluaW11bSIsICJ2YXJpYW50VmFsIiwgIkUiLCAiUGlja3IiLCAiY29uc3RydWN0b3IiLCAiaW5pdCIsICJzYXZlIiwgImhpZGUiLCAic2hvdyIsICJjbGVhciIsICJjaGFuZ2UiLCAiY2hhbmdlc3RvcCIsICJjYW5jZWwiLCAic3dhdGNoc2VsZWN0IiwgInRoaXMiLCAiREVGQVVMVF9PUFRJT05TIiwgInN3YXRjaGVzIiwgImNvbXBvbmVudHMiLCAidGhlbWUiLCAic2xpZGVycyIsICJsb2NrT3BhY2l0eSIsICJwYWRkaW5nIiwgImluY2x1ZGVzIiwgImludGVyYWN0aW9uIiwgInByZXZpZXciLCAib3BhY2l0eSIsICJodWUiLCAicGFsZXR0ZSIsICJfcHJlQnVpbGQiLCAiX2J1aWxkQ29tcG9uZW50cyIsICJfYmluZEV2ZW50cyIsICJfZmluYWxCdWlsZCIsICJjb2xvciIsICJhZGRTd2F0Y2giLCAiYnV0dG9uIiwgImFwcCIsICJfcm9vdCIsICJfbmFub3BvcCIsICJiYXNlT3B0aW9ucyIsICJIVE1MRWxlbWVudCIsICJbb2JqZWN0IE9iamVjdF0iLCAiRXJyb3IiLCAic2V0QXR0cmlidXRlIiwgIl90IiwgIl9zZXR1cEFuaW1hdGlvbkZyYW1lIiwgInJlcXVlc3RBbmltYXRpb25GcmFtZSIsICJjYiIsICJzZXRDb2xvciIsICJkZWZhdWx0IiwgIl9yZVBvc2l0aW9uaW5nUGlja2VyIiwgImRlZmF1bHRSZXByZXNlbnRhdGlvbiIsICJfcmVwcmVzZW50YXRpb24iLCAic2V0Q29sb3JSZXByZXNlbnRhdGlvbiIsICJzaG93QWx3YXlzIiwgIl9pbml0aWFsaXppbmdBY3RpdmUiLCAiX2VtaXQiLCAiaW5zdGFuY2UiLCAidXNlQXNCdXR0b24iLCAiaW5saW5lIiwgImFwcENsYXNzIiwgImhpZGRlbiIsICJpbnB1dCIsICJpbnQiLCAiZmluZCIsICJhZGQiLCAiY29udGFpbnMiLCAiYXBwZW5kQ2hpbGQiLCAicmVtb3ZlQ2hpbGQiLCAicGFyZW50IiwgIm5leHRTaWJsaW5nIiwgImluc2VydEJlZm9yZSIsICJyZW1vdmUiLCAicGFyZW50Tm9kZSIsICJyZXBsYWNlQ2hpbGQiLCAiZGlzYWJsZWQiLCAiZGlzYWJsZSIsICJjb21wYXJpc29uIiwgInRyYW5zaXRpb24iLCAibGFzdENvbG9yIiwgImluc3QiLCAiY3MiLCAicmVwZWF0IiwgInNvIiwgInNoIiwgImdldENvbG9yIiwgIl9jb2xvciIsICJfbGFzdENvbG9yIiwgInBpY2tlciIsICJjdXJyZW50Q29sb3IiLCAiX3JlY2FsYyIsICJfdXBkYXRlT3V0cHV0IiwgImNzc1JHQmFTdHJpbmciLCAiYmFja2dyb3VuZCIsICJzZXRQcm9wZXJ0eSIsICJfc3dhdGNoQ29sb3JzIiwgInNsaWRlciIsICJiYWNrZ3JvdW5kQ29sb3IiLCAic2VsZWN0YWJsZSIsICJfY29tcG9uZW50cyIsICJldmVudEJpbmRpbmdzIiwgIl9jbGVhckNvbG9yIiwgInNldEhTVkEiLCAiYXBwbHlDb2xvciIsICJyZXN1bHQiLCAic3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uIiwgImNrIiwgImNsb3NlV2l0aEtleSIsICJpc09wZW4iLCAiY29kZSIsICJzb21lIiwgImFkanVzdGFibGVOdW1iZXJzIiwgInJhbmdlcyIsICJzdGVwIiwgInJhbmdlIiwgImdldENvbG9yUmVwcmVzZW50YXRpb24iLCAibnYiLCAidG9QcmVjaXNpb24iLCAiYXV0b1JlcG9zaXRpb24iLCAidGltZW91dCIsICJjbG9zZU9uU2Nyb2xsIiwgInNldFRpbWVvdXQiLCAicnMiLCAiY2xlYXJUaW1lb3V0IiwgIl9ldmVudEJpbmRpbmdzIiwgImJvZHkiLCAiZWIiLCAiaW5uZXJIZWlnaHQiLCAiaW5uZXJXaWR0aCIsICJldmVudFNvdXJjZSIsICJvdXRwdXRQcmVjaXNpb24iLCAic2lsZW50IiwgIl9wYXJzZUxvY2FsQ29sb3IiLCAiYWxwaGFNYWtlc0FDaGFuZ2UiLCAiaTE4biIsICJJMThOX0RFRkFVTFRTIiwgImV2ZW50IiwgImFyZ3MiLCAiX2V2ZW50TGlzdGVuZXIiLCAiY2FsbEJhY2tzIiwgImluZGV4T2YiLCAic3BsaWNlIiwgInJlbW92ZVN3YXRjaCIsICJzd2F0Y2hDb2xvciIsICJjYW5jZWxBbmltYXRpb25GcmFtZSIsICJkZXN0cm95QW5kUmVtb3ZlIiwgInJlY2FsYyIsICJzdHJpbmciLCAidXR5cGUiLCAiY2xpY2siLCAiZ2V0U2VsZWN0ZWRDb2xvciIsICJnZXRSb290IiwgImVuYWJsZSIsICJWRVJTSU9OIiwgImltcG9ydF9vYnNpZGlhbiIsICJ0IiwgImUiLCAibiIsICJyIiwgImkiLCAibyIsICJjIiwgInUiLCAicyIsICJkIiwgImIiLCAiQSIsICJGIiwgInYiLCAiSCIsICJCIiwgIkMiLCAiayIsICJTIiwgIlIiLCAiTSIsICJPIiwgIkwiLCAiRyIsICJqIiwgIlgiLCAiSSIsICJZIiwgImEiLCAibCIsICJmIiwgImgiLCAicCIsICJnIiwgIm0iLCAieSIsICJFIiwgInRleHQiLCAidmFsdWUiLCAiZSIsICJQaWNrciIsICJpIiwgImJvZHkiLCAiX2EiLCAiaW1wb3J0X29ic2lkaWFuIiwgImNvZGVTZWN0aW9uIiwgIl9hIiwgIl8iLCAiZSIsICJfYSIsICJ0ZXh0IiwgIl9hIiwgInRleHQiLCAiZnJvbSIsICJ0byIsICJwb3NpdGlvbiIsICJlbXB0eSIsICJsYW5ndWFnZUljb25zIiwgImkiLCAic3R5bGUiLCAiZWxlbWVudCIsICJpbXBvcnRfb2JzaWRpYW4iLCAiY2hlY2tzIiwgImluZGV4IiwgImFsbCIsICJrZXkiLCAiZCIsICJpcyIsICJpbmRleCIsICJvayIsICJpbmRleCIsICJpbmRleCIsICJrZXkiLCAiXyIsICJfIiwgIl8iLCAiaHRtbCIsICJzdmciLCAiaW5kZXgiLCAicGFyc2UiLCAic3RyaW5naWZ5IiwgIm93biIsICJoIiwgImluZGV4IiwgImtleSIsICJwYXJzZSIsICJ2YWx1ZSIsICJoIiwgImh0bWwiLCAicyIsICJzdmciLCAic2VhcmNoIiwgImluZGV4IiwgInBvaW50IiwgIm93biIsICJzdmciLCAiaHRtbCIsICJvayIsICJpbmRleCIsICJzIiwgImgiLCAicG9zaXRpb24iLCAibG9jYXRpb24iLCAia2V5IiwgIm9wZW5pbmciLCAiY2xvc2luZyIsICJwb2ludCIsICJDT0RFX1BPSU5UUyIsICJFUlIiLCAiaSIsICJUb2tlblR5cGUiLCAiaSIsICJjIiwgImMiLCAiX2EiLCAiQ2hhckNvZGVzIiwgIkJpblRyaWVGbGFncyIsICJFbnRpdHlEZWNvZGVyU3RhdGUiLCAiRGVjb2RpbmdNb2RlIiwgImVycm9ycyIsICJiYXNlIiwgIl9hIiwgIk5TIiwgIkFUVFJTIiwgIkRPQ1VNRU5UX01PREUiLCAiVEFHX05BTUVTIiwgIlRBR19JRCIsICJfYSIsICIkIiwgIlN0YXRlIiwgImlzQXNjaWlBbHBoYU51bWVyaWMiLCAiaXNFbnRpdHlJbkF0dHJpYnV0ZUludmFsaWRFbmQiLCAiX2EiLCAiaSIsICJjdCIsICJsb2NhdGlvbiIsICJkb2N1bWVudCIsICJlbGVtZW50IiwgImkiLCAiRW50cnlUeXBlIiwgImkiLCAiZWxlbWVudCIsICJlbnRyeSIsICJkb2N1bWVudCIsICJ0ZXh0IiwgImoiLCAiZWxlbWVudCIsICJsb2NhdGlvbiIsICJpIiwgIkluc2VydGlvbk1vZGUiLCAiZG9jdW1lbnQiLCAiaHRtbCIsICJfYSIsICJlbGVtZW50IiwgImxvY2F0aW9uIiwgInNpYmxpbmdzIiwgImkiLCAicCIsICJpbmRleCIsICJjIiwgInBhcnNlIiwgImh0bWwiLCAicG9zaXRpb24iLCAicG9pbnQiLCAiaW5kZXgiLCAicGF0aCIsICJpbmRleCIsICJub3JtYWxpemUiLCAicGF0aCIsICJpbmRleCIsICJpbmRleCIsICJwcm9wIiwgImJhc2VuYW1lIiwgImRpcm5hbWUiLCAiYXNzZXJ0UGF0aCIsICJleHRuYW1lIiwgInBhdGgiLCAicGFyc2UiLCAiY2FtZWxjYXNlIiwgIm9rIiwgInZhbHVlIiwgIl8iLCAiJDIiLCAib3duIiwgImtleSIsICJvbmUiLCAiaW5kZXgiLCAiYWxsIiwgIm93biIsICJpbmRleCIsICJlbXB0eSIsICJpbmNyZW1lbnQiLCAiaW5kZXgiLCAic2libGluZ3MiLCAib3duIiwgImluZGV4IiwgImR0IiwgImh0bWwiLCAicCIsICJfIiwgImluZGV4IiwgImJvZHkiLCAiaHRtbCIsICJ0Ym9keSIsICJoZWFkIiwgImluZGV4IiwgImVsZW1lbnQiLCAiaW5kZXgiLCAic3ZnIiwgImtleSIsICJ4IiwgInkiLCAic3RyaW5naWZ5IiwgIl8iLCAiaW5kZXgiLCAiZWxlbWVudCIsICJlbXB0eU9wdGlvbnMiLCAiZW1wdHlDaGlsZHJlbiIsICJvbmUiLCAiYWxsIiwgInN2ZyIsICJodG1sIiwgImluZGV4IiwgImVsZW1lbnQiLCAiX2EiLCAiXyIsICJrZXkiLCAidGV4dCIsICJmb2xkIiwgImluZGV4IiwgImtleSJdCn0K diff --git a/styles.css b/styles.css index 1591de3..0d96266 100644 --- a/styles.css +++ b/styles.css @@ -1157,4 +1157,3 @@ div.block-language-include pre.code-styler-pre button.copy-code-button:hover { /* src/styles.css */ /*! Complicated */ -/*# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsic3JjL2Nzcy9jb2RlYmxvY2tzLmNzcyIsICJzcmMvY3NzL2lubGluZUNvZGUuY3NzIiwgInNyYy9jc3MvcGRmRXhwb3J0LmNzcyIsICJzcmMvY3NzL3BpY2tyLmNzcyIsICJzcmMvY3NzL3BsdWdpbkNvbXBhdGliaWxpdHkuY3NzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKiogRGVmaW5lIENTUyBWYXJpYWJsZXMgKi9cbmJvZHkge1xuXHQvKiBDb2RlYmxvY2sgQm9keSAqL1xuXHQtLWJvcmRlci1yYWRpdXM6IDEwcHg7XG5cdC0tZ3JhZGllbnQtYmFja2dyb3VuZC1jb2xvdXI6IHRyYW5zcGFyZW50O1xuXHQtLWNvZGUtcGFkZGluZzogOHB4O1xuXHQtLWNvbnRhaW5lci1oZWlnaHQ6IGNhbGModmFyKC0tbGFuZ3VhZ2UtaWNvbi1zaXplKSArIDIgKiB2YXIoLS1oZWFkZXItaW5uZXItdmVydGljYWwtcGFkZGluZykgKiB2YXIoLS1oZWFkZXItZm9udC1zaXplKSk7XG5cdC0tY29udGFpbmVyLW1pbi1oZWlnaHQ6IGNhbGMoKHZhcigtLWhlYWRlci1mb250LXNpemUpICsgMiAqIHZhcigtLWhlYWRlci1pbm5lci12ZXJ0aWNhbC1wYWRkaW5nKSAqIHZhcigtLWhlYWRlci1mb250LXNpemUpKSAqIHZhcigtLWxpbmUtaGVpZ2h0LW5vcm1hbCkpO1xuXHQtLWxhbmd1YWdlLWJvcmRlci1jb2xvdXI6IHZhcigtLWNvZGUtc3R5bGVyLWNvZGVibG9jay1iYWNrZ3JvdW5kLWNvbG91cik7XG5cdC0tbGFuZ3VhZ2UtYm9yZGVyLXdpZHRoOiAwcHg7XG5cblx0LyogSGVhZGVyICovXG5cdC0taGVhZGVyLWZvbnQtc2l6ZTogdmFyKC0tY29kZS1zaXplKTtcblx0LS1oZWFkZXItcGFkZGluZzogMHB4O1xuXHQtLWhlYWRlci1pbm5lci12ZXJ0aWNhbC1wYWRkaW5nOiAwLjM7XG5cdC0taGVhZGVyLXNwYWNpbmc6IDE1cHg7XG5cdC0taGVhZGVyLWJ1dHRvbi1zcGFjaW5nOiAxNHB4O1xuXHQtLWhlYWRlci1zZXBhcmF0b3Itd2lkdGg6IDJweDtcblx0LS1oZWFkZXItc2VwYXJhdG9yLXdpZHRoLXBhZGRpbmc6IHZhcigtLWhlYWRlci1zZXBhcmF0b3Itd2lkdGgpO1xuXHQtLWNvZGUtc3R5bGVyLWhlYWRlci1ib3JkZXI6IG5vbmU7XG5cdC0tZm9sZGVkLWJvdHRvbS1ib3JkZXI6IDAgc29saWQgdHJhbnNwYXJlbnQ7XG5cdC0tbGFuZ3VhZ2UtaWNvbi1zaXplOiAyOHB4O1xuXHQtLWxhbmd1YWdlLWljb24tZmlsdGVyOiBub25lO1xuXG5cdC8qIExpbmVzICovXG5cdC0tZ3JhZGllbnQtaGlnaGxpZ2h0cy1jb2xvdXItc3RvcDogMTAwJTtcblxuXHQvKiBMaW5lIE51bWJlcnMgKi9cblx0LS1saW5lLW51bWJlci1oZWlnaHQtY29ycmVjdGlvbjogMnB4O1xuXHQtLWxpbmUtbnVtYmVyLWd1dHRlci1wYWRkaW5nOiAxNnB4O1xuXHQtLWxpbmUtbnVtYmVyLWd1dHRlci1taW4td2lkdGg6IDMyLjY3cHg7XG5cblx0LyogTGluZSBUZXh0ICovXG5cdC0tbGluZS13cmFwcGluZzogcHJlLXdyYXA7XG5cdC0tbGluZS1hY3RpdmUtd3JhcHBpbmc6IHZhcigtLWxpbmUtd3JhcHBpbmcpO1xuXG5cdC8qIEJ1dHRvbnMgKi9cblx0LS1jb2RlLXN0eWxlci1idXR0b24tY29sb3VyOiB2YXIoLS10ZXh0LW11dGVkKTtcblx0LS1jb2RlLXN0eWxlci1idXR0b24tYWN0aXZlLWNvbG91cjogd2hpdGU7XG5cdC0tZHVyYXRpb24tYnV0dG9uOiAyNDBtcztcblx0LS1kZW50LWRpZmZlcmVuY2U6IDMwcHg7XG5cdC0tcG9seWdvbi1pbjogcG9seWdvbigwIDAsIDE2cHggMCwgMTZweCAzNnB4LCAwIDM2cHgpO1xuXHQtLXBvbHlnb24tb3V0OiBwb2x5Z29uKDAgMCwgMTAwJSAwLCAxMDAlIDEwMCUsIDAgMTAwJSk7XG5cdC0tY29weS1jb2RlLWhlYWRlci1yaWdodC1tYXJnaW46IGNhbGMoMyAqIHZhcigtLWhlYWRlci1idXR0b24tc3BhY2luZykpO1xufVxuXG4vKiogUHJlIGVsZW1lbnRzICovXG4uY29kZS1zdHlsZXItcHJlLXBhcmVudHtcblx0bWFyZ2luLWJvdHRvbTogMTZweDtcbn1cbi5jb2RlLXN0eWxlciBwcmUuY29kZS1zdHlsZXItcHJlIHtcblx0b3ZlcmZsb3c6IGhpZGRlbiAhaW1wb3J0YW50O1xuXHRtaW4taGVpZ2h0OiB1bnNldDtcblx0cGFkZGluZzogMHB4ICFpbXBvcnRhbnQ7XG5cdGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMpICFpbXBvcnRhbnQ7XG5cdGJhY2tncm91bmQ6IHZhcigtLWNvZGUtc3R5bGVyLWNvZGVibG9jay1iYWNrZ3JvdW5kLWNvbG91cikgIWltcG9ydGFudDtcbn1cbi5jb2RlLXN0eWxlciBwcmUuY29kZS1zdHlsZXItcHJlW2NsYXNzKj0nbGFuZ3VhZ2UtJ10ge1xuXHRwYWRkaW5nLWxlZnQ6IHZhcigtLWxhbmd1YWdlLWJvcmRlci13aWR0aCkgIWltcG9ydGFudDtcblx0YmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDkwZGVnLCB2YXIoLS1sYW5ndWFnZS1ib3JkZXItY29sb3VyKSwgdmFyKC0tbGFuZ3VhZ2UtYm9yZGVyLWNvbG91cikgdmFyKC0tbGFuZ3VhZ2UtYm9yZGVyLXdpZHRoKSwgdmFyKC0tY29kZS1zdHlsZXItY29kZWJsb2NrLWJhY2tncm91bmQtY29sb3VyKSB2YXIoLS1sYW5ndWFnZS1ib3JkZXItd2lkdGgpLCB2YXIoLS1jb2RlLXN0eWxlci1jb2RlYmxvY2stYmFja2dyb3VuZC1jb2xvdXIpIDEwMCUpLCB2YXIoLS1jb2RlLXN0eWxlci1jb2RlYmxvY2stYmFja2dyb3VuZC1jb2xvdXIpICFpbXBvcnRhbnQ7XG59XG4uY29kZS1zdHlsZXIgcHJlID4gY29kZSB7XG5cdHBhZGRpbmctdG9wOiB2YXIoLS1jb2RlLXBhZGRpbmcpICFpbXBvcnRhbnQ7XG5cdHBhZGRpbmctYm90dG9tOiB2YXIoLS1jb2RlLXBhZGRpbmcpICFpbXBvcnRhbnQ7XG59XG4uY29kZS1zdHlsZXIgcHJlLmNvZGUtc3R5bGVyLXByZSA+IGNvZGUge1xuXHRkaXNwbGF5OiBncmlkO1xuXHRtYXgtaGVpZ2h0OiB1bnNldDtcblx0cGFkZGluZy10b3A6IHZhcigtLWNvZGUtcGFkZGluZykgIWltcG9ydGFudDtcblx0cGFkZGluZy1yaWdodDogMHB4ICFpbXBvcnRhbnQ7XG5cdHBhZGRpbmctYm90dG9tOiB2YXIoLS1jb2RlLXBhZGRpbmcpICFpbXBvcnRhbnQ7XG5cdHBhZGRpbmctbGVmdDogMHB4ICFpbXBvcnRhbnQ7XG5cdGJvcmRlci1yYWRpdXM6IDBweCAhaW1wb3J0YW50O1xuXHRiYWNrZ3JvdW5kOiBub25lICFpbXBvcnRhbnQ7XG5cdGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWluLWNvbnRlbnQgYXV0bztcblx0Z3JpZC10ZW1wbGF0ZS1yb3dzOiBhdXRvO1xuXHRvdmVyZmxvdy14OiBvdmVybGF5O1xuXHR0cmFuc2l0aW9uLWR1cmF0aW9uOiB2YXIoLS1kdXJhdGlvbi1idXR0b24pO1xuXHR0cmFuc2l0aW9uLXByb3BlcnR5OiBtYXgtaGVpZ2h0LCBwYWRkaW5nLCBib3JkZXItdG9wO1xuXHR0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQ7XG5cdHdoaXRlLXNwYWNlOiB2YXIoLS1saW5lLXdyYXBwaW5nKSAhaW1wb3J0YW50O1xufVxuLmNvZGUtc3R5bGVyIHByZS5jb2RlLXN0eWxlci1wcmUud3JhcHBlZCA+IGNvZGUge1xuXHQtLWxpbmUtd3JhcHBpbmc6IHByZS13cmFwO1xufVxuLmNvZGUtc3R5bGVyIHByZS5jb2RlLXN0eWxlci1wcmUudW53cmFwcGVkID4gY29kZSB7XG5cdC0tbGluZS13cmFwcGluZzogcHJlO1xuXHQtLWxpbmUtYWN0aXZlLXdyYXBwaW5nOiBwcmU7XG59XG4uY29kZS1zdHlsZXIgcHJlLmNvZGUtc3R5bGVyLXByZS51bndyYXBwZWQtaW5hY3RpdmUgPiBjb2RlIHtcblx0LS1saW5lLXdyYXBwaW5nOiBwcmU7XG5cdC0tbGluZS1hY3RpdmUtd3JhcHBpbmc6IHByZS13cmFwO1xufVxuLmNvZGUtc3R5bGVyIHByZS5jb2RlLXN0eWxlci1wcmUgY29kZTpub3QoOmhhcyggPiBpbnB1dFtzdHlsZSo9XCJkaXNwbGF5OiBpbmxpbmU7XCJdKSk6YWN0aXZlIHtcblx0LS1saW5lLXdyYXBwaW5nOiB2YXIoLS1saW5lLWFjdGl2ZS13cmFwcGluZykgIWltcG9ydGFudDtcbn1cbi5jb2RlLXN0eWxlciBwcmUuY29kZS1zdHlsZXItcHJlLmNvZGUtc3R5bGVyLWZvbGRlZCA+IGNvZGUge1xuXHRtYXgtaGVpZ2h0OiAwICFpbXBvcnRhbnQ7XG5cdHBhZGRpbmctdG9wOiAwICFpbXBvcnRhbnQ7XG5cdHBhZGRpbmctYm90dG9tOiAwICFpbXBvcnRhbnQ7XG59XG4uY29kZS1zdHlsZXIgcHJlLmNvZGUtc3R5bGVyLXByZTo6YmVmb3JlLFxuLmNvZGUtc3R5bGVyIHByZS5jb2RlLXN0eWxlci1wcmU6OmFmdGVyIHtcblx0Y29udGVudDogbm9uZSAhaW1wb3J0YW50O1xufVxuLm1hcmtkb3duLXNvdXJjZS12aWV3Lm1vZC1jbTYgLmNtLWVtYmVkLWJsb2NrIHByZS5jb2RlLXN0eWxlci1wcmUge1xuXHRtYXJnaW46IDFlbSAwcHg7XG59XG5cbi8qKiBFZGl0aW5nIE1vZGUgQm9keSAqL1xuLmNvZGUtc3R5bGVyIC5tYXJrZG93bi1zb3VyY2UtdmlldyBbY2xhc3MqPVwiY29kZS1zdHlsZXItbGluZVwiXS5IeXBlck1ELWNvZGVibG9jay1iZWdpbiB7XG5cdGJvcmRlci10b3A6IG5vbmUgIWltcG9ydGFudDtcblx0Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMHB4ICFpbXBvcnRhbnQ7XG5cdGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwcHggIWltcG9ydGFudDtcbn1cbi5jb2RlLXN0eWxlciAubWFya2Rvd24tc291cmNlLXZpZXcgW2NsYXNzKj1cImNvZGUtc3R5bGVyLWxpbmVcIl0uSHlwZXJNRC1jb2RlYmxvY2stZW5kIHtcblx0Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cyk7XG5cdGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzKTtcbn1cbi8qISBDb21wbGljYXRlZCAqL1xuYm9keTpub3QoLmNvZGUtc3R5bGVyLXNob3ctbGFuZ2ljb25zLWFsd2F5cyk6bm90KC5jb2RlLXN0eWxlci1zaG93LWxhbmduYW1lcy1hbHdheXMpIC5tYXJrZG93bi1zb3VyY2UtdmlldyA6bm90KHByZS5jb2RlLXN0eWxlci1wcmUpID4gLmNvZGUtc3R5bGVyLWhlYWRlci1jb250YWluZXIgKyAuSHlwZXJNRC1jb2RlYmxvY2stYmVnaW4sXG5ib2R5Om5vdCguY29kZS1zdHlsZXItc2hvdy1sYW5nbmFtZXMtYWx3YXlzKSAubWFya2Rvd24tc291cmNlLXZpZXcgOm5vdChwcmUuY29kZS1zdHlsZXItcHJlKSA+IC5jb2RlLXN0eWxlci1oZWFkZXItY29udGFpbmVyOm5vdCg6aGFzKCBpbWcuY29kZS1zdHlsZXItaWNvbikpICsgLkh5cGVyTUQtY29kZWJsb2NrLWJlZ2luLFxuYm9keSAubWFya2Rvd24tc291cmNlLXZpZXcgOm5vdChwcmUuY29kZS1zdHlsZXItcHJlKSA+IC5jb2RlLXN0eWxlci1oZWFkZXItY29udGFpbmVyOm5vdCg6aGFzKFtjbGFzcyo9J2NvZGUtc3R5bGVyLWhlYWRlci1sYW5ndWFnZS10YWctJ10pKSArIC5IeXBlck1ELWNvZGVibG9jay1iZWdpbixcbmJvZHkgLm1hcmtkb3duLXNvdXJjZS12aWV3IDpub3QoW2NsYXNzXj0nY29kZS1zdHlsZXItaGVhZGVyLWNvbnRhaW5lciddKSArIFtjbGFzcyo9XCJjb2RlLXN0eWxlci1saW5lXCJdLkh5cGVyTUQtY29kZWJsb2NrLWJlZ2luLFxuYm9keSAubWFya2Rvd24tc291cmNlLXZpZXcgW2NsYXNzKj1cImNvZGUtc3R5bGVyLWxpbmVcIl0uSHlwZXJNRC1jb2RlYmxvY2stYmVnaW46bnRoLW9mLXR5cGUoMSkgeyAvKj8gRGVwZW5kaW5nIG9uIGhlYWRlciB2aXNpYmlsaXR5ICovXG5cdGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMpICFpbXBvcnRhbnQ7XG5cdGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzKSAhaW1wb3J0YW50XG59XG4uY29kZS1zdHlsZXIgLm1hcmtkb3duLXNvdXJjZS12aWV3IC5IeXBlck1ELWNvZGVibG9ja1tjbGFzcyo9J2NvZGUtc3R5bGVyLWxpbmUnXSB7XG5cdG92ZXJmbG93OiBoaWRkZW47XG5cdHBhZGRpbmc6IDAgIWltcG9ydGFudDtcblx0cGFkZGluZy1sZWZ0OiB2YXIoLS1zaXplLTQtNCkgIWltcG9ydGFudDtcblx0YmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDkwZGVnLCB2YXIoLS1ncmFkaWVudC1iYWNrZ3JvdW5kLWNvbG91cikgdmFyKC0tZ3JhZGllbnQtaGlnaGxpZ2h0cy1jb2xvdXItc3RvcCksIHRyYW5zcGFyZW50IDEwMCUpLCB2YXIoLS1jb2RlLXN0eWxlci1jb2RlYmxvY2stYmFja2dyb3VuZC1jb2xvdXIpICFpbXBvcnRhbnQ7XG59XG4uY29kZS1zdHlsZXIgLm1hcmtkb3duLXNvdXJjZS12aWV3IC5IeXBlck1ELWNvZGVibG9ja1tjbGFzcyo9J2NvZGUtc3R5bGVyLWxpbmUnXVtjbGFzcyo9J2xhbmd1YWdlLSddIHtcblx0YmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDkwZGVnLCB2YXIoLS1sYW5ndWFnZS1ib3JkZXItY29sb3VyKSwgdmFyKC0tbGFuZ3VhZ2UtYm9yZGVyLWNvbG91cikgdmFyKC0tbGFuZ3VhZ2UtYm9yZGVyLXdpZHRoKSwgdmFyKC0tZ3JhZGllbnQtYmFja2dyb3VuZC1jb2xvdXIpIHZhcigtLWxhbmd1YWdlLWJvcmRlci13aWR0aCkgdmFyKC0tZ3JhZGllbnQtaGlnaGxpZ2h0cy1jb2xvdXItc3RvcCksIHRyYW5zcGFyZW50IDEwMCUpLCB2YXIoLS1jb2RlLXN0eWxlci1jb2RlYmxvY2stYmFja2dyb3VuZC1jb2xvdXIpICFpbXBvcnRhbnQ7XG59XG4uY29kZS1zdHlsZXIgLm1hcmtkb3duLXNvdXJjZS12aWV3IC5IeXBlck1ELWNvZGVibG9ja1tjbGFzcyo9J2NvZGUtc3R5bGVyLWxpbmUnXVtjbGFzcyo9J2xhbmd1YWdlLSddIFtjbGFzc149J2NvZGUtc3R5bGVyLWxpbmUtbnVtYmVyJ10ge1xuXHRtYXJnaW4tbGVmdDogdmFyKC0tbGFuZ3VhZ2UtYm9yZGVyLXdpZHRoKTtcbn1cblxuLyoqIEhlYWRlciBzdHlsaW5nICovXG5ib2R5IC5jb2RlLXN0eWxlci1oZWFkZXItY29udGFpbmVyLWhpZGRlbiB7XG5cdGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cbi5jb2RlLXN0eWxlci1oZWFkZXItY29udGFpbmVyIHsgIFxuXHRkaXNwbGF5OiBmbGV4ICFpbXBvcnRhbnQ7XG5cdG92ZXJmbG93OiB2aXNpYmxlO1xuXHRoZWlnaHQ6IHZhcigtLWNvbnRhaW5lci1oZWlnaHQpO1xuXHRtaW4taGVpZ2h0OiB2YXIoLS1jb250YWluZXItbWluLWhlaWdodCk7XG5cdGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuXHRwYWRkaW5nLXRvcDogdmFyKC0taGVhZGVyLXBhZGRpbmcpO1xuXHRtYXJnaW4tdG9wOiAwcHggIWltcG9ydGFudDtcblx0Zm9udC1zaXplOiB2YXIoLS1oZWFkZXItZm9udC1zaXplKTtcblx0dHJhbnNpdGlvbjogYm9yZGVyLWJvdHRvbSBlYXNlLWluLW91dCB2YXIoLS1kdXJhdGlvbi1idXR0b24pO1xuXHR1c2VyLXNlbGVjdDogbm9uZTtcbn1cbi5tYXJrZG93bi1zb3VyY2UtdmlldyA6bm90KHByZS5jb2RlLXN0eWxlci1wcmUpID4gLmNvZGUtc3R5bGVyLWhlYWRlci1jb250YWluZXIge1xuXHRwYWRkaW5nLWJvdHRvbTogdmFyKC0taGVhZGVyLXNlcGFyYXRvci13aWR0aCk7XG5cdHBhZGRpbmctbGVmdDogdmFyKC0tbGFuZ3VhZ2UtYm9yZGVyLXdpZHRoKTtcblx0Ym9yZGVyLXRvcDogdmFyKC0tY29kZS1zdHlsZXItaGVhZGVyLWJvcmRlcik7XG5cdGJvcmRlci1yaWdodDogdmFyKC0tY29kZS1zdHlsZXItaGVhZGVyLWJvcmRlcik7XG5cdGJvcmRlci1sZWZ0OiB2YXIoLS1jb2RlLXN0eWxlci1oZWFkZXItYm9yZGVyKTtcblx0YmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHZhcigtLWNvZGUtc3R5bGVyLWhlYWRlci1iYWNrZ3JvdW5kLWNvbG91cikgMCUsdmFyKC0tY29kZS1zdHlsZXItaGVhZGVyLWJhY2tncm91bmQtY29sb3VyKSBjYWxjKDEwMCUgLSB2YXIoLS1oZWFkZXItc2VwYXJhdG9yLXdpZHRoKSksIHZhcigtLWNvZGUtc3R5bGVyLWhlYWRlci1zZXBhcmF0b3ItY29sb3VyKSBjYWxjKDEwMCUgLSB2YXIoLS1oZWFkZXItc2VwYXJhdG9yLXdpZHRoKSksIHZhcigtLWNvZGUtc3R5bGVyLWhlYWRlci1zZXBhcmF0b3ItY29sb3VyKSAxMDAlKSB2YXIoLS1sYW5ndWFnZS1ib3JkZXItd2lkdGgpIGJvdHRvbS8xMDAlIGJvcmRlci1ib3ggbm8tcmVwZWF0LHZhcigtLWxhbmd1YWdlLWJvcmRlci1jb2xvdXIpICFpbXBvcnRhbnQ7XG5cdGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMpO1xuXHRib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cyk7XG59XG5wcmUuY29kZS1zdHlsZXItcHJlIC5jb2RlLXN0eWxlci1oZWFkZXItY29udGFpbmVyIHtcblx0Ym9yZGVyLWJvdHRvbTogdmFyKC0taGVhZGVyLXNlcGFyYXRvci13aWR0aCkgc29saWQgdmFyKC0tY29kZS1zdHlsZXItaGVhZGVyLXNlcGFyYXRvci1jb2xvdXIpO1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2RlLXN0eWxlci1oZWFkZXItYmFja2dyb3VuZC1jb2xvdXIpO1xufVxuLm1hcmtkb3duLXNvdXJjZS12aWV3IDpub3QocHJlLmNvZGUtc3R5bGVyLXByZSkgPiAuY29kZS1zdHlsZXItaGVhZGVyLWNvbnRhaW5lci5jb2RlLXN0eWxlci1oZWFkZXItZm9sZGVkIHtcblx0cGFkZGluZy1ib3R0b206IHZhcigtLWhlYWRlci1wYWRkaW5nKTtcblx0Ym9yZGVyLWJvdHRvbTogdmFyKC0tY29kZS1zdHlsZXItaGVhZGVyLWJvcmRlcik7XG5cdGJvcmRlci1ib3R0b206IHZhcigtLWZvbGRlZC1ib3R0b20tYm9yZGVyKTtcblx0YmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHZhcigtLWNvZGUtc3R5bGVyLWhlYWRlci1iYWNrZ3JvdW5kLWNvbG91cikgMCUsdmFyKC0tY29kZS1zdHlsZXItaGVhZGVyLWJhY2tncm91bmQtY29sb3VyKSAxMDAlKSB2YXIoLS1sYW5ndWFnZS1ib3JkZXItd2lkdGgpIGJvdHRvbS8xMDAlIGJvcmRlci1ib3ggbm8tcmVwZWF0LHZhcigtLWxhbmd1YWdlLWJvcmRlci1jb2xvdXIpICFpbXBvcnRhbnQ7XG5cdGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMpO1xuXHRib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cyk7XG59XG5wcmUuY29kZS1zdHlsZXItcHJlLmNvZGUtc3R5bGVyLWZvbGRlZCAuY29kZS1zdHlsZXItaGVhZGVyLWNvbnRhaW5lciB7XG5cdGJvcmRlci1ib3R0b206IHZhcigtLWZvbGRlZC1ib3R0b20tYm9yZGVyKTtcbn1cbi5jb2RlLXN0eWxlci1oZWFkZXItY29udGFpbmVyIC5jb2RlLXN0eWxlci1oZWFkZXItbGFuZ3VhZ2UtdGFnIHtcblx0ZGlzcGxheTogZmxleDtcblx0aGVpZ2h0OiAxMDAlO1xuXHRmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXHRhbGlnbi1jb250ZW50OiBjZW50ZXI7XG5cdGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXHRwYWRkaW5nLXRvcDogY2FsYygxZW0gKiB2YXIoLS1oZWFkZXItaW5uZXItdmVydGljYWwtcGFkZGluZykpO1xuXHRwYWRkaW5nLXJpZ2h0OiB2YXIoLS1oZWFkZXItc3BhY2luZyk7XG5cdHBhZGRpbmctYm90dG9tOiBjYWxjKDFlbSAqIHZhcigtLWhlYWRlci1pbm5lci12ZXJ0aWNhbC1wYWRkaW5nKSk7XG5cdHBhZGRpbmctbGVmdDogdmFyKC0taGVhZGVyLXNwYWNpbmcpO1xuXHRib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzKSB2YXIoLS1ib3JkZXItcmFkaXVzKSAwcHggMHB4O1xuXHRtYXJnaW4tcmlnaHQ6IHZhcigtLWhlYWRlci1zcGFjaW5nKTtcblx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29kZS1zdHlsZXItaGVhZGVyLWxhbmd1YWdlLXRhZy1iYWNrZ3JvdW5kLWNvbG91cik7XG5cdGNvbG9yOiB2YXIoLS1jb2RlLXN0eWxlci1oZWFkZXItbGFuZ3VhZ2UtdGFnLXRleHQtY29sb3VyKTtcblx0Zm9udC1zaXplOiBpbmhlcml0O1xuXHRmb250LXN0eWxlOiB2YXIoLS1jb2RlLXN0eWxlci1oZWFkZXItbGFuZ3VhZ2UtdGFnLXRleHQtaXRhbGljLCBub3JtYWwpO1xuXHRmb250LXdlaWdodDogdmFyKC0tY29kZS1zdHlsZXItaGVhZGVyLWxhbmd1YWdlLXRhZy10ZXh0LWJvbGQsIG5vcm1hbCk7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcblx0dHJhbnNpdGlvbjogYm9yZGVyLXJhZGl1cyBlYXNlLWluLW91dCB2YXIoLS1kdXJhdGlvbi1idXR0b24pLCBwYWRkaW5nIGVhc2UtaW4tb3V0IHZhcigtLWR1cmF0aW9uLWJ1dHRvbik7XG59XG4ubWFya2Rvd24tc291cmNlLXZpZXcgOm5vdChwcmUuY29kZS1zdHlsZXItcHJlKSA+IC5jb2RlLXN0eWxlci1oZWFkZXItY29udGFpbmVyLmNvZGUtc3R5bGVyLWhlYWRlci1mb2xkZWQgLmNvZGUtc3R5bGVyLWhlYWRlci1sYW5ndWFnZS10YWcsXG5wcmUuY29kZS1zdHlsZXItcHJlLmNvZGUtc3R5bGVyLWZvbGRlZCAuY29kZS1zdHlsZXItaGVhZGVyLWNvbnRhaW5lciAuY29kZS1zdHlsZXItaGVhZGVyLWxhbmd1YWdlLXRhZyB7XG5cdGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMpO1xufVxuLmNvZGUtc3R5bGVyLWhlYWRlci10ZXh0IHtcblx0ZGlzcGxheTogZmxleDtcblx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblx0YWxpZ24tY29udGVudDogY2VudGVyO1xuXHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblx0cGFkZGluZy10b3A6IGNhbGMoMWVtICogdmFyKC0taGVhZGVyLWlubmVyLXZlcnRpY2FsLXBhZGRpbmcpKTtcblx0cGFkZGluZy1ib3R0b206IGNhbGMoMWVtICogdmFyKC0taGVhZGVyLWlubmVyLXZlcnRpY2FsLXBhZGRpbmcpKTtcblx0cGFkZGluZy1sZWZ0OiAwcHg7XG5cdGNvbG9yOiB2YXIoLS1jb2RlLXN0eWxlci1oZWFkZXItdGV4dC1jb2xvdXIpO1xuXHRmb250LXNpemU6IGluaGVyaXQ7XG5cdGZvbnQtc3R5bGU6IHZhcigtLWNvZGUtc3R5bGVyLWhlYWRlci10aXRsZS10ZXh0LWl0YWxpYywgbm9ybWFsKTtcblx0Zm9udC13ZWlnaHQ6IHZhcigtLWNvZGUtc3R5bGVyLWhlYWRlci10aXRsZS10ZXh0LWJvbGQsIG5vcm1hbCk7XG5cdHRyYW5zaXRpb246IHBhZGRpbmcgZWFzZS1pbi1vdXQgdmFyKC0tZHVyYXRpb24tYnV0dG9uKTtcbn1cbmJvZHkgLmNvZGUtc3R5bGVyLWhlYWRlci1jb250YWluZXI6bm90KDpoYXMoIGRpdiA+IGltZy5jb2RlLXN0eWxlci1pY29uKSkgLmNvZGUtc3R5bGVyLWhlYWRlci1sYW5ndWFnZS10YWcge1xuXHRib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwICFpbXBvcnRhbnQ7XG5cdGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDAgIWltcG9ydGFudDtcbn1cbmJvZHkgLmNvZGUtc3R5bGVyLWhlYWRlci1jb250YWluZXI6bm90KDpoYXMoIC5jb2RlLXN0eWxlci1oZWFkZXItbGFuZ3VhZ2UtdGFnKSkgLmNvZGUtc3R5bGVyLWhlYWRlci10ZXh0IHtcblx0cGFkZGluZy1sZWZ0OiB2YXIoLS1oZWFkZXItc3BhY2luZyk7XG59XG5kaXY6aGFzKD4gaW1nLmNvZGUtc3R5bGVyLWljb24pIHtcblx0ZGlzcGxheTogaW5saW5lLWZsZXg7XG5cdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cdGFsaWduLWNvbnRlbnQ6IGNlbnRlcjtcblx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cdHBhZGRpbmctdG9wOiBjYWxjKDFlbSAqIHZhcigtLWhlYWRlci1pbm5lci12ZXJ0aWNhbC1wYWRkaW5nKSk7XG5cdHBhZGRpbmctcmlnaHQ6IHZhcigtLWhlYWRlci1zcGFjaW5nKTtcblx0cGFkZGluZy1ib3R0b206IGNhbGMoMWVtICogdmFyKC0taGVhZGVyLWlubmVyLXZlcnRpY2FsLXBhZGRpbmcpKTtcblx0cGFkZGluZy1sZWZ0OiB2YXIoLS1oZWFkZXItc3BhY2luZyk7XG5cdHRyYW5zaXRpb246IHBhZGRpbmcgZWFzZS1pbi1vdXQgdmFyKC0tZHVyYXRpb24tYnV0dG9uKTtcbn1cbi5jb2RlLXN0eWxlci1pY29uIHtcblx0d2lkdGg6IHZhcigtLWxhbmd1YWdlLWljb24tc2l6ZSk7XG5cdGhlaWdodDogdmFyKC0tbGFuZ3VhZ2UtaWNvbi1zaXplKTtcblx0Ym9yZGVyOiBub25lICFpbXBvcnRhbnQ7XG5cdG1hcmdpbjogMCAhaW1wb3J0YW50O1xuXHRmaWx0ZXI6IHZhcigtLWxhbmd1YWdlLWljb24tZmlsdGVyKTtcbn1cblxuLyoqIExpbmVzICovXG5wcmUuY29kZS1zdHlsZXItcHJlIFtjbGFzc149J2NvZGUtc3R5bGVyLWxpbmUtaGlnaGxpZ2h0ZWQnXSA+IC5jb2RlLXN0eWxlci1saW5lLXRleHQge1xuXHRiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsIHZhcigtLWdyYWRpZW50LWJhY2tncm91bmQtY29sb3VyKSAwJSB2YXIoLS1ncmFkaWVudC1oaWdobGlnaHRzLWNvbG91ci1zdG9wKSwgdmFyKC0tY29kZS1zdHlsZXItY29kZWJsb2NrLWJhY2tncm91bmQtY29sb3VyKSAxMDAlKTtcbn1cbi5jb2RlLXN0eWxlci1saW5lLWhpZ2hsaWdodGVkIHtcblx0LS1ncmFkaWVudC1iYWNrZ3JvdW5kLWNvbG91cjogdmFyKC0tY29kZS1zdHlsZXItZGVmYXVsdC1oaWdobGlnaHQtY29sb3VyKSAhaW1wb3J0YW50O1xufVxuLyohIENvbXBsaWNhdGVkICovXG4uY29kZS1zdHlsZXItYWN0aXZlLWxpbmUtaGlnaGxpZ2h0IC5jbS1hY3RpdmUsXG4uY29kZS1zdHlsZXItYWN0aXZlLWxpbmUtaGlnaGxpZ2h0LWVkaXRvciAuY20tYWN0aXZlIHtcblx0YmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCB2YXIoLS1jb2RlLXN0eWxlci1hY3RpdmUtZWRpdG9yLWxpbmUtY29sb3VyKSwgdmFyKC0tZ3JhZGllbnQtaGlnaGxpZ2h0cy1jb2xvdXItc3RvcCksIHRyYW5zcGFyZW50KSAhaW1wb3J0YW50O1xufVxuLyohIENvbXBsaWNhdGVkICovXG4uY29kZS1zdHlsZXItYWN0aXZlLWxpbmUtaGlnaGxpZ2h0IC5tYXJrZG93bi1zb3VyY2UtdmlldyAuSHlwZXJNRC1jb2RlYmxvY2suY20tYWN0aXZlLFxuLmNvZGUtc3R5bGVyLWFjdGl2ZS1saW5lLWhpZ2hsaWdodC1jb2RlYmxvY2sgLm1hcmtkb3duLXNvdXJjZS12aWV3IC5IeXBlck1ELWNvZGVibG9jay5jbS1hY3RpdmUge1xuXHRiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHZhcigtLWNvZGUtc3R5bGVyLWFjdGl2ZS1jb2RlYmxvY2stbGluZS1jb2xvdXIpLCB2YXIoLS1ncmFkaWVudC1oaWdobGlnaHRzLWNvbG91ci1zdG9wKSwgdmFyKC0tY29kZS1zdHlsZXItY29kZWJsb2NrLWJhY2tncm91bmQtY29sb3VyKSkgIWltcG9ydGFudDtcbn1cblxuLyoqIExpbmUgbnVtYmVycyAqL1xuLmNvZGUtc3R5bGVyOm5vdCguY29kZS1zdHlsZXItc2hvdy1saW5lLW51bWJlcnMpIC5jb2RlLXN0eWxlci1saW5lLW51bWJlcixcbi5jb2RlLXN0eWxlci1saW5lLW51bWJlci1oaWRlIHtcblx0ZGlzcGxheTogbm9uZTtcbn1cbi5jb2RlLXN0eWxlciBjb2RlID4gZGl2OmZpcnN0LWNoaWxkID4gW2NsYXNzXj0nY29kZS1zdHlsZXItbGluZS1udW1iZXInXSB7IC8qPyBNYWludGFpbiBndXR0ZXIgY29sb3VyIHdoZW4gcGFkZGVkICovXG5cdGJveC1zaGFkb3c6IDBweCBjYWxjKC0xICogdmFyKC0tY29kZS1wYWRkaW5nKSkgdmFyKC0tY29kZS1zdHlsZXItZ3V0dGVyLWJhY2tncm91bmQtY29sb3VyKTtcblx0dHJhbnNpdGlvbjogYm94LXNoYWRvdyBlYXNlLWluLW91dCB2YXIoLS1kdXJhdGlvbi1idXR0b24pO1xufVxuLmNvZGUtc3R5bGVyIC5jb2RlLXN0eWxlci1mb2xkZWQgPiBjb2RlID4gZGl2OmZpcnN0LWNoaWxkID4gW2NsYXNzXj0nY29kZS1zdHlsZXItbGluZS1udW1iZXInXSB7IC8qPyBNYWludGFpbiBndXR0ZXIgY29sb3VyIHdoZW4gcGFkZGVkICovXG5cdGJveC1zaGFkb3c6IDBweCAwcHggdmFyKC0tY29kZS1zdHlsZXItZ3V0dGVyLWJhY2tncm91bmQtY29sb3VyKTtcbn1cbi5jb2RlLXN0eWxlciBjb2RlID4gZGl2Omxhc3QtY2hpbGQgPiBbY2xhc3NePSdjb2RlLXN0eWxlci1saW5lLW51bWJlciddIHsgLyo/IE1haW50YWluIGd1dHRlciBjb2xvdXIgd2hlbiBwYWRkZWQgKi9cblx0Ym94LXNoYWRvdzogMHB4IHZhcigtLWNvZGUtcGFkZGluZykgdmFyKC0tY29kZS1zdHlsZXItZ3V0dGVyLWJhY2tncm91bmQtY29sb3VyKTtcbn1cbi5jb2RlLXN0eWxlciBjb2RlID4gZGl2Om9ubHktY2hpbGQgPiBbY2xhc3NePSdjb2RlLXN0eWxlci1saW5lLW51bWJlciddIHsgLyo/IE1haW50YWluIGd1dHRlciBjb2xvdXIgd2hlbiBwYWRkZWQgKi9cblx0Ym94LXNoYWRvdzogMHB4IGNhbGMoLTEgKiB2YXIoLS1jb2RlLXBhZGRpbmcpKSB2YXIoLS1jb2RlLXN0eWxlci1ndXR0ZXItYmFja2dyb3VuZC1jb2xvdXIpLDBweCB2YXIoLS1jb2RlLXBhZGRpbmcpIHZhcigtLWNvZGUtc3R5bGVyLWd1dHRlci1iYWNrZ3JvdW5kLWNvbG91cik7XG59XG5bY2xhc3NePSdjb2RlLXN0eWxlci1saW5lLW51bWJlciddIHtcblx0bWluLXdpZHRoOiB2YXIoLS1saW5lLW51bWJlci1ndXR0ZXItbWluLXdpZHRoKTtcblx0cGFkZGluZy1yaWdodDogOHB4O1xuXHRwYWRkaW5nLWxlZnQ6IGNhbGMoNHB4ICsgdmFyKC0tbGFuZ3VhZ2UtYm9yZGVyLXdpZHRoKSk7XG5cdGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvZGUtc3R5bGVyLWd1dHRlci1iYWNrZ3JvdW5kLWNvbG91cik7XG5cdGNvbG9yOiB2YXIoLS1jb2RlLXN0eWxlci1ndXR0ZXItdGV4dC1jb2xvdXIpO1xuXHRmb250LWZhbWlseTogdmFyKC0tZm9udC1tb25vc3BhY2UpO1xuXHRmb250LXNpemU6IHZhcigtLWNvZGUtc2l6ZSk7XG5cdHRleHQtYWxpZ246IHJpZ2h0O1xuXHR1c2VyLXNlbGVjdDogbm9uZTtcbn1cbi5tYXJrZG93bi1zb3VyY2UtdmlldyAuSHlwZXJNRC1jb2RlYmxvY2sgLmNvZGUtc3R5bGVyLWxpbmUtbnVtYmVyLFxuLm1hcmtkb3duLXNvdXJjZS12aWV3IC5IeXBlck1ELWNvZGVibG9jayAuY29kZS1zdHlsZXItbGluZS1udW1iZXItc3BlY2lmaWMge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdGxlZnQ6IDA7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0bWluLXdpZHRoOiBjYWxjKHZhcigtLWxpbmUtbnVtYmVyLWd1dHRlci1taW4td2lkdGgpIC0gMTJweCk7XG5cdGhlaWdodDogMTAwJTtcblx0Ym94LXNpemluZzogY29udGVudC1ib3g7XG5cdHBhZGRpbmctdG9wOiB2YXIoLS1saW5lLW51bWJlci1oZWlnaHQtY29ycmVjdGlvbik7XG5cdGRpcmVjdGlvbjogcnRsO1xuXHRvdmVyZmxvdy14OiBhdXRvO1xufVxuLm1hcmtkb3duLXNvdXJjZS12aWV3IC5IeXBlck1ELWNvZGVibG9jay1iZWdpbiAuY29kZS1zdHlsZXItbGluZS1udW1iZXIsXG4ubWFya2Rvd24tc291cmNlLXZpZXcgLkh5cGVyTUQtY29kZWJsb2NrLWJlZ2luIC5jb2RlLXN0eWxlci1saW5lLW51bWJlci1zcGVjaWZpYyxcbi5tYXJrZG93bi1zb3VyY2UtdmlldyAuSHlwZXJNRC1jb2RlYmxvY2stZW5kIC5jb2RlLXN0eWxlci1saW5lLW51bWJlcixcbi5tYXJrZG93bi1zb3VyY2UtdmlldyAuSHlwZXJNRC1jb2RlYmxvY2stZW5kIC5jb2RlLXN0eWxlci1saW5lLW51bWJlci1zcGVjaWZpYyB7XG5cdHdpZHRoOiB2YXIoLS1saW5lLW51bWJlci1ndXR0ZXItd2lkdGgpO1xufVxucHJlLmNvZGUtc3R5bGVyLXByZSBbY2xhc3NePSdjb2RlLXN0eWxlci1saW5lLW51bWJlciddIHtcblx0cG9zaXRpb246IHN0aWNreTtcblx0dG9wOiAtMXB4O1xuXHRsZWZ0OiAwO1xuXHRib3JkZXItdG9wOiB2YXIoLS1saW5lLW51bWJlci1oZWlnaHQtY29ycmVjdGlvbikgc29saWQgdHJhbnNwYXJlbnQ7XG5cdGdyaWQtY29sdW1uOiAxO1xuXHR3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxucHJlLmNvZGUtc3R5bGVyLXByZSBkaXY6bGFzdC1jaGlsZCA+IFtjbGFzc149J2NvZGUtc3R5bGVyLWxpbmUtbnVtYmVyJ10ge1xuXHR3aWR0aDogdW5zZXQ7XG59XG4uY29kZS1zdHlsZXItZ3V0dGVyLWhpZ2hsaWdodCBwcmUuY29kZS1zdHlsZXItcHJlIFtjbGFzcyo9XCJjb2RlLXN0eWxlci1saW5lLWhpZ2hsaWdodGVkXCJdIFtjbGFzc149J2NvZGUtc3R5bGVyLWxpbmUtbnVtYmVyJ10ge1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1ncmFkaWVudC1iYWNrZ3JvdW5kLWNvbG91cik7XG59XG4uY29kZS1zdHlsZXItYWN0aXZlLWxpbmUtaGlnaGxpZ2h0LmNvZGUtc3R5bGVyLWd1dHRlci1oaWdobGlnaHQgLm1hcmtkb3duLXNvdXJjZS12aWV3IC5IeXBlck1ELWNvZGVibG9ja1tjbGFzcyo9XCJjb2RlLXN0eWxlci1saW5lXCJdLmNtLWFjdGl2ZSBbY2xhc3NePSdjb2RlLXN0eWxlci1saW5lLW51bWJlciddLFxuLmNvZGUtc3R5bGVyLWFjdGl2ZS1saW5lLWhpZ2hsaWdodC1jb2RlYmxvY2suY29kZS1zdHlsZXItZ3V0dGVyLWhpZ2hsaWdodCAubWFya2Rvd24tc291cmNlLXZpZXcgLkh5cGVyTUQtY29kZWJsb2NrW2NsYXNzKj1cImNvZGUtc3R5bGVyLWxpbmVcIl0uY20tYWN0aXZlIFtjbGFzc149J2NvZGUtc3R5bGVyLWxpbmUtbnVtYmVyJ10sXG4uY29kZS1zdHlsZXItZ3V0dGVyLWhpZ2hsaWdodCBbY2xhc3MqPVwiY29kZS1zdHlsZXItbGluZS1oaWdobGlnaHRlZFwiXSBbY2xhc3NePSdjb2RlLXN0eWxlci1saW5lLW51bWJlciddIHtcblx0YmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLDAsMCwwKTtcbn1cbi5jb2RlLXN0eWxlci1ndXR0ZXItYWN0aXZlLWxpbmUgLmNtLWFjdGl2ZSBbY2xhc3NePSdjb2RlLXN0eWxlci1saW5lLW51bWJlcidde1xuXHRjb2xvcjogdmFyKC0tY29kZS1zdHlsZXItZ3V0dGVyLWFjdGl2ZS10ZXh0LWNvbG91cik7XG59XG4uY29kZS1zdHlsZXIuY29kZS1zdHlsZXItc2hvdy1saW5lLW51bWJlcnMgLm1hcmtkb3duLXNvdXJjZS12aWV3IC5IeXBlck1ELWNvZGVibG9jazpoYXMoLmNvZGUtc3R5bGVyLWxpbmUtbnVtYmVyKSxcbi5jb2RlLXN0eWxlci5jb2RlLXN0eWxlci1zaG93LWxpbmUtbnVtYmVycyAubWFya2Rvd24tc291cmNlLXZpZXcgLkh5cGVyTUQtY29kZWJsb2NrOmhhcyguY29kZS1zdHlsZXItbGluZS1udW1iZXItc3BlY2lmaWMpIHtcblx0cGFkZGluZy1sZWZ0OiBjYWxjKDEycHggKyB2YXIoLS1sYW5ndWFnZS1ib3JkZXItd2lkdGgpICsgdmFyKC0tbGluZS1udW1iZXItZ3V0dGVyLXdpZHRoKSArIHZhcigtLWxpbmUtbnVtYmVyLWd1dHRlci1wYWRkaW5nKSkgIWltcG9ydGFudDtcbn1cbi5jb2RlLXN0eWxlciAubWFya2Rvd24tc291cmNlLXZpZXcgLkh5cGVyTUQtY29kZWJsb2NrW2NsYXNzKj0nY29kZS1zdHlsZXItbGluZSddOjpiZWZvcmUge1xuXHRjb250ZW50OiBub25lICFpbXBvcnRhbnQ7XG59XG5cbi8qKiBMaW5lIHRleHQgKi9cbnByZS5jb2RlLXN0eWxlci1wcmUgPiBjb2RlID4gZGl2W2NsYXNzKj0nY29kZS1zdHlsZXItbGluZSddIHtcblx0ZGlzcGxheTogY29udGVudHMgIWltcG9ydGFudDtcbn1cbnByZS5jb2RlLXN0eWxlci1wcmUgLmNvZGUtc3R5bGVyLWxpbmUtdGV4dCB7XG5cdGZsZXgtYmFzaXM6IDEwMCU7XG5cdHBhZGRpbmctbGVmdDogdmFyKC0tbGluZS1udW1iZXItZ3V0dGVyLXBhZGRpbmcpO1xuXHRncmlkLWNvbHVtbjogMjtcbn1cbi5IeXBlck1ELWNvZGVibG9jazpoYXMoPiAuY20td2lkZ2V0QnVmZmVyKSB7IC8qPyBQcmV2ZW50IExpbmUgV3JhcHMgKi9cblx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbi5IeXBlck1ELWNvZGVibG9jazpoYXMoPiAuY20td2lkZ2V0QnVmZmVyKSA+IC5jbS1obWQtY29kZWJsb2NrIHsgLyo/IFByZXZlbnQgTGluZSBXcmFwcyAqL1xuXHR3aGl0ZS1zcGFjZTogYnJlYWstc3BhY2VzO1xufVxuXG4vKiogU2Nyb2xsIEJhciAqL1xucHJlLmNvZGUtc3R5bGVyLXByZS5jb2RlLXN0eWxlci1mb2xkZWQ6Oi13ZWJraXQtc2Nyb2xsYmFyLFxucHJlLmNvZGUtc3R5bGVyLXByZS5jb2RlLXN0eWxlci1mb2xkZWQgY29kZTo6LXdlYmtpdC1zY3JvbGxiYXIsXG5wcmUuY29kZS1zdHlsZXItcHJlLmhpZGUtc2Nyb2xsOjotd2Via2l0LXNjcm9sbGJhcixcbnByZS5jb2RlLXN0eWxlci1wcmUuaGlkZS1zY3JvbGwgY29kZTo6LXdlYmtpdC1zY3JvbGxiYXIge1xuXHRkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG59XG5cbi8qKiBCdXR0b25zICovXG5Aa2V5ZnJhbWVzIG91dGRlbnQge1xuXHRmcm9tIHtcblx0XHRtYXJnaW4tcmlnaHQ6IGNhbGModmFyKC0tY29weS1jb2RlLWhlYWRlci1yaWdodC1tYXJnaW4pIC0gdmFyKC0tZGVudC1kaWZmZXJlbmNlKSk7XG5cdFx0Y2xpcC1wYXRoOiB2YXIoLS1wb2x5Z29uLWluKTtcblx0fVxuXHR0byB7XG5cdFx0bWFyZ2luLXJpZ2h0OiB2YXIoLS1jb3B5LWNvZGUtaGVhZGVyLXJpZ2h0LW1hcmdpbik7XG5cdFx0Y2xpcC1wYXRoOiB2YXIoLS1wb2x5Z29uLW91dCk7XG5cdH1cbn1cbkBrZXlmcmFtZXMgaW5kZW50IHtcblx0ZnJvbSB7XG5cdFx0bWFyZ2luLXJpZ2h0OiB2YXIoLS1jb3B5LWNvZGUtaGVhZGVyLXJpZ2h0LW1hcmdpbik7XG5cdFx0Y2xpcC1wYXRoOiB2YXIoLS1wb2x5Z29uLW91dCk7XG5cdH1cblx0dG8ge1xuXHRcdG1hcmdpbi1yaWdodDogY2FsYyh2YXIoLS1jb3B5LWNvZGUtaGVhZGVyLXJpZ2h0LW1hcmdpbikgLSB2YXIoLS1kZW50LWRpZmZlcmVuY2UpKTtcblx0XHRjbGlwLXBhdGg6IHZhcigtLXBvbHlnb24taW4pO1xuXHR9XG59XG5Aa2V5ZnJhbWVzIHJldmVyc2Utb3V0ZGVudCB7XG5cdGZyb20ge1xuXHRcdGNsaXAtcGF0aDogdmFyKC0tcG9seWdvbi1pbik7XG5cdH1cblx0dG8ge1xuXHRcdGNsaXAtcGF0aDogdmFyKC0tcG9seWdvbi1vdXQpO1xuXHR9XG59XG5Aa2V5ZnJhbWVzIHJldmVyc2UtaW5kZW50IHtcblx0ZnJvbSB7XG5cdFx0Y2xpcC1wYXRoOiB2YXIoLS1wb2x5Z29uLW91dCk7XG5cdH1cblx0dG8ge1xuXHRcdGNsaXAtcGF0aDogdmFyKC0tcG9seWdvbi1pbik7XG5cdH1cbn1cbi5tYXJrZG93bi1yZW5kZXJlZCBwcmUuY29kZS1zdHlsZXItcHJlIGJ1dHRvbiB7XG5cdGRpc3BsYXk6IHVuc2V0ICFpbXBvcnRhbnQ7XG5cdHBhZGRpbmc6IDAgIWltcG9ydGFudDtcblx0Ym9yZGVyOiBub25lICFpbXBvcnRhbnQ7XG5cdG1hcmdpbjogMDtcblx0bWFyZ2luLXRvcDogMCAhaW1wb3J0YW50O1xuXHRtYXJnaW4tYm90dG9tOiAwICFpbXBvcnRhbnQ7XG5cdGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG5cdGJveC1zaGFkb3c6IG5vbmU7XG5cdGNvbG9yOiB2YXIoLS1jb2RlLXN0eWxlci1idXR0b24tY29sb3VyKSAhaW1wb3J0YW50O1xuXHRmb250LWZhbWlseTogdmFyKC0tZm9udC1pbnRlcmZhY2UpO1xuXHRmb250LXNpemU6IHZhcigtLWZvbnQtdWktc21hbGxlcik7XG5cdG9wYWNpdHk6IDE7XG4gICAgdHJhbnNpdGlvbjogdmlzaWJpbGl0eSB2YXIoLS1kdXJhdGlvbi1idXR0b24pLCBvcGFjaXR5IHZhcigtLWR1cmF0aW9uLWJ1dHRvbik7XG5cdHZpc2liaWxpdHk6IHZpc2libGU7XG59XG5wcmUuY29kZS1zdHlsZXItcHJlLmNvZGUtc3R5bGVyLWZvbGRlZCBidXR0b24sXG5wcmUuY29kZS1zdHlsZXItcHJlOm5vdCguY29kZS1zdHlsZXItZm9sZGVkKTpub3QoOmhvdmVyKSBidXR0b24sXG5wcmUuY29kZS1zdHlsZXItcHJlOm5vdCguY29kZS1zdHlsZXItZm9sZGVkKTpub3QoOmhvdmVyKSAuY29kZS1zdHlsZXItaGVhZGVyLWNvbnRhaW5lcjo6YWZ0ZXIge1xuXHRvcGFjaXR5OiAwO1xuXHR2aXNpYmlsaXR5OiBoaWRkZW5cbn1cbi5jb2RlLXN0eWxlci1oZWFkZXItY29udGFpbmVyOjphZnRlciB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0dG9wOiAwO1xuXHRyaWdodDogMDtcblx0Ym90dG9tOiAwO1xuXHRsZWZ0OiAwO1xuXHR3aWR0aDogMjBweDtcblx0aGVpZ2h0OiAyMHB4O1xuXHRtYXJnaW46IGF1dG87XG5cdG1hcmdpbi1yaWdodDogdmFyKC0taGVhZGVyLWJ1dHRvbi1zcGFjaW5nKTtcblx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29kZS1zdHlsZXItYnV0dG9uLWNvbG91cik7XG5cdGNvbnRlbnQ6IFwiXFwyMDBiXCI7XG5cdC13ZWJraXQtbWFzay1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCAzMiAzMicgeG1sOnNwYWNlPSdwcmVzZXJ2ZSclM0UlM0NwYXRoIGQ9J00xNiAyMiA2IDEybDEuNC0xLjQgOC42IDguNiA4LjYtOC42TDI2IDEyeicvJTNFJTNDcGF0aCBmaWxsPSdub25lJyBkPSdNMCAwaDMydjMySDB6Jy8lM0UlM0Mvc3ZnJTNFXCIpO1xuXHRtYXNrLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgdmlld0JveD0nMCAwIDMyIDMyJyBmaWxsPSdub25lJyBzdHJva2U9J2N1cnJlbnRDb2xvcicgc3Ryb2tlLXdpZHRoPScyJyBzdHJva2UtbGluZWNhcD0ncm91bmQnIHN0cm9rZS1saW5lam9pbj0ncm91bmQnICUzRSUzQ3BvbHlsaW5lIHBvaW50cz0nNiA5IDEyIDE1IDE4IDknLyUzRSUzQy9zdmclM0VcIik7XG5cdC13ZWJraXQtbWFzay1yZXBlYXQ6IG5vLXJlcGVhdDtcblx0bWFzay1yZXBlYXQ6IG5vLXJlcGVhdDtcblx0b3BhY2l0eTogMTtcblx0c2NhbGU6IDAuODtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gdmFyKC0tZHVyYXRpb24tYnV0dG9uKSBlYXNlLW91dCwgdmlzaWJpbGl0eSB2YXIoLS1kdXJhdGlvbi1idXR0b24pLCBvcGFjaXR5IHZhcigtLWR1cmF0aW9uLWJ1dHRvbiksIHNjYWxlIHZhcigtLWR1cmF0aW9uLWJ1dHRvbikgY3ViaWMtYmV6aWVyKDAuNCwgMC4xNCwgMC4zLCAxKTtcblx0dmlzaWJpbGl0eTogdmlzaWJsZTtcbn1cbnByZS5jb2RlLXN0eWxlci1wcmUuY29kZS1zdHlsZXItZm9sZGVkIC5jb2RlLXN0eWxlci1oZWFkZXItY29udGFpbmVyOjphZnRlcixcbi5tYXJrZG93bi1zb3VyY2UtdmlldyA6bm90KHByZS5jb2RlLXN0eWxlci1wcmUpID4gLmNvZGUtc3R5bGVyLWhlYWRlci1jb250YWluZXI6bm90KDpoYXMoKyAuSHlwZXJNRC1jb2RlYmxvY2stYmVnaW4pKTo6YWZ0ZXIge1xuXHR0cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpO1xufVxuLmNvZGUtc3R5bGVyLWhlYWRlci1jb250YWluZXI6aG92ZXI6OmFmdGVyIHtcblx0c2NhbGU6IDE7XG59XG5ib2R5IHByZS5jb2RlLXN0eWxlci1wcmU6aGFzKC5jb2RlLXN0eWxlci1oZWFkZXItY29udGFpbmVyLWhpZGRlbikgYnV0dG9uLmNvcHktY29kZS1idXR0b24sXG5ib2R5IC5tYXJrZG93bi1zb3VyY2UtdmlldyA6bm90KHByZS5jb2RlLXN0eWxlci1wcmUpID4gLmNvZGUtc3R5bGVyLWhlYWRlci1jb250YWluZXItaGlkZGVuICsgLkh5cGVyTUQtY29kZWJsb2NrLWJlZ2luIHNwYW4uY29kZS1ibG9jay1mbGFpciB7XG5cdHRvcDogY2FsYygwLjUgKiB2YXIoLS1mb250LXRleHQtc2l6ZSkgKiAwLjg3NSAqIHZhcigtLWxpbmUtaGVpZ2h0LW5vcm1hbCkpICFpbXBvcnRhbnQ7XG5cdC0tY29weS1jb2RlLWhlYWRlci1yaWdodC1tYXJnaW46IDEycHg7XG59XG5ib2R5IC5tYXJrZG93bi1zb3VyY2UtdmlldyA6bm90KHByZS5jb2RlLXN0eWxlci1wcmUpID4gLmNvZGUtc3R5bGVyLWhlYWRlci1jb250YWluZXIuaGlkZGVuICsgLkh5cGVyTUQtY29kZWJsb2NrLWJlZ2luIHtcblx0b3ZlcmZsb3c6IGhpZGRlbjtcbn1cbnByZS5jb2RlLXN0eWxlci1wcmUgYnV0dG9uLmNvcHktY29kZS1idXR0b24ge1xuXHR0b3A6IG1heChjYWxjKDAuNSAqIHZhcigtLWNvbnRhaW5lci1oZWlnaHQpICogMSksY2FsYygwLjUgKiB2YXIoLS1jb250YWluZXItbWluLWhlaWdodCkgKiAxKSkgIWltcG9ydGFudDtcblx0Ym90dG9tOiB1bnNldCAhaW1wb3J0YW50O1xuXHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG59XG5wcmUuY29kZS1zdHlsZXItcHJlIGJ1dHRvbi5jb3B5LWNvZGUtYnV0dG9uLFxucHJlLmNvZGUtc3R5bGVyLXByZSBidXR0b24ucnVuLWNvZGUtYnV0dG9uLCAvKj8gRXhlY3V0ZSBDb2RlIFBsdWdpbiBDb21wYXRpYmlsaXR5ICovXG4ubWFya2Rvd24tc291cmNlLXZpZXcubW9kLWNtNiAuSHlwZXJNRC1jb2RlYmxvY2suY29kZS1zdHlsZXItbGluZSBzcGFuLmNvZGUtYmxvY2stZmxhaXIge1xuXHRtYXJnaW4tcmlnaHQ6IGNhbGModmFyKC0tY29weS1jb2RlLWhlYWRlci1yaWdodC1tYXJnaW4pIC0gdmFyKC0tZGVudC1kaWZmZXJlbmNlKSk7XG5cdGNsaXAtcGF0aDogdmFyKC0tcG9seWdvbi1pbik7XG5cdHdpbGwtY2hhbmdlOiBtYXJnaW4tcmlnaHQsIGNsaXAtcGF0aDtcbn1cbnByZS5jb2RlLXN0eWxlci1wcmUgYnV0dG9uLmNvcHktY29kZS1idXR0b246bm90KDphY3RpdmUpLFxucHJlLmNvZGUtc3R5bGVyLXByZSBidXR0b24ucnVuLWNvZGUtYnV0dG9uOm5vdCg6YWN0aXZlKSwgLyo/IEV4ZWN1dGUgQ29kZSBQbHVnaW4gQ29tcGF0aWJpbGl0eSAqL1xuLm1hcmtkb3duLXNvdXJjZS12aWV3Lm1vZC1jbTYgLkh5cGVyTUQtY29kZWJsb2NrLmNvZGUtc3R5bGVyLWxpbmUgc3Bhbi5jb2RlLWJsb2NrLWZsYWlyOm5vdCg6YWN0aXZlKSB7XG5cdGFuaW1hdGlvbjogaW5kZW50IHZhcigtLWR1cmF0aW9uLWJ1dHRvbik7XG59XG5wcmUuY29kZS1zdHlsZXItcHJlIGJ1dHRvbi5jb3B5LWNvZGUtYnV0dG9uOmhvdmVyLFxucHJlLmNvZGUtc3R5bGVyLXByZSBidXR0b24ucnVuLWNvZGUtYnV0dG9uOmhvdmVyLCAvKj8gRXhlY3V0ZSBDb2RlIFBsdWdpbiBDb21wYXRpYmlsaXR5ICovXG4ubWFya2Rvd24tc291cmNlLXZpZXcubW9kLWNtNiAuSHlwZXJNRC1jb2RlYmxvY2suY29kZS1zdHlsZXItbGluZSBzcGFuLmNvZGUtYmxvY2stZmxhaXI6aG92ZXJ7XG5cdG1hcmdpbi1yaWdodDogdmFyKC0tY29weS1jb2RlLWhlYWRlci1yaWdodC1tYXJnaW4pO1xuXHRhbmltYXRpb246IG91dGRlbnQgdmFyKC0tZHVyYXRpb24tYnV0dG9uKTtcblx0YmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cdGNsaXAtcGF0aDogdmFyKC0tcG9seWdvbi1vdXQpO1xufVxucHJlLmNvZGUtc3R5bGVyLXByZSBidXR0b24uY29weS1jb2RlLWJ1dHRvbjphY3RpdmUsXG5wcmUuY29kZS1zdHlsZXItcHJlIGJ1dHRvbi5ydW4tY29kZS1idXR0b246YWN0aXZlLCAvKj8gRXhlY3V0ZSBDb2RlIFBsdWdpbiBDb21wYXRpYmlsaXR5ICovXG4ubWFya2Rvd24tc291cmNlLXZpZXcubW9kLWNtNiAuSHlwZXJNRC1jb2RlYmxvY2suY29kZS1zdHlsZXItbGluZSBzcGFuLmNvZGUtYmxvY2stZmxhaXI6YWN0aXZlIHtcblx0c2NhbGU6IDAuOTU7XG5cdHRyYW5zaXRpb246IHNjYWxlIHZhcigtLWR1cmF0aW9uLWJ1dHRvbikgY3ViaWMtYmV6aWVyKDAuNCwgMC4xNCwgMC4zLCAxKTtcbn1cbnByZS5jb2RlLXN0eWxlci1wcmUgYnV0dG9uLmNvcHktY29kZS1idXR0b246OmJlZm9yZSxcbi5tYXJrZG93bi1zb3VyY2Utdmlldy5tb2QtY202IC5IeXBlck1ELWNvZGVibG9jay5jb2RlLXN0eWxlci1saW5lIHNwYW4uY29kZS1ibG9jay1mbGFpcjo6YmVmb3JlIHtcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHR3aWR0aDogMTRweDtcblx0aGVpZ2h0OiAxNHB4O1xuXHRwYWRkaW5nLXJpZ2h0OiA0cHg7XG5cdGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvZGUtc3R5bGVyLWJ1dHRvbi1jb2xvdXIpO1xuXHRjb250ZW50OiBcIlxcMjAwYlwiO1xuXHQtd2Via2l0LW1hc2staW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2aWV3Qm94PScwIDAgMzIgMzInJTNFJTNDcGF0aCBkPSdNMjggMTB2MThIMTBWMTBoMThtMC0ySDEwYTIgMiAwIDAgMC0yIDJ2MThhMiAyIDAgMCAwIDIgMmgxOGEyIDIgMCAwIDAgMi0yVjEwYTIgMiAwIDAgMC0yLTJaJy8lM0UlM0NwYXRoIGQ9J000IDE4SDJWNGEyIDIgMCAwIDEgMi0yaDE0djJINFonLyUzRSUzQ3BhdGggZmlsbD0nbm9uZScgZD0nTTAgMGgzMnYzMkgweicgZGF0YS1uYW1lPScmbHQ7VHJhbnNwYXJlbnQgUmVjdGFuZ2xlJmd0OycvJTNFJTNDL3N2ZyUzRVwiKTtcblx0bWFzay1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCAzMiAzMiclM0UlM0NwYXRoIGQ9J00yOCAxMHYxOEgxMFYxMGgxOG0wLTJIMTBhMiAyIDAgMCAwLTIgMnYxOGEyIDIgMCAwIDAgMiAyaDE4YTIgMiAwIDAgMCAyLTJWMTBhMiAyIDAgMCAwLTItMlonLyUzRSUzQ3BhdGggZD0nTTQgMThIMlY0YTIgMiAwIDAgMSAyLTJoMTR2Mkg0WicvJTNFJTNDcGF0aCBmaWxsPSdub25lJyBkPSdNMCAwaDMydjMySDB6JyBkYXRhLW5hbWU9JyZsdDtUcmFuc3BhcmVudCBSZWN0YW5nbGUmZ3Q7Jy8lM0UlM0Mvc3ZnJTNFXCIpO1xuXHQtd2Via2l0LW1hc2stcmVwZWF0OiBuby1yZXBlYXQ7XG5cdG1hc2stcmVwZWF0OiBuby1yZXBlYXQ7XG5cdHZlcnRpY2FsLWFsaWduOiAxcHg7XG59XG4ubWFya2Rvd24tc291cmNlLXZpZXcubW9kLWNtNiAuSHlwZXJNRC1jb2RlYmxvY2suY29kZS1zdHlsZXItbGluZSBzcGFuLmNvZGUtYmxvY2stZmxhaXIge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHRvcDogbWluKGNhbGMoLTAuNSAqIHZhcigtLWNvbnRhaW5lci1oZWlnaHQpICogMS4xIC0gdmFyKC0taGVhZGVyLXNlcGFyYXRvci13aWR0aCkpLGNhbGMoLTAuNSAqIHZhcigtLWNvbnRhaW5lci1taW4taGVpZ2h0KSAqIDEuMSAtIHZhcigtLWhlYWRlci1zZXBhcmF0b3Itd2lkdGgpKSkgIWltcG9ydGFudDtcblx0cmlnaHQ6IDA7XG5cdHBhZGRpbmc6IDA7XG5cdG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDtcblx0bWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50O1xuXHRmb250LXNpemU6IDA7XG5cdGxpbmUtaGVpZ2h0OiBpbml0aWFsICFpbXBvcnRhbnQ7XG5cdHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcblx0dmlzaWJpbGl0eTogaGlkZGVuO1xufVxuLm1hcmtkb3duLXNvdXJjZS12aWV3Lm1vZC1jbTYgLkh5cGVyTUQtY29kZWJsb2NrLmNvZGUtc3R5bGVyLWxpbmUgc3Bhbi5jb2RlLWJsb2NrLWZsYWlyID4gKiB7XG5cdHdpZHRoOiAwcHg7XG59XG4ubWFya2Rvd24tc291cmNlLXZpZXcubW9kLWNtNiAuSHlwZXJNRC1jb2RlYmxvY2suY29kZS1zdHlsZXItbGluZSBzcGFuLmNvZGUtYmxvY2stZmxhaXI6OmJlZm9yZSB7XG5cdGZvbnQtc2l6ZTogdmFyKC0tZm9udC11aS1zbWFsbGVyKTtcblx0b3BhY2l0eTogMTtcblx0dmVydGljYWwtYWxpZ246IC0xcHg7XG5cdHZpc2liaWxpdHk6IHZpc2libGU7XG59XG4ubWFya2Rvd24tc291cmNlLXZpZXcubW9kLWNtNiAuSHlwZXJNRC1jb2RlYmxvY2suY29kZS1zdHlsZXItbGluZSBzcGFuLmNvZGUtYmxvY2stZmxhaXI6OmFmdGVyIHtcblx0Y29sb3I6IHZhcigtLWNvZGUtc3R5bGVyLWJ1dHRvbi1jb2xvdXIpO1xuXHRjb250ZW50OiAnQ29weSc7XG5cdGZvbnQtc2l6ZTogdmFyKC0tZm9udC11aS1zbWFsbGVyKTtcblx0b3BhY2l0eTogMTtcblx0dmlzaWJpbGl0eTogdmlzaWJsZTtcbn1cbi5tYXJrZG93bi1zb3VyY2Utdmlldy5tb2QtY202IC5IeXBlck1ELWNvZGVibG9jay1iZWdpbi5jb2RlLXN0eWxlci1saW5lIHtcblx0b3ZlcmZsb3c6IHZpc2libGU7XG59XG4iLCAiLyoqIERlZmluZSBDU1MgVmFyaWFibGVzICovXG5ib2R5IHtcblx0LS1jb2RlLXN0eWxlci1pbmxpbmUtZm9udC13ZWlnaHQ6IDQwMDtcblx0LS1jb2RlLXN0eWxlci1pbmxpbmUtYm9yZGVyLXJhZGl1czogNnB4O1xuXHQtLWNvZGUtc3R5bGVyLWlubGluZS1wYWRkaW5nLXZlcnRpY2FsOiA1cHg7XG5cdC0tY29kZS1zdHlsZXItaW5saW5lLXBhZGRpbmctaG9yaXpvbnRhbDogNXB4O1xuXHQtLWNvZGUtc3R5bGVyLWlubGluZS1tYXJnaW4taG9yaXpvbnRhbDogMHB4O1xuXHQtLWNvZGUtc3R5bGVyLWlubGluZS1jb2xvdXI6IHZhcigtLWNvZGUtbm9ybWFsKTtcblx0LS1jb2RlLXN0eWxlci1pbmxpbmUtY29sb3VyLWFjdGl2ZTogdmFyKC0tY29kZS1ub3JtYWwpO1xuXHQtLWNvZGUtc3R5bGVyLWlubGluZS1iYWNrZ3JvdW5kLWNvbG91cjogdmFyKC0tY29kZS1iYWNrZ3JvdW5kKTtcbn1cblxuLmNvZGUtc3R5bGVyIC5jbS1zLW9ic2lkaWFuIHNwYW4uY20taW5saW5lLWNvZGUsXG4uY29kZS1zdHlsZXIgLm1hcmtkb3duLXJlbmRlcmVkIDpub3QocHJlKSA+IGNvZGU6bm90KFtjbGFzcyo9XCJibHVyXCJdKSB7XG5cdHBhZGRpbmc6IHZhcigtLWNvZGUtc3R5bGVyLWlubGluZS1wYWRkaW5nLXZlcnRpY2FsKSB2YXIoLS1jb2RlLXN0eWxlci1pbmxpbmUtcGFkZGluZy1ob3Jpem9udGFsKSAhaW1wb3J0YW50O1xuXHRib3JkZXItcmFkaXVzOiB2YXIoLS1jb2RlLXN0eWxlci1pbmxpbmUtYm9yZGVyLXJhZGl1cykgIWltcG9ydGFudDtcblx0bWFyZ2luOiAwcHggdmFyKC0tY29kZS1zdHlsZXItaW5saW5lLW1hcmdpbi1ob3Jpem9udGFsKSAhaW1wb3J0YW50O1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2RlLXN0eWxlci1pbmxpbmUtYmFja2dyb3VuZC1jb2xvdXIpICFpbXBvcnRhbnQ7XG5cdGNvbG9yOiB2YXIoLS1jb2RlLXN0eWxlci1pbmxpbmUtY29sb3VyKTtcblx0Zm9udC13ZWlnaHQ6IHZhcigtLWNvZGUtc3R5bGVyLWlubGluZS1mb250LXdlaWdodCk7XG59XG4uY29kZS1zdHlsZXIgLmNtLXMtb2JzaWRpYW4gc3Bhbi5jbS1mb3JtYXR0aW5nLWNvZGUgeyAvKj8gU3RhbmRhbG9uZSBiYWNrdGlja3MgKi9cblx0ZGlzcGxheTogaW5saW5lICFpbXBvcnRhbnQ7XG5cdGNvbG9yOiB2YXIoLS1jb2RlLXN0eWxlci1pbmxpbmUtY29sb3VyLWFjdGl2ZSk7XG59XG4uY29kZS1zdHlsZXIgLmNtLXMtb2JzaWRpYW4gc3Bhbi5jb2RlLXN0eWxlci1pbmxpbmUtb3BlbmVyIH4gc3Bhbi5jbS1pbmxpbmUtY29kZTpub3QoLmNtLWZvcm1hdHRpbmctY29kZSkge1xuXHRwYWRkaW5nLWxlZnQ6IDBweCAhaW1wb3J0YW50O1xuXHRib3JkZXItcmFkaXVzOiAwcHggdmFyKC0tY29kZS1zdHlsZXItaW5saW5lLWJvcmRlci1yYWRpdXMpIHZhcigtLWNvZGUtc3R5bGVyLWlubGluZS1ib3JkZXItcmFkaXVzKSAwcHggIWltcG9ydGFudDtcblx0bWFyZ2luLWxlZnQ6IDBweCAhaW1wb3J0YW50O1xufVxuLmNvZGUtc3R5bGVyIC5jbS1zLW9ic2lkaWFuIHNwYW4uY29kZS1zdHlsZXItaW5saW5lLW9wZW5lcixcbi5jb2RlLXN0eWxlciAuY20tcy1vYnNpZGlhbiBzcGFuLmNtLWZvcm1hdHRpbmctY29kZTpoYXMoKyBzcGFuLmNtLWlubGluZS1jb2RlOm5vdCguY20tZm9ybWF0dGluZy1jb2RlKSkgey8qPyBGaXJzdCBiYWNrdGljayAqL1xuXHRwYWRkaW5nLXJpZ2h0OiAwcHggIWltcG9ydGFudDtcblx0cGFkZGluZy1sZWZ0OiB2YXIoLS1jb2RlLXN0eWxlci1pbmxpbmUtcGFkZGluZy1ob3Jpem9udGFsKSAhaW1wb3J0YW50O1xuXHRib3JkZXItcmFkaXVzOiB2YXIoLS1jb2RlLXN0eWxlci1pbmxpbmUtYm9yZGVyLXJhZGl1cykgMHB4IDBweCB2YXIoLS1jb2RlLXN0eWxlci1pbmxpbmUtYm9yZGVyLXJhZGl1cykgIWltcG9ydGFudDtcblx0bWFyZ2luLXJpZ2h0OiAwcHggIWltcG9ydGFudDtcblx0bWFyZ2luLWxlZnQ6IHZhcigtLWNvZGUtc3R5bGVyLWlubGluZS1tYXJnaW4taG9yaXpvbnRhbCkgIWltcG9ydGFudDtcblx0Y29sb3I6IHZhcigtLWNvZGUtc3R5bGVyLWlubGluZS1jb2xvdXItYWN0aXZlKTtcbn1cbi5jb2RlLXN0eWxlciAuY20tcy1vYnNpZGlhbiBzcGFuLmNtLWZvcm1hdHRpbmctY29kZSArIHNwYW4uY20taW5saW5lLWNvZGU6bm90KC5jbS1mb3JtYXR0aW5nLWNvZGUpIHsgLyo/IElubmVyIGNvZGUgd2l0aCBiYWNrdGlja3MgKi9cblx0cGFkZGluZy1yaWdodDogMHB4ICFpbXBvcnRhbnQ7XG5cdHBhZGRpbmctbGVmdDogMHB4ICFpbXBvcnRhbnQ7XG5cdGJvcmRlci1yYWRpdXM6IDBweCAhaW1wb3J0YW50O1xuXHRtYXJnaW46IDBweCAwcHggIWltcG9ydGFudDtcblx0Y29sb3I6IHZhcigtLWNvZGUtc3R5bGVyLWlubGluZS1jb2xvdXItYWN0aXZlKTtcbn1cbi5jb2RlLXN0eWxlciAuY20tcy1vYnNpZGlhbiBzcGFuLmNtLWlubGluZS1jb2RlOm5vdCguY20tZm9ybWF0dGluZy1jb2RlKSArIHNwYW4uY20tZm9ybWF0dGluZy1jb2RlIHsvKj8gTGFzdCBiYWNrdGljayAqL1xuXHRwYWRkaW5nLXJpZ2h0OiB2YXIoLS1jb2RlLXN0eWxlci1pbmxpbmUtcGFkZGluZy1ob3Jpem9udGFsKSAhaW1wb3J0YW50O1xuXHRwYWRkaW5nLWxlZnQ6IDBweCAhaW1wb3J0YW50O1xuXHRib3JkZXItcmFkaXVzOiAwcHggdmFyKC0tY29kZS1zdHlsZXItaW5saW5lLWJvcmRlci1yYWRpdXMpIHZhcigtLWNvZGUtc3R5bGVyLWlubGluZS1ib3JkZXItcmFkaXVzKSAwcHggIWltcG9ydGFudDtcblx0bWFyZ2luLXJpZ2h0OiB2YXIoLS1jb2RlLXN0eWxlci1pbmxpbmUtbWFyZ2luLWhvcml6b250YWwpICFpbXBvcnRhbnQ7XG5cdG1hcmdpbi1sZWZ0OiAwcHggIWltcG9ydGFudDtcblx0Y29sb3I6IHZhcigtLWNvZGUtc3R5bGVyLWlubGluZS1jb2xvdXItYWN0aXZlKTtcbn1cbmJvZHkuY29kZS1zdHlsZXIgc3Bhbi5jb2RlLXN0eWxlci1pbmxpbmUtb3BlbmVyID4gc3BhbiA+IGltZy5jb2RlLXN0eWxlci1pbmxpbmUtaWNvbjpub3QoW2NsYXNzKj1cImVtb2ppXCJdKSB7XG5cdGRpc3BsYXk6IGlubGluZSAhaW1wb3J0YW50O1xuXHRoZWlnaHQ6IGNhbGModmFyKC0tY29kZS1zaXplKSAqIDEuMik7XG5cdG1hcmdpbi1ib3R0b206IDJweCAhaW1wb3J0YW50O1xuXHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuLmNvZGUtc3R5bGVyIHNwYW4uY29kZS1zdHlsZXItaW5saW5lLW9wZW5lciAuY29kZS1zdHlsZXItaW5saW5lLXRpdGxlIHtcblx0Y29sb3I6IHZhcigtLWNvZGUtc3R5bGVyLWlubGluZS10aXRsZS1jb2xvdXIpO1xuXHRmb250LXdlaWdodDogdmFyKC0tY29kZS1zdHlsZXItaW5saW5lLXRpdGxlLWZvbnQtd2VpZ2h0KTtcbn1cbi5jb2RlLXN0eWxlciBzcGFuLmNvZGUtc3R5bGVyLWlubGluZS1vcGVuZXIgLmNvZGUtc3R5bGVyLWlubGluZS10aXRsZTo6YWZ0ZXIge1xuXHRjb2xvcjogdmFyKC0tY29kZS1zdHlsZXItaW5saW5lLXRpdGxlLWNvbG9yKTtcblx0Y29udGVudDogJ1xcRkY1Qyc7XG59XG4uY29kZS1zdHlsZXIgc3Bhbi5jb2RlLXN0eWxlci1pbmxpbmUtb3BlbmVyIHNwYW46aGFzKCA+IGltZy5jb2RlLXN0eWxlci1pbmxpbmUtaWNvbikge1xuXHRwYWRkaW5nLXJpZ2h0OiA4cHg7XG59XG4uY29kZS1zdHlsZXIgLmNtLXMtb2JzaWRpYW4gc3Bhbi5jbS1pbmxpbmUtY29kZSAuY29kZS1zdHlsZXItaW5saW5lLXBhcmFtZXRlcnMge1xuXHRjb2xvcjogdmFyKC0tY29kZS1jb21tZW50KTtcbn1cbiIsICJkaXYucHJpbnQge1xuXHQtLWxpbmUtd3JhcHBpbmc6IHByZS13cmFwICFpbXBvcnRhbnQ7XG59XG4uY29kZS1zdHlsZXIgZGl2LnByaW50IHByZS5jb2RlLXN0eWxlci1wcmUgY29kZSB7XG5cdG1heC1oZWlnaHQ6IHVuc2V0ICFpbXBvcnRhbnQ7XG59XG4uY29kZS1zdHlsZXIgZGl2LnByaW50IHByZS5jb2RlLXN0eWxlci1wcmUuY29kZS1zdHlsZXItZm9sZGVkIGNvZGUge1xuXHRkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG59XG4iLCAiLyoqIFBpY2tyIDEuOC4yIE1JVCB8IGh0dHBzOi8vZ2l0aHViLmNvbS9TaW1vbndlcC9waWNrciAqL1xuLnBpY2tyIHtwb3NpdGlvbjogcmVsYXRpdmU7b3ZlcmZsb3c6IHZpc2libGU7dHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApfSAgLnBpY2tyICoge2JveC1zaXppbmc6IGJvcmRlci1ib3g7Ym9yZGVyOiBub25lOy13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTthcHBlYXJhbmNlOiBub25lO291dGxpbmU6IG5vbmV9ICAucGlja3IgLnBjci1idXR0b24ge3Bvc2l0aW9uOiByZWxhdGl2ZTt3aWR0aDogMmVtO2hlaWdodDogMmVtO3BhZGRpbmc6IDAuNWVtO2JvcmRlci1yYWRpdXM6IC4xNWVtO2JhY2tncm91bmQ6IHVybCgnZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgNTAgNTBcIiBzdHJva2U9XCIlMjM0MjQ0NUFcIiBzdHJva2Utd2lkdGg9XCI1cHhcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCI+PHBhdGggZD1cIk00NSw0NUw1LDVcIj48L3BhdGg+PHBhdGggZD1cIk00NSw1TDUsNDVcIj48L3BhdGg+PC9zdmc+Jykgbm8tcmVwZWF0IGNlbnRlcjtiYWNrZ3JvdW5kLXNpemU6IDA7Y3Vyc29yOiBwb2ludGVyO2ZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsIFwiU2Vnb2UgVUlcIiwgXCJSb2JvdG9cIiwgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBBcmlhbCwgc2Fucy1zZXJpZjt0cmFuc2l0aW9uOiBhbGwgMC4zc30gIC5waWNrciAucGNyLWJ1dHRvbjo6YmVmb3JlIHtwb3NpdGlvbjogYWJzb2x1dGU7ei1pbmRleDogLTE7dG9wOiAwO2xlZnQ6IDA7d2lkdGg6IDEwMCU7aGVpZ2h0OiAxMDAlO2JvcmRlci1yYWRpdXM6IC4xNWVtO2JhY2tncm91bmQ6IHVybCgnZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMiAyXCI+PHBhdGggZmlsbD1cIndoaXRlXCIgZD1cIk0xLDBIMlYxSDFWMFpNMCwxSDFWMkgwVjFaXCIvPjxwYXRoIGZpbGw9XCJncmF5XCIgZD1cIk0wLDBIMVYxSDBWMFpNMSwxSDJWMkgxVjFaXCIvPjwvc3ZnPicpO2JhY2tncm91bmQtc2l6ZTogLjVlbTtjb250ZW50OiAnJ30gIC5waWNrciAucGNyLWJ1dHRvbjo6YmVmb3JlIHt6LWluZGV4OiBpbml0aWFsfSAgLnBpY2tyIC5wY3ItYnV0dG9uOjphZnRlciB7cG9zaXRpb246IGFic29sdXRlO3RvcDogMDtsZWZ0OiAwO3dpZHRoOiAxMDAlO2hlaWdodDogMTAwJTtib3JkZXItcmFkaXVzOiAuMTVlbTtiYWNrZ3JvdW5kOiB2YXIoLS1wY3ItY29sb3IpO2NvbnRlbnQ6ICcnO3RyYW5zaXRpb246IGJhY2tncm91bmQgMC4zc30gIC5waWNrciAucGNyLWJ1dHRvbi5jbGVhciB7YmFja2dyb3VuZC1zaXplOiA3MCV9ICAucGlja3IgLnBjci1idXR0b24uY2xlYXI6OmJlZm9yZSB7b3BhY2l0eTogMH0gIC5waWNrciAucGNyLWJ1dHRvbi5jbGVhcjpmb2N1cyB7Ym94LXNoYWRvdzogMCAwIDAgMXB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44NSksIDAgMCAwIDNweCB2YXIoLS1wY3ItY29sb3IpfSAgLnBpY2tyIC5wY3ItYnV0dG9uLmRpc2FibGVkIHtjdXJzb3I6IG5vdC1hbGxvd2VkfSAgLnBpY2tyICosIC5wY3ItYXBwICoge2JveC1zaXppbmc6IGJvcmRlci1ib3g7Ym9yZGVyOiBub25lOy13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTthcHBlYXJhbmNlOiBub25lO291dGxpbmU6IG5vbmV9ICAucGlja3IgaW5wdXQ6Zm9jdXMsIC5waWNrciBpbnB1dC5wY3ItYWN0aXZlLCAucGlja3IgYnV0dG9uOmZvY3VzLCAucGlja3IgYnV0dG9uLnBjci1hY3RpdmUsIC5wY3ItYXBwIGlucHV0OmZvY3VzLCAucGNyLWFwcCBpbnB1dC5wY3ItYWN0aXZlLCAucGNyLWFwcCBidXR0b246Zm9jdXMsIC5wY3ItYXBwIGJ1dHRvbi5wY3ItYWN0aXZlIHtib3gtc2hhZG93OiAwIDAgMCAxcHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjg1KSwgMCAwIDAgM3B4IHZhcigtLXBjci1jb2xvcil9ICAucGlja3IgLnBjci1wYWxldHRlLCAucGlja3IgLnBjci1zbGlkZXIsIC5wY3ItYXBwIC5wY3ItcGFsZXR0ZSwgLnBjci1hcHAgLnBjci1zbGlkZXIge3RyYW5zaXRpb246IGJveC1zaGFkb3cgMC4zc30gIC5waWNrciAucGNyLXBhbGV0dGU6Zm9jdXMsIC5waWNrciAucGNyLXNsaWRlcjpmb2N1cywgLnBjci1hcHAgLnBjci1wYWxldHRlOmZvY3VzLCAucGNyLWFwcCAucGNyLXNsaWRlcjpmb2N1cyB7Ym94LXNoYWRvdzogMCAwIDAgMXB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44NSksIDAgMCAwIDNweCByZ2JhKDAsIDAsIDAsIDAuMjUpfSAgLnBjci1hcHAge3Bvc2l0aW9uOiBmaXhlZDt6LWluZGV4OiAxMDAwMDt0b3A6IDA7bGVmdDogMDtkaXNwbGF5OiBmbGV4O2ZsZXgtZGlyZWN0aW9uOiBjb2x1bW47Ym9yZGVyLXJhZGl1czogMC4xZW07YmFja2dyb3VuZDogI2ZmZjtib3gtc2hhZG93OiAwIDAuMTVlbSAxLjVlbSAwIHJnYmEoMCwgMCwgMCwgMC4xKSwgMCAwIDFlbSAwIHJnYmEoMCwgMCwgMCwgMC4wMyk7Zm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgXCJTZWdvZSBVSVwiLCBcIlJvYm90b1wiLCBcIkhlbHZldGljYSBOZXVlXCIsIEFyaWFsLCBzYW5zLXNlcmlmO29wYWNpdHk6IDA7dHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzLCB2aXNpYmlsaXR5IDBzIDAuM3M7dmlzaWJpbGl0eTogaGlkZGVufSAgLnBjci1hcHAudmlzaWJsZSB7b3BhY2l0eTogMTt0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3M7dmlzaWJpbGl0eTogdmlzaWJsZX0gIC5wY3ItYXBwIC5wY3Itc3dhdGNoZXMge2Rpc3BsYXk6IGZsZXg7ZmxleC13cmFwOiB3cmFwO21hcmdpbi10b3A6IDAuNzVlbX0gIC5wY3ItYXBwIC5wY3Itc3dhdGNoZXMucGNyLWxhc3Qge21hcmdpbjogMH0gIEBzdXBwb3J0cyAoZGlzcGxheTogZ3JpZCkgeyAgLnBjci1hcHAgLnBjci1zd2F0Y2hlcyB7ZGlzcGxheTogZ3JpZDthbGlnbi1pdGVtczogY2VudGVyO2dyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZml0LCAxLjc1ZW0pfSAgfSAgLnBjci1hcHAgLnBjci1zd2F0Y2hlcyA+IGJ1dHRvbiB7cG9zaXRpb246IHJlbGF0aXZlO3otaW5kZXg6IDE7b3ZlcmZsb3c6IGhpZGRlbjt3aWR0aDogY2FsYygxLjc1ZW0gLSAxMHB4KTtoZWlnaHQ6IGNhbGMoMS43NWVtIC0gMTBweCk7ZmxleC1zaHJpbms6IDA7Ym9yZGVyLXJhZGl1czogMC4xNWVtO21hcmdpbjogMi41cHg7YmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7Y3Vyc29yOiBwb2ludGVyO2ZvbnQtc2l6ZTogMWVtO2p1c3RpZnktc2VsZjogY2VudGVyO3RyYW5zaXRpb246IGFsbCAwLjE1c30gIC5wY3ItYXBwIC5wY3Itc3dhdGNoZXMgPiBidXR0b246OmJlZm9yZSB7cG9zaXRpb246IGFic29sdXRlO3otaW5kZXg6IC0xO3RvcDogMDtsZWZ0OiAwO3dpZHRoOiAxMDAlO2hlaWdodDogMTAwJTtib3JkZXItcmFkaXVzOiAuMTVlbTtiYWNrZ3JvdW5kOiB1cmwoJ2RhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LCA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDIgMlwiPjxwYXRoIGZpbGw9XCJ3aGl0ZVwiIGQ9XCJNMSwwSDJWMUgxVjBaTTAsMUgxVjJIMFYxWlwiLz48cGF0aCBmaWxsPVwiZ3JheVwiIGQ9XCJNMCwwSDFWMUgwVjBaTTEsMUgyVjJIMVYxWlwiLz48L3N2Zz4nKTtiYWNrZ3JvdW5kLXNpemU6IDZweDtjb250ZW50OiAnJ30gIC5wY3ItYXBwIC5wY3Itc3dhdGNoZXMgPiBidXR0b246OmFmdGVyIHtwb3NpdGlvbjogYWJzb2x1dGU7dG9wOiAwO2xlZnQ6IDA7d2lkdGg6IDEwMCU7aGVpZ2h0OiAxMDAlO2JveC1zaXppbmc6IGJvcmRlci1ib3g7Ym9yZGVyOiAxcHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjA1KTtib3JkZXItcmFkaXVzOiAwLjE1ZW07YmFja2dyb3VuZDogdmFyKC0tcGNyLWNvbG9yKTtjb250ZW50OiAnJ30gIC5wY3ItYXBwIC5wY3Itc3dhdGNoZXMgPiBidXR0b246aG92ZXIge2ZpbHRlcjogYnJpZ2h0bmVzcygxLjA1KX0gIC5wY3ItYXBwIC5wY3Itc3dhdGNoZXMgPiBidXR0b246bm90KC5wY3ItYWN0aXZlKSB7Ym94LXNoYWRvdzogbm9uZX0gIC5wY3ItYXBwIC5wY3ItaW50ZXJhY3Rpb24ge2Rpc3BsYXk6IGZsZXg7ZmxleC13cmFwOiB3cmFwO2FsaWduLWl0ZW1zOiBjZW50ZXI7bWFyZ2luOiAwIC0wLjJlbSAwIC0wLjJlbX0gIC5wY3ItYXBwIC5wY3ItaW50ZXJhY3Rpb24gPiAqIHttYXJnaW46IDAgMC4yZW19ICAucGNyLWFwcCAucGNyLWludGVyYWN0aW9uIGlucHV0IHtwYWRkaW5nOiAwLjQ1ZW0gMC41ZW07Ym9yZGVyLXJhZGl1czogLjE1ZW07bWFyZ2luLXRvcDogMC43NWVtO2JhY2tncm91bmQ6ICNmMWYzZjQ7Y29sb3I6ICM3NTc5N2U7Y3Vyc29yOiBwb2ludGVyO2ZvbnQtc2l6ZTogMC43NWVtO2xldHRlci1zcGFjaW5nOiAwLjA3ZW07dGV4dC1hbGlnbjogY2VudGVyO3RyYW5zaXRpb246IGFsbCAwLjE1c30gIC5wY3ItYXBwIC5wY3ItaW50ZXJhY3Rpb24gaW5wdXQ6aG92ZXIge2ZpbHRlcjogYnJpZ2h0bmVzcygwLjk3NSl9ICAucGNyLWFwcCAucGNyLWludGVyYWN0aW9uIGlucHV0OmZvY3VzIHtib3gtc2hhZG93OiAwIDAgMCAxcHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjg1KSwgMCAwIDAgM3B4IHJnYmEoNjYsIDEzMywgMjQ0LCAwLjc1KX0gIC5wY3ItYXBwIC5wY3ItaW50ZXJhY3Rpb24gLnBjci1yZXN1bHQge21pbi13aWR0aDogOGVtO2ZsZXg6IDEgMSA4ZW07Ym9yZGVyLXJhZGl1czogLjE1ZW07YmFja2dyb3VuZDogI2YxZjNmNDtjb2xvcjogIzc1Nzk3ZTtjdXJzb3I6IHRleHQ7dGV4dC1hbGlnbjogbGVmdDt0cmFuc2l0aW9uOiBhbGwgMC4yc30gIC5wY3ItYXBwIC5wY3ItaW50ZXJhY3Rpb24gLnBjci1yZXN1bHQ6Oi1tb3otc2VsZWN0aW9uIHtiYWNrZ3JvdW5kOiAjNDI4NWY0O2NvbG9yOiAjZmZmfSAgLnBjci1hcHAgLnBjci1pbnRlcmFjdGlvbiAucGNyLXJlc3VsdDo6c2VsZWN0aW9uIHtiYWNrZ3JvdW5kOiAjNDI4NWY0O2NvbG9yOiAjZmZmfSAgLnBjci1hcHAgLnBjci1pbnRlcmFjdGlvbiAucGNyLXR5cGUuYWN0aXZlIHtiYWNrZ3JvdW5kOiAjNDI4NWY0O2NvbG9yOiAjZmZmfSAgLnBjci1hcHAgLnBjci1pbnRlcmFjdGlvbiAucGNyLXNhdmUsIC5wY3ItYXBwIC5wY3ItaW50ZXJhY3Rpb24gLnBjci1jYW5jZWwsIC5wY3ItYXBwIC5wY3ItaW50ZXJhY3Rpb24gLnBjci1jbGVhciB7d2lkdGg6IGF1dG87Y29sb3I6ICNmZmZ9ICAucGNyLWFwcCAucGNyLWludGVyYWN0aW9uIC5wY3Itc2F2ZSwgLnBjci1hcHAgLnBjci1pbnRlcmFjdGlvbiAucGNyLWNhbmNlbCwgLnBjci1hcHAgLnBjci1pbnRlcmFjdGlvbiAucGNyLWNsZWFyIHtjb2xvcjogI2ZmZn0gIC5wY3ItYXBwIC5wY3ItaW50ZXJhY3Rpb24gLnBjci1zYXZlOmhvdmVyLCAucGNyLWFwcCAucGNyLWludGVyYWN0aW9uIC5wY3ItY2FuY2VsOmhvdmVyLCAucGNyLWFwcCAucGNyLWludGVyYWN0aW9uIC5wY3ItY2xlYXI6aG92ZXIge2ZpbHRlcjogYnJpZ2h0bmVzcygwLjkyNSl9ICAucGNyLWFwcCAucGNyLWludGVyYWN0aW9uIC5wY3Itc2F2ZSB7YmFja2dyb3VuZDogIzQyODVmNH0gIC5wY3ItYXBwIC5wY3ItaW50ZXJhY3Rpb24gLnBjci1jbGVhciwgLnBjci1hcHAgLnBjci1pbnRlcmFjdGlvbiAucGNyLWNhbmNlbCB7YmFja2dyb3VuZDogI2Y0NDI1MH0gIC5wY3ItYXBwIC5wY3ItaW50ZXJhY3Rpb24gLnBjci1jbGVhcjpmb2N1cywgLnBjci1hcHAgLnBjci1pbnRlcmFjdGlvbiAucGNyLWNhbmNlbDpmb2N1cyB7Ym94LXNoYWRvdzogMCAwIDAgMXB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44NSksIDAgMCAwIDNweCByZ2JhKDI0NCwgNjYsIDgwLCAwLjc1KX0gIC5wY3ItYXBwIC5wY3Itc2VsZWN0aW9uIC5wY3ItcGlja2VyIHtwb3NpdGlvbjogYWJzb2x1dGU7d2lkdGg6IDE4cHg7aGVpZ2h0OiAxOHB4O2JvcmRlcjogMnB4IHNvbGlkICNmZmY7Ym9yZGVyLXJhZGl1czogMTAwJTstd2Via2l0LXVzZXItc2VsZWN0OiBub25lOy1tb3otdXNlci1zZWxlY3Q6IG5vbmU7LW1zLXVzZXItc2VsZWN0OiBub25lO3VzZXItc2VsZWN0OiBub25lfSAgLnBjci1hcHAgLnBjci1zZWxlY3Rpb24gLnBjci1jb2xvci1wYWxldHRlLCAucGNyLWFwcCAucGNyLXNlbGVjdGlvbiAucGNyLWNvbG9yLWNob29zZXIsIC5wY3ItYXBwIC5wY3Itc2VsZWN0aW9uIC5wY3ItY29sb3Itb3BhY2l0eSB7cG9zaXRpb246IHJlbGF0aXZlO2Rpc3BsYXk6IGZsZXg7ZmxleC1kaXJlY3Rpb246IGNvbHVtbjtjdXJzb3I6IGdyYWI7Y3Vyc29yOiAtd2Via2l0LWdyYWI7LXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTstbW96LXVzZXItc2VsZWN0OiBub25lOy1tcy11c2VyLXNlbGVjdDogbm9uZTt1c2VyLXNlbGVjdDogbm9uZX0gIC5wY3ItYXBwIC5wY3Itc2VsZWN0aW9uIC5wY3ItY29sb3ItcGFsZXR0ZTphY3RpdmUsIC5wY3ItYXBwIC5wY3Itc2VsZWN0aW9uIC5wY3ItY29sb3ItY2hvb3NlcjphY3RpdmUsIC5wY3ItYXBwIC5wY3Itc2VsZWN0aW9uIC5wY3ItY29sb3Itb3BhY2l0eTphY3RpdmUge2N1cnNvcjogZ3JhYmJpbmc7Y3Vyc29yOiAtd2Via2l0LWdyYWJiaW5nfSAgLnBjci1hcHBbZGF0YS10aGVtZT0nbmFubyddIHt3aWR0aDogMTQuMjVlbTttYXgtd2lkdGg6IDk1dnd9ICAucGNyLWFwcFtkYXRhLXRoZW1lPSduYW5vJ10gLnBjci1zd2F0Y2hlcyB7cGFkZGluZzogMCAuNmVtO21hcmdpbi10b3A6IC42ZW19ICAucGNyLWFwcFtkYXRhLXRoZW1lPSduYW5vJ10gLnBjci1pbnRlcmFjdGlvbiB7cGFkZGluZzogMCAuNmVtIC42ZW0gLjZlbX0gIC5wY3ItYXBwW2RhdGEtdGhlbWU9J25hbm8nXSAucGNyLXNlbGVjdGlvbiB7ZGlzcGxheTogZ3JpZDt3aWR0aDogMTAwJTtoZWlnaHQ6IDEwLjVlbTthbGlnbi1pdGVtczogY2VudGVyO2FsaWduLXNlbGY6IGZsZXgtc3RhcnQ7Z3JpZC1nYXA6IC42ZW07Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgNGZyO2dyaWQtdGVtcGxhdGUtcm93czogNWZyIGF1dG8gYXV0b30gIC5wY3ItYXBwW2RhdGEtdGhlbWU9J25hbm8nXSAucGNyLXNlbGVjdGlvbiAucGNyLWNvbG9yLXByZXZpZXcge2Rpc3BsYXk6IGZsZXg7d2lkdGg6IDEwMCU7aGVpZ2h0OiAxMDAlO2ZsZXgtZGlyZWN0aW9uOiByb3c7anVzdGlmeS1jb250ZW50OiBjZW50ZXI7bWFyZ2luLWxlZnQ6IC42ZW07Z3JpZC1hcmVhOiAyIC8gMSAvIDQgLyAxfSAgLnBjci1hcHBbZGF0YS10aGVtZT0nbmFubyddIC5wY3Itc2VsZWN0aW9uIC5wY3ItY29sb3ItcHJldmlldyAucGNyLWxhc3QtY29sb3Ige2Rpc3BsYXk6IG5vbmV9ICAucGNyLWFwcFtkYXRhLXRoZW1lPSduYW5vJ10gLnBjci1zZWxlY3Rpb24gLnBjci1jb2xvci1wcmV2aWV3IC5wY3ItY3VycmVudC1jb2xvciB7cG9zaXRpb246IHJlbGF0aXZlO292ZXJmbG93OiBoaWRkZW47d2lkdGg6IDJlbTtoZWlnaHQ6IDJlbTtib3JkZXItcmFkaXVzOiA1MGVtO2JhY2tncm91bmQ6IHZhcigtLXBjci1jb2xvcil9ICAucGNyLWFwcFtkYXRhLXRoZW1lPSduYW5vJ10gLnBjci1zZWxlY3Rpb24gLnBjci1jb2xvci1wcmV2aWV3IC5wY3ItY3VycmVudC1jb2xvcjo6YmVmb3JlIHtwb3NpdGlvbjogYWJzb2x1dGU7ei1pbmRleDogLTE7dG9wOiAwO2xlZnQ6IDA7d2lkdGg6IDEwMCU7aGVpZ2h0OiAxMDAlO2JvcmRlci1yYWRpdXM6IC4xNWVtO2JhY2tncm91bmQ6IHVybCgnZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMiAyXCI+PHBhdGggZmlsbD1cIndoaXRlXCIgZD1cIk0xLDBIMlYxSDFWMFpNMCwxSDFWMkgwVjFaXCIvPjxwYXRoIGZpbGw9XCJncmF5XCIgZD1cIk0wLDBIMVYxSDBWMFpNMSwxSDJWMkgxVjFaXCIvPjwvc3ZnPicpO2JhY2tncm91bmQtc2l6ZTogLjVlbTtjb250ZW50OiAnJ30gIC5wY3ItYXBwW2RhdGEtdGhlbWU9J25hbm8nXSAucGNyLXNlbGVjdGlvbiAucGNyLWNvbG9yLXBhbGV0dGUge3otaW5kZXg6IDE7d2lkdGg6IDEwMCU7aGVpZ2h0OiAxMDAlO2dyaWQtYXJlYTogMSAvIDEgLyAyIC8gM30gIC5wY3ItYXBwW2RhdGEtdGhlbWU9J25hbm8nXSAucGNyLXNlbGVjdGlvbiAucGNyLWNvbG9yLXBhbGV0dGUgLnBjci1wYWxldHRlIHt3aWR0aDogMTAwJTtoZWlnaHQ6IDEwMCU7Ym9yZGVyLXJhZGl1czogLjE1ZW19ICAucGNyLWFwcFtkYXRhLXRoZW1lPSduYW5vJ10gLnBjci1zZWxlY3Rpb24gLnBjci1jb2xvci1wYWxldHRlIC5wY3ItcGFsZXR0ZTo6YmVmb3JlIHtwb3NpdGlvbjogYWJzb2x1dGU7ei1pbmRleDogLTE7dG9wOiAwO2xlZnQ6IDA7d2lkdGg6IDEwMCU7aGVpZ2h0OiAxMDAlO2JvcmRlci1yYWRpdXM6IC4xNWVtO2JhY2tncm91bmQ6IHVybCgnZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMiAyXCI+PHBhdGggZmlsbD1cIndoaXRlXCIgZD1cIk0xLDBIMlYxSDFWMFpNMCwxSDFWMkgwVjFaXCIvPjxwYXRoIGZpbGw9XCJncmF5XCIgZD1cIk0wLDBIMVYxSDBWMFpNMSwxSDJWMkgxVjFaXCIvPjwvc3ZnPicpO2JhY2tncm91bmQtc2l6ZTogLjVlbTtjb250ZW50OiAnJ30gIC5wY3ItYXBwW2RhdGEtdGhlbWU9J25hbm8nXSAucGNyLXNlbGVjdGlvbiAucGNyLWNvbG9yLWNob29zZXIge2dyaWQtYXJlYTogMiAvIDIgLyAyIC8gMn0gIC5wY3ItYXBwW2RhdGEtdGhlbWU9J25hbm8nXSAucGNyLXNlbGVjdGlvbiAucGNyLWNvbG9yLW9wYWNpdHkge2dyaWQtYXJlYTogMyAvIDIgLyAzIC8gMn0gIC5wY3ItYXBwW2RhdGEtdGhlbWU9J25hbm8nXSAucGNyLXNlbGVjdGlvbiAucGNyLWNvbG9yLWNob29zZXIsIC5wY3ItYXBwW2RhdGEtdGhlbWU9J25hbm8nXSAucGNyLXNlbGVjdGlvbiAucGNyLWNvbG9yLW9wYWNpdHkge2hlaWdodDogMC41ZW07bWFyZ2luOiAwIC42ZW19ICAucGNyLWFwcFtkYXRhLXRoZW1lPSduYW5vJ10gLnBjci1zZWxlY3Rpb24gLnBjci1jb2xvci1jaG9vc2VyIC5wY3ItcGlja2VyLCAucGNyLWFwcFtkYXRhLXRoZW1lPSduYW5vJ10gLnBjci1zZWxlY3Rpb24gLnBjci1jb2xvci1vcGFjaXR5IC5wY3ItcGlja2VyIHt0b3A6IDUwJTt0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSl9ICAucGNyLWFwcFtkYXRhLXRoZW1lPSduYW5vJ10gLnBjci1zZWxlY3Rpb24gLnBjci1jb2xvci1jaG9vc2VyIC5wY3Itc2xpZGVyLCAucGNyLWFwcFtkYXRhLXRoZW1lPSduYW5vJ10gLnBjci1zZWxlY3Rpb24gLnBjci1jb2xvci1vcGFjaXR5IC5wY3Itc2xpZGVyIHtmbGV4LWdyb3c6IDE7Ym9yZGVyLXJhZGl1czogNTBlbX0gIC5wY3ItYXBwW2RhdGEtdGhlbWU9J25hbm8nXSAucGNyLXNlbGVjdGlvbiAucGNyLWNvbG9yLWNob29zZXIgLnBjci1zbGlkZXIge2JhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgcmVkLCAjZmYwLCBsaW1lLCBjeWFuLCBibHVlLCAjZjBmLCByZWQpfSAgLnBjci1hcHBbZGF0YS10aGVtZT0nbmFubyddIC5wY3Itc2VsZWN0aW9uIC5wY3ItY29sb3Itb3BhY2l0eSAucGNyLXNsaWRlciB7YmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCB0cmFuc3BhcmVudCwgYmxhY2spLCB1cmwoJ2RhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LCA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDIgMlwiPjxwYXRoIGZpbGw9XCJ3aGl0ZVwiIGQ9XCJNMSwwSDJWMUgxVjBaTTAsMUgxVjJIMFYxWlwiLz48cGF0aCBmaWxsPVwiZ3JheVwiIGQ9XCJNMCwwSDFWMUgwVjBaTTEsMUgyVjJIMVYxWlwiLz48L3N2Zz4nKTtiYWNrZ3JvdW5kLXNpemU6IDEwMCUsIDAuMjVlbX1cbi5wY3ItYXBwIC5wY3Itc3dhdGNoZXMgPiBidXR0b24ge1xuXHRwYWRkaW5nOiAwO1xufVxuIiwgIi8qKiBFeGVjdXRlIENvZGUgUGx1Z2luICovXG5wcmUuY29kZS1zdHlsZXItcHJlIGNvZGUgfiBjb2RlLmxhbmd1YWdlLW91dHB1dCB7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHRwYWRkaW5nLWJvdHRvbTogY2FsYygyLjUgKiB2YXIoLS1jb2RlLXBhZGRpbmcpKSAhaW1wb3J0YW50O1xuXHRwYWRkaW5nLWxlZnQ6IGNhbGModmFyKC0tbGluZS1udW1iZXItZ3V0dGVyLXBhZGRpbmcpKSAhaW1wb3J0YW50O1xuXHRib3JkZXItdG9wOiB2YXIoLS1oZWFkZXItc2VwYXJhdG9yLXdpZHRoKSBzb2xpZCB2YXIoLS1jb2RlLXN0eWxlci1oZWFkZXItc2VwYXJhdG9yLWNvbG91cik7XG5cdG1hcmdpbi1ib3R0b206IDA7XG59XG5wcmUuY29kZS1zdHlsZXItcHJlLmNvZGUtc3R5bGVyLWZvbGRlZCBjb2RlIH4gY29kZS5sYW5ndWFnZS1vdXRwdXQge1xuXHRib3JkZXItdG9wLXdpZHRoOiAwO1xuXHRib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbnByZS5jb2RlLXN0eWxlci1wcmU6aG92ZXIgY29kZSB+IGNvZGUubGFuZ3VhZ2Utb3V0cHV0IHtcblx0bWFyZ2luLWJvdHRvbTogMDtcbn1cbnByZS5jb2RlLXN0eWxlci1wcmUgY29kZSB+IGNvZGUubGFuZ3VhZ2Utb3V0cHV0IGlucHV0LmludGVyYWN0aXZlLXN0ZGluIHtcbiAgICBwYWRkaW5nOiAycHggOHB4O1xuXHRib3JkZXItd2lkdGg6IDFweDtcblx0Ym9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLWNvZGUtY29tbWVudCk7XG5cdGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2RlLXN0eWxlci1jb2RlYmxvY2stYmFja2dyb3VuZC1jb2xvdXIpO1xuICAgIGNvbG9yOiB2YXIoLS10ZXh0LW5vcm1hbCk7XG59XG5wcmUuY29kZS1zdHlsZXItcHJlIGNvZGUgfiBjb2RlLmxhbmd1YWdlLW91dHB1dCBociB7XG5cdGRpc3BsYXk6IG5vbmU7XG59XG5wcmUuY29kZS1zdHlsZXItcHJlIGJ1dHRvbi5ydW4tY29kZS1idXR0b24ge1xuXHQtLWNvcHktY29kZS1oZWFkZXItcmlnaHQtbWFyZ2luOiAxMnB4O1xuXHQtLWRlbnQtZGlmZmVyZW5jZTogMjRweDtcblx0aGVpZ2h0OiAxNHB4O1xuXHRtYXJnaW4tYm90dG9tOiA2cHggIWltcG9ydGFudDtcbn1cbnByZS5jb2RlLXN0eWxlci1wcmUuY29kZS1zdHlsZXItZm9sZGVkIGJ1dHRvbi5ydW4tY29kZS1idXR0b24ge1xuXHR0b3A6IDUwMHB4O1xufVxucHJlLmNvZGUtc3R5bGVyLXByZSBidXR0b24ucnVuLWNvZGUtYnV0dG9uOjpiZWZvcmUge1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdHdpZHRoOiAxNHB4O1xuXHRoZWlnaHQ6IDE0cHg7XG5cdHBhZGRpbmctcmlnaHQ6IDRweDtcblx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29kZS1zdHlsZXItYnV0dG9uLWNvbG91cik7XG5cdGNvbnRlbnQ6IFwiXFwyMDBiXCI7XG5cdC13ZWJraXQtbWFzay1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCAzMiAzMiclM0UlM0NwYXRoIGQ9J003IDI4YTEgMSAwIDAgMS0xLTFWNWExIDEgMCAwIDEgMS40ODItLjg3NmwyMCAxMWExIDEgMCAwIDEgMCAxLjc1MmwtMjAgMTFBMSAxIDAgMCAxIDcgMjhaJy8lM0UlM0NwYXRoIGZpbGw9J25vbmUnIGQ9J00wIDBoMzJ2MzJIMHonIGRhdGEtbmFtZT0nJmx0O1RyYW5zcGFyZW50IFJlY3RhbmdsZSZndDsnLyUzRSUzQy9zdmclM0VcIik7XG5cdG1hc2staW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2aWV3Qm94PScwIDAgMzIgMzInJTNFJTNDcGF0aCBkPSdNNyAyOGExIDEgMCAwIDEtMS0xVjVhMSAxIDAgMCAxIDEuNDgyLS44NzZsMjAgMTFhMSAxIDAgMCAxIDAgMS43NTJsLTIwIDExQTEgMSAwIDAgMSA3IDI4WicvJTNFJTNDcGF0aCBmaWxsPSdub25lJyBkPSdNMCAwaDMydjMySDB6JyBkYXRhLW5hbWU9JyZsdDtUcmFuc3BhcmVudCBSZWN0YW5nbGUmZ3Q7Jy8lM0UlM0Mvc3ZnJTNFXCIpO1xuXHQtd2Via2l0LW1hc2stcmVwZWF0OiBuby1yZXBlYXQ7XG5cdG1hc2stcmVwZWF0OiBuby1yZXBlYXQ7XG5cdHZlcnRpY2FsLWFsaWduOiAwcHg7XG59XG5wcmUuY29kZS1zdHlsZXItcHJlIGJ1dHRvbi5jbGVhci1idXR0b24tZGlzYWJsZWQsXG5wcmUuY29kZS1zdHlsZXItcHJlIGJ1dHRvbi5ydW4tYnV0dG9uLWRpc2FibGVkIHtcblx0ZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxucHJlLmNvZGUtc3R5bGVyLXByZSBidXR0b24uY2xlYXItYnV0dG9uIHtcblx0aGVpZ2h0OiAxNHB4O1xuXHRtYXJnaW4tYm90dG9tOiA2cHggIWltcG9ydGFudDtcblx0bWFyZ2luLWxlZnQ6IGNhbGModmFyKC0tbGFuZ3VhZ2UtYm9yZGVyLXdpZHRoKSArIDEycHgpO1xuXHRjbGlwLXBhdGg6IHZhcigtLXBvbHlnb24taW4pO1xuXHR3aWxsLWNoYW5nZTogbWFyZ2luLXJpZ2h0LCBjbGlwLXBhdGg7XG59XG5wcmUuY29kZS1zdHlsZXItcHJlIGJ1dHRvbi5jbGVhci1idXR0b246OmJlZm9yZSB7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0d2lkdGg6IDE0cHg7XG5cdGhlaWdodDogMTRweDtcblx0cGFkZGluZy1yaWdodDogNHB4O1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2RlLXN0eWxlci1idXR0b24tY29sb3VyKTtcblx0Y29udGVudDogXCJcXDIwMGJcIjtcblx0LXdlYmtpdC1tYXNrLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgdmlld0JveD0nMCAwIDMyIDMyJyUzRSUzQ3BhdGggZD0nTTE2IDQgNiAxNGwxLjQxIDEuNDFMMTUgNy44M1YyOGgyVjcuODNsNy41OSA3LjU4TDI2IDE0IDE2IDR6Jy8lM0UlM0NwYXRoIGZpbGw9J25vbmUnIGQ9J00wIDBoMzJ2MzJIMHonIGRhdGEtbmFtZT0nJmx0O1RyYW5zcGFyZW50IFJlY3RhbmdsZSZndDsnLyUzRSUzQy9zdmclM0VcIik7XG5cdG1hc2staW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2aWV3Qm94PScwIDAgMzIgMzInJTNFJTNDcGF0aCBkPSdNMTYgNCA2IDE0bDEuNDEgMS40MUwxNSA3LjgzVjI4aDJWNy44M2w3LjU5IDcuNThMMjYgMTQgMTYgNHonLyUzRSUzQ3BhdGggZmlsbD0nbm9uZScgZD0nTTAgMGgzMnYzMkgweicgZGF0YS1uYW1lPScmbHQ7VHJhbnNwYXJlbnQgUmVjdGFuZ2xlJmd0OycvJTNFJTNDL3N2ZyUzRVwiKTtcblx0LXdlYmtpdC1tYXNrLXJlcGVhdDogbm8tcmVwZWF0O1xuXHRtYXNrLXJlcGVhdDogbm8tcmVwZWF0O1xuXHR2ZXJ0aWNhbC1hbGlnbjogMHB4O1xufVxucHJlLmNvZGUtc3R5bGVyLXByZSBidXR0b24uY2xlYXItYnV0dG9uOm5vdCg6YWN0aXZlKSB7XG5cdGFuaW1hdGlvbjogcmV2ZXJzZS1pbmRlbnQgdmFyKC0tZHVyYXRpb24tYnV0dG9uKTtcbn1cbnByZS5jb2RlLXN0eWxlci1wcmUgYnV0dG9uLmNsZWFyLWJ1dHRvbjpob3Zlcntcblx0bWFyZ2luLXJpZ2h0OiB2YXIoLS1jb3B5LWNvZGUtaGVhZGVyLXJpZ2h0LW1hcmdpbik7XG5cdGFuaW1hdGlvbjogcmV2ZXJzZS1vdXRkZW50IHZhcigtLWR1cmF0aW9uLWJ1dHRvbik7XG5cdGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuXHRjbGlwLXBhdGg6IHZhcigtLXBvbHlnb24tb3V0KTtcbn1cbnByZS5jb2RlLXN0eWxlci1wcmUgYnV0dG9uLmNsZWFyLWJ1dHRvbjphY3RpdmUge1xuXHRzY2FsZTogMC45NTtcblx0dHJhbnNpdGlvbjogc2NhbGUgdmFyKC0tZHVyYXRpb24tYnV0dG9uKSBjdWJpYy1iZXppZXIoMC40LCAwLjE0LCAwLjMsIDEpO1xufVxuLmNvZGUtc3R5bGVyLXByZS1wYXJlbnQuaGFzLXJ1bi1jb2RlLWJ1dHRvbiAubG9hZC1zdGF0ZS1pbmRpY2F0b3Ige1xuXHR6LWluZGV4OiAxMDtcblx0YmFja2dyb3VuZDogbm9uZTtcblx0Y29sb3I6IG5vbmU7XG59XG4uY29kZS1zdHlsZXItcHJlLXBhcmVudC5oYXMtcnVuLWNvZGUtYnV0dG9uIC5sb2FkLXN0YXRlLWluZGljYXRvcjo6YmVmb3JlIHtcblx0Ym94LXNoYWRvdzogbm9uZTtcbn1cbi5jb2RlLXN0eWxlci1wcmUtcGFyZW50Lmhhcy1ydW4tY29kZS1idXR0b24gLmxvYWQtc3RhdGUtaW5kaWNhdG9yIHN2ZyB7XG5cdGNvbG9yOiB2YXIoLS1jb2RlLXN0eWxlci1idXR0b24tY29sb3VyKTtcbn1cbi5jb2RlLXN0eWxlci1wcmUtcGFyZW50Lmhhcy1ydW4tY29kZS1idXR0b24gLmxvYWQtc3RhdGUtaW5kaWNhdG9yIHN2Zzpob3ZlciB7XG5cdGNvbG9yOiB2YXIoLS1jb2RlLXN0eWxlci1idXR0b24tYWN0aXZlLWNvbG91cik7XG59XG4uY29kZS1zdHlsZXItcHJlLXBhcmVudC5oYXMtcnVuLWNvZGUtYnV0dG9uIC5sb2FkLXN0YXRlLWluZGljYXRvci52aXNpYmxlIHtcblx0dHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xufVxuXG4vKiogRW1iZWQgQ29kZSBQbHVnaW4gKi9cbi5ibG9jay1sYW5ndWFnZS1wcmV2aWV3IHByZS5jb2RlLXN0eWxlci1wcmUgY29kZSB7XG5cdHdoaXRlLXNwYWNlOiB1bnNldDtcbn1cbnByZS5jb2RlLXN0eWxlci1wcmUgc3Bhbi5jb2RlLWJsb2NrLWxpbmVfbnVtLXdyYXAsXG5wcmUuY29kZS1zdHlsZXItcHJlIGRpdi5jb2RlLWJsb2NrLWhpZ2hsaWdodC13cmFwIHtcblx0ZGlzcGxheTogbm9uZTtcbn1cbi5tYXJrZG93bi1zb3VyY2Utdmlldy5tb2QtY202IC5jbS1lbWJlZC1ibG9jayAuY29kZS1zdHlsZXItcHJlLXBhcmVudCArIC5lZGl0LWJsb2NrLWJ1dHRvbjo6YWZ0ZXIge1xuXHRwYWRkaW5nLWxlZnQ6IDRweDtcblx0Y29udGVudDogJ0VkaXQgQmxvY2snO1xuXHRmb250LXNpemU6IHZhcigtLWZvbnQtdWktc21hbGxlcik7XG59XG4ubWFya2Rvd24tc291cmNlLXZpZXcubW9kLWNtNiAuY20tZW1iZWQtYmxvY2s6bm90KDpob3ZlcikgLmNvZGUtc3R5bGVyLXByZS1wYXJlbnQgKyAuZWRpdC1ibG9jay1idXR0b24ge1xuXHRvcGFjaXR5OiAwO1xuXHR2aXNpYmlsaXR5OiBoaWRkZW5cbn1cbi5tYXJrZG93bi1zb3VyY2Utdmlldy5tb2QtY202IC5jbS1lbWJlZC1ibG9jayAuY29kZS1zdHlsZXItcHJlLXBhcmVudCArIC5lZGl0LWJsb2NrLWJ1dHRvbiB7XG5cdC0tY29weS1jb2RlLWhlYWRlci1yaWdodC1tYXJnaW46IGNhbGMoMi4yICogdmFyKC0taGVhZGVyLWJ1dHRvbi1zcGFjaW5nKSk7XG5cdC0tZGVudC1kaWZmZXJlbmNlOiAwcHg7XG5cdC0tcG9seWdvbi1pbjogcG9seWdvbigwIDAsIDE4cHggMCwgMThweCAzNnB4LCAwIDM2cHgpO1xuXHR6LWluZGV4OiAxMDtcblx0dG9wOiBtYXgoY2FsYygwLjUgKiB2YXIoLS1jb250YWluZXItaGVpZ2h0KSAqIDEpLGNhbGMoMC41ICogdmFyKC0tY29udGFpbmVyLW1pbi1oZWlnaHQpICogMSkpO1xuXHRwYWRkaW5nOiAwO1xuXHRtYXJnaW46IDA7XG5cdG1hcmdpbi1yaWdodDogY2FsYyh2YXIoLS1jb3B5LWNvZGUtaGVhZGVyLXJpZ2h0LW1hcmdpbikgLSB2YXIoLS1kZW50LWRpZmZlcmVuY2UpKTtcblx0Y2xpcC1wYXRoOiB2YXIoLS1wb2x5Z29uLWluKTtcblx0b3BhY2l0eTogMTtcblx0dHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgIHRyYW5zaXRpb246IHZpc2liaWxpdHkgdmFyKC0tZHVyYXRpb24tYnV0dG9uKSwgb3BhY2l0eSB2YXIoLS1kdXJhdGlvbi1idXR0b24pO1xuXHR2aXNpYmlsaXR5OiB2aXNpYmxlO1xuXHR3aWxsLWNoYW5nZTogbWFyZ2luLXJpZ2h0LCBjbGlwLXBhdGg7XG59XG5ib2R5IC5jbS1lbWJlZC1ibG9jayAuY29kZS1zdHlsZXItcHJlLXBhcmVudDpoYXMoIHByZS5jb2RlLXN0eWxlci1wcmUgLmNvZGUtc3R5bGVyLWhlYWRlci1jb250YWluZXItaGlkZGVuKSArIC5lZGl0LWJsb2NrLWJ1dHRvbiB7XG5cdC0tY29weS1jb2RlLWhlYWRlci1yaWdodC1tYXJnaW46IDRweDtcblx0dG9wOiBjYWxjKDAuNSAqIHZhcigtLWZvbnQtdGV4dC1zaXplKSAqIDAuODc1ICogdmFyKC0tbGluZS1oZWlnaHQtbm9ybWFsKSk7XG59XG4ubWFya2Rvd24tc291cmNlLXZpZXcubW9kLWNtNiAuY20tZW1iZWQtYmxvY2s6aG92ZXIgLmNvZGUtc3R5bGVyLXByZS1wYXJlbnQgKyAuZWRpdC1ibG9jay1idXR0b246aG92ZXIge1xuXHRtYXJnaW4tcmlnaHQ6IHZhcigtLWNvcHktY29kZS1oZWFkZXItcmlnaHQtbWFyZ2luKTtcblx0YW5pbWF0aW9uOiByZXZlcnNlLW91dGRlbnQgdmFyKC0tZHVyYXRpb24tYnV0dG9uKTtcblx0YmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG5cdGNsaXAtcGF0aDogdmFyKC0tcG9seWdvbi1vdXQpO1xufVxuLm1hcmtkb3duLXNvdXJjZS12aWV3Lm1vZC1jbTYgLmNtLWVtYmVkLWJsb2NrOmhvdmVyIC5jb2RlLXN0eWxlci1wcmUtcGFyZW50ICsgLmVkaXQtYmxvY2stYnV0dG9uOmFjdGl2ZSB7XG5cdHNjYWxlOiAwLjk1O1xuXHR0cmFuc2l0aW9uOiBzY2FsZSB2YXIoLS1kdXJhdGlvbi1idXR0b24pIGN1YmljLWJlemllcigwLjQsIDAuMTQsIDAuMywgMSk7XG59XG5cbi8qKiBGaWxlIEluY2x1ZGUgUGx1Z2luICovXG5kaXYuYmxvY2stbGFuZ3VhZ2UtaW5jbHVkZSBwcmUuY29kZS1zdHlsZXItcHJlIGJ1dHRvbi5jb3B5LWNvZGUtYnV0dG9uIHtcblx0bWFyZ2luOiAwO1xuXHRtYXJnaW4tcmlnaHQ6IGNhbGModmFyKC0tY29weS1jb2RlLWhlYWRlci1yaWdodC1tYXJnaW4pIC0gdmFyKC0tZGVudC1kaWZmZXJlbmNlKSk7XG59XG5kaXYuYmxvY2stbGFuZ3VhZ2UtaW5jbHVkZSBwcmUuY29kZS1zdHlsZXItcHJlIGJ1dHRvbi5jb3B5LWNvZGUtYnV0dG9uOmhvdmVyIHtcblx0bWFyZ2luLXJpZ2h0OiB2YXIoLS1jb3B5LWNvZGUtaGVhZGVyLXJpZ2h0LW1hcmdpbik7XG59XG4iXSwKICAibWFwcGluZ3MiOiAiO0FBQ0E7QUFFQyxtQkFBaUI7QUFDakIsZ0NBQThCO0FBQzlCLGtCQUFnQjtBQUNoQixzQkFBb0IsS0FBSyxJQUFJLHNCQUFzQixFQUFFLEVBQUUsRUFBRSxJQUFJLGlDQUFpQyxFQUFFLElBQUk7QUFDcEcsMEJBQXdCLEtBQUssQ0FBQyxJQUFJLG9CQUFvQixFQUFFLEVBQUUsRUFBRSxJQUFJLGlDQUFpQyxFQUFFLElBQUkscUJBQXFCLEVBQUUsSUFBSTtBQUNsSSw0QkFBMEIsSUFBSTtBQUM5QiwyQkFBeUI7QUFHekIsc0JBQW9CLElBQUk7QUFDeEIsb0JBQWtCO0FBQ2xCLG1DQUFpQztBQUNqQyxvQkFBa0I7QUFDbEIsMkJBQXlCO0FBQ3pCLDRCQUEwQjtBQUMxQixvQ0FBa0MsSUFBSTtBQUN0QywrQkFBNkI7QUFDN0IsMEJBQXdCLEVBQUUsTUFBTTtBQUNoQyx3QkFBc0I7QUFDdEIsMEJBQXdCO0FBR3hCLHFDQUFtQztBQUduQyxtQ0FBaUM7QUFDakMsZ0NBQThCO0FBQzlCLGtDQUFnQztBQUdoQyxtQkFBaUI7QUFDakIsMEJBQXdCLElBQUk7QUFHNUIsK0JBQTZCLElBQUk7QUFDakMsc0NBQW9DO0FBQ3BDLHFCQUFtQjtBQUNuQixxQkFBbUI7QUFDbkIsZ0JBQWMsUUFBUSxFQUFFLENBQUMsRUFBRSxLQUFLLENBQUMsRUFBRSxLQUFLLElBQUksRUFBRSxFQUFFO0FBQ2hELGlCQUFlLFFBQVEsRUFBRSxDQUFDLEVBQUUsS0FBSyxDQUFDLEVBQUUsS0FBSyxJQUFJLEVBQUUsRUFBRTtBQUNqRCxtQ0FBaUMsS0FBSyxFQUFFLEVBQUUsSUFBSTtBQUMvQztBQUdBLENBQUM7QUFDQSxpQkFBZTtBQUNoQjtBQUNBLENBQUMsWUFBWSxHQUFHLENBQUM7QUFDaEIsWUFBVTtBQUNWLGNBQVk7QUFDWixXQUFTO0FBQ1QsaUJBQWUsSUFBSTtBQUNuQixjQUFZLElBQUk7QUFDakI7QUFDQSxDQVBDLFlBT1ksR0FBRyxDQVBDLGVBT2UsQ0FBQztBQUNoQyxnQkFBYyxJQUFJO0FBQ2xCLGNBQVksZ0JBQWdCLEtBQUssRUFBRSxJQUFJLHlCQUF5QixFQUFFLElBQUksMEJBQTBCLElBQUksd0JBQXdCLEVBQUUsSUFBSSwyQ0FBMkMsSUFBSSx3QkFBd0IsRUFBRSxJQUFJLDJDQUEyQyxLQUFLLEVBQUUsSUFBSTtBQUN0UTtBQUNBLENBWEMsWUFXWSxJQUFJLEVBQUU7QUFDbEIsZUFBYSxJQUFJO0FBQ2pCLGtCQUFnQixJQUFJO0FBQ3JCO0FBQ0EsQ0FmQyxZQWVZLEdBQUcsQ0FmQyxnQkFlZ0IsRUFBRTtBQUNsQyxXQUFTO0FBQ1QsY0FBWTtBQUNaLGVBQWEsSUFBSTtBQUNqQixpQkFBZTtBQUNmLGtCQUFnQixJQUFJO0FBQ3BCLGdCQUFjO0FBQ2QsaUJBQWU7QUFDZixjQUFZO0FBQ1oseUJBQXVCLFlBQVk7QUFDbkMsc0JBQW9CO0FBQ3BCLGNBQVk7QUFDWix1QkFBcUIsSUFBSTtBQUN6QjtBQUFBLElBQXFCLFVBQVU7QUFBQSxJQUFFLE9BQU87QUFBQSxJQUFFO0FBQzFDLDhCQUE0QjtBQUM1QixlQUFhLElBQUk7QUFDbEI7QUFDQSxDQWhDQyxZQWdDWSxHQUFHLENBaENDLGVBZ0NlLENBQUMsUUFBUSxFQUFFO0FBQzFDLG1CQUFpQjtBQUNsQjtBQUNBLENBbkNDLFlBbUNZLEdBQUcsQ0FuQ0MsZUFtQ2UsQ0FBQyxVQUFVLEVBQUU7QUFDNUMsbUJBQWlCO0FBQ2pCLDBCQUF3QjtBQUN6QjtBQUNBLENBdkNDLFlBdUNZLEdBQUcsQ0F2Q0MsZUF1Q2UsQ0FBQyxtQkFBbUIsRUFBRTtBQUNyRCxtQkFBaUI7QUFDakIsMEJBQXdCO0FBQ3pCO0FBQ0EsQ0EzQ0MsWUEyQ1ksR0FBRyxDQTNDQyxnQkEyQ2dCLElBQUksS0FBSyxLQUFNLEVBQUUsS0FBSyxDQUFDLDRCQUE0QjtBQUNuRixtQkFBaUIsSUFBSTtBQUN0QjtBQUNBLENBOUNDLFlBOENZLEdBQUcsQ0E5Q0MsZUE4Q2UsQ0FBQyxtQkFBbUIsRUFBRTtBQUNyRCxjQUFZO0FBQ1osZUFBYTtBQUNiLGtCQUFnQjtBQUNqQjtBQUNBLENBbkRDLFlBbURZLEdBQUcsQ0FuREMsZUFtRGU7QUFDaEMsQ0FwREMsWUFvRFksR0FBRyxDQXBEQyxlQW9EZTtBQUMvQixXQUFTO0FBQ1Y7QUFDQSxDQUFDLG9CQUFvQixDQUFDLFFBQVEsQ0FBQyxlQUFlLEdBQUcsQ0F2RGhDO0FBd0RoQixVQUFRLElBQUk7QUFDYjtBQUdBLENBNURDLFlBNERZLENBTFoscUJBS2tDLENBQUMsd0JBQTBCLENBQUM7QUFDOUQsY0FBWTtBQUNaLDBCQUF3QjtBQUN4QiwyQkFBeUI7QUFDMUI7QUFDQSxDQWpFQyxZQWlFWSxDQVZaLHFCQVVrQyxDQUFDLHdCQUEwQixDQUFDO0FBQzlELDZCQUEyQixJQUFJO0FBQy9CLDhCQUE0QixJQUFJO0FBQ2pDO0FBRUEsSUFBSSxLQUFLLENBQUMsa0NBQWtDLEtBQUssQ0FBQyxtQ0FBbUMsQ0FmcEYscUJBZTBHLEtBQUssR0FBRyxDQXRFbEcsaUJBc0VvSCxFQUFFLENBQUMsNkJBQTZCLEVBQUUsQ0FWeEc7QUFXL0QsSUFBSSxLQUFLLENBRHlDLG1DQUNMLENBaEI1QyxxQkFnQmtFLEtBQUssR0FBRyxDQXZFMUQsaUJBdUU0RSxFQUFFLENBRHlDLDRCQUNaLEtBQUssS0FBTSxHQUFHLENBQUMsbUJBQW1CLEVBQUUsQ0FYakc7QUFZL0QsS0FBSyxDQWpCSixxQkFpQjBCLEtBQUssR0FBRyxDQXhFbEIsaUJBd0VvQyxFQUFFLENBRmlGLDRCQUVwRCxLQUFLLEtBQUssQ0FBQywyQ0FBNkMsRUFBRSxDQVovRTtBQWEvRCxLQUFLLENBbEJKLHFCQWtCMEIsS0FBSyxDQUFDLHNDQUF3QyxFQUFFLENBQUMsd0JBQTBCLENBYnZDO0FBYy9ELEtBQUssQ0FuQkoscUJBbUIwQixDQUFDLHdCQUEwQixDQWRTLHVCQWNlO0FBQzdFLDBCQUF3QixJQUFJO0FBQzVCLDJCQUF5QixJQUFJO0FBQzlCO0FBQ0EsQ0E5RUMsWUE4RVksQ0F2QloscUJBdUJrQyxDQUFDLGlCQUFpQixDQUFDO0FBQ3JELFlBQVU7QUFDVixXQUFTO0FBQ1QsZ0JBQWMsSUFBSTtBQUNsQixjQUFZLGdCQUFnQixLQUFLLEVBQUUsSUFBSSw4QkFBOEIsSUFBSSxrQ0FBa0MsRUFBRSxZQUFZLEtBQUssRUFBRSxJQUFJO0FBQ3JJO0FBQ0EsQ0FwRkMsWUFvRlksQ0E3QloscUJBNkJrQyxDQU5DLGlCQU1pQixDQUFDLHdCQUEwQixDQUFDO0FBQ2hGLGNBQVksZ0JBQWdCLEtBQUssRUFBRSxJQUFJLHlCQUF5QixFQUFFLElBQUksMEJBQTBCLElBQUksd0JBQXdCLEVBQUUsSUFBSSw4QkFBOEIsSUFBSSx5QkFBeUIsSUFBSSxrQ0FBa0MsRUFBRSxZQUFZLEtBQUssRUFBRSxJQUFJO0FBQzdQO0FBQ0EsQ0F2RkMsWUF1RlksQ0FoQ1oscUJBZ0NrQyxDQVRDLGlCQVNpQixDQUFDLHdCQUEwQixDQUFDLGtCQUFvQixDQUFDO0FBQ3JHLGVBQWEsSUFBSTtBQUNsQjtBQUdBLEtBQUssQ0FBQztBQUNMLFdBQVM7QUFDVjtBQUNBLENBekJ3STtBQTBCdkksV0FBUztBQUNULFlBQVU7QUFDVixVQUFRLElBQUk7QUFDWixjQUFZLElBQUk7QUFDaEIsY0FBWTtBQUNaLGVBQWEsSUFBSTtBQUNqQixjQUFZO0FBQ1osYUFBVyxJQUFJO0FBQ2YsY0FBWSxjQUFjLFlBQVksSUFBSTtBQUMxQyxlQUFhO0FBQ2Q7QUFDQSxDQXBEQyxxQkFvRHFCLEtBQUssR0FBRyxDQTNHYixpQkEyRytCLEVBQUUsQ0FyQ3NGO0FBc0N2SSxrQkFBZ0IsSUFBSTtBQUNwQixnQkFBYyxJQUFJO0FBQ2xCLGNBQVksSUFBSTtBQUNoQixnQkFBYyxJQUFJO0FBQ2xCLGVBQWEsSUFBSTtBQUNqQixjQUFZLGdCQUFnQixJQUFJLHdDQUF3QyxFQUFFLEVBQUMsSUFBSSx3Q0FBd0MsS0FBSyxLQUFLLEVBQUUsSUFBSSwwQkFBMEIsRUFBRSxJQUFJLHVDQUF1QyxLQUFLLEtBQUssRUFBRSxJQUFJLDBCQUEwQixFQUFFLElBQUksdUNBQXVDLE1BQU0sSUFBSSx5QkFBeUIsTUFBTSxDQUFDLEtBQUssV0FBVyxTQUFTLEVBQUMsSUFBSTtBQUM3VywwQkFBd0IsSUFBSTtBQUM1QiwyQkFBeUIsSUFBSTtBQUM5QjtBQUNBLEdBQUcsQ0FySGMsZ0JBcUhHLENBL0NvSDtBQWdEdkksaUJBQWUsSUFBSSwwQkFBMEIsTUFBTSxJQUFJO0FBQ3ZELG9CQUFrQixJQUFJO0FBQ3ZCO0FBQ0EsQ0FsRUMscUJBa0VxQixLQUFLLEdBQUcsQ0F6SGIsaUJBeUgrQixFQUFFLENBbkRzRiw0QkFtRHpELENBQUM7QUFDL0Usa0JBQWdCLElBQUk7QUFDcEIsaUJBQWUsSUFBSTtBQUNuQixpQkFBZSxJQUFJO0FBQ25CLGNBQVksZ0JBQWdCLElBQUksd0NBQXdDLEVBQUUsRUFBQyxJQUFJLHdDQUF3QyxNQUFNLElBQUkseUJBQXlCLE1BQU0sQ0FBQyxLQUFLLFdBQVcsU0FBUyxFQUFDLElBQUk7QUFDL0wsNkJBQTJCLElBQUk7QUFDL0IsOEJBQTRCLElBQUk7QUFDakM7QUFDQSxHQUFHLENBakljLGVBaUlFLENBbkZjLG1CQW1GTSxDQTNEaUc7QUE0RHZJLGlCQUFlLElBQUk7QUFDcEI7QUFDQSxDQTlEd0ksNkJBOEQxRyxDQUFDO0FBQzlCLFdBQVM7QUFDVCxVQUFRO0FBQ1Isa0JBQWdCO0FBQ2hCLGlCQUFlO0FBQ2YsbUJBQWlCO0FBQ2pCLGVBQWEsS0FBSyxJQUFJLEVBQUUsSUFBSTtBQUM1QixpQkFBZSxJQUFJO0FBQ25CLGtCQUFnQixLQUFLLElBQUksRUFBRSxJQUFJO0FBQy9CLGdCQUFjLElBQUk7QUFDbEIsaUJBQWUsSUFBSSxpQkFBaUIsSUFBSSxpQkFBaUIsSUFBSTtBQUM3RCxnQkFBYyxJQUFJO0FBQ2xCLG9CQUFrQixJQUFJO0FBQ3RCLFNBQU8sSUFBSTtBQUNYLGFBQVc7QUFDWCxjQUFZLElBQUksNkNBQTZDLEVBQUU7QUFDL0QsZUFBYSxJQUFJLDJDQUEyQyxFQUFFO0FBQzlELGNBQVk7QUFDWixjQUFZLGNBQWMsWUFBWSxJQUFJLGtCQUFrQixFQUFFLFFBQVEsWUFBWSxJQUFJO0FBQ3ZGO0FBQ0EsQ0FqR0MscUJBaUdxQixLQUFLLEdBQUcsQ0F4SmIsaUJBd0orQixFQUFFLENBbEZzRiw0QkFrRnpELENBL0JDLDBCQStCMEIsQ0FwQjNFO0FBcUIvQixHQUFHLENBekpjLGVBeUpFLENBM0djLG1CQTJHTSxDQW5GaUcsNkJBbUZuRSxDQXJCdEM7QUFzQjlCLGlCQUFlLElBQUk7QUFDcEI7QUFDQSxDQUFDO0FBQ0EsV0FBUztBQUNULGtCQUFnQjtBQUNoQixpQkFBZTtBQUNmLG1CQUFpQjtBQUNqQixlQUFhLEtBQUssSUFBSSxFQUFFLElBQUk7QUFDNUIsa0JBQWdCLEtBQUssSUFBSSxFQUFFLElBQUk7QUFDL0IsZ0JBQWM7QUFDZCxTQUFPLElBQUk7QUFDWCxhQUFXO0FBQ1gsY0FBWSxJQUFJLHNDQUFzQyxFQUFFO0FBQ3hELGVBQWEsSUFBSSxvQ0FBb0MsRUFBRTtBQUN2RCxjQUFZLFFBQVEsWUFBWSxJQUFJO0FBQ3JDO0FBQ0EsS0FBSyxDQXBHbUksNEJBb0d0RyxLQUFLLEtBQU0sSUFBSSxFQUFFLEdBQUcsQ0FuR3FGLG1CQW1HakUsQ0F0QzNDO0FBdUM5Qiw2QkFBMkI7QUFDM0IsMEJBQXdCO0FBQ3pCO0FBQ0EsS0FBSyxDQXhHbUksNEJBd0d0RyxLQUFLLEtBQU0sQ0ExQ2Qsa0NBMENpRCxDQWxCL0U7QUFtQkEsZ0JBQWMsSUFBSTtBQUNuQjtBQUNBLEdBQUcsS0FBSyxFQUFFLEdBQUcsQ0ExRzhIO0FBMkcxSSxXQUFTO0FBQ1Qsa0JBQWdCO0FBQ2hCLGlCQUFlO0FBQ2YsbUJBQWlCO0FBQ2pCLGVBQWEsS0FBSyxJQUFJLEVBQUUsSUFBSTtBQUM1QixpQkFBZSxJQUFJO0FBQ25CLGtCQUFnQixLQUFLLElBQUksRUFBRSxJQUFJO0FBQy9CLGdCQUFjLElBQUk7QUFDbEIsY0FBWSxRQUFRLFlBQVksSUFBSTtBQUNyQztBQUNBLENBckgySTtBQXNIMUksU0FBTyxJQUFJO0FBQ1gsVUFBUSxJQUFJO0FBQ1osVUFBUTtBQUNSLFVBQVE7QUFDUixVQUFRLElBQUk7QUFDYjtBQUdBLEdBQUcsQ0FyTWMsZ0JBcU1HLENBQUMscUNBQXVDLEVBQUUsQ0FBQztBQUM5RCxvQkFBa0IsZ0JBQWdCLEtBQUssRUFBRSxJQUFJLDhCQUE4QixHQUFHLElBQUksa0NBQWtDLEVBQUUsSUFBSSwyQ0FBMkM7QUFDdEs7QUFDQSxDQUFDO0FBQ0EsZ0NBQThCLElBQUk7QUFDbkM7QUFFQSxDQUFDLGtDQUFrQyxDQUFDO0FBQ3BDLENBQUMseUNBQXlDLENBRE47QUFFbkMsY0FBWSxnQkFBZ0IsR0FBRyxLQUFLLEVBQUUsSUFBSSx3Q0FBd0MsRUFBRSxJQUFJLGtDQUFrQyxFQUFFO0FBQzdIO0FBRUEsQ0FMQyxrQ0FLa0MsQ0ExSmxDLHFCQTBKd0QsQ0FuSXJCLGlCQW1JdUMsQ0FMdkM7QUFNcEMsQ0FBQyw0Q0FBNEMsQ0EzSjVDLHFCQTJKa0UsQ0FwSS9CLGlCQW9JaUQsQ0FOakQ7QUFPbkMsY0FBWSxnQkFBZ0IsR0FBRyxLQUFLLEVBQUUsSUFBSSwyQ0FBMkMsRUFBRSxJQUFJLGtDQUFrQyxFQUFFLElBQUk7QUFDcEk7QUFHQSxDQXZOQyxXQXVOVyxLQUFLLENBQUMsK0JBQStCLENBQUM7QUFDbEQsQ0FBQztBQUNBLFdBQVM7QUFDVjtBQUNBLENBM05DLFlBMk5ZLEtBQUssRUFBRSxHQUFHLGFBQWEsRUFBRSxDQUFDO0FBQ3RDLGNBQVksSUFBSSxLQUFLLEdBQUcsRUFBRSxJQUFJLGlCQUFpQixJQUFJO0FBQ25ELGNBQVksV0FBVyxZQUFZLElBQUk7QUFDeEM7QUFDQSxDQS9OQyxZQStOWSxDQWpMb0IsbUJBaUxBLEVBQUUsS0FBSyxFQUFFLEdBQUcsYUFBYSxFQUFFLENBQUM7QUFDNUQsY0FBWSxJQUFJLElBQUksSUFBSTtBQUN6QjtBQUNBLENBbE9DLFlBa09ZLEtBQUssRUFBRSxHQUFHLFlBQVksRUFBRSxDQUFDO0FBQ3JDLGNBQVksSUFBSSxJQUFJLGdCQUFnQixJQUFJO0FBQ3pDO0FBQ0EsQ0FyT0MsWUFxT1ksS0FBSyxFQUFFLEdBQUcsWUFBWSxFQUFFLENBQUM7QUFDckMsY0FBWSxJQUFJLEtBQUssR0FBRyxFQUFFLElBQUksaUJBQWlCLElBQUksdUNBQXVDLEVBQUMsSUFBSSxJQUFJLGdCQUFnQixJQUFJO0FBQ3hIO0FBQ0EsQ0FBQztBQUNBLGFBQVcsSUFBSTtBQUNmLGlCQUFlO0FBQ2YsZ0JBQWMsS0FBSyxJQUFJLEVBQUUsSUFBSTtBQUM3QixvQkFBa0IsSUFBSTtBQUN0QixTQUFPLElBQUk7QUFDWCxlQUFhLElBQUk7QUFDakIsYUFBVyxJQUFJO0FBQ2YsY0FBWTtBQUNaLGVBQWE7QUFDZDtBQUNBLENBNUxDLHFCQTRMcUIsQ0FyS2Msa0JBcUtLLENBNUJTO0FBNkJsRCxDQTdMQyxxQkE2THFCLENBdEtjLGtCQXNLSyxDQUFDO0FBQ3pDLFlBQVU7QUFDVixRQUFNO0FBQ04sV0FBUztBQUNULGFBQVcsS0FBSyxJQUFJLGdDQUFnQyxFQUFFO0FBQ3RELFVBQVE7QUFDUixjQUFZO0FBQ1osZUFBYSxJQUFJO0FBQ2pCLGFBQVc7QUFDWCxjQUFZO0FBQ2I7QUFDQSxDQXhNQyxxQkF3TXFCLENBbk15Qyx3QkFtTWhCLENBeENHO0FBeUNsRCxDQXpNQyxxQkF5TXFCLENBcE15Qyx3QkFvTWhCLENBWkw7QUFhMUMsQ0ExTUMscUJBME1xQixDQWhNeUMsc0JBZ01sQixDQTFDSztBQTJDbEQsQ0EzTUMscUJBMk1xQixDQWpNeUMsc0JBaU1sQixDQWRIO0FBZXpDLFNBQU8sSUFBSTtBQUNaO0FBQ0EsR0FBRyxDQXJRYyxnQkFxUUcsQ0FBQztBQUNwQixZQUFVO0FBQ1YsT0FBSztBQUNMLFFBQU07QUFDTixjQUFZLElBQUksaUNBQWlDLE1BQU07QUFDdkQsZUFBYTtBQUNiLGVBQWE7QUFDZDtBQUNBLEdBQUcsQ0E3UWMsZ0JBNlFHLEdBQUcsWUFBWSxFQUFFLENBQUM7QUFDckMsU0FBTztBQUNSO0FBQ0EsQ0FBQyw2QkFBNkIsR0FBRyxDQWhSaEIsZ0JBZ1JpQyxDQUFDLHFDQUF1QyxDQUFDO0FBQzFGLG9CQUFrQixJQUFJO0FBQ3ZCO0FBQ0EsQ0F2RUMsaUNBdUVpQyxDQUhqQyw2QkFHK0QsQ0E1Ti9ELHFCQTROcUYsQ0FyTWxELGlCQXFNb0UsQ0FBQyx3QkFBMEIsQ0F2RS9GLFVBdUUwRyxDQUFDO0FBQy9JLENBbEVDLDJDQWtFMkMsQ0FKM0MsNkJBSXlFLENBN056RSxxQkE2TitGLENBdE01RCxpQkFzTThFLENBQUMsd0JBQTBCLENBeEV6RyxVQXdFb0gsQ0FBQztBQUN6SixDQUxDLDZCQUs2QixDQUFDLHFDQUF1QyxDQUFDO0FBQ3RFLG9CQUFrQixLQUFLLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDO0FBQzlCO0FBQ0EsQ0FBQywrQkFBK0IsQ0E1RUksVUE0RU8sQ0FBQztBQUMzQyxTQUFPLElBQUk7QUFDWjtBQUNBLENBM1JDLFdBMlJXLENBcEVNLDhCQW9FeUIsQ0FwTzFDLHFCQW9PZ0UsQ0E3TTdCLGlCQTZNK0MsS0FBSyxDQXBFdEM7QUFxRWxELENBNVJDLFdBNFJXLENBckVNLDhCQXFFeUIsQ0FyTzFDLHFCQXFPZ0UsQ0E5TTdCLGlCQThNK0MsS0FBSyxDQXhDOUM7QUF5Q3pDLGdCQUFjLEtBQUssS0FBSyxFQUFFLElBQUkseUJBQXlCLEVBQUUsSUFBSSw0QkFBNEIsRUFBRSxJQUFJO0FBQ2hHO0FBQ0EsQ0EvUkMsWUErUlksQ0F4T1oscUJBd09rQyxDQWpOQyxpQkFpTmlCLENBQUMsd0JBQTBCO0FBQy9FLFdBQVM7QUFDVjtBQUdBLEdBQUcsQ0FwU2MsZ0JBb1NHLEVBQUUsS0FBSyxFQUFFLEdBQUcsQ0FBQztBQUNoQyxXQUFTO0FBQ1Y7QUFDQSxHQUFHLENBdlNjLGdCQXVTRyxDQWxHMkM7QUFtRzlELGNBQVk7QUFDWixnQkFBYyxJQUFJO0FBQ2xCLGVBQWE7QUFDZDtBQUNBLENBOU5vQyxpQkE4TmxCLEtBQUssRUFBRSxDQUFDO0FBQ3pCLGVBQWE7QUFDZDtBQUNBLENBak9vQyxpQkFpT2xCLEtBQUssRUFBRSxDQUhDLGlCQUdpQixFQUFFLENBQUM7QUFDN0MsZUFBYTtBQUNkO0FBR0EsR0FBRyxDQXBUYyxlQW9URSxDQXRRYyxrQkFzUUs7QUFDdEMsR0FBRyxDQXJUYyxlQXFURSxDQXZRYyxtQkF1UU0sSUFBSTtBQUMzQyxHQUFHLENBdFRjLGVBc1RFLENBQUMsV0FBVztBQUMvQixHQUFHLENBdlRjLGVBdVRFLENBREMsWUFDWSxJQUFJO0FBQ25DLFdBQVM7QUFDVjtBQUdBLFdBQVc7QUFDVjtBQUNDLGtCQUFjLEtBQUssSUFBSSxpQ0FBaUMsRUFBRSxJQUFJO0FBQzlELGVBQVcsSUFBSTtBQUNoQjtBQUNBO0FBQ0Msa0JBQWMsSUFBSTtBQUNsQixlQUFXLElBQUk7QUFDaEI7QUFDRDtBQUNBLFdBQVc7QUFDVjtBQUNDLGtCQUFjLElBQUk7QUFDbEIsZUFBVyxJQUFJO0FBQ2hCO0FBQ0E7QUFDQyxrQkFBYyxLQUFLLElBQUksaUNBQWlDLEVBQUUsSUFBSTtBQUM5RCxlQUFXLElBQUk7QUFDaEI7QUFDRDtBQUNBLFdBQVc7QUFDVjtBQUNDLGVBQVcsSUFBSTtBQUNoQjtBQUNBO0FBQ0MsZUFBVyxJQUFJO0FBQ2hCO0FBQ0Q7QUFDQSxXQUFXO0FBQ1Y7QUFDQyxlQUFXLElBQUk7QUFDaEI7QUFDQTtBQUNDLGVBQVcsSUFBSTtBQUNoQjtBQUNEO0FBQ0EsQ0FBQyxrQkFBa0IsR0FBRyxDQWhXTCxnQkFnV3NCO0FBQ3RDLFdBQVM7QUFDVCxXQUFTO0FBQ1QsVUFBUTtBQUNSLFVBQVE7QUFDUixjQUFZO0FBQ1osaUJBQWU7QUFDZixjQUFZO0FBQ1osY0FBWTtBQUNaLFNBQU8sSUFBSTtBQUNYLGVBQWEsSUFBSTtBQUNqQixhQUFXLElBQUk7QUFDZixXQUFTO0FBQ04sY0FBWSxXQUFXLElBQUksa0JBQWtCLEVBQUUsUUFBUSxJQUFJO0FBQzlELGNBQVk7QUFDYjtBQUNBLEdBQUcsQ0FoWGMsZUFnWEUsQ0FsVWMsbUJBa1VNO0FBQ3ZDLEdBQUcsQ0FqWGMsZUFpWEUsS0FBSyxDQW5VUyxtQkFtVVcsS0FBSyxRQUFRO0FBQ3pELEdBQUcsQ0FsWGMsZUFrWEUsS0FBSyxDQXBVUyxtQkFvVVcsS0FBSyxRQUFRLENBNVMrRSw0QkE0U2xEO0FBQ3JGLFdBQVM7QUFDVCxjQUFZO0FBQ2I7QUFDQSxDQWhUd0ksNEJBZ1QzRztBQUM1QixZQUFVO0FBQ1YsT0FBSztBQUNMLFNBQU87QUFDUCxVQUFRO0FBQ1IsUUFBTTtBQUNOLFNBQU87QUFDUCxVQUFRO0FBQ1IsVUFBUTtBQUNSLGdCQUFjLElBQUk7QUFDbEIsb0JBQWtCLElBQUk7QUFDdEIsV0FBUztBQUNULHNCQUFvQjtBQUNwQixjQUFZO0FBQ1osdUJBQXFCO0FBQ3JCLGVBQWE7QUFDYixXQUFTO0FBQ1QsU0FBTztBQUNKO0FBQUEsSUFBWSxVQUFVLElBQUksbUJBQW1CLFFBQVE7QUFBQSxJQUFFLFdBQVcsSUFBSSxrQkFBa0I7QUFBQSxJQUFFLFFBQVEsSUFBSSxrQkFBa0I7QUFBQSxJQUFFLE1BQU0sSUFBSSxtQkFBbUIsYUFBYSxHQUFHLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRTtBQUN2TCxjQUFZO0FBQ2I7QUFDQSxHQUFHLENBM1ljLGVBMllFLENBN1ZjLG1CQTZWTSxDQXJVaUcsNEJBcVVwRTtBQUNwRSxDQXJWQyxxQkFxVnFCLEtBQUssR0FBRyxDQTVZYixpQkE0WStCLEVBQUUsQ0F0VXNGLDRCQXNVekQsS0FBSyxLQUFLLEVBQUUsQ0FoVjVCLHlCQWdWc0Q7QUFDcEgsYUFBVyxPQUFPO0FBQ25CO0FBQ0EsQ0F6VXdJLDRCQXlVM0csTUFBTTtBQUNsQyxTQUFPO0FBQ1I7QUFDQSxLQUFLLEdBQUcsQ0FsWlMsZUFrWk8sS0FBSyxDQXRUdkIscUNBc1Q2RCxNQUFNLENBQUM7QUFDMUUsS0FBSyxDQTVWSixxQkE0VjBCLEtBQUssR0FBRyxDQW5abEIsaUJBbVpvQyxFQUFFLENBdlRqRCxvQ0F1VHNGLEVBQUUsQ0F2Vi9CLHdCQXVWd0QsSUFBSSxDQUFDO0FBQzNILE9BQUssS0FBSyxJQUFJLEVBQUUsSUFBSSxrQkFBa0IsRUFBRSxNQUFNLEVBQUUsSUFBSTtBQUNwRCxtQ0FBaUM7QUFDbEM7QUFDQSxLQUFLLENBaFdKLHFCQWdXMEIsS0FBSyxHQUFHLENBdlpsQixpQkF1Wm9DLEVBQUUsQ0FqVmlGLDRCQWlWcEQsQ0FBQyxPQUFPLEVBQUUsQ0EzVi9CO0FBNFY5RCxZQUFVO0FBQ1g7QUFDQSxHQUFHLENBMVpjLGdCQTBaRyxNQUFNLENBUmdEO0FBU3pFLE9BQUssSUFBSSxLQUFLLElBQUksRUFBRSxJQUFJLG9CQUFvQixFQUFFLEVBQUUsRUFBQyxLQUFLLElBQUksRUFBRSxJQUFJLHdCQUF3QixFQUFFO0FBQzFGLFVBQVE7QUFDUixhQUFXLFdBQVc7QUFDdkI7QUFDQSxHQUFHLENBL1pjLGdCQStaRyxNQUFNLENBYmdEO0FBYzFFLEdBQUcsQ0FoYWMsZ0JBZ2FHLE1BQU0sQ0FBQztBQUMzQixDQTFXQyxvQkEwV29CLENBMVdDLFFBMFdRLENBblZNLGlCQW1WWSxDQUFDLGlCQUFpQixJQUFJLENBZHNEO0FBZTNILGdCQUFjLEtBQUssSUFBSSxpQ0FBaUMsRUFBRSxJQUFJO0FBQzlELGFBQVcsSUFBSTtBQUNmLGVBQWEsWUFBWSxFQUFFO0FBQzVCO0FBQ0EsR0FBRyxDQXRhYyxnQkFzYUcsTUFBTSxDQXBCZ0QsZ0JBb0IvQixLQUFLO0FBQ2hELEdBQUcsQ0F2YWMsZ0JBdWFHLE1BQU0sQ0FQQyxlQU9lLEtBQUs7QUFDL0MsQ0FqWEMsb0JBaVhvQixDQWpYQyxRQWlYUSxDQTFWTSxpQkEwVlksQ0FQQyxpQkFPaUIsSUFBSSxDQXJCc0QsZ0JBcUJyQyxLQUFLO0FBQzNGLGFBQVcsT0FBTyxJQUFJO0FBQ3ZCO0FBQ0EsR0FBRyxDQTNhYyxnQkEyYUcsTUFBTSxDQXpCZ0QsZ0JBeUIvQjtBQUMzQyxHQUFHLENBNWFjLGdCQTRhRyxNQUFNLENBWkMsZUFZZTtBQUMxQyxDQXRYQyxvQkFzWG9CLENBdFhDLFFBc1hRLENBL1ZNLGlCQStWWSxDQVpDLGlCQVlpQixJQUFJLENBMUJzRCxnQkEwQnJDO0FBQ3RGLGdCQUFjLElBQUk7QUFDbEIsYUFBVyxRQUFRLElBQUk7QUFDdkIsb0JBQWtCO0FBQ2xCLGFBQVcsSUFBSTtBQUNoQjtBQUNBLEdBQUcsQ0FuYmMsZ0JBbWJHLE1BQU0sQ0FqQ2dELGdCQWlDL0I7QUFDM0MsR0FBRyxDQXBiYyxnQkFvYkcsTUFBTSxDQXBCQyxlQW9CZTtBQUMxQyxDQTlYQyxvQkE4WG9CLENBOVhDLFFBOFhRLENBdldNLGlCQXVXWSxDQXBCQyxpQkFvQmlCLElBQUksQ0FsQ3NELGdCQWtDckM7QUFDdEYsU0FBTztBQUNQLGNBQVksTUFBTSxJQUFJLG1CQUFtQixhQUFhLEdBQUcsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFO0FBQ3ZFO0FBQ0EsR0FBRyxDQXpiYyxnQkF5YkcsTUFBTSxDQXZDZ0QsZ0JBdUMvQjtBQUMzQyxDQW5ZQyxvQkFtWW9CLENBbllDLFFBbVlRLENBNVdNLGlCQTRXWSxDQXpCQyxpQkF5QmlCLElBQUksQ0F2Q3NELGdCQXVDckM7QUFDdEYsV0FBUztBQUNULFNBQU87QUFDUCxVQUFRO0FBQ1IsaUJBQWU7QUFDZixvQkFBa0IsSUFBSTtBQUN0QixXQUFTO0FBQ1Qsc0JBQW9CO0FBQ3BCLGNBQVk7QUFDWix1QkFBcUI7QUFDckIsZUFBYTtBQUNiLGtCQUFnQjtBQUNqQjtBQUNBLENBaFpDLG9CQWdab0IsQ0FoWkMsUUFnWlEsQ0F6WE0saUJBeVhZLENBdENDLGlCQXNDaUIsSUFBSSxDQXBEc0Q7QUFxRDNILFlBQVU7QUFDVixPQUFLLElBQUksS0FBSyxLQUFLLEVBQUUsSUFBSSxvQkFBb0IsRUFBRSxJQUFJLEVBQUUsSUFBSSwwQkFBMEIsRUFBQyxLQUFLLEtBQUssRUFBRSxJQUFJLHdCQUF3QixFQUFFLElBQUksRUFBRSxJQUFJO0FBQ3hJLFNBQU87QUFDUCxXQUFTO0FBQ1QsY0FBWTtBQUNaLGlCQUFlO0FBQ2YsYUFBVztBQUNYLGVBQWE7QUFDYixhQUFXLFdBQVc7QUFDdEIsY0FBWTtBQUNiO0FBQ0EsQ0E1WkMsb0JBNFpvQixDQTVaQyxRQTRaUSxDQXJZTSxpQkFxWVksQ0FsREMsaUJBa0RpQixJQUFJLENBaEVzRCxpQkFnRXBDLEVBQUU7QUFDekYsU0FBTztBQUNSO0FBQ0EsQ0EvWkMsb0JBK1pvQixDQS9aQyxRQStaUSxDQXhZTSxpQkF3WVksQ0FyREMsaUJBcURpQixJQUFJLENBbkVzRCxnQkFtRXJDO0FBQ3RGLGFBQVcsSUFBSTtBQUNmLFdBQVM7QUFDVCxrQkFBZ0I7QUFDaEIsY0FBWTtBQUNiO0FBQ0EsQ0FyYUMsb0JBcWFvQixDQXJhQyxRQXFhUSxDQTlZTSxpQkE4WVksQ0EzREMsaUJBMkRpQixJQUFJLENBekVzRCxnQkF5RXJDO0FBQ3RGLFNBQU8sSUFBSTtBQUNYLFdBQVM7QUFDVCxhQUFXLElBQUk7QUFDZixXQUFTO0FBQ1QsY0FBWTtBQUNiO0FBQ0EsQ0E1YUMsb0JBNGFvQixDQTVhQyxRQTRhUSxDQXZhaUMsdUJBdWFULENBbEVMO0FBbUVoRCxZQUFVO0FBQ1g7OztBQ3RoQkE7QUFDQyxvQ0FBa0M7QUFDbEMsc0NBQW9DO0FBQ3BDLHlDQUF1QztBQUN2QywyQ0FBeUM7QUFDekMsMENBQXdDO0FBQ3hDLCtCQUE2QixJQUFJO0FBQ2pDLHNDQUFvQyxJQUFJO0FBQ3hDLDBDQUF3QyxJQUFJO0FBQzdDO0FBRUEsQ0FBQyxZQUFZLENBQUMsY0FBYyxJQUFJLENBQUM7QUFDakMsQ0FEQyxZQUNZLENBQUMsa0JBQWtCLEtBQUssS0FBSyxFQUFFLElBQUksS0FBSyxDQUFDO0FBQ3JELFdBQVMsSUFBSSx1Q0FBdUMsSUFBSTtBQUN4RCxpQkFBZSxJQUFJO0FBQ25CLFVBQVEsSUFBSSxJQUFJO0FBQ2hCLG9CQUFrQixJQUFJO0FBQ3RCLFNBQU8sSUFBSTtBQUNYLGVBQWEsSUFBSTtBQUNsQjtBQUNBLENBVEMsWUFTWSxDQVRDLGNBU2MsSUFBSSxDQUFDO0FBQ2hDLFdBQVM7QUFDVCxTQUFPLElBQUk7QUFDWjtBQUNBLENBYkMsWUFhWSxDQWJDLGNBYWMsSUFBSSxDQUFDLDBCQUEwQixFQUFFLElBQUksQ0FiaEMsY0FhK0MsS0FBSyxDQUpwRDtBQUtoQyxnQkFBYztBQUNkLGlCQUFlLElBQUksSUFBSSxvQ0FBb0MsSUFBSSxvQ0FBb0M7QUFDbkcsZUFBYTtBQUNkO0FBQ0EsQ0FsQkMsWUFrQlksQ0FsQkMsY0FrQmMsSUFBSSxDQUxDO0FBTWpDLENBbkJDLFlBbUJZLENBbkJDLGNBbUJjLElBQUksQ0FWQyxrQkFVa0IsS0FBSyxFQUFFLElBQUksQ0FuQjdCLGNBbUI0QyxLQUFLLENBVmpEO0FBV2hDLGlCQUFlO0FBQ2YsZ0JBQWMsSUFBSTtBQUNsQixpQkFBZSxJQUFJLG9DQUFvQyxJQUFJLElBQUksSUFBSTtBQUNuRSxnQkFBYztBQUNkLGVBQWEsSUFBSTtBQUNqQixTQUFPLElBQUk7QUFDWjtBQUNBLENBM0JDLFlBMkJZLENBM0JDLGNBMkJjLElBQUksQ0FsQkMsbUJBa0JtQixFQUFFLElBQUksQ0EzQnpCLGNBMkJ3QyxLQUFLLENBbEI3QztBQW1CaEMsaUJBQWU7QUFDZixnQkFBYztBQUNkLGlCQUFlO0FBQ2YsVUFBUSxJQUFJO0FBQ1osU0FBTyxJQUFJO0FBQ1o7QUFDQSxDQWxDQyxZQWtDWSxDQWxDQyxjQWtDYyxJQUFJLENBbENDLGNBa0NjLEtBQUssQ0F6Qm5CLG9CQXlCd0MsRUFBRSxJQUFJLENBekI5QztBQTBCaEMsaUJBQWUsSUFBSTtBQUNuQixnQkFBYztBQUNkLGlCQUFlLElBQUksSUFBSSxvQ0FBb0MsSUFBSSxvQ0FBb0M7QUFDbkcsZ0JBQWMsSUFBSTtBQUNsQixlQUFhO0FBQ2IsU0FBTyxJQUFJO0FBQ1o7QUFDQSxJQUFJLENBMUNILFlBMENnQixJQUFJLENBN0JZLDBCQTZCZSxFQUFFLEtBQUssRUFBRSxHQUFHLENBQUMsdUJBQXVCLEtBQUssQ0FBQztBQUN6RixXQUFTO0FBQ1QsVUFBUSxLQUFLLElBQUksYUFBYSxFQUFFO0FBQ2hDLGlCQUFlO0FBQ2Ysa0JBQWdCO0FBQ2pCO0FBQ0EsQ0FoREMsWUFnRFksSUFBSSxDQW5DZ0IsMEJBbUNXLENBQUM7QUFDNUMsU0FBTyxJQUFJO0FBQ1gsZUFBYSxJQUFJO0FBQ2xCO0FBQ0EsQ0FwREMsWUFvRFksSUFBSSxDQXZDZ0IsMEJBdUNXLENBSkMsd0JBSXdCO0FBQ3BFLFNBQU8sSUFBSTtBQUNYLFdBQVM7QUFDVjtBQUNBLENBeERDLFlBd0RZLElBQUksQ0EzQ2dCLDBCQTJDVyxJQUFJLEtBQU0sRUFBRSxHQUFHLENBZEU7QUFlNUQsaUJBQWU7QUFDaEI7QUFDQSxDQTNEQyxZQTJEWSxDQTNEQyxjQTJEYyxJQUFJLENBM0RDLGVBMkRlLENBQUM7QUFDaEQsU0FBTyxJQUFJO0FBQ1o7OztBQ3pFQSxHQUFHLENBQUM7QUFDSCxtQkFBaUI7QUFDbEI7QUFDQSxDQUFDLFlBQVksR0FBRyxDQUhaLE1BR21CLEdBQUcsQ0FBQyxnQkFBZ0I7QUFDMUMsY0FBWTtBQUNiO0FBQ0EsQ0FIQyxZQUdZLEdBQUcsQ0FOWixNQU1tQixHQUFHLENBSEMsZUFHZSxDQUFDLG1CQUFtQjtBQUM3RCxXQUFTO0FBQ1Y7OztBQ1BBLENBQUM7QUFBTyxZQUFVO0FBQVMsWUFBVTtBQUFRLGFBQVcsV0FBVztBQUFFO0FBQUcsQ0FBdkUsTUFBOEU7QUFBRyxjQUFZO0FBQVcsVUFBUTtBQUFLLHNCQUFvQjtBQUFLLGNBQVk7QUFBSyxXQUFTO0FBQUk7QUFBRyxDQUEvSyxNQUFzTCxDQUFDO0FBQVksWUFBVTtBQUFTLFNBQU87QUFBSSxVQUFRO0FBQUksV0FBUztBQUFNLGlCQUFlO0FBQU0sY0FBWSx3TkFBd04sVUFBVTtBQUFPLG1CQUFpQjtBQUFFLFVBQVE7QUFBUTtBQUFBLElBQWEsYUFBYTtBQUFBLElBQUUsa0JBQWtCO0FBQUEsSUFBRSxVQUFVO0FBQUEsSUFBRSxRQUFRO0FBQUEsSUFBRSxnQkFBZ0I7QUFBQSxJQUFFLEtBQUs7QUFBQSxJQUFFO0FBQVcsY0FBWSxJQUFJO0FBQUk7QUFBRyxDQUExcUIsTUFBaXJCLENBQTFmLFVBQXFnQjtBQUFVLFlBQVU7QUFBUyxXQUFTO0FBQUcsT0FBSztBQUFFLFFBQU07QUFBRSxTQUFPO0FBQUssVUFBUTtBQUFLLGlCQUFlO0FBQU0sY0FBWTtBQUFzTSxtQkFBaUI7QUFBSyxXQUFTO0FBQUU7QUFBRyxDQUF4aEMsTUFBK2hDLENBQXgyQixVQUFtM0I7QUFBVSxXQUFTO0FBQU87QUFBRyxDQUF2a0MsTUFBOGtDLENBQXY1QixVQUFrNkI7QUFBUyxZQUFVO0FBQVMsT0FBSztBQUFFLFFBQU07QUFBRSxTQUFPO0FBQUssVUFBUTtBQUFLLGlCQUFlO0FBQU0sY0FBWSxJQUFJO0FBQWEsV0FBUztBQUFHLGNBQVksV0FBVztBQUFJO0FBQUcsQ0FBenZDLE1BQWd3QyxDQUF6a0MsVUFBb2xDLENBQUM7QUFBTyxtQkFBaUI7QUFBRztBQUFHLENBQTF5QyxNQUFpekMsQ0FBMW5DLFVBQXFvQyxDQUFoRCxLQUFzRDtBQUFVLFdBQVM7QUFBQztBQUFHLENBQXoxQyxNQUFnMkMsQ0FBenFDLFVBQW9yQyxDQUEvRixLQUFxRztBQUFRLGNBQVksRUFBRSxFQUFFLEVBQUUsSUFBSSxLQUFLLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLElBQUk7QUFBWTtBQUFHLENBQXY4QyxNQUE4OEMsQ0FBdnhDLFVBQWt5QyxDQUFDO0FBQVUsVUFBUTtBQUFXO0FBQUcsQ0FBMS9DLE1BQWlnRDtBQUFHLENBQUMsUUFBUTtBQUFHLGNBQVk7QUFBVyxVQUFRO0FBQUssc0JBQW9CO0FBQUssY0FBWTtBQUFLLFdBQVM7QUFBSTtBQUFHLENBQTltRCxNQUFxbkQsS0FBSztBQUFRLENBQWxvRCxNQUF5b0QsS0FBSyxDQUFDO0FBQVksQ0FBM3BELE1BQWtxRCxNQUFNO0FBQVEsQ0FBaHJELE1BQXVyRCxNQUFNLENBQTlDO0FBQTJELENBQXJNLFFBQThNLEtBQUs7QUFBUSxDQUEzTixRQUFvTyxLQUFLLENBQS9GO0FBQTRHLENBQXRQLFFBQStQLE1BQU07QUFBUSxDQUE3USxRQUFzUixNQUFNLENBQWxKO0FBQStKLGNBQVksRUFBRSxFQUFFLEVBQUUsSUFBSSxLQUFLLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLElBQUk7QUFBWTtBQUFHLENBQTUzRCxNQUFtNEQsQ0FBQztBQUFhLENBQWo1RCxNQUF3NUQsQ0FBQztBQUFZLENBQWhhLFFBQXlhLENBQTFDO0FBQXdELENBQXZiLFFBQWdjLENBQTVDO0FBQXlELGNBQVksV0FBVztBQUFJO0FBQUcsQ0FBaC9ELE1BQXUvRCxDQUFuSCxXQUErSDtBQUFRLENBQTNnRSxNQUFraEUsQ0FBekgsVUFBb0k7QUFBUSxDQUFoaUIsUUFBeWlCLENBQTFLLFdBQXNMO0FBQVEsQ0FBN2pCLFFBQXNrQixDQUFsTCxVQUE2TDtBQUFRLGNBQVksRUFBRSxFQUFFLEVBQUUsSUFBSSxLQUFLLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEtBQUssQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUU7QUFBSztBQUFHLENBQTFxQjtBQUFvckIsWUFBVTtBQUFNLFdBQVM7QUFBTSxPQUFLO0FBQUUsUUFBTTtBQUFFLFdBQVM7QUFBSyxrQkFBZ0I7QUFBTyxpQkFBZTtBQUFNLGNBQVk7QUFBSyxjQUFZLEVBQUUsT0FBTyxNQUFNLEVBQUUsS0FBSyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFO0FBQU07QUFBQSxJQUFhLGFBQWE7QUFBQSxJQUFFLGtCQUFrQjtBQUFBLElBQUUsVUFBVTtBQUFBLElBQUUsUUFBUTtBQUFBLElBQUUsZ0JBQWdCO0FBQUEsSUFBRSxLQUFLO0FBQUEsSUFBRTtBQUFXLFdBQVM7QUFBRSxjQUFZLFFBQVEsSUFBSSxFQUFFLFdBQVcsR0FBRztBQUFLLGNBQVk7QUFBTTtBQUFHLENBQW5qQyxPQUEyakMsQ0FBQztBQUFTLFdBQVM7QUFBRSxjQUFZLFFBQVE7QUFBSyxjQUFZO0FBQU87QUFBRyxDQUEvbkMsUUFBd29DLENBQUM7QUFBYyxXQUFTO0FBQUssYUFBVztBQUFLLGNBQVk7QUFBTTtBQUFHLENBQTFzQyxRQUFtdEMsQ0FBMUUsWUFBdUYsQ0FBQztBQUFVLFVBQVE7QUFBQztBQUFHLFVBQVUsQ0FBQyxPQUFPLEVBQUU7QUFBUyxHQUFweEMsUUFBNnhDLENBQXBKO0FBQW1LLGFBQVM7QUFBSyxpQkFBYTtBQUFPLDJCQUF1QixPQUFPLFFBQVEsRUFBRTtBQUFPO0FBQUc7QUFBRyxDQUFuNEMsUUFBNDRDLENBQW5RLGFBQWlSLEVBQUU7QUFBUSxZQUFVO0FBQVMsV0FBUztBQUFFLFlBQVU7QUFBTyxTQUFPLEtBQUssT0FBTyxFQUFFO0FBQU0sVUFBUSxLQUFLLE9BQU8sRUFBRTtBQUFNLGVBQWE7QUFBRSxpQkFBZTtBQUFPLFVBQVE7QUFBTSxjQUFZO0FBQVksVUFBUTtBQUFRLGFBQVc7QUFBSSxnQkFBYztBQUFPLGNBQVksSUFBSTtBQUFLO0FBQUcsQ0FBanFELFFBQTBxRCxDQUFqaUIsYUFBK2lCLEVBQUUsTUFBTTtBQUFVLFlBQVU7QUFBUyxXQUFTO0FBQUcsT0FBSztBQUFFLFFBQU07QUFBRSxTQUFPO0FBQUssVUFBUTtBQUFLLGlCQUFlO0FBQU0sY0FBWTtBQUFzTSxtQkFBaUI7QUFBSSxXQUFTO0FBQUU7QUFBRyxDQUEzaEUsUUFBb2lFLENBQTM1QixhQUF5NkIsRUFBRSxNQUFNO0FBQVMsWUFBVTtBQUFTLE9BQUs7QUFBRSxRQUFNO0FBQUUsU0FBTztBQUFLLFVBQVE7QUFBSyxjQUFZO0FBQVcsVUFBUSxJQUFJLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRTtBQUFNLGlCQUFlO0FBQU8sY0FBWSxJQUFJO0FBQWEsV0FBUztBQUFFO0FBQUcsQ0FBNXZFLFFBQXF3RSxDQUE1bkMsYUFBMG9DLEVBQUUsTUFBTTtBQUFRLFVBQVEsV0FBVztBQUFLO0FBQUcsQ0FBOXpFLFFBQXUwRSxDQUE5ckMsYUFBNHNDLEVBQUUsTUFBTSxLQUFLLENBQXh0RTtBQUFzdUUsY0FBWTtBQUFJO0FBQUcsQ0FBbjRFLFFBQTQ0RSxDQUFDO0FBQWlCLFdBQVM7QUFBSyxhQUFXO0FBQUssZUFBYTtBQUFPLFVBQVEsRUFBRSxPQUFPLEVBQUU7QUFBTTtBQUFHLENBQTUrRSxRQUFxL0UsQ0FBeEcsZ0JBQXlILEVBQUU7QUFBRyxVQUFRLEVBQUU7QUFBSztBQUFHLENBQTdoRixRQUFzaUYsQ0FBekosZ0JBQTBLO0FBQU8sV0FBUyxPQUFPO0FBQU0saUJBQWU7QUFBTSxjQUFZO0FBQU8sY0FBWTtBQUFRLFNBQU87QUFBUSxVQUFRO0FBQVEsYUFBVztBQUFPLGtCQUFnQjtBQUFPLGNBQVk7QUFBTyxjQUFZLElBQUk7QUFBSztBQUFHLENBQW53RixRQUE0d0YsQ0FBL1gsZ0JBQWdaLEtBQUs7QUFBUSxVQUFRLFdBQVc7QUFBTTtBQUFHLENBQXQwRixRQUErMEYsQ0FBbGMsZ0JBQW1kLEtBQUs7QUFBUSxjQUFZLEVBQUUsRUFBRSxFQUFFLElBQUksS0FBSyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxLQUFLLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFO0FBQUs7QUFBRyxDQUFuOEYsUUFBNDhGLENBQS9qQixnQkFBZ2xCLENBQUM7QUFBWSxhQUFXO0FBQUksUUFBTSxFQUFFLEVBQUU7QUFBSSxpQkFBZTtBQUFNLGNBQVk7QUFBUSxTQUFPO0FBQVEsVUFBUTtBQUFLLGNBQVk7QUFBSyxjQUFZLElBQUk7QUFBSTtBQUFHLENBQXBuRyxRQUE2bkcsQ0FBaHZCLGdCQUFpd0IsQ0FBaEwsVUFBMkw7QUFBa0IsY0FBWTtBQUFRLFNBQU87QUFBSTtBQUFHLENBQTdzRyxRQUFzdEcsQ0FBejBCLGdCQUEwMUIsQ0FBelEsVUFBb1I7QUFBYSxjQUFZO0FBQVEsU0FBTztBQUFJO0FBQUcsQ0FBanlHLFFBQTB5RyxDQUE3NUIsZ0JBQTg2QixDQUFDLFFBQVEsQ0FBQztBQUFRLGNBQVk7QUFBUSxTQUFPO0FBQUk7QUFBRyxDQUEvMkcsUUFBdzNHLENBQTMrQixnQkFBNC9CLENBQUM7QUFBVSxDQUFwNUcsUUFBNjVHLENBQWhoQyxnQkFBaWlDLENBQUM7QUFBWSxDQUEzN0csUUFBbzhHLENBQXZqQyxnQkFBd2tDLENBQUM7QUFBVyxTQUFPO0FBQUssU0FBTztBQUFJO0FBQUcsQ0FBMy9HLFFBQW9nSCxDQUF2bkMsZ0JBQXdvQyxDQUEzSTtBQUFzSixDQUFoaUgsUUFBeWlILENBQTVwQyxnQkFBNnFDLENBQTNJO0FBQXdKLENBQXZrSCxRQUFnbEgsQ0FBbnNDLGdCQUFvdEMsQ0FBM0k7QUFBdUosU0FBTztBQUFJO0FBQUcsQ0FBM25ILFFBQW9vSCxDQUF2dkMsZ0JBQXd3QyxDQUEzUSxRQUFvUjtBQUFRLENBQXRxSCxRQUErcUgsQ0FBbHlDLGdCQUFtekMsQ0FBalIsVUFBNFI7QUFBUSxDQUFudEgsUUFBNHRILENBQS8wQyxnQkFBZzJDLENBQXZSLFNBQWlTO0FBQVEsVUFBUSxXQUFXO0FBQU07QUFBRyxDQUEzeEgsUUFBb3lILENBQXY1QyxnQkFBdzZDLENBQTNhO0FBQXNiLGNBQVk7QUFBTztBQUFHLENBQXQxSCxRQUErMUgsQ0FBbDlDLGdCQUFtK0MsQ0FBMVo7QUFBc2EsQ0FBNTNILFFBQXE0SCxDQUF4L0MsZ0JBQXlnRCxDQUF2ZTtBQUFvZixjQUFZO0FBQU87QUFBRyxDQUF6N0gsUUFBazhILENBQXJqRCxnQkFBc2tELENBQTdmLFNBQXVnQjtBQUFRLENBQXIrSCxRQUE4K0gsQ0FBam1ELGdCQUFrbkQsQ0FBaGxCLFVBQTJsQjtBQUFRLGNBQVksRUFBRSxFQUFFLEVBQUUsSUFBSSxLQUFLLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEtBQUssR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUU7QUFBSztBQUFHLENBQXZtSSxRQUFnbkksQ0FBQyxjQUFjLENBQUM7QUFBWSxZQUFVO0FBQVMsU0FBTztBQUFLLFVBQVE7QUFBSyxVQUFRLElBQUksTUFBTTtBQUFLLGlCQUFlO0FBQUssdUJBQXFCO0FBQUssb0JBQWtCO0FBQUssbUJBQWlCO0FBQUssZUFBYTtBQUFJO0FBQUcsQ0FBOXpJLFFBQXUwSSxDQUF0TixjQUFxTyxDQUFDO0FBQW1CLENBQTEySSxRQUFtM0ksQ0FBbFEsY0FBaVIsQ0FBQztBQUFtQixDQUF0NUksUUFBKzVJLENBQTlTLGNBQTZULENBQUM7QUFBbUIsWUFBVTtBQUFTLFdBQVM7QUFBSyxrQkFBZ0I7QUFBTyxVQUFRO0FBQUssVUFBUTtBQUFhLHVCQUFxQjtBQUFLLG9CQUFrQjtBQUFLLG1CQUFpQjtBQUFLLGVBQWE7QUFBSTtBQUFHLENBQXZuSixRQUFnb0osQ0FBL2dCLGNBQThoQixDQUF4VCxpQkFBMFU7QUFBUyxDQUExcUosUUFBbXJKLENBQWxrQixjQUFpbEIsQ0FBL1QsaUJBQWlWO0FBQVMsQ0FBN3RKLFFBQXN1SixDQUFybkIsY0FBb29CLENBQXRVLGlCQUF3VjtBQUFTLFVBQVE7QUFBUyxVQUFRO0FBQWdCO0FBQUcsQ0FBNXpKLE9BQW8wSixDQUFDO0FBQW9CLFNBQU87QUFBUSxhQUFXO0FBQUk7QUFBRyxDQUExM0osT0FBazRKLENBQUMsaUJBQW1CLENBQTd3SDtBQUE0eEgsV0FBUyxFQUFFO0FBQUssY0FBWTtBQUFJO0FBQUcsQ0FBeDhKLE9BQWc5SixDQUFDLGlCQUFtQixDQUF2bEY7QUFBeW1GLFdBQVMsRUFBRSxLQUFLLEtBQUs7QUFBSTtBQUFHLENBQWxoSyxPQUEwaEssQ0FBQyxpQkFBbUIsQ0FBNzdCO0FBQTY4QixXQUFTO0FBQUssU0FBTztBQUFLLFVBQVE7QUFBTyxlQUFhO0FBQU8sY0FBWTtBQUFXLFlBQVU7QUFBSyx5QkFBdUIsSUFBSTtBQUFJLHNCQUFvQixJQUFJLEtBQUs7QUFBSTtBQUFHLENBQXB1SyxPQUE0dUssQ0FBQyxpQkFBbUIsQ0FBL29DLGNBQThwQyxDQUFDO0FBQW1CLFdBQVM7QUFBSyxTQUFPO0FBQUssVUFBUTtBQUFLLGtCQUFnQjtBQUFJLG1CQUFpQjtBQUFPLGVBQWE7QUFBSyxhQUFXLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFO0FBQUM7QUFBRyxDQUFuNkssT0FBMjZLLENBQUMsaUJBQW1CLENBQTkwQyxjQUE2MUMsQ0FBOUwsa0JBQWlOLENBQUM7QUFBZ0IsV0FBUztBQUFJO0FBQUcsQ0FBbGdMLE9BQTBnTCxDQUFDLGlCQUFtQixDQUE3NkMsY0FBNDdDLENBQTdSLGtCQUFnVCxDQUFDO0FBQW1CLFlBQVU7QUFBUyxZQUFVO0FBQU8sU0FBTztBQUFJLFVBQVE7QUFBSSxpQkFBZTtBQUFLLGNBQVksSUFBSTtBQUFZO0FBQUcsQ0FBbHNMLE9BQTBzTCxDQUFDLGlCQUFtQixDQUE3bUQsY0FBNG5ELENBQTdkLGtCQUFnZixDQUEvTCxpQkFBaU47QUFBVSxZQUFVO0FBQVMsV0FBUztBQUFHLE9BQUs7QUFBRSxRQUFNO0FBQUUsU0FBTztBQUFLLFVBQVE7QUFBSyxpQkFBZTtBQUFNLGNBQVk7QUFBc00sbUJBQWlCO0FBQUssV0FBUztBQUFFO0FBQUcsQ0FBOW1NLE9BQXNuTSxDQUFDLGlCQUFtQixDQUF6aEUsY0FBd2lFLENBQWwwRDtBQUFzMUQsV0FBUztBQUFFLFNBQU87QUFBSyxVQUFRO0FBQUssYUFBVyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRTtBQUFDO0FBQUcsQ0FBNXVNLE9BQW92TSxDQUFDLGlCQUFtQixDQUF2cEUsY0FBc3FFLENBQWg4RCxrQkFBbTlELENBQTM2TDtBQUF5N0wsU0FBTztBQUFLLFVBQVE7QUFBSyxpQkFBZTtBQUFLO0FBQUcsQ0FBeDJNLE9BQWczTSxDQUFDLGlCQUFtQixDQUFueEUsY0FBa3lFLENBQTVqRSxrQkFBK2tFLENBQXZpTSxXQUFtak07QUFBVSxZQUFVO0FBQVMsV0FBUztBQUFHLE9BQUs7QUFBRSxRQUFNO0FBQUUsU0FBTztBQUFLLFVBQVE7QUFBSyxpQkFBZTtBQUFNLGNBQVk7QUFBc00sbUJBQWlCO0FBQUssV0FBUztBQUFFO0FBQUcsQ0FBOXdOLE9BQXN4TixDQUFDLGlCQUFtQixDQUF6ckYsY0FBd3NGLENBQXQ3RTtBQUEwOEUsYUFBVyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRTtBQUFDO0FBQUcsQ0FBeDJOLE9BQWczTixDQUFDLGlCQUFtQixDQUFueEYsY0FBa3lGLENBQXArRTtBQUF3L0UsYUFBVyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRTtBQUFDO0FBQUcsQ0FBbDhOLE9BQTA4TixDQUFDLGlCQUFtQixDQUE3MkYsY0FBNDNGLENBQTFtRjtBQUE4bkYsQ0FBamdPLE9BQXlnTyxDQUFDLGlCQUFtQixDQUE1NkYsY0FBMjdGLENBQTduRjtBQUFpcEYsVUFBUTtBQUFNLFVBQVEsRUFBRTtBQUFJO0FBQUcsQ0FBL2xPLE9BQXVtTyxDQUFDLGlCQUFtQixDQUExZ0csY0FBeWhHLENBQXZ3RixrQkFBMHhGLENBQTdoRztBQUEwaUcsQ0FBMXFPLE9BQWtyTyxDQUFDLGlCQUFtQixDQUFybEcsY0FBb21HLENBQXR5RixrQkFBeXpGLENBQXhtRztBQUFxbkcsT0FBSztBQUFJLGFBQVcsV0FBVztBQUFLO0FBQUcsQ0FBNXhPLE9BQW95TyxDQUFDLGlCQUFtQixDQUF2c0csY0FBc3RHLENBQXA4RixrQkFBdTlGLENBQXQ4TjtBQUFtOU4sQ0FBdjJPLE9BQSsyTyxDQUFDLGlCQUFtQixDQUFseEcsY0FBaXlHLENBQW4rRixrQkFBcy9GLENBQWpoTztBQUE4aE8sYUFBVztBQUFFLGlCQUFlO0FBQUk7QUFBRyxDQUFyOU8sT0FBNjlPLENBQUMsaUJBQW1CLENBQWg0RyxjQUErNEcsQ0FBN25HLGtCQUFncEcsQ0FBL25PO0FBQTRvTyxjQUFZLGdCQUFnQixHQUFHLEtBQUssRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRTtBQUFJO0FBQUcsQ0FBaG5QLE9BQXduUCxDQUFDLGlCQUFtQixDQUEzaEgsY0FBMGlILENBQTV1RyxrQkFBK3ZHLENBQTF4TztBQUF1eU8sY0FBWSxnQkFBZ0IsR0FBRyxLQUFLLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRTtBQUFzTSxtQkFBaUIsSUFBSSxFQUFFO0FBQU07QUFDLzlTLENBRHNnRCxRQUM3L0MsQ0FEc29GLGFBQ3huRixFQUFFO0FBQ3hCLFdBQVM7QUFDVjs7O0FDSEEsR0FBRyxDQUFDLGdCQUFnQixLQUFLLEVBQUUsSUFBSSxDQUFDO0FBQy9CLFdBQVM7QUFDVCxrQkFBZ0IsS0FBSyxJQUFJLEVBQUUsSUFBSTtBQUMvQixnQkFBYyxLQUFLLElBQUk7QUFDdkIsY0FBWSxJQUFJLDBCQUEwQixNQUFNLElBQUk7QUFDcEQsaUJBQWU7QUFDaEI7QUFDQSxHQUFHLENBUEMsZUFPZSxDQUFDLG1CQUFtQixLQUFLLEVBQUUsSUFBSSxDQVBsQjtBQVEvQixvQkFBa0I7QUFDbEIsb0JBQWtCO0FBQ25CO0FBQ0EsR0FBRyxDQVhDLGVBV2UsT0FBTyxLQUFLLEVBQUUsSUFBSSxDQVhMO0FBWS9CLGlCQUFlO0FBQ2hCO0FBQ0EsR0FBRyxDQWRDLGdCQWNnQixLQUFLLEVBQUUsSUFBSSxDQWRDLGdCQWNnQixLQUFLLENBQUM7QUFDbEQsV0FBUyxJQUFJO0FBQ2hCLGdCQUFjO0FBQ2QsZ0JBQWM7QUFDWCxnQkFBYyxJQUFJO0FBQ3JCLGlCQUFlO0FBQ1osb0JBQWtCLElBQUk7QUFDdEIsU0FBTyxJQUFJO0FBQ2Y7QUFDQSxHQUFHLENBdkJDLGdCQXVCZ0IsS0FBSyxFQUFFLElBQUksQ0F2QkMsZ0JBdUJnQjtBQUMvQyxXQUFTO0FBQ1Y7QUFDQSxHQUFHLENBMUJDLGdCQTBCZ0IsTUFBTSxDQUFDO0FBQzFCLG1DQUFpQztBQUNqQyxxQkFBbUI7QUFDbkIsVUFBUTtBQUNSLGlCQUFlO0FBQ2hCO0FBQ0EsR0FBRyxDQWhDQyxlQWdDZSxDQXpCQyxtQkF5Qm1CLE1BQU0sQ0FObEI7QUFPMUIsT0FBSztBQUNOO0FBQ0EsR0FBRyxDQW5DQyxnQkFtQ2dCLE1BQU0sQ0FUQyxlQVNlO0FBQ3pDLFdBQVM7QUFDVCxTQUFPO0FBQ1AsVUFBUTtBQUNSLGlCQUFlO0FBQ2Ysb0JBQWtCLElBQUk7QUFDdEIsV0FBUztBQUNULHNCQUFvQjtBQUNwQixjQUFZO0FBQ1osdUJBQXFCO0FBQ3JCLGVBQWE7QUFDYixrQkFBZ0I7QUFDakI7QUFDQSxHQUFHLENBaERDLGdCQWdEZ0IsTUFBTSxDQUFDO0FBQzNCLEdBQUcsQ0FqREMsZ0JBaURnQixNQUFNLENBQUM7QUFDMUIsV0FBUztBQUNWO0FBQ0EsR0FBRyxDQXBEQyxnQkFvRGdCLE1BQU0sQ0FBQztBQUMxQixVQUFRO0FBQ1IsaUJBQWU7QUFDZixlQUFhLEtBQUssSUFBSSx5QkFBeUIsRUFBRTtBQUNqRCxhQUFXLElBQUk7QUFDZixlQUFhLFlBQVksRUFBRTtBQUM1QjtBQUNBLEdBQUcsQ0EzREMsZ0JBMkRnQixNQUFNLENBUEMsWUFPWTtBQUN0QyxXQUFTO0FBQ1QsU0FBTztBQUNQLFVBQVE7QUFDUixpQkFBZTtBQUNmLG9CQUFrQixJQUFJO0FBQ3RCLFdBQVM7QUFDVCxzQkFBb0I7QUFDcEIsY0FBWTtBQUNaLHVCQUFxQjtBQUNyQixlQUFhO0FBQ2Isa0JBQWdCO0FBQ2pCO0FBQ0EsR0FBRyxDQXhFQyxnQkF3RWdCLE1BQU0sQ0FwQkMsWUFvQlksS0FBSztBQUMzQyxhQUFXLGVBQWUsSUFBSTtBQUMvQjtBQUNBLEdBQUcsQ0EzRUMsZ0JBMkVnQixNQUFNLENBdkJDLFlBdUJZO0FBQ3RDLGdCQUFjLElBQUk7QUFDbEIsYUFBVyxnQkFBZ0IsSUFBSTtBQUMvQixvQkFBa0I7QUFDbEIsYUFBVyxJQUFJO0FBQ2hCO0FBQ0EsR0FBRyxDQWpGQyxnQkFpRmdCLE1BQU0sQ0E3QkMsWUE2Qlk7QUFDdEMsU0FBTztBQUNQLGNBQVksTUFBTSxJQUFJLG1CQUFtQixhQUFhLEdBQUcsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFO0FBQ3ZFO0FBQ0EsQ0FBQyxzQkFBc0IsQ0FBQyxvQkFBb0IsQ0FBQztBQUM1QyxXQUFTO0FBQ1QsY0FBWTtBQUNaLFNBQU87QUFDUjtBQUNBLENBTEMsc0JBS3NCLENBTEMsb0JBS29CLENBTEMsb0JBS29CO0FBQ2hFLGNBQVk7QUFDYjtBQUNBLENBUkMsc0JBUXNCLENBUkMsb0JBUW9CLENBUkMscUJBUXFCO0FBQ2pFLFNBQU8sSUFBSTtBQUNaO0FBQ0EsQ0FYQyxzQkFXc0IsQ0FYQyxvQkFXb0IsQ0FYQyxxQkFXcUIsR0FBRztBQUNwRSxTQUFPLElBQUk7QUFDWjtBQUNBLENBZEMsc0JBY3NCLENBZEMsb0JBY29CLENBZEMsb0JBY29CLENBQUM7QUFDakUsYUFBVyxXQUFXO0FBQ3ZCO0FBR0EsQ0FBQyx1QkFBdUIsR0FBRyxDQXhHdkIsZ0JBd0d3QztBQUMzQyxlQUFhO0FBQ2Q7QUFDQSxHQUFHLENBM0dDLGdCQTJHZ0IsSUFBSSxDQUFDO0FBQ3pCLEdBQUcsQ0E1R0MsZ0JBNEdnQixHQUFHLENBQUM7QUFDdkIsV0FBUztBQUNWO0FBQ0EsQ0FBQyxvQkFBb0IsQ0FBQyxRQUFRLENBQUMsZUFBZSxDQTFCN0MsdUJBMEJxRSxFQUFFLENBQUMsaUJBQWlCO0FBQ3pGLGdCQUFjO0FBQ2QsV0FBUztBQUNULGFBQVcsSUFBSTtBQUNoQjtBQUNBLENBTEMsb0JBS29CLENBTEMsUUFLUSxDQUxDLGNBS2MsS0FBSyxRQUFRLENBL0J6RCx1QkErQmlGLEVBQUUsQ0FMWDtBQU14RSxXQUFTO0FBQ1QsY0FBWTtBQUNiO0FBQ0EsQ0FUQyxvQkFTb0IsQ0FUQyxRQVNRLENBVEMsZUFTZSxDQW5DN0MsdUJBbUNxRSxFQUFFLENBVEM7QUFVeEUsbUNBQWlDLEtBQUssSUFBSSxFQUFFLElBQUk7QUFDaEQscUJBQW1CO0FBQ25CLGdCQUFjLFFBQVEsRUFBRSxDQUFDLEVBQUUsS0FBSyxDQUFDLEVBQUUsS0FBSyxJQUFJLEVBQUUsRUFBRTtBQUNoRCxXQUFTO0FBQ1QsT0FBSyxJQUFJLEtBQUssSUFBSSxFQUFFLElBQUksb0JBQW9CLEVBQUUsRUFBRSxFQUFDLEtBQUssSUFBSSxFQUFFLElBQUksd0JBQXdCLEVBQUU7QUFDMUYsV0FBUztBQUNULFVBQVE7QUFDUixnQkFBYyxLQUFLLElBQUksaUNBQWlDLEVBQUUsSUFBSTtBQUM5RCxhQUFXLElBQUk7QUFDZixXQUFTO0FBQ1QsYUFBVyxXQUFXO0FBQ25CLGNBQVksV0FBVyxJQUFJLGtCQUFrQixFQUFFLFFBQVEsSUFBSTtBQUM5RCxjQUFZO0FBQ1osZUFBYSxZQUFZLEVBQUU7QUFDNUI7QUFDQSxLQUFLLENBekIwQixlQXlCVixDQW5EcEIsc0JBbUQyQyxLQUFNLEdBQUcsQ0F4SWpELGdCQXdJa0UsQ0FBQyxxQ0FBcUMsRUFBRSxDQXpCckM7QUEwQnhFLG1DQUFpQztBQUNqQyxPQUFLLEtBQUssSUFBSSxFQUFFLElBQUksa0JBQWtCLEVBQUUsTUFBTSxFQUFFLElBQUk7QUFDckQ7QUFDQSxDQTdCQyxvQkE2Qm9CLENBN0JDLFFBNkJRLENBN0JDLGNBNkJjLE9BQU8sQ0F2RG5ELHVCQXVEMkUsRUFBRSxDQTdCTCxpQkE2QnVCO0FBQy9GLGdCQUFjLElBQUk7QUFDbEIsYUFBVyxnQkFBZ0IsSUFBSTtBQUMvQixjQUFZO0FBQ1osYUFBVyxJQUFJO0FBQ2hCO0FBQ0EsQ0FuQ0Msb0JBbUNvQixDQW5DQyxRQW1DUSxDQW5DQyxjQW1DYyxPQUFPLENBN0RuRCx1QkE2RDJFLEVBQUUsQ0FuQ0wsaUJBbUN1QjtBQUMvRixTQUFPO0FBQ1AsY0FBWSxNQUFNLElBQUksbUJBQW1CLGFBQWEsR0FBRyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUU7QUFDdkU7QUFHQSxHQUFHLENBQUMsdUJBQXVCLEdBQUcsQ0F4SjFCLGdCQXdKMkMsTUFBTSxDQUFDO0FBQ3JELFVBQVE7QUFDUixnQkFBYyxLQUFLLElBQUksaUNBQWlDLEVBQUUsSUFBSTtBQUMvRDtBQUNBLEdBQUcsQ0FKQyx1QkFJdUIsR0FBRyxDQTVKMUIsZ0JBNEoyQyxNQUFNLENBSkMsZ0JBSWdCO0FBQ3JFLGdCQUFjLElBQUk7QUFDbkI7IiwKICAibmFtZXMiOiBbXQp9Cg== */