@citolab/qti-components 6.9.1-beta.49 → 6.9.1-beta.50
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chunk-IRTOORT6.js +24 -0
- package/dist/custom-elements.json +428 -178
- package/dist/index.global.js +1 -1
- package/dist/index.js +1 -1
- package/dist/qti-components/index.js +1 -1
- package/dist/qti-loader/index.d.ts +6 -1
- package/dist/qti-loader/index.js +2 -2
- package/dist/qti-transformers/index.d.ts +2 -0
- package/dist/qti-transformers/index.js +1 -1
- package/package.json +1 -1
- package/dist/chunk-JOALQWA3.js +0 -24
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
var T=String.raw,b=T`<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
|
|
2
|
+
<xsl:output method="html" version="5.0" encoding="UTF-8" indent="yes" />
|
|
3
|
+
<xsl:template match="@*|node()">
|
|
4
|
+
<xsl:copy>
|
|
5
|
+
<xsl:apply-templates select="@*|node()"/>
|
|
6
|
+
</xsl:copy>
|
|
7
|
+
</xsl:template>
|
|
8
|
+
|
|
9
|
+
<!-- remove existing namespaces -->
|
|
10
|
+
<xsl:template match="*">
|
|
11
|
+
<!-- remove element prefix -->
|
|
12
|
+
<xsl:element name="{local-name()}">
|
|
13
|
+
<!-- process attributes -->
|
|
14
|
+
<xsl:for-each select="@*">
|
|
15
|
+
<!-- remove attribute prefix -->
|
|
16
|
+
<xsl:attribute name="{local-name()}">
|
|
17
|
+
<xsl:value-of select="."/>
|
|
18
|
+
</xsl:attribute>
|
|
19
|
+
</xsl:for-each>
|
|
20
|
+
<xsl:apply-templates/>
|
|
21
|
+
</xsl:element>
|
|
22
|
+
</xsl:template>
|
|
23
|
+
</xsl:stylesheet>`;function p(e,r,t){e.querySelectorAll(r).forEach(n=>{let s=`${r}-${t}`,o=x(n,s);n.replaceWith(o)})}function g(e,r){e.querySelectorAll("*").forEach(t=>{let n=t.classList;n&&n.forEach(s=>{if(s.startsWith(`${r}:`)){let o=s.slice(`${r}:`.length),i=`${t.nodeName}-${o}`,c=x(t,i);t.replaceWith(c)}})})}function x(e,r){let t=document.createElement(r);for(let n of e.attributes)t.setAttribute(n.name,n.value);for(;e.firstChild;)t.appendChild(e.firstChild);return t}function h(e){let r=[];return e.querySelectorAll("qti-assessment-item-ref").forEach(t=>{let n=t.getAttribute("identifier"),s=t.getAttribute("href"),o=t.getAttribute("category");r.push({identifier:n,href:s,category:o})}),r}var f=null;function a(e,r=!0){return r&&f!==null&&f.abort(),new Promise((t,n)=>{let s=new XMLHttpRequest;f=s,s.open("GET",e,!0),s.responseType="document",s.onload=()=>{s.status>=200&&s.status<300?t(s.responseXML):n(s.statusText)},s.onerror=()=>{n(s.statusText)},s.send()})}function m(e){return new DOMParser().parseFromString(e,"text/xml")}function l(e){let r=new XSLTProcessor,t=new DOMParser().parseFromString(b,"text/xml");return r.importStylesheet(t),r.transformToFragment(e,document)}function d(e,r){r.endsWith("/")||(r+="/"),e.querySelectorAll("[src],[href],[primary-path]").forEach(t=>{var o;let n="";t.getAttribute("src")&&(n="src"),t.getAttribute("href")&&(n="href"),t.getAttribute("primary-path")&&(n="primary-path");let s=(o=t.getAttribute(n))==null?void 0:o.trim();if(!s.startsWith("data:")&&!s.startsWith("http")){let i=r+encodeURI(s);t.setAttribute(n,i)}})}function A(e){e.querySelectorAll('qti-custom-operator[class="js.org"] > qti-base-value').forEach(t=>{let n=document.createComment(t.textContent);t.replaceChild(n,t.firstChild)})}function y(e){e.querySelectorAll("qti-stylesheet").forEach(r=>r.remove())}var S=()=>{let e,r={async load(t,n=!1){return new Promise((s,o)=>{a(t,n).then(i=>(e=i,s(r)))})},parse(t){return e=m(t),r},path:t=>(d(e,t),r),fn(t){return t(e),r},pciHooks(t){let n=["hook","module"],s=t.substring(0,t.lastIndexOf("/"));for(let o of n)e.querySelectorAll("["+o+"]").forEach(c=>{let u=c.getAttribute(o);!u.startsWith("data:")&&!u.startsWith("http")&&(c.setAttribute("base-url",t),c.setAttribute("module",s+"/"+encodeURI(u+(u.endsWith(".js")?"":".js"))))});return r},extendElementName:(t,n)=>(p(e,t,n),r),extendElementsWithClass:(t="extend")=>(g(e,t),r),customInteraction(t,n){let s=e.querySelector("qti-custom-interaction"),o=s.querySelector("object");return s.setAttribute("data-base-ref",t),s.setAttribute("data-base-item",t+n),s.setAttribute("data",o.getAttribute("data")),s.setAttribute("width",o.getAttribute("width")),s.setAttribute("height",o.getAttribute("height")),s.removeChild(o),r},convertCDATAtoComment(){return A(e),r},stripStyleSheets(){return y(e),r},html(){return new XMLSerializer().serializeToString(l(e))},xml(){return new XMLSerializer().serializeToString(e)},htmldoc(){return l(e)},xmldoc(){return e}};return r};var w=()=>{let e,r={async load(t){return new Promise((n,s)=>{a(t).then(o=>(e=o,n(r)))})},parse(t){e=m(t)},assessmentTest(){let t=e.querySelector('resource[type="imsqti_test_xmlv3p0"]');return{href:t.getAttribute("href"),identifier:t.getAttribute("identifier")}}};return r};var F=()=>{let e,r={async load(t){return new Promise((n,s)=>{a(t).then(o=>(e=o,n(r)))})},parse(t){return e=m(t),r},extendElementName:(t,n)=>(p(e,t,n),r),fn(t){return t(e),r},items(){return h(e)},html(){return new XMLSerializer().serializeToString(l(e))},xml(){return new XMLSerializer().serializeToString(e)},htmldoc(){return l(e)},xmldoc(){return e}};return r};export{S as a,w as b,F as c};
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vc3JjL2xpYi9xdGktdHJhbnNmb3JtZXJzL3F0aS10cmFuc2Zvcm1lcnMudHMiLCAiLi4vc3JjL2xpYi9xdGktdHJhbnNmb3JtZXJzL3F0aS10cmFuc2Zvcm0taXRlbS50cyIsICIuLi9zcmMvbGliL3F0aS10cmFuc2Zvcm1lcnMvcXRpLXRyYW5zZm9ybS1tYW5pZmVzdC50cyIsICIuLi9zcmMvbGliL3F0aS10cmFuc2Zvcm1lcnMvcXRpLXRyYW5zZm9ybS10ZXN0LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJjb25zdCB4bWwgPSBTdHJpbmcucmF3O1xuXG4vKiAgIDwhLS0gY29udmVydCBDREFUQSB0byBjb21tZW50cyAtLT5cbiAgPHhzbDp0ZW1wbGF0ZSBtYXRjaD1cInRleHQoKVtjb250YWlucyguLCAnQ0RBVEEnKV1cIj5cbiAgPHhzbDpjb21tZW50PlxuICAgIDx4c2w6dmFsdWUtb2Ygc2VsZWN0PVwiLlwiLz5cbiAgPC94c2w6Y29tbWVudD5cbjwveHNsOnRlbXBsYXRlPlxuKi9cblxuLypcbiAgPCEtLSByZW1vdmUgeG1sIGNvbW1lbnRzIC0tPlxuICA8eHNsOnRlbXBsYXRlIG1hdGNoPVwiY29tbWVudCgpXCIgLz5cbiAgKi9cblxuY29uc3QgeG1sVG9IVE1MID0geG1sYDx4c2w6c3R5bGVzaGVldCB2ZXJzaW9uPVwiMS4wXCIgeG1sbnM6eHNsPVwiaHR0cDovL3d3dy53My5vcmcvMTk5OS9YU0wvVHJhbnNmb3JtXCI+XG48eHNsOm91dHB1dCBtZXRob2Q9XCJodG1sXCIgdmVyc2lvbj1cIjUuMFwiIGVuY29kaW5nPVwiVVRGLThcIiBpbmRlbnQ9XCJ5ZXNcIiAvPlxuICA8eHNsOnRlbXBsYXRlIG1hdGNoPVwiQCp8bm9kZSgpXCI+XG4gICAgPHhzbDpjb3B5PlxuICAgICAgPHhzbDphcHBseS10ZW1wbGF0ZXMgc2VsZWN0PVwiQCp8bm9kZSgpXCIvPlxuICAgIDwveHNsOmNvcHk+XG4gIDwveHNsOnRlbXBsYXRlPlxuXG4gIDwhLS0gcmVtb3ZlIGV4aXN0aW5nIG5hbWVzcGFjZXMgLS0+XG4gIDx4c2w6dGVtcGxhdGUgbWF0Y2g9XCIqXCI+XG4gICAgPCEtLSByZW1vdmUgZWxlbWVudCBwcmVmaXggLS0+XG4gICAgPHhzbDplbGVtZW50IG5hbWU9XCJ7bG9jYWwtbmFtZSgpfVwiPlxuICAgICAgPCEtLSBwcm9jZXNzIGF0dHJpYnV0ZXMgLS0+XG4gICAgICA8eHNsOmZvci1lYWNoIHNlbGVjdD1cIkAqXCI+XG4gICAgICAgIDwhLS0gcmVtb3ZlIGF0dHJpYnV0ZSBwcmVmaXggLS0+XG4gICAgICAgIDx4c2w6YXR0cmlidXRlIG5hbWU9XCJ7bG9jYWwtbmFtZSgpfVwiPlxuICAgICAgICAgIDx4c2w6dmFsdWUtb2Ygc2VsZWN0PVwiLlwiLz5cbiAgICAgICAgPC94c2w6YXR0cmlidXRlPlxuICAgICAgPC94c2w6Zm9yLWVhY2g+XG4gICAgPHhzbDphcHBseS10ZW1wbGF0ZXMvPlxuICA8L3hzbDplbGVtZW50PlxuPC94c2w6dGVtcGxhdGU+XG48L3hzbDpzdHlsZXNoZWV0PmA7XG5cbi8vIEZ1bmN0aW9uIHRvIGV4dGVuZCBlbGVtZW50cyB3aXRoIGEgc3BlY2lmaWMgdGFnIG5hbWUgYnkgYWRkaW5nIGFuIGV4dGVuc2lvbiBzdWZmaXhcbmV4cG9ydCBmdW5jdGlvbiBleHRlbmRFbGVtZW50TmFtZSh4bWxGcmFnbWVudDogWE1MRG9jdW1lbnQsIHRhZ05hbWU6IHN0cmluZywgZXh0ZW5zaW9uOiBzdHJpbmcpIHtcbiAgeG1sRnJhZ21lbnQucXVlcnlTZWxlY3RvckFsbCh0YWdOYW1lKS5mb3JFYWNoKGVsZW1lbnQgPT4ge1xuICAgIGNvbnN0IG5ld1RhZ05hbWUgPSBgJHt0YWdOYW1lfS0ke2V4dGVuc2lvbn1gO1xuICAgIGNvbnN0IG5ld0VsZW1lbnQgPSBjcmVhdGVFbGVtZW50V2l0aE5ld1RhZ05hbWUoZWxlbWVudCwgbmV3VGFnTmFtZSk7XG4gICAgZWxlbWVudC5yZXBsYWNlV2l0aChuZXdFbGVtZW50KTtcbiAgfSk7XG59XG5cbi8vIEZ1bmN0aW9uIHRvIGV4dGVuZCBhbnkgZWxlbWVudCB3aXRoIGEgc3BlY2lmaWMgY2xhc3MgcGF0dGVybiAoZS5nLiwgXCJleHRlbmQ6c3VmZml4XCIpXG5leHBvcnQgZnVuY3Rpb24gZXh0ZW5kRWxlbWVudHNXaXRoQ2xhc3MoeG1sRnJhZ21lbnQ6IFhNTERvY3VtZW50LCBjbGFzc05hbWVQYXR0ZXJuOiBzdHJpbmcpIHtcbiAgeG1sRnJhZ21lbnQucXVlcnlTZWxlY3RvckFsbCgnKicpLmZvckVhY2goZWxlbWVudCA9PiB7XG4gICAgY29uc3QgY2xhc3NMaXN0ID0gZWxlbWVudC5jbGFzc0xpc3Q7XG4gICAgaWYgKGNsYXNzTGlzdCkge1xuICAgICAgY2xhc3NMaXN0LmZvckVhY2goY2xhc3NOYW1lID0+IHtcbiAgICAgICAgaWYgKGNsYXNzTmFtZS5zdGFydHNXaXRoKGAke2NsYXNzTmFtZVBhdHRlcm59OmApKSB7XG4gICAgICAgICAgY29uc3Qgc3VmZml4ID0gY2xhc3NOYW1lLnNsaWNlKGAke2NsYXNzTmFtZVBhdHRlcm59OmAubGVuZ3RoKTtcbiAgICAgICAgICBjb25zdCBuZXdUYWdOYW1lID0gYCR7ZWxlbWVudC5ub2RlTmFtZX0tJHtzdWZmaXh9YDtcbiAgICAgICAgICBjb25zdCBuZXdFbGVtZW50ID0gY3JlYXRlRWxlbWVudFdpdGhOZXdUYWdOYW1lKGVsZW1lbnQsIG5ld1RhZ05hbWUpO1xuICAgICAgICAgIGVsZW1lbnQucmVwbGFjZVdpdGgobmV3RWxlbWVudCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfSk7XG59XG5cbi8vIEhlbHBlciBmdW5jdGlvbiB0byBjcmVhdGUgYSBuZXcgZWxlbWVudCB3aXRoIGEgbmV3IHRhZyBuYW1lIGFuZCBjb3B5IGF0dHJpYnV0ZXMgYW5kIGNoaWxkcmVuXG5mdW5jdGlvbiBjcmVhdGVFbGVtZW50V2l0aE5ld1RhZ05hbWUoZWxlbWVudCwgbmV3VGFnTmFtZSkge1xuICBjb25zdCBuZXdFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChuZXdUYWdOYW1lKTtcbiAgLy8gQ29weSBhdHRyaWJ1dGVzXG4gIGZvciAoY29uc3QgYXR0ciBvZiBlbGVtZW50LmF0dHJpYnV0ZXMpIHtcbiAgICBuZXdFbGVtZW50LnNldEF0dHJpYnV0ZShhdHRyLm5hbWUsIGF0dHIudmFsdWUpO1xuICB9XG4gIC8vIENvcHkgY2hpbGQgbm9kZXNcbiAgd2hpbGUgKGVsZW1lbnQuZmlyc3RDaGlsZCkge1xuICAgIG5ld0VsZW1lbnQuYXBwZW5kQ2hpbGQoZWxlbWVudC5maXJzdENoaWxkKTtcbiAgfVxuICByZXR1cm4gbmV3RWxlbWVudDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGl0ZW1zRnJvbVRlc3QoeG1sRnJhZ21lbnQ6IERvY3VtZW50RnJhZ21lbnQpIHtcbiAgY29uc3QgaXRlbXM6IHsgaWRlbnRpZmllcjogc3RyaW5nOyBocmVmOiBzdHJpbmc7IGNhdGVnb3J5OiBzdHJpbmcgfVtdID0gW107XG4gIHhtbEZyYWdtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ3F0aS1hc3Nlc3NtZW50LWl0ZW0tcmVmJykuZm9yRWFjaChlbCA9PiB7XG4gICAgY29uc3QgaWRlbnRpZmllciA9IGVsLmdldEF0dHJpYnV0ZSgnaWRlbnRpZmllcicpO1xuICAgIGNvbnN0IGhyZWYgPSBlbC5nZXRBdHRyaWJ1dGUoJ2hyZWYnKTtcbiAgICBjb25zdCBjYXRlZ29yeSA9IGVsLmdldEF0dHJpYnV0ZSgnY2F0ZWdvcnknKTtcbiAgICBpdGVtcy5wdXNoKHsgaWRlbnRpZmllciwgaHJlZiwgY2F0ZWdvcnkgfSk7XG4gIH0pO1xuICByZXR1cm4gaXRlbXM7XG59XG5cbmxldCBjdXJyZW50UmVxdWVzdDogWE1MSHR0cFJlcXVlc3QgfCBudWxsID0gbnVsbDtcblxuZXhwb3J0IGZ1bmN0aW9uIGxvYWRYTUwodXJsLCBjYW5jZWxQcmV2aW91c1JlcXVlc3QgPSB0cnVlKSB7XG4gIGlmIChjYW5jZWxQcmV2aW91c1JlcXVlc3QgJiYgY3VycmVudFJlcXVlc3QgIT09IG51bGwpIHtcbiAgICBjdXJyZW50UmVxdWVzdC5hYm9ydCgpOyAvLyBBYm9ydCB0aGUgb25nb2luZyByZXF1ZXN0IGlmIHRoZXJlIGlzIG9uZVxuICB9XG5cbiAgcmV0dXJuIG5ldyBQcm9taXNlPFhNTERvY3VtZW50IHwgbnVsbD4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIGNvbnN0IHhociA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpO1xuICAgIGN1cnJlbnRSZXF1ZXN0ID0geGhyOyAvLyBTdG9yZSB0aGUgY3VycmVudCByZXF1ZXN0XG5cbiAgICB4aHIub3BlbignR0VUJywgdXJsLCB0cnVlKTtcbiAgICB4aHIucmVzcG9uc2VUeXBlID0gJ2RvY3VtZW50JztcblxuICAgIHhoci5vbmxvYWQgPSAoKSA9PiB7XG4gICAgICBpZiAoeGhyLnN0YXR1cyA+PSAyMDAgJiYgeGhyLnN0YXR1cyA8IDMwMCkge1xuICAgICAgICByZXNvbHZlKHhoci5yZXNwb25zZVhNTCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZWplY3QoeGhyLnN0YXR1c1RleHQpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICB4aHIub25lcnJvciA9ICgpID0+IHtcbiAgICAgIHJlamVjdCh4aHIuc3RhdHVzVGV4dCk7XG4gICAgfTtcblxuICAgIHhoci5zZW5kKCk7XG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VYTUwoeG1sRG9jdW1lbnQ6IHN0cmluZykge1xuICBjb25zdCBwYXJzZXIgPSBuZXcgRE9NUGFyc2VyKCk7XG4gIGNvbnN0IHhtbEZyYWdtZW50ID0gcGFyc2VyLnBhcnNlRnJvbVN0cmluZyh4bWxEb2N1bWVudCwgJ3RleHQveG1sJyk7XG4gIHJldHVybiB4bWxGcmFnbWVudDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRvSFRNTCh4bWxGcmFnbWVudDogRG9jdW1lbnQpOiBEb2N1bWVudEZyYWdtZW50IHtcbiAgY29uc3QgcHJvY2Vzc29yID0gbmV3IFhTTFRQcm9jZXNzb3IoKTtcbiAgY29uc3QgeHNsdERvY3VtZW50ID0gbmV3IERPTVBhcnNlcigpLnBhcnNlRnJvbVN0cmluZyh4bWxUb0hUTUwsICd0ZXh0L3htbCcpO1xuICBwcm9jZXNzb3IuaW1wb3J0U3R5bGVzaGVldCh4c2x0RG9jdW1lbnQpO1xuICBjb25zdCBpdGVtSFRNTEZyYWdtZW50ID0gcHJvY2Vzc29yLnRyYW5zZm9ybVRvRnJhZ21lbnQoeG1sRnJhZ21lbnQsIGRvY3VtZW50KTtcbiAgcmV0dXJuIGl0ZW1IVE1MRnJhZ21lbnQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXRMb2NhdGlvbih4bWxGcmFnbWVudDogRG9jdW1lbnRGcmFnbWVudCwgbG9jYXRpb246IHN0cmluZykge1xuICBpZiAoIWxvY2F0aW9uLmVuZHNXaXRoKCcvJykpIHtcbiAgICBsb2NhdGlvbiArPSAnLyc7XG4gIH1cblxuICB4bWxGcmFnbWVudC5xdWVyeVNlbGVjdG9yQWxsKCdbc3JjXSxbaHJlZl0sW3ByaW1hcnktcGF0aF0nKS5mb3JFYWNoKGVsV2l0aFNyYyA9PiB7XG4gICAgbGV0IGF0dHI6ICdzcmMnIHwgJ2hyZWYnIHwgJ3ByaW1hcnktcGF0aCcgfCAnJyA9ICcnO1xuXG4gICAgaWYgKGVsV2l0aFNyYy5nZXRBdHRyaWJ1dGUoJ3NyYycpKSB7XG4gICAgICBhdHRyID0gJ3NyYyc7XG4gICAgfVxuICAgIGlmIChlbFdpdGhTcmMuZ2V0QXR0cmlidXRlKCdocmVmJykpIHtcbiAgICAgIGF0dHIgPSAnaHJlZic7XG4gICAgfVxuICAgIGlmIChlbFdpdGhTcmMuZ2V0QXR0cmlidXRlKCdwcmltYXJ5LXBhdGgnKSkge1xuICAgICAgYXR0ciA9ICdwcmltYXJ5LXBhdGgnO1xuICAgIH1cbiAgICBjb25zdCBhdHRyVmFsdWUgPSBlbFdpdGhTcmMuZ2V0QXR0cmlidXRlKGF0dHIpPy50cmltKCk7XG5cbiAgICBpZiAoIWF0dHJWYWx1ZS5zdGFydHNXaXRoKCdkYXRhOicpICYmICFhdHRyVmFsdWUuc3RhcnRzV2l0aCgnaHR0cCcpKSB7XG4gICAgICBjb25zdCBuZXdTcmNWYWx1ZSA9IGxvY2F0aW9uICsgZW5jb2RlVVJJKGF0dHJWYWx1ZSk7XG4gICAgICBlbFdpdGhTcmMuc2V0QXR0cmlidXRlKGF0dHIsIG5ld1NyY1ZhbHVlKTtcbiAgICB9XG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY29udmVydENEQVRBdG9Db21tZW50KHhtbEZyYWdtZW50OiBEb2N1bWVudEZyYWdtZW50KSB7XG4gIGNvbnN0IGNkYXRhRWxlbWVudHMgPSB4bWxGcmFnbWVudC5xdWVyeVNlbGVjdG9yQWxsKCdxdGktY3VzdG9tLW9wZXJhdG9yW2NsYXNzPVwianMub3JnXCJdID4gcXRpLWJhc2UtdmFsdWUnKTtcbiAgY2RhdGFFbGVtZW50cy5mb3JFYWNoKGVsZW1lbnQgPT4ge1xuICAgIGNvbnN0IGNvbW1lbnRUZXh0ID0gZG9jdW1lbnQuY3JlYXRlQ29tbWVudChlbGVtZW50LnRleHRDb250ZW50KTtcbiAgICBlbGVtZW50LnJlcGxhY2VDaGlsZChjb21tZW50VGV4dCwgZWxlbWVudC5maXJzdENoaWxkKTtcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzdHJpcFN0eWxlU2hlZXRzKHhtbEZyYWdtZW50OiBEb2N1bWVudEZyYWdtZW50KSB7XG4gIC8vIHJlbW92ZSBxdGktc3R5bGVzaGVldCB0YWdcbiAgeG1sRnJhZ21lbnQucXVlcnlTZWxlY3RvckFsbCgncXRpLXN0eWxlc2hlZXQnKS5mb3JFYWNoKHN0eWxlc2hlZXQgPT4gc3R5bGVzaGVldC5yZW1vdmUoKSk7XG59XG4iLCAiXG5cbi8qKlxuICogQnJvd3NlciBiYXNlZCBRVEktWE1MIHRvIEhUTUwgdHJhbnNmb3JtZXIuXG4gKiBSZXR1cm5zIGFuIG9iamVjdCB3aXRoIG1ldGhvZHMgdG8gbG9hZCwgcGFyc2UsIHRyYW5zZm9ybSBhbmQgc2VyaWFsaXplIFFUSSBYTUwgaXRlbXMuXG4gKiBAcmV0dXJucyBBbiBvYmplY3Qgd2l0aCBtZXRob2RzIHRvIGxvYWQsIHBhcnNlLCB0cmFuc2Zvcm0gYW5kIHNlcmlhbGl6ZSBRVEkgWE1MIGl0ZW1zLlxuICogQGV4YW1wbGVcbiAqIGNvbnN0IHF0aVRyYW5zZm9ybWVyID0gcXRpVHJhbnNmb3JtSXRlbSgpO1xuICogYXdhaXQgcXRpVHJhbnNmb3JtZXIubG9hZCgncGF0aC90by94bWwvZmlsZS54bWwnKTtcbiAqIHF0aVRyYW5zZm9ybWVyLnBhdGgoJy9hc3Nlc3NtZW50SXRlbS9pdGVtQm9keScpO1xuICogY29uc3QgaHRtbCA9IHF0aVRyYW5zZm9ybWVyLmh0bWwoKTtcbiAqIGNvbnN0IHhtbCA9IHF0aVRyYW5zZm9ybWVyLnhtbCgpO1xuICogY29uc3QgaHRtbGRvYyA9IHF0aVRyYW5zZm9ybWVyLmh0bWxkb2MoKTtcbiAqIGNvbnN0IHhtbGRvYyA9IHF0aVRyYW5zZm9ybWVyLnhtbGRvYygpO1xuICpcbiAqIHF0aVRyYW5zZm9ybUl0ZW0oKS5wYXJzZShzdG9yeVhNTCkuaHRtbCgpXG4gKi9cblxuaW1wb3J0IHsgY29udmVydENEQVRBdG9Db21tZW50LCBleHRlbmRFbGVtZW50TmFtZSwgZXh0ZW5kRWxlbWVudHNXaXRoQ2xhc3MsIGxvYWRYTUwsIHBhcnNlWE1MLCBzZXRMb2NhdGlvbiwgc3RyaXBTdHlsZVNoZWV0cywgdG9IVE1MIH0gZnJvbSBcIi4vcXRpLXRyYW5zZm9ybWVyc1wiO1xuXG5leHBvcnQgdHlwZSB0cmFuc2Zvcm1JdGVtQXBpID0ge1xuICAgIGxvYWQ6ICh1cmk6IHN0cmluZywgY2FuY2VsUHJldmlvdXNSZXF1ZXN0PzogYm9vbGVhbikgPT4gUHJvbWlzZTx0cmFuc2Zvcm1JdGVtQXBpPjtcbiAgICBwYXJzZTogKHhtbFN0cmluZzogc3RyaW5nKSA9PiB0cmFuc2Zvcm1JdGVtQXBpO1xuICAgIHBhdGg6IChsb2NhdGlvbjogc3RyaW5nKSA9PiB0cmFuc2Zvcm1JdGVtQXBpO1xuICAgIGZuOiAoZm46ICh4bWxGcmFnbWVudDogWE1MRG9jdW1lbnQpID0+IHZvaWQpID0+IHRyYW5zZm9ybUl0ZW1BcGk7XG4gICAgcGNpSG9va3M6ICh1cmk6IHN0cmluZykgPT4gdHJhbnNmb3JtSXRlbUFwaTtcbiAgICBleHRlbmRFbGVtZW50TmFtZTogKGVsZW1lbnROYW1lOiBzdHJpbmcsIGV4dGVuZDogc3RyaW5nKSA9PiB0cmFuc2Zvcm1JdGVtQXBpO1xuICAgIGV4dGVuZEVsZW1lbnRzV2l0aENsYXNzOiAocGFyYW0/OiBzdHJpbmcpID0+IHRyYW5zZm9ybUl0ZW1BcGk7XG4gICAgY3VzdG9tSW50ZXJhY3Rpb246IChiYXNlUmVmOiBzdHJpbmcsIGJhc2VJdGVtOiBzdHJpbmcpID0+IHRyYW5zZm9ybUl0ZW1BcGk7XG4gICAgY29udmVydENEQVRBdG9Db21tZW50OiAoKSA9PiB0cmFuc2Zvcm1JdGVtQXBpO1xuICAgIHN0cmlwU3R5bGVTaGVldHM6ICgpID0+IHRyYW5zZm9ybUl0ZW1BcGk7XG4gICAgaHRtbDogKCkgPT4gc3RyaW5nO1xuICAgIHhtbDogKCkgPT4gc3RyaW5nO1xuICAgIGh0bWxkb2M6ICgpID0+IERvY3VtZW50RnJhZ21lbnQ7XG4gICAgeG1sZG9jOiAoKSA9PiBYTUxEb2N1bWVudDtcbiAgfTtcbiAgXG4gIGV4cG9ydCBjb25zdCBxdGlUcmFuc2Zvcm1JdGVtID0gKCkgPT4ge1xuICAgIGxldCB4bWxGcmFnbWVudDogWE1MRG9jdW1lbnQ7XG4gIFxuICAgIGNvbnN0IGFwaTogdHJhbnNmb3JtSXRlbUFwaSA9IHtcbiAgICAgIGFzeW5jIGxvYWQodXJpOiBzdHJpbmcsIGNhbmNlbFByZXZpb3VzUmVxdWVzdCA9IGZhbHNlKTogUHJvbWlzZTx0eXBlb2YgYXBpPiB7XG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZTx0eXBlb2YgYXBpPigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgICAgbG9hZFhNTCh1cmksIGNhbmNlbFByZXZpb3VzUmVxdWVzdCkudGhlbih4bWwgPT4ge1xuICAgICAgICAgICAgeG1sRnJhZ21lbnQgPSB4bWw7XG4gICAgICAgICAgICByZXR1cm4gcmVzb2x2ZShhcGkpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICAgIH0sXG4gICAgICBwYXJzZSh4bWxTdHJpbmc6IHN0cmluZyk6IHR5cGVvZiBhcGkge1xuICAgICAgICB4bWxGcmFnbWVudCA9IHBhcnNlWE1MKHhtbFN0cmluZyk7XG4gICAgICAgIHJldHVybiBhcGk7XG4gICAgICB9LFxuICAgICAgcGF0aDogKGxvY2F0aW9uOiBzdHJpbmcpOiB0eXBlb2YgYXBpID0+IHtcbiAgICAgICAgc2V0TG9jYXRpb24oeG1sRnJhZ21lbnQsIGxvY2F0aW9uKTtcbiAgICAgICAgcmV0dXJuIGFwaTtcbiAgICAgIH0sXG4gICAgICBmbihmbjogKHhtbEZyYWdtZW50OiBYTUxEb2N1bWVudCkgPT4gdm9pZCk6IHR5cGVvZiBhcGkge1xuICAgICAgICBmbih4bWxGcmFnbWVudCk7XG4gICAgICAgIHJldHVybiBhcGk7XG4gICAgICB9LFxuICAgICAgcGNpSG9va3ModXJpOiBzdHJpbmcpOiB0eXBlb2YgYXBpIHtcbiAgICAgICAgY29uc3QgYXR0cmlidXRlcyA9IFsnaG9vaycsICdtb2R1bGUnXTtcbiAgICAgICAgY29uc3QgZG9jdW1lbnRQYXRoID0gdXJpLnN1YnN0cmluZygwLCB1cmkubGFzdEluZGV4T2YoJy8nKSk7XG4gICAgICAgIGZvciAoY29uc3QgYXR0cmlidXRlIG9mIGF0dHJpYnV0ZXMpIHtcbiAgICAgICAgICBjb25zdCBzcmNBdHRyaWJ1dGVzID0geG1sRnJhZ21lbnQucXVlcnlTZWxlY3RvckFsbCgnWycgKyBhdHRyaWJ1dGUgKyAnXScpO1xuICAgICAgICAgIHNyY0F0dHJpYnV0ZXMuZm9yRWFjaChub2RlID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHNyY1ZhbHVlID0gbm9kZS5nZXRBdHRyaWJ1dGUoYXR0cmlidXRlKSE7XG4gICAgICAgICAgICBpZiAoIXNyY1ZhbHVlLnN0YXJ0c1dpdGgoJ2RhdGE6JykgJiYgIXNyY1ZhbHVlLnN0YXJ0c1dpdGgoJ2h0dHAnKSkge1xuICAgICAgICAgICAgICAvLyBKdXN0IHBhc3RlIHRoZSByZWxhdGl2ZSBwYXRoIG9mIHRoZSBzcmMgbG9jYXRpb24gYWZ0ZXIgdGhlIGRvY3VtZW50cm9vdFBhdGhcbiAgICAgICAgICAgICAgLy8gb2xkIHBjaXMgY2FuIGhhdmUgYSAuanMsIG5ldyBwY2kncyBkb24ndFxuICAgICAgICAgICAgICBub2RlLnNldEF0dHJpYnV0ZSgnYmFzZS11cmwnLCB1cmkpO1xuICAgICAgICAgICAgICBub2RlLnNldEF0dHJpYnV0ZShcbiAgICAgICAgICAgICAgICAnbW9kdWxlJyxcbiAgICAgICAgICAgICAgICBkb2N1bWVudFBhdGggKyAnLycgKyBlbmNvZGVVUkkoc3JjVmFsdWUgKyAoc3JjVmFsdWUuZW5kc1dpdGgoJy5qcycpID8gJycgOiAnLmpzJykpXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGFwaTtcbiAgICAgIH0sXG4gICAgICBleHRlbmRFbGVtZW50TmFtZTogKHRhZ05hbWU6IHN0cmluZywgZXh0ZW5zaW9uOiBzdHJpbmcpOiB0eXBlb2YgYXBpID0+IHtcbiAgICAgICAgZXh0ZW5kRWxlbWVudE5hbWUoeG1sRnJhZ21lbnQsIHRhZ05hbWUsIGV4dGVuc2lvbik7XG4gICAgICAgIHJldHVybiBhcGk7XG4gICAgICB9LFxuICAgICAgZXh0ZW5kRWxlbWVudHNXaXRoQ2xhc3M6IChwYXJhbTogc3RyaW5nID0gJ2V4dGVuZCcpOiB0eXBlb2YgYXBpID0+IHtcbiAgICAgICAgZXh0ZW5kRWxlbWVudHNXaXRoQ2xhc3MoeG1sRnJhZ21lbnQsIHBhcmFtKTtcbiAgICAgICAgcmV0dXJuIGFwaTtcbiAgICAgIH0sXG4gICAgICBjdXN0b21JbnRlcmFjdGlvbihiYXNlUmVmOiBzdHJpbmcsIGJhc2VJdGVtOiBzdHJpbmcpOiB0eXBlb2YgYXBpIHtcbiAgICAgICAgY29uc3QgcXRpQ3VzdG9tSW50ZXJhY3Rpb24gPSB4bWxGcmFnbWVudC5xdWVyeVNlbGVjdG9yKCdxdGktY3VzdG9tLWludGVyYWN0aW9uJyk7XG4gICAgICAgIGNvbnN0IHF0aUN1c3RvbUludGVyYWN0aW9uT2JqZWN0ID0gcXRpQ3VzdG9tSW50ZXJhY3Rpb24ucXVlcnlTZWxlY3Rvcignb2JqZWN0Jyk7XG4gIFxuICAgICAgICBxdGlDdXN0b21JbnRlcmFjdGlvbi5zZXRBdHRyaWJ1dGUoJ2RhdGEtYmFzZS1yZWYnLCBiYXNlUmVmKTtcbiAgICAgICAgcXRpQ3VzdG9tSW50ZXJhY3Rpb24uc2V0QXR0cmlidXRlKCdkYXRhLWJhc2UtaXRlbScsIGJhc2VSZWYgKyBiYXNlSXRlbSk7XG4gICAgICAgIHF0aUN1c3RvbUludGVyYWN0aW9uLnNldEF0dHJpYnV0ZSgnZGF0YScsIHF0aUN1c3RvbUludGVyYWN0aW9uT2JqZWN0LmdldEF0dHJpYnV0ZSgnZGF0YScpKTtcbiAgICAgICAgcXRpQ3VzdG9tSW50ZXJhY3Rpb24uc2V0QXR0cmlidXRlKCd3aWR0aCcsIHF0aUN1c3RvbUludGVyYWN0aW9uT2JqZWN0LmdldEF0dHJpYnV0ZSgnd2lkdGgnKSk7XG4gICAgICAgIHF0aUN1c3RvbUludGVyYWN0aW9uLnNldEF0dHJpYnV0ZSgnaGVpZ2h0JywgcXRpQ3VzdG9tSW50ZXJhY3Rpb25PYmplY3QuZ2V0QXR0cmlidXRlKCdoZWlnaHQnKSk7XG4gIFxuICAgICAgICBxdGlDdXN0b21JbnRlcmFjdGlvbi5yZW1vdmVDaGlsZChxdGlDdXN0b21JbnRlcmFjdGlvbk9iamVjdCk7XG4gICAgICAgIHJldHVybiBhcGk7XG4gICAgICB9LFxuICAgICAgY29udmVydENEQVRBdG9Db21tZW50KCk6IHR5cGVvZiBhcGkge1xuICAgICAgICBjb252ZXJ0Q0RBVEF0b0NvbW1lbnQoeG1sRnJhZ21lbnQpO1xuICAgICAgICByZXR1cm4gYXBpO1xuICAgICAgfSxcbiAgICAgIHN0cmlwU3R5bGVTaGVldHMoKTogdHlwZW9mIGFwaSB7XG4gICAgICAgIHN0cmlwU3R5bGVTaGVldHMoeG1sRnJhZ21lbnQpO1xuICAgICAgICByZXR1cm4gYXBpO1xuICAgICAgfSxcbiAgICAgIGh0bWwoKSB7XG4gICAgICAgIHJldHVybiBuZXcgWE1MU2VyaWFsaXplcigpLnNlcmlhbGl6ZVRvU3RyaW5nKHRvSFRNTCh4bWxGcmFnbWVudCkpO1xuICAgICAgfSxcbiAgICAgIHhtbCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gbmV3IFhNTFNlcmlhbGl6ZXIoKS5zZXJpYWxpemVUb1N0cmluZyh4bWxGcmFnbWVudCk7XG4gICAgICB9LFxuICAgICAgaHRtbGRvYygpIHtcbiAgICAgICAgcmV0dXJuIHRvSFRNTCh4bWxGcmFnbWVudCk7XG4gICAgICB9LFxuICAgICAgeG1sZG9jKCk6IFhNTERvY3VtZW50IHtcbiAgICAgICAgcmV0dXJuIHhtbEZyYWdtZW50OyAvLyBuZXcgWE1MU2VyaWFsaXplcigpLnNlcmlhbGl6ZVRvU3RyaW5nKHhtbEZyYWdtZW50KTtcbiAgICAgIH1cbiAgICB9O1xuICAgIHJldHVybiBhcGk7XG4gIH07IiwgImltcG9ydCB7IGxvYWRYTUwsIHBhcnNlWE1MIH0gZnJvbSBcIi4vcXRpLXRyYW5zZm9ybWVyc1wiO1xuXG5leHBvcnQgY29uc3QgcXRpVHJhbnNmb3JtTWFuaWZlc3QgPSAoKToge1xuICAgIGxvYWQ6ICh1cmk6IHN0cmluZykgPT4gUHJvbWlzZTx0eXBlb2YgYXBpPjtcbiAgICBhc3Nlc3NtZW50VGVzdDogKCkgPT4geyBocmVmOiBzdHJpbmc7IGlkZW50aWZpZXI6IHN0cmluZyB9O1xuICB9ID0+IHtcbiAgICBsZXQgeG1sRnJhZ21lbnQ6IFhNTERvY3VtZW50O1xuICBcbiAgICBjb25zdCBhcGkgPSB7XG4gICAgICBhc3luYyBsb2FkKHVyaSkge1xuICAgICAgICByZXR1cm4gbmV3IFByb21pc2U8dHlwZW9mIGFwaT4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICAgIGxvYWRYTUwodXJpKS50aGVuKHhtbCA9PiB7XG4gICAgICAgICAgICB4bWxGcmFnbWVudCA9IHhtbDtcbiAgICAgICAgICAgIHJldHVybiByZXNvbHZlKGFwaSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgICAgfSxcbiAgICAgIHBhcnNlKHhtbFN0cmluZzogc3RyaW5nKSB7XG4gICAgICAgIHhtbEZyYWdtZW50ID0gcGFyc2VYTUwoeG1sU3RyaW5nKTtcbiAgICAgIH0sXG4gICAgICBhc3Nlc3NtZW50VGVzdCgpIHtcbiAgICAgICAgY29uc3QgZWwgPSB4bWxGcmFnbWVudC5xdWVyeVNlbGVjdG9yKCdyZXNvdXJjZVt0eXBlPVwiaW1zcXRpX3Rlc3RfeG1sdjNwMFwiXScpO1xuICAgICAgICByZXR1cm4geyBocmVmOiBlbC5nZXRBdHRyaWJ1dGUoJ2hyZWYnKSwgaWRlbnRpZmllcjogZWwuZ2V0QXR0cmlidXRlKCdpZGVudGlmaWVyJykgfTtcbiAgICAgIH1cbiAgICB9O1xuICAgIHJldHVybiBhcGk7XG4gIH07IiwgIlxuLyoqXG4gKiBSZXR1cm5zIGFuIG9iamVjdCB3aXRoIG1ldGhvZHMgdG8gbG9hZCwgcGFyc2UgYW5kIHRyYW5zZm9ybSBRVEkgdGVzdHMuXG4gKiBAcmV0dXJucyBBbiBvYmplY3Qgd2l0aCBtZXRob2RzIHRvIGxvYWQsIHBhcnNlIGFuZCB0cmFuc2Zvcm0gUVRJIHRlc3RzLlxuICogQGV4YW1wbGVcbiAqIGNvbnN0IHF0aVRyYW5zZm9ybWVyID0gcXRpVHJhbnNmb3JtVGVzdCgpO1xuICogYXdhaXQgcXRpVHJhbnNmb3JtZXIubG9hZCgnaHR0cHM6Ly9leGFtcGxlLmNvbS90ZXN0LnhtbCcpO1xuICogY29uc3QgaXRlbXMgPSBxdGlUcmFuc2Zvcm1lci5pdGVtcygpO1xuICogY29uc3QgaHRtbCA9IHF0aVRyYW5zZm9ybWVyLmh0bWwoKTtcbiAqIGNvbnN0IHhtbCA9IHF0aVRyYW5zZm9ybWVyLnhtbCgpO1xuICovXG5cbmltcG9ydCB7IGV4dGVuZEVsZW1lbnROYW1lLCBpdGVtc0Zyb21UZXN0LCBsb2FkWE1MLCBwYXJzZVhNTCwgdG9IVE1MIH0gZnJvbSBcIi4vcXRpLXRyYW5zZm9ybWVyc1wiO1xuXG5leHBvcnQgdHlwZSB0cmFuc2Zvcm1UZXN0QXBpID0ge1xuICAgIGxvYWQ6ICh1cmk6IHN0cmluZykgPT4gUHJvbWlzZTx0cmFuc2Zvcm1UZXN0QXBpPjtcbiAgICBwYXJzZTogKHhtbFN0cmluZzogc3RyaW5nKSA9PiB0cmFuc2Zvcm1UZXN0QXBpO1xuICAgIGV4dGVuZEVsZW1lbnROYW1lOiAodGFnTmFtZTogc3RyaW5nLCBleHRlbmQ6IHN0cmluZykgPT4gdHJhbnNmb3JtVGVzdEFwaTtcbiAgICBmbjogKGZuOiAoeG1sRnJhZ21lbnQ6IFhNTERvY3VtZW50KSA9PiB2b2lkKSA9PiB0cmFuc2Zvcm1UZXN0QXBpO1xuICAgIGl0ZW1zOiAoKSA9PiB7IGlkZW50aWZpZXI6IHN0cmluZzsgaHJlZjogc3RyaW5nOyBjYXRlZ29yeTogc3RyaW5nIH1bXTtcbiAgICBodG1sOiAoKSA9PiBzdHJpbmc7XG4gICAgeG1sOiAoKSA9PiBzdHJpbmc7XG4gICAgaHRtbGRvYzogKCkgPT4gRG9jdW1lbnRGcmFnbWVudDtcbiAgICB4bWxkb2M6ICgpID0+IFhNTERvY3VtZW50O1xuICB9XG4gIFxuICBleHBvcnQgY29uc3QgcXRpVHJhbnNmb3JtVGVzdCA9ICgpOiB0cmFuc2Zvcm1UZXN0QXBpID0+IHtcbiAgICBsZXQgeG1sRnJhZ21lbnQ6IFhNTERvY3VtZW50O1xuICBcbiAgICBjb25zdCBhcGk6dHJhbnNmb3JtVGVzdEFwaSA9IHtcbiAgICAgIGFzeW5jIGxvYWQodXJpKSB7XG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZTx0cmFuc2Zvcm1UZXN0QXBpPigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgICAgbG9hZFhNTCh1cmkpLnRoZW4oeG1sID0+IHtcbiAgICAgICAgICAgIHhtbEZyYWdtZW50ID0geG1sO1xuICAgICAgICAgICAgcmV0dXJuIHJlc29sdmUoYXBpKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgICB9LFxuICAgICAgcGFyc2UoeG1sU3RyaW5nOiBzdHJpbmcpIHtcbiAgICAgICAgeG1sRnJhZ21lbnQgPSBwYXJzZVhNTCh4bWxTdHJpbmcpO1xuICAgICAgICByZXR1cm4gYXBpO1xuICAgICAgfSxcbiAgICAgIGV4dGVuZEVsZW1lbnROYW1lOiAodGFnTmFtZTogc3RyaW5nLCBleHRlbmQ6IHN0cmluZykgPT4ge1xuICAgICAgICBleHRlbmRFbGVtZW50TmFtZSh4bWxGcmFnbWVudCwgdGFnTmFtZSwgZXh0ZW5kKTtcbiAgICAgICAgcmV0dXJuIGFwaTtcbiAgICAgIH0sXG4gICAgICBmbihmbjogKHhtbEZyYWdtZW50OiBYTUxEb2N1bWVudCkgPT4gdm9pZCkge1xuICAgICAgICBmbih4bWxGcmFnbWVudCk7XG4gICAgICAgIHJldHVybiBhcGk7XG4gICAgICB9LFxuICAgICAgaXRlbXMoKSB7XG4gICAgICAgIHJldHVybiBpdGVtc0Zyb21UZXN0KHhtbEZyYWdtZW50KTtcbiAgICAgIH0sXG4gICAgICBodG1sKCkge1xuICAgICAgICByZXR1cm4gbmV3IFhNTFNlcmlhbGl6ZXIoKS5zZXJpYWxpemVUb1N0cmluZyh0b0hUTUwoeG1sRnJhZ21lbnQpKTtcbiAgICAgIH0sXG4gICAgICB4bWwoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIG5ldyBYTUxTZXJpYWxpemVyKCkuc2VyaWFsaXplVG9TdHJpbmcoeG1sRnJhZ21lbnQpO1xuICAgICAgfSxcbiAgICAgIGh0bWxkb2MoKSB7XG4gICAgICAgIHJldHVybiB0b0hUTUwoeG1sRnJhZ21lbnQpO1xuICAgICAgfSxcbiAgICAgIHhtbGRvYygpOiBYTUxEb2N1bWVudCB7XG4gICAgICAgIHJldHVybiB4bWxGcmFnbWVudDtcbiAgICAgIH1cbiAgICB9O1xuICAgIHJldHVybiBhcGk7XG4gIH07Il0sCiAgIm1hcHBpbmdzIjogIkFBQUEsSUFBTUEsRUFBTSxPQUFPLElBZWJDLEVBQVlEO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtB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QUFTRCxDQUFTLEVBQ3pCTixDQUNULEVBQ0Esa0JBQW1CLENBQUNRLEVBQWlCQyxLQUNuQ0MsRUFBa0JYLEVBQWFTLEVBQVNDLENBQU0sRUFDdkNULEdBRVQsR0FBR1csRUFBd0MsQ0FDekMsT0FBQUEsRUFBR1osQ0FBVyxFQUNQQyxDQUNULEVBQ0EsT0FBUSxDQUNOLE9BQU9ZLEVBQWNiLENBQVcsQ0FDbEMsRUFDQSxNQUFPLENBQ0wsT0FBTyxJQUFJLGNBQWMsRUFBRSxrQkFBa0JjLEVBQU9kLENBQVcsQ0FBQyxDQUNsRSxFQUNBLEtBQWMsQ0FDWixPQUFPLElBQUksY0FBYyxFQUFFLGtCQUFrQkEsQ0FBVyxDQUMxRCxFQUNBLFNBQVUsQ0FDUixPQUFPYyxFQUFPZCxDQUFXLENBQzNCLEVBQ0EsUUFBc0IsQ0FDcEIsT0FBT0EsQ0FDVCxDQUNGLEVBQ0EsT0FBT0MsQ0FDVCIsCiAgIm5hbWVzIjogWyJ4bWwiLCAieG1sVG9IVE1MIiwgImV4dGVuZEVsZW1lbnROYW1lIiwgInhtbEZyYWdtZW50IiwgInRhZ05hbWUiLCAiZXh0ZW5zaW9uIiwgImVsZW1lbnQiLCAibmV3VGFnTmFtZSIsICJuZXdFbGVtZW50IiwgImNyZWF0ZUVsZW1lbnRXaXRoTmV3VGFnTmFtZSIsICJleHRlbmRFbGVtZW50c1dpdGhDbGFzcyIsICJjbGFzc05hbWVQYXR0ZXJuIiwgImNsYXNzTGlzdCIsICJjbGFzc05hbWUiLCAic3VmZml4IiwgImF0dHIiLCAiaXRlbXNGcm9tVGVzdCIsICJpdGVtcyIsICJlbCIsICJpZGVudGlmaWVyIiwgImhyZWYiLCAiY2F0ZWdvcnkiLCAiY3VycmVudFJlcXVlc3QiLCAibG9hZFhNTCIsICJ1cmwiLCAiY2FuY2VsUHJldmlvdXNSZXF1ZXN0IiwgInJlc29sdmUiLCAicmVqZWN0IiwgInhociIsICJwYXJzZVhNTCIsICJ4bWxEb2N1bWVudCIsICJ0b0hUTUwiLCAicHJvY2Vzc29yIiwgInhzbHREb2N1bWVudCIsICJzZXRMb2NhdGlvbiIsICJsb2NhdGlvbiIsICJlbFdpdGhTcmMiLCAiX2EiLCAiYXR0clZhbHVlIiwgIm5ld1NyY1ZhbHVlIiwgImNvbnZlcnRDREFUQXRvQ29tbWVudCIsICJjb21tZW50VGV4dCIsICJzdHJpcFN0eWxlU2hlZXRzIiwgInN0eWxlc2hlZXQiLCAicXRpVHJhbnNmb3JtSXRlbSIsICJ4bWxGcmFnbWVudCIsICJhcGkiLCAidXJpIiwgImNhbmNlbFByZXZpb3VzUmVxdWVzdCIsICJyZXNvbHZlIiwgInJlamVjdCIsICJsb2FkWE1MIiwgInhtbCIsICJ4bWxTdHJpbmciLCAicGFyc2VYTUwiLCAibG9jYXRpb24iLCAic2V0TG9jYXRpb24iLCAiZm4iLCAiYXR0cmlidXRlcyIsICJkb2N1bWVudFBhdGgiLCAiYXR0cmlidXRlIiwgIm5vZGUiLCAic3JjVmFsdWUiLCAidGFnTmFtZSIsICJleHRlbnNpb24iLCAiZXh0ZW5kRWxlbWVudE5hbWUiLCAicGFyYW0iLCAiZXh0ZW5kRWxlbWVudHNXaXRoQ2xhc3MiLCAiYmFzZVJlZiIsICJiYXNlSXRlbSIsICJxdGlDdXN0b21JbnRlcmFjdGlvbiIsICJxdGlDdXN0b21JbnRlcmFjdGlvbk9iamVjdCIsICJjb252ZXJ0Q0RBVEF0b0NvbW1lbnQiLCAic3RyaXBTdHlsZVNoZWV0cyIsICJ0b0hUTUwiLCAicXRpVHJhbnNmb3JtTWFuaWZlc3QiLCAieG1sRnJhZ21lbnQiLCAiYXBpIiwgInVyaSIsICJyZXNvbHZlIiwgInJlamVjdCIsICJsb2FkWE1MIiwgInhtbCIsICJ4bWxTdHJpbmciLCAicGFyc2VYTUwiLCAiZWwiLCAicXRpVHJhbnNmb3JtVGVzdCIsICJ4bWxGcmFnbWVudCIsICJhcGkiLCAidXJpIiwgInJlc29sdmUiLCAicmVqZWN0IiwgImxvYWRYTUwiLCAieG1sIiwgInhtbFN0cmluZyIsICJwYXJzZVhNTCIsICJ0YWdOYW1lIiwgImV4dGVuZCIsICJleHRlbmRFbGVtZW50TmFtZSIsICJmbiIsICJpdGVtc0Zyb21UZXN0IiwgInRvSFRNTCJdCn0K
|