diff --git a/assets/121.5eeb4585.js b/assets/121.5eeb4585.js new file mode 100644 index 00000000..b2ec47db --- /dev/null +++ b/assets/121.5eeb4585.js @@ -0,0 +1,2 @@ +(()=>{"use strict";var e,r,t={},n={};function o(e){var r=n[e];if(void 0!==r)return r.exports;var a=n[e]={id:e,loaded:!1,exports:{}};return t[e].call(a.exports,a,a.exports,o),a.loaded=!0,a.exports}o.m=t,o.amdO={},e=[],o.O=(r,t,n,a)=>{if(!t){var i=1/0;for(u=0;u=a)&&Object.keys(o.O).every((e=>o.O[e](t[d])))?t.splice(d--,1):(l=!1,a0&&e[u-1][2]>a;u--)e[u]=e[u-1];e[u]=[t,n,a]},o.n=e=>{var r=e&&e.__esModule?()=>e.default:()=>e;return o.d(r,{a:r}),r},o.d=(e,r)=>{for(var t in r)o.o(r,t)&&!o.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:r[t]})},o.f={},o.e=e=>Promise.all(Object.keys(o.f).reduce(((r,t)=>(o.f[t](e,r),r)),[])),o.u=e=>e+"."+{157:"ae2d24ea",205:"bfd12ce1",268:"424eb2a7",441:"8903fb09",535:"0b9b687d",663:"28f5dddc",694:"23c1d07e",745:"c73f1c83",760:"6ade6071",783:"35cb1cc0",887:"a3fce716",914:"7d0beb8a",967:"614fc5e1"}[e]+".js",o.miniCssF=e=>e+"."+{157:"22ba31eb",205:"30d0b998",268:"e2a184bf",441:"f1b3bb88",967:"1b40276d"}[e]+".css",o.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),o.hmd=e=>((e=Object.create(e)).children||(e.children=[]),Object.defineProperty(e,"exports",{enumerable:!0,set:()=>{throw new Error("ES Modules may not assign module.exports or exports.*, Use ESM export syntax, instead: "+e.id)}}),e),o.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),r={},o.l=(e,t,n,a)=>{if(r[e])r[e].push(t);else{var i,l;if(void 0!==n)for(var d=document.getElementsByTagName("script"),s=0;s{i.onerror=i.onload=null,clearTimeout(f);var o=r[e];if(delete r[e],i.parentNode&&i.parentNode.removeChild(i),o&&o.forEach((e=>e(n))),t)return t(n)},f=setTimeout(c.bind(null,void 0,{type:"timeout",target:i}),12e4);i.onerror=c.bind(null,i.onerror),i.onload=c.bind(null,i.onload),l&&document.head.appendChild(i)}},o.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},o.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),o.p="/assets/",(()=>{if("undefined"!=typeof document){var e={121:0};o.f.miniCss=(r,t)=>{e[r]?t.push(e[r]):0!==e[r]&&{157:1,205:1,268:1,441:1,967:1}[r]&&t.push(e[r]=(e=>new Promise(((r,t)=>{var n=o.miniCssF(e),a=o.p+n;if(((e,r)=>{for(var t=document.getElementsByTagName("link"),n=0;n{var i=document.createElement("link");i.rel="stylesheet",i.type="text/css",o.nc&&(i.nonce=o.nc),i.onerror=i.onload=t=>{if(i.onerror=i.onload=null,"load"===t.type)n();else{var o=t&&t.type,l=t&&t.target&&t.target.href||r,d=new Error("Loading CSS chunk "+e+" failed.\n("+o+": "+l+")");d.name="ChunkLoadError",d.code="CSS_CHUNK_LOAD_FAILED",d.type=o,d.request=l,i.parentNode&&i.parentNode.removeChild(i),a(d)}},i.href=r,document.head.appendChild(i)})(e,a,0,r,t)})))(r).then((()=>{e[r]=0}),(t=>{throw delete e[r],t})))}}})(),(()=>{var e={121:0};o.f.j=(r,t)=>{var n=o.o(e,r)?e[r]:void 0;if(0!==n)if(n)t.push(n[2]);else if(121!=r){var a=new Promise(((t,o)=>n=e[r]=[t,o]));t.push(n[2]=a);var i=o.p+o.u(r),l=new Error;o.l(i,(t=>{if(o.o(e,r)&&(0!==(n=e[r])&&(e[r]=void 0),n)){var a=t&&("load"===t.type?"missing":t.type),i=t&&t.target&&t.target.src;l.message="Loading chunk "+r+" failed.\n("+a+": "+i+")",l.name="ChunkLoadError",l.type=a,l.request=i,n[1](l)}}),"chunk-"+r,r)}else e[r]=0},o.O.j=r=>0===e[r];var r=(r,t)=>{var n,a,[i,l,d]=t,s=0;if(i.some((r=>0!==e[r]))){for(n in l)o.o(l,n)&&(o.m[n]=l[n]);if(d)var u=d(o)}for(r&&r(t);s {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar [chunkIds, fn, priority] = deferred[i];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","var inProgress = {};\n// data-webpack is not used as build has no uniqueName\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","__webpack_require__.amdO = {};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"\" + chunkId + \".\" + {\"81\":\"d98ad4c1\",\"157\":\"ae2d24ea\",\"205\":\"bfd12ce1\",\"268\":\"424eb2a7\",\"441\":\"8903fb09\",\"535\":\"0b9b687d\",\"663\":\"28f5dddc\",\"694\":\"23c1d07e\",\"745\":\"c73f1c83\",\"760\":\"6ade6071\",\"783\":\"35cb1cc0\",\"887\":\"a3fce716\",\"914\":\"7d0beb8a\"}[chunkId] + \".js\";\n};","// This function allow to reference async chunks\n__webpack_require__.miniCssF = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"\" + chunkId + \".\" + {\"81\":\"bf3a891e\",\"157\":\"22ba31eb\",\"205\":\"30d0b998\",\"268\":\"e2a184bf\",\"441\":\"f1b3bb88\"}[chunkId] + \".css\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.hmd = (module) => {\n\tmodule = Object.create(module);\n\tif (!module.children) module.children = [];\n\tObject.defineProperty(module, 'exports', {\n\t\tenumerable: true,\n\t\tset: () => {\n\t\t\tthrow new Error('ES Modules may not assign module.exports or exports.*, Use ESM export syntax, instead: ' + module.id);\n\t\t}\n\t});\n\treturn module;\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.p = \"/assets/\";","if (typeof document === \"undefined\") return;\nvar createStylesheet = (chunkId, fullhref, oldTag, resolve, reject) => {\n\tvar linkTag = document.createElement(\"link\");\n\n\tlinkTag.rel = \"stylesheet\";\n\tlinkTag.type = \"text/css\";\n\tif (__webpack_require__.nc) {\n\t\tlinkTag.nonce = __webpack_require__.nc;\n\t}\n\tvar onLinkComplete = (event) => {\n\t\t// avoid mem leaks.\n\t\tlinkTag.onerror = linkTag.onload = null;\n\t\tif (event.type === 'load') {\n\t\t\tresolve();\n\t\t} else {\n\t\t\tvar errorType = event && event.type;\n\t\t\tvar realHref = event && event.target && event.target.href || fullhref;\n\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + errorType + \": \" + realHref + \")\");\n\t\t\terr.name = \"ChunkLoadError\";\n\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n\t\t\terr.type = errorType;\n\t\t\terr.request = realHref;\n\t\t\tif (linkTag.parentNode) linkTag.parentNode.removeChild(linkTag)\n\t\t\treject(err);\n\t\t}\n\t}\n\tlinkTag.onerror = linkTag.onload = onLinkComplete;\n\tlinkTag.href = fullhref;\n\n\n\tif (oldTag) {\n\t\toldTag.parentNode.insertBefore(linkTag, oldTag.nextSibling);\n\t} else {\n\t\tdocument.head.appendChild(linkTag);\n\t}\n\treturn linkTag;\n};\nvar findStylesheet = (href, fullhref) => {\n\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n\tfor(var i = 0; i < existingLinkTags.length; i++) {\n\t\tvar tag = existingLinkTags[i];\n\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return tag;\n\t}\n\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n\tfor(var i = 0; i < existingStyleTags.length; i++) {\n\t\tvar tag = existingStyleTags[i];\n\t\tvar dataHref = tag.getAttribute(\"data-href\");\n\t\tif(dataHref === href || dataHref === fullhref) return tag;\n\t}\n};\nvar loadStylesheet = (chunkId) => {\n\treturn new Promise((resolve, reject) => {\n\t\tvar href = __webpack_require__.miniCssF(chunkId);\n\t\tvar fullhref = __webpack_require__.p + href;\n\t\tif(findStylesheet(href, fullhref)) return resolve();\n\t\tcreateStylesheet(chunkId, fullhref, null, resolve, reject);\n\t});\n}\n// object to store loaded CSS chunks\nvar installedCssChunks = {\n\t121: 0\n};\n\n__webpack_require__.f.miniCss = (chunkId, promises) => {\n\tvar cssChunks = {\"81\":1,\"157\":1,\"205\":1,\"268\":1,\"441\":1};\n\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n\t\tpromises.push(installedCssChunks[chunkId] = loadStylesheet(chunkId).then(() => {\n\t\t\tinstalledCssChunks[chunkId] = 0;\n\t\t}, (e) => {\n\t\t\tdelete installedCssChunks[chunkId];\n\t\t\tthrow e;\n\t\t}));\n\t}\n};\n\n// no hmr\n\n// no prefetching\n\n// no preloaded","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t121: 0\n};\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(121 != chunkId) {\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t} else installedChunks[chunkId] = 0;\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar [chunkIds, moreModules, runtime] = data;\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = globalThis[\"webpackChunk\"] = globalThis[\"webpackChunk\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));"],"names":["deferred","inProgress","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","exports","module","id","loaded","__webpack_modules__","call","m","amdO","O","result","chunkIds","fn","priority","notFulfilled","Infinity","i","length","fulfilled","j","Object","keys","every","key","splice","r","n","getter","__esModule","d","a","definition","o","defineProperty","enumerable","get","f","e","chunkId","Promise","all","reduce","promises","u","miniCssF","g","globalThis","this","Function","window","hmd","create","children","set","Error","obj","prop","prototype","hasOwnProperty","l","url","done","push","script","needAttach","scripts","document","getElementsByTagName","s","getAttribute","createElement","charset","timeout","nc","setAttribute","src","onScriptComplete","prev","event","onerror","onload","clearTimeout","doneFns","parentNode","removeChild","forEach","setTimeout","bind","type","target","head","appendChild","Symbol","toStringTag","value","nmd","paths","p","installedCssChunks","miniCss","resolve","reject","href","fullhref","existingLinkTags","dataHref","tag","rel","existingStyleTags","findStylesheet","oldTag","linkTag","nonce","errorType","realHref","err","name","code","request","createStylesheet","loadStylesheet","then","installedChunks","installedChunkData","promise","error","realSrc","message","webpackJsonpCallback","parentChunkLoadingFunction","data","moreModules","runtime","some","chunkLoadingGlobal"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"121.5eeb4585.js","mappings":"uBAAIA,ECAAC,E,KCCAC,EAA2B,CAAC,EAGhC,SAASC,EAAoBC,GAE5B,IAAIC,EAAeH,EAAyBE,GAC5C,QAAqBE,IAAjBD,EACH,OAAOA,EAAaE,QAGrB,IAAIC,EAASN,EAAyBE,GAAY,CACjDK,GAAIL,EACJM,QAAQ,EACRH,QAAS,CAAC,GAUX,OANAI,EAAoBP,GAAUQ,KAAKJ,EAAOD,QAASC,EAAQA,EAAOD,QAASJ,GAG3EK,EAAOE,QAAS,EAGTF,EAAOD,OACf,CAGAJ,EAAoBU,EAAIF,EC5BxBR,EAAoBW,KAAO,CAAC,EHAxBd,EAAW,GACfG,EAAoBY,EAAI,CAACC,EAAQC,EAAUC,EAAIC,KAC9C,IAAGF,EAAH,CAMA,IAAIG,EAAeC,IACnB,IAASC,EAAI,EAAGA,EAAItB,EAASuB,OAAQD,IAAK,CAGzC,IAFA,IAAKL,EAAUC,EAAIC,GAAYnB,EAASsB,GACpCE,GAAY,EACPC,EAAI,EAAGA,EAAIR,EAASM,OAAQE,MACpB,EAAXN,GAAsBC,GAAgBD,IAAaO,OAAOC,KAAKxB,EAAoBY,GAAGa,OAAOC,GAAS1B,EAAoBY,EAAEc,GAAKZ,EAASQ,MAC9IR,EAASa,OAAOL,IAAK,IAErBD,GAAY,EACTL,EAAWC,IAAcA,EAAeD,IAG7C,GAAGK,EAAW,CACbxB,EAAS8B,OAAOR,IAAK,GACrB,IAAIS,EAAIb,SACEZ,IAANyB,IAAiBf,EAASe,EAC/B,CACD,CACA,OAAOf,CAnBP,CAJCG,EAAWA,GAAY,EACvB,IAAI,IAAIG,EAAItB,EAASuB,OAAQD,EAAI,GAAKtB,EAASsB,EAAI,GAAG,GAAKH,EAAUG,IAAKtB,EAASsB,GAAKtB,EAASsB,EAAI,GACrGtB,EAASsB,GAAK,CAACL,EAAUC,EAAIC,EAqBjB,EIzBdhB,EAAoB6B,EAAKxB,IACxB,IAAIyB,EAASzB,GAAUA,EAAO0B,WAC7B,IAAO1B,EAAiB,QACxB,IAAM,EAEP,OADAL,EAAoBgC,EAAEF,EAAQ,CAAEG,EAAGH,IAC5BA,CAAM,ECLd9B,EAAoBgC,EAAI,CAAC5B,EAAS8B,KACjC,IAAI,IAAIR,KAAOQ,EACXlC,EAAoBmC,EAAED,EAAYR,KAAS1B,EAAoBmC,EAAE/B,EAASsB,IAC5EH,OAAOa,eAAehC,EAASsB,EAAK,CAAEW,YAAY,EAAMC,IAAKJ,EAAWR,IAE1E,ECND1B,EAAoBuC,EAAI,CAAC,EAGzBvC,EAAoBwC,EAAKC,GACjBC,QAAQC,IAAIpB,OAAOC,KAAKxB,EAAoBuC,GAAGK,QAAO,CAACC,EAAUnB,KACvE1B,EAAoBuC,EAAEb,GAAKe,EAASI,GAC7BA,IACL,KCNJ7C,EAAoB8C,EAAKL,GAEZA,EAAU,IAAM,CAAC,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,YAAYA,GAAW,MCFvQzC,EAAoB+C,SAAYN,GAEnBA,EAAU,IAAM,CAAC,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,YAAYA,GAAW,OCH/HzC,EAAoBgD,EAAI,WACvB,GAA0B,iBAAfC,WAAyB,OAAOA,WAC3C,IACC,OAAOC,MAAQ,IAAIC,SAAS,cAAb,EAChB,CAAE,MAAOX,GACR,GAAsB,iBAAXY,OAAqB,OAAOA,MACxC,CACA,CAPuB,GCAxBpD,EAAoBqD,IAAOhD,KAC1BA,EAASkB,OAAO+B,OAAOjD,IACXkD,WAAUlD,EAAOkD,SAAW,IACxChC,OAAOa,eAAe/B,EAAQ,UAAW,CACxCgC,YAAY,EACZmB,IAAK,KACJ,MAAM,IAAIC,MAAM,0FAA4FpD,EAAOC,GAAG,IAGjHD,GCTRL,EAAoBmC,EAAI,CAACuB,EAAKC,IAAUpC,OAAOqC,UAAUC,eAAepD,KAAKiD,EAAKC,GVA9E7D,EAAa,CAAC,EAGlBE,EAAoB8D,EAAI,CAACC,EAAKC,EAAMtC,EAAKe,KACxC,GAAG3C,EAAWiE,GAAQjE,EAAWiE,GAAKE,KAAKD,OAA3C,CACA,IAAIE,EAAQC,EACZ,QAAWhE,IAARuB,EAEF,IADA,IAAI0C,EAAUC,SAASC,qBAAqB,UACpCnD,EAAI,EAAGA,EAAIiD,EAAQhD,OAAQD,IAAK,CACvC,IAAIoD,EAAIH,EAAQjD,GAChB,GAAGoD,EAAEC,aAAa,QAAUT,EAAK,CAAEG,EAASK,EAAG,KAAO,CACvD,CAEGL,IACHC,GAAa,GACbD,EAASG,SAASI,cAAc,WAEzBC,QAAU,QACjBR,EAAOS,QAAU,IACb3E,EAAoB4E,IACvBV,EAAOW,aAAa,QAAS7E,EAAoB4E,IAIlDV,EAAOY,IAAMf,GAEdjE,EAAWiE,GAAO,CAACC,GACnB,IAAIe,EAAmB,CAACC,EAAMC,KAE7Bf,EAAOgB,QAAUhB,EAAOiB,OAAS,KACjCC,aAAaT,GACb,IAAIU,EAAUvF,EAAWiE,GAIzB,UAHOjE,EAAWiE,GAClBG,EAAOoB,YAAcpB,EAAOoB,WAAWC,YAAYrB,GACnDmB,GAAWA,EAAQG,SAASzE,GAAQA,EAAGkE,KACpCD,EAAM,OAAOA,EAAKC,EAAM,EAExBN,EAAUc,WAAWV,EAAiBW,KAAK,UAAMvF,EAAW,CAAEwF,KAAM,UAAWC,OAAQ1B,IAAW,MACtGA,EAAOgB,QAAUH,EAAiBW,KAAK,KAAMxB,EAAOgB,SACpDhB,EAAOiB,OAASJ,EAAiBW,KAAK,KAAMxB,EAAOiB,QACnDhB,GAAcE,SAASwB,KAAKC,YAAY5B,EApCkB,CAoCX,EWvChDlE,EAAoB4B,EAAKxB,IACH,oBAAX2F,QAA0BA,OAAOC,aAC1CzE,OAAOa,eAAehC,EAAS2F,OAAOC,YAAa,CAAEC,MAAO,WAE7D1E,OAAOa,eAAehC,EAAS,aAAc,CAAE6F,OAAO,GAAO,ECL9DjG,EAAoBkG,IAAO7F,IAC1BA,EAAO8F,MAAQ,GACV9F,EAAOkD,WAAUlD,EAAOkD,SAAW,IACjClD,GCHRL,EAAoBoG,EAAI,W,MCAxB,GAAwB,oBAAb/B,SAAX,CACA,IA2DIgC,EAAqB,CACxB,IAAK,GAGNrG,EAAoBuC,EAAE+D,QAAU,CAAC7D,EAASI,KAEtCwD,EAAmB5D,GAAUI,EAASoB,KAAKoC,EAAmB5D,IACzB,IAAhC4D,EAAmB5D,IAFX,CAAC,IAAM,EAAE,IAAM,EAAE,IAAM,EAAE,IAAM,EAAE,IAAM,GAEAA,IACtDI,EAASoB,KAAKoC,EAAmB5D,GAjBd,CAACA,GACd,IAAIC,SAAQ,CAAC6D,EAASC,KAC5B,IAAIC,EAAOzG,EAAoB+C,SAASN,GACpCiE,EAAW1G,EAAoBoG,EAAIK,EACvC,GAlBmB,EAACA,EAAMC,KAE3B,IADA,IAAIC,EAAmBtC,SAASC,qBAAqB,QAC7CnD,EAAI,EAAGA,EAAIwF,EAAiBvF,OAAQD,IAAK,CAChD,IACIyF,GADAC,EAAMF,EAAiBxF,IACRqD,aAAa,cAAgBqC,EAAIrC,aAAa,QACjE,GAAe,eAAZqC,EAAIC,MAAyBF,IAAaH,GAAQG,IAAaF,GAAW,OAAOG,CACrF,CACA,IAAIE,EAAoB1C,SAASC,qBAAqB,SACtD,IAAQnD,EAAI,EAAGA,EAAI4F,EAAkB3F,OAAQD,IAAK,CACjD,IAAI0F,EAEJ,IADID,GADAC,EAAME,EAAkB5F,IACTqD,aAAa,gBAChBiC,GAAQG,IAAaF,EAAU,OAAOG,CACvD,GAMIG,CAAeP,EAAMC,GAAW,OAAOH,IAtDrB,EAAC9D,EAASiE,EAAUO,EAAQV,EAASC,KAC3D,IAAIU,EAAU7C,SAASI,cAAc,QAErCyC,EAAQJ,IAAM,aACdI,EAAQvB,KAAO,WACX3F,EAAoB4E,KACvBsC,EAAQC,MAAQnH,EAAoB4E,IAmBrCsC,EAAQhC,QAAUgC,EAAQ/B,OAjBJF,IAGrB,GADAiC,EAAQhC,QAAUgC,EAAQ/B,OAAS,KAChB,SAAfF,EAAMU,KACTY,QACM,CACN,IAAIa,EAAYnC,GAASA,EAAMU,KAC3B0B,EAAWpC,GAASA,EAAMW,QAAUX,EAAMW,OAAOa,MAAQC,EACzDY,EAAM,IAAI7D,MAAM,qBAAuBhB,EAAU,cAAgB2E,EAAY,KAAOC,EAAW,KACnGC,EAAIC,KAAO,iBACXD,EAAIE,KAAO,wBACXF,EAAI3B,KAAOyB,EACXE,EAAIG,QAAUJ,EACVH,EAAQ5B,YAAY4B,EAAQ5B,WAAWC,YAAY2B,GACvDV,EAAOc,EACR,GAGDJ,EAAQT,KAAOC,EAMdrC,SAASwB,KAAKC,YAAYoB,EAEb,EAqBbQ,CAAiBjF,EAASiE,EAAU,EAAMH,EAASC,EAAO,IAYdmB,CAAelF,GAASmF,MAAK,KACxEvB,EAAmB5D,GAAW,CAAC,IAC5BD,IAEH,aADO6D,EAAmB5D,GACpBD,CAAC,IAET,CA1E0C,C,WCK3C,IAAIqF,EAAkB,CACrB,IAAK,GAGN7H,EAAoBuC,EAAEjB,EAAI,CAACmB,EAASI,KAElC,IAAIiF,EAAqB9H,EAAoBmC,EAAE0F,EAAiBpF,GAAWoF,EAAgBpF,QAAWtC,EACtG,GAA0B,IAAvB2H,EAGF,GAAGA,EACFjF,EAASoB,KAAK6D,EAAmB,SAEjC,GAAG,KAAOrF,EAAS,CAElB,IAAIsF,EAAU,IAAIrF,SAAQ,CAAC6D,EAASC,IAAYsB,EAAqBD,EAAgBpF,GAAW,CAAC8D,EAASC,KAC1G3D,EAASoB,KAAK6D,EAAmB,GAAKC,GAGtC,IAAIhE,EAAM/D,EAAoBoG,EAAIpG,EAAoB8C,EAAEL,GAEpDuF,EAAQ,IAAIvE,MAgBhBzD,EAAoB8D,EAAEC,GAfFkB,IACnB,GAAGjF,EAAoBmC,EAAE0F,EAAiBpF,KAEf,KAD1BqF,EAAqBD,EAAgBpF,MACRoF,EAAgBpF,QAAWtC,GACrD2H,GAAoB,CACtB,IAAIV,EAAYnC,IAAyB,SAAfA,EAAMU,KAAkB,UAAYV,EAAMU,MAChEsC,EAAUhD,GAASA,EAAMW,QAAUX,EAAMW,OAAOd,IACpDkD,EAAME,QAAU,iBAAmBzF,EAAU,cAAgB2E,EAAY,KAAOa,EAAU,IAC1FD,EAAMT,KAAO,iBACbS,EAAMrC,KAAOyB,EACbY,EAAMP,QAAUQ,EAChBH,EAAmB,GAAGE,EACvB,CACD,GAEwC,SAAWvF,EAASA,EAC9D,MAAOoF,EAAgBpF,GAAW,CAEpC,EAWFzC,EAAoBY,EAAEU,EAAKmB,GAA0C,IAA7BoF,EAAgBpF,GAGxD,IAAI0F,EAAuB,CAACC,EAA4BC,KACvD,IAGIpI,EAAUwC,GAHT3B,EAAUwH,EAAaC,GAAWF,EAGhBlH,EAAI,EAC3B,GAAGL,EAAS0H,MAAMlI,GAAgC,IAAxBuH,EAAgBvH,KAAa,CACtD,IAAIL,KAAYqI,EACZtI,EAAoBmC,EAAEmG,EAAarI,KACrCD,EAAoBU,EAAET,GAAYqI,EAAYrI,IAGhD,GAAGsI,EAAS,IAAI1H,EAAS0H,EAAQvI,EAClC,CAEA,IADGoI,GAA4BA,EAA2BC,GACrDlH,EAAIL,EAASM,OAAQD,IACzBsB,EAAU3B,EAASK,GAChBnB,EAAoBmC,EAAE0F,EAAiBpF,IAAYoF,EAAgBpF,IACrEoF,EAAgBpF,GAAS,KAE1BoF,EAAgBpF,GAAW,EAE5B,OAAOzC,EAAoBY,EAAEC,EAAO,EAGjC4H,EAAqBxF,WAAyB,aAAIA,WAAyB,cAAK,GACpFwF,EAAmBjD,QAAQ2C,EAAqBzC,KAAK,KAAM,IAC3D+C,EAAmBxE,KAAOkE,EAAqBzC,KAAK,KAAM+C,EAAmBxE,KAAKyB,KAAK+C,G","sources":["webpack:///webpack/runtime/chunk loaded","webpack:///webpack/runtime/load script","webpack:///webpack/bootstrap","webpack:///webpack/runtime/amd options","webpack:///webpack/runtime/compat get default export","webpack:///webpack/runtime/define property getters","webpack:///webpack/runtime/ensure chunk","webpack:///webpack/runtime/get javascript chunk filename","webpack:///webpack/runtime/get mini-css chunk filename","webpack:///webpack/runtime/global","webpack:///webpack/runtime/harmony module decorator","webpack:///webpack/runtime/hasOwnProperty shorthand","webpack:///webpack/runtime/make namespace object","webpack:///webpack/runtime/node module decorator","webpack:///webpack/runtime/publicPath","webpack:///webpack/runtime/css loading","webpack:///webpack/runtime/jsonp chunk loading"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar [chunkIds, fn, priority] = deferred[i];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","var inProgress = {};\n// data-webpack is not used as build has no uniqueName\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","__webpack_require__.amdO = {};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"\" + chunkId + \".\" + {\"157\":\"ae2d24ea\",\"205\":\"bfd12ce1\",\"268\":\"424eb2a7\",\"441\":\"8903fb09\",\"535\":\"0b9b687d\",\"663\":\"28f5dddc\",\"694\":\"23c1d07e\",\"745\":\"c73f1c83\",\"760\":\"6ade6071\",\"783\":\"35cb1cc0\",\"887\":\"a3fce716\",\"914\":\"7d0beb8a\",\"967\":\"614fc5e1\"}[chunkId] + \".js\";\n};","// This function allow to reference async chunks\n__webpack_require__.miniCssF = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"\" + chunkId + \".\" + {\"157\":\"22ba31eb\",\"205\":\"30d0b998\",\"268\":\"e2a184bf\",\"441\":\"f1b3bb88\",\"967\":\"1b40276d\"}[chunkId] + \".css\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.hmd = (module) => {\n\tmodule = Object.create(module);\n\tif (!module.children) module.children = [];\n\tObject.defineProperty(module, 'exports', {\n\t\tenumerable: true,\n\t\tset: () => {\n\t\t\tthrow new Error('ES Modules may not assign module.exports or exports.*, Use ESM export syntax, instead: ' + module.id);\n\t\t}\n\t});\n\treturn module;\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.p = \"/assets/\";","if (typeof document === \"undefined\") return;\nvar createStylesheet = (chunkId, fullhref, oldTag, resolve, reject) => {\n\tvar linkTag = document.createElement(\"link\");\n\n\tlinkTag.rel = \"stylesheet\";\n\tlinkTag.type = \"text/css\";\n\tif (__webpack_require__.nc) {\n\t\tlinkTag.nonce = __webpack_require__.nc;\n\t}\n\tvar onLinkComplete = (event) => {\n\t\t// avoid mem leaks.\n\t\tlinkTag.onerror = linkTag.onload = null;\n\t\tif (event.type === 'load') {\n\t\t\tresolve();\n\t\t} else {\n\t\t\tvar errorType = event && event.type;\n\t\t\tvar realHref = event && event.target && event.target.href || fullhref;\n\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + errorType + \": \" + realHref + \")\");\n\t\t\terr.name = \"ChunkLoadError\";\n\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n\t\t\terr.type = errorType;\n\t\t\terr.request = realHref;\n\t\t\tif (linkTag.parentNode) linkTag.parentNode.removeChild(linkTag)\n\t\t\treject(err);\n\t\t}\n\t}\n\tlinkTag.onerror = linkTag.onload = onLinkComplete;\n\tlinkTag.href = fullhref;\n\n\n\tif (oldTag) {\n\t\toldTag.parentNode.insertBefore(linkTag, oldTag.nextSibling);\n\t} else {\n\t\tdocument.head.appendChild(linkTag);\n\t}\n\treturn linkTag;\n};\nvar findStylesheet = (href, fullhref) => {\n\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n\tfor(var i = 0; i < existingLinkTags.length; i++) {\n\t\tvar tag = existingLinkTags[i];\n\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return tag;\n\t}\n\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n\tfor(var i = 0; i < existingStyleTags.length; i++) {\n\t\tvar tag = existingStyleTags[i];\n\t\tvar dataHref = tag.getAttribute(\"data-href\");\n\t\tif(dataHref === href || dataHref === fullhref) return tag;\n\t}\n};\nvar loadStylesheet = (chunkId) => {\n\treturn new Promise((resolve, reject) => {\n\t\tvar href = __webpack_require__.miniCssF(chunkId);\n\t\tvar fullhref = __webpack_require__.p + href;\n\t\tif(findStylesheet(href, fullhref)) return resolve();\n\t\tcreateStylesheet(chunkId, fullhref, null, resolve, reject);\n\t});\n}\n// object to store loaded CSS chunks\nvar installedCssChunks = {\n\t121: 0\n};\n\n__webpack_require__.f.miniCss = (chunkId, promises) => {\n\tvar cssChunks = {\"157\":1,\"205\":1,\"268\":1,\"441\":1,\"967\":1};\n\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n\t\tpromises.push(installedCssChunks[chunkId] = loadStylesheet(chunkId).then(() => {\n\t\t\tinstalledCssChunks[chunkId] = 0;\n\t\t}, (e) => {\n\t\t\tdelete installedCssChunks[chunkId];\n\t\t\tthrow e;\n\t\t}));\n\t}\n};\n\n// no hmr\n\n// no prefetching\n\n// no preloaded","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t121: 0\n};\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(121 != chunkId) {\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t} else installedChunks[chunkId] = 0;\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar [chunkIds, moreModules, runtime] = data;\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = globalThis[\"webpackChunk\"] = globalThis[\"webpackChunk\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));"],"names":["deferred","inProgress","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","exports","module","id","loaded","__webpack_modules__","call","m","amdO","O","result","chunkIds","fn","priority","notFulfilled","Infinity","i","length","fulfilled","j","Object","keys","every","key","splice","r","n","getter","__esModule","d","a","definition","o","defineProperty","enumerable","get","f","e","chunkId","Promise","all","reduce","promises","u","miniCssF","g","globalThis","this","Function","window","hmd","create","children","set","Error","obj","prop","prototype","hasOwnProperty","l","url","done","push","script","needAttach","scripts","document","getElementsByTagName","s","getAttribute","createElement","charset","timeout","nc","setAttribute","src","onScriptComplete","prev","event","onerror","onload","clearTimeout","doneFns","parentNode","removeChild","forEach","setTimeout","bind","type","target","head","appendChild","Symbol","toStringTag","value","nmd","paths","p","installedCssChunks","miniCss","resolve","reject","href","fullhref","existingLinkTags","dataHref","tag","rel","existingStyleTags","findStylesheet","oldTag","linkTag","nonce","errorType","realHref","err","name","code","request","createStylesheet","loadStylesheet","then","installedChunks","installedChunkData","promise","error","realSrc","message","webpackJsonpCallback","parentChunkLoadingFunction","data","moreModules","runtime","some","chunkLoadingGlobal"],"sourceRoot":""} \ No newline at end of file diff --git a/assets/121.5eeb4585.js.map.br b/assets/121.5eeb4585.js.map.br new file mode 100644 index 00000000..1daf2f76 Binary files /dev/null and b/assets/121.5eeb4585.js.map.br differ diff --git a/assets/121.5eeb4585.js.map.gz b/assets/121.5eeb4585.js.map.gz new file mode 100644 index 00000000..b8e177a6 Binary files /dev/null and b/assets/121.5eeb4585.js.map.gz differ diff --git a/assets/121.dee40b05.js b/assets/121.dee40b05.js deleted file mode 100644 index 08fb11f1..00000000 --- a/assets/121.dee40b05.js +++ /dev/null @@ -1,2 +0,0 @@ -(()=>{"use strict";var e,r,t={},n={};function o(e){var r=n[e];if(void 0!==r)return r.exports;var a=n[e]={id:e,loaded:!1,exports:{}};return t[e].call(a.exports,a,a.exports,o),a.loaded=!0,a.exports}o.m=t,o.amdO={},e=[],o.O=(r,t,n,a)=>{if(!t){var i=1/0;for(u=0;u=a)&&Object.keys(o.O).every((e=>o.O[e](t[l])))?t.splice(l--,1):(d=!1,a0&&e[u-1][2]>a;u--)e[u]=e[u-1];e[u]=[t,n,a]},o.n=e=>{var r=e&&e.__esModule?()=>e.default:()=>e;return o.d(r,{a:r}),r},o.d=(e,r)=>{for(var t in r)o.o(r,t)&&!o.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:r[t]})},o.f={},o.e=e=>Promise.all(Object.keys(o.f).reduce(((r,t)=>(o.f[t](e,r),r)),[])),o.u=e=>e+"."+{81:"d98ad4c1",157:"ae2d24ea",205:"bfd12ce1",268:"424eb2a7",441:"8903fb09",535:"0b9b687d",663:"28f5dddc",694:"23c1d07e",745:"c73f1c83",760:"6ade6071",783:"35cb1cc0",887:"a3fce716",914:"7d0beb8a"}[e]+".js",o.miniCssF=e=>e+"."+{81:"bf3a891e",157:"22ba31eb",205:"30d0b998",268:"e2a184bf",441:"f1b3bb88"}[e]+".css",o.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),o.hmd=e=>((e=Object.create(e)).children||(e.children=[]),Object.defineProperty(e,"exports",{enumerable:!0,set:()=>{throw new Error("ES Modules may not assign module.exports or exports.*, Use ESM export syntax, instead: "+e.id)}}),e),o.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),r={},o.l=(e,t,n,a)=>{if(r[e])r[e].push(t);else{var i,d;if(void 0!==n)for(var l=document.getElementsByTagName("script"),s=0;s{i.onerror=i.onload=null,clearTimeout(c);var o=r[e];if(delete r[e],i.parentNode&&i.parentNode.removeChild(i),o&&o.forEach((e=>e(n))),t)return t(n)},c=setTimeout(f.bind(null,void 0,{type:"timeout",target:i}),12e4);i.onerror=f.bind(null,i.onerror),i.onload=f.bind(null,i.onload),d&&document.head.appendChild(i)}},o.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},o.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),o.p="/assets/",(()=>{if("undefined"!=typeof document){var e={121:0};o.f.miniCss=(r,t)=>{e[r]?t.push(e[r]):0!==e[r]&&{81:1,157:1,205:1,268:1,441:1}[r]&&t.push(e[r]=(e=>new Promise(((r,t)=>{var n=o.miniCssF(e),a=o.p+n;if(((e,r)=>{for(var t=document.getElementsByTagName("link"),n=0;n{var i=document.createElement("link");i.rel="stylesheet",i.type="text/css",o.nc&&(i.nonce=o.nc),i.onerror=i.onload=t=>{if(i.onerror=i.onload=null,"load"===t.type)n();else{var o=t&&t.type,d=t&&t.target&&t.target.href||r,l=new Error("Loading CSS chunk "+e+" failed.\n("+o+": "+d+")");l.name="ChunkLoadError",l.code="CSS_CHUNK_LOAD_FAILED",l.type=o,l.request=d,i.parentNode&&i.parentNode.removeChild(i),a(l)}},i.href=r,document.head.appendChild(i)})(e,a,0,r,t)})))(r).then((()=>{e[r]=0}),(t=>{throw delete e[r],t})))}}})(),(()=>{var e={121:0};o.f.j=(r,t)=>{var n=o.o(e,r)?e[r]:void 0;if(0!==n)if(n)t.push(n[2]);else if(121!=r){var a=new Promise(((t,o)=>n=e[r]=[t,o]));t.push(n[2]=a);var i=o.p+o.u(r),d=new Error;o.l(i,(t=>{if(o.o(e,r)&&(0!==(n=e[r])&&(e[r]=void 0),n)){var a=t&&("load"===t.type?"missing":t.type),i=t&&t.target&&t.target.src;d.message="Loading chunk "+r+" failed.\n("+a+": "+i+")",d.name="ChunkLoadError",d.type=a,d.request=i,n[1](d)}}),"chunk-"+r,r)}else e[r]=0},o.O.j=r=>0===e[r];var r=(r,t)=>{var n,a,[i,d,l]=t,s=0;if(i.some((r=>0!==e[r]))){for(n in d)o.o(d,n)&&(o.m[n]=d[n]);if(l)var u=l(o)}for(r&&r(t);s{"use strict";n.d(t,{A:()=>re});var o=n("../../node_modules/marko/dist/runtime/vdom/index.js"),s=n("../../node_modules/@marko/tags-api-preview/dist/util/replace-assignments/index.mjs"),a=n("../../node_modules/@marko/tags-api-preview/dist/transform/cached-values/index-browser.mjs"),r=n("../../node_modules/@marko/tags-api-preview/dist/transform/native-tag-var/index-browser.mjs"),i=n("../../node_modules/@marko/tags-api-preview/dist/components/lifecycle/index.mjs"),l=n("../../node_modules/@marko/tags-api-preview/dist/components/_instance/index.marko"),d=n("../../node_modules/marko/dist/runtime/helpers/render-tag.js"),c=n.n(d),u=n("../../node_modules/marko/dist/runtime/helpers/class-value.js"),m=n.n(u),p=n("../../node_modules/marko/dist/runtime/helpers/of-fallback.js"),h=n.n(p),f=n("../../node_modules/@marko/tags-api-preview/dist/chunk-5R2Z7TR6.mjs"),v=n("../../node_modules/marko/dist/runtime/components/renderer.js"),g=n.n(v),y=n("../../node_modules/marko/dist/runtime/components/registry.js"),w=n("../../node_modules/marko/dist/runtime/components/defineComponent.js"),b=n.n(w);const _="JtPBPdcm",k=(0,o.t)(_),j=k;(0,y.r)(_,(()=>k));const x={onCreate(){this.state={}}};k._=g()((function(e,t,n,o,d,u){(0,f.begin)();try{var p=o,v=d;const{selectedIndexChange:u,filesChange:f,files:g,selectedIndex:y}=e,w=f||(e=>p.setState("0",e)),b=f?g:"0"in v?v[0]:v[0]=g,_=u||(e=>p.setState("1",e)),k=u?y:"1"in v?v[1]:v[1]=y,j=b[k];t.be("div",{class:"file-tabs"},"0",o,null,1);{const e="2"in v?v[2]:v[2]=1,d=e=>p.setState("2",e);let u=0;for(const e of h()(b)){let o=u++;const d=`[${o}]`;c()(l.default,{renderBody:(t,n,u,p)=>{var h=n,f=u;const v="0"in p?p[0]:p[0]=!1,g=e=>u.setState("0",e),y=j===e,x=o>0;t.be("div",{class:m()(["file-tab",{selected:y}])},"2"+d,f,null,1,{onclick:h.d("click",(function(){y?(0,s.default)(g,!0):((0,s.default)(g,!1),(0,s.default)(_,o))}),!1)}),v&&y&&x?c()(l.default,{renderBody:(t,n,l,d)=>{var c=n,u=l;const m="0"in d?d[0]:d[0]=e.name,p=(0,a.cache)((0,a.cached)(l,[m,b])||function(){const t={...e,name:m,path:e.path.replace(e.name,m)};(0,s.default)(w,[...b.slice(0,o),t,...b.slice(o+1)]),(0,s.default)(g,!1)}),h=(0,r.default)(l,"0");var f=e=>l.setState("0",e);t.e("input",{type:"text",size:m.length,value:m},"@0",u,0,0,{pa:[f&&"value"],onblur:c.d("blur",p,!1),onkeydown:c.d("keydown",(function(e){"Enter"===e.code&&p()}),!1),oninput:c.d("input",(e=>{f(e.target.value)}),!1)}),(0,i.default)(u,{onMount:(0,a.cache)((0,a.cached)(l,[m])||function(){h().focus(),h().setSelectionRange(0,m.indexOf("."))})})}},t,h,"3"+d):t.t(e.name,f),x&&(t.be("button",{class:"file-close"},"4"+d,f,null,1,{onclick:h.d("click",(function(t){window.confirm(`Delete ${e.path}?`)&&(k>=o&&(0,s.default)(_,k-1),(0,s.default)(w,[...b.slice(0,o),...b.slice(o+1)])),t.stopPropagation()}),!1)}),t.t("×",f),t.ee()),t.ee()}},t,n,"1"+d)}t.be("button",{class:"new-file"},"5",o,null,1,{onclick:n.d("click",(function(){const t={name:`Component${e}.marko`,path:`/components/Component${e}.marko`,content:""},n=b.length;(0,s.default)(w,b.concat(t)),(0,s.default)(_,n),(0,s.default)(d,e+1)}),!1)}),t.t("+",o),t.ee()}t.ee()}finally{(0,f.end)()}}),{t:_},x),k.Component=b()(x,k._);var C=n("../../node_modules/marko/dist/runtime/helpers/attr-tag.js"),S=n("../../node_modules/marko/dist/runtime/helpers/dynamic-tag.js"),T=n.n(S),E=n("../../node_modules/marko/dist/runtime/vdom/helpers/const-element.js"),L=n.n(E);const B="YdDerxpd",M=(0,o.t)(B),O=M,A=L()("div",{class:"pane-divider"},0);(0,y.r)(B,(()=>M));const H={};M._=g()((function(e,t,n,o,s,a){(0,f.begin)();try{const{actions:s,body:a}=e;t.be("div",{class:"pane"},"0",o,null,1),t.be("div",{class:"pane-actions"},"1",o,null,1),T()(t,s.renderBody,null,null,null,null,n,"2"),t.ee(),t.n(A,o),t.be("div",{class:"pane-body"},"4",o,null,1),T()(t,a.renderBody,null,null,null,null,n,"5"),t.ee(),t.ee()}finally{(0,f.end)()}}),{t:B,i:!0},H),M.Component=b()(H,M._);var R=n("../../node_modules/@marko/tags-api-preview/dist/components/effect/index.mjs");const q="edcMGKVi",F=(0,o.t)(q),I=F;(0,y.r)(q,(()=>F));const U={onCreate(){this.state={}}};F._=g()((function(e,t,n,o,s,i){(0,f.begin)();try{var l=o;const{value:s,valueChange:i,renderBody:d,class:c}=e,u=(0,r.default)(l,"0");t.be("select",{class:m()(c)},"@0",o,null,1,{onchange:n.d("change",(function(e){i(e.target.value)}),!1)}),T()(t,d,null,null,null,null,n,"0"),t.ee(),(0,R.default)(o,(0,a.cache)((0,a.cached)(l,[s,d,i])||function(){u().value=s}))}finally{(0,f.end)()}}),{t:q},U),F.Component=b()(U,F._);var P=n("../../node_modules/lz-string/libs/lz-string.js"),z=n("../../node_modules/@marko/tags-api-preview/dist/translate/native-tag-handlers/index-browser.mjs"),D=n("../../node_modules/marko/dist/runtime/vdom/helpers/attrs.js"),Y=n.n(D);const $="fLRwaABg",W=(0,o.t)($),J=W,N=L()("span",null,1).t("Open in playground ");(0,y.r)($,(()=>W));const V={};W._=g()((function(e,t,n,o,s,a){(0,f.begin)();try{const{files:s,...a}=e;var r={};t.be("a",Y()((0,z.default)({...a,href:`/playground/#${(0,P.compressToEncodedURIComponent)(JSON.stringify(s))}`,target:"_top",class:"playground-link"},n,"a",r)),"0",o,null,4,{...r}),t.n(N,o),t.t("↗",o),t.ee()}finally{(0,f.end)()}}),{t:$,i:!0},V),W.Component=b()(V,W._);var K=n("../../node_modules/@marko/tags-api-preview/dist/components/return/index-browser.mjs");const X="aEQdEE_f",Z=(0,o.t)(X),Q=Z;(0,y.r)(X,(()=>Z));const G={onCreate(){this.state={}}};Z._=g()((function(e,t,n,o,r,i){(0,f.begin)();try{var l=o,d=r;const{value:t,fallback:n}=e,i="0"in d?d[0]:d[0]=window.matchMedia(t).matches,c=e=>l.setState("0",e);(0,R.default)(o,(0,a.cache)((0,a.cached)(l,[t])||function(){const e=window.matchMedia(t),n=()=>(0,s.default)(c,!!e.matches);return e.addEventListener("change",n),(0,s.default)(c,!!e.matches),()=>e.removeEventListener("change",n)})),e._return&&e._return({value:i},1)}finally{(0,f.end)()}}),{t:X},G),Z.Component=b()(G,Z._);const ee="H_lRXCBe",te=(0,o.t)(ee),ne=te;(0,y.r)(ee,(()=>te));const oe={onCreate(){this.state={}}};te._=g()((function(e,t,n,o,i,d){(0,f.begin)();try{var u=o,p=i;const{left:d,right:f}=e,y="0"in p?p[0]:p[0]=.5,w=e=>u.setState("0",e),b="1"in p?p[1]:p[1]=!1,_=e=>u.setState("1",e);var h=(0,K.default)(u);c()(Q,{value:"(max-aspect-ratio: 1/1)",_return:h},t,n,"0");const{value:k}=h(),j=(0,r.default)(u,"0");t.be("div",{class:m()(["panes",b&&"resizing"])},"@0",o,null,1);var v={};t.be("div",Y()((0,z.default)({...d,style:`flex-grow:${y}`},n,"div",v)),"1",o,null,4,{...v}),T()(t,d.renderBody,null,null,null,null,n,"2"),t.ee(),t.be("div",{class:"divider"},"3",o,null,1),t.e("div",{class:"inner"},"4",o,0,1,{onmousedown:n.d("mousedown",(function(e){(0,s.default)(_,!0),e.preventDefault(),e.stopPropagation()}),!1)}),t.ee();var g={};t.be("div",Y()((0,z.default)({...f,style:"flex-grow:"+(1-y)},n,"div",g)),"5",o,null,4,{...g}),T()(t,f.renderBody,null,null,null,null,n,"6"),t.ee(),t.ee(),b&&c()(l.default,{renderBody:(e,t,n,o)=>{var r=n;(0,R.default)(r,(0,a.cache)((0,a.cached)(n,[k])||function(){const e=e=>{if(e.buttons||e.which){const t=j().getBoundingClientRect(),n=k?(e.clientY-t.top)/t.height:(e.clientX-t.left)/t.width;n>0&&(0,s.default)(w,Math.min(.8,Math.max(.2,n)))}else(0,s.default)(_,!1)};return window.addEventListener("mousemove",e),()=>window.removeEventListener("mousemove",e)}))}},t,n,"7")}finally{(0,f.end)()}}),{t:ee},oe),te.Component=b()(oe,te._);const se="rtapnbhf",ae=(0,o.t)(se),re=ae,ie=L()("option",{value:"preview"},1).t("App Preview"),le=L()("option",{value:"compiled-html"},1).t("Compiled (HTML)"),de=L()("option",{value:"compiled-vdom"},1).t("Compiled (DOM)");(0,y.r)(se,(()=>ae));const ce={onCreate(){this.state={}}};ae._=g()((function(e,t,o,r,d,u){(0,f.begin)();try{var m=r,p=d;const{filesChange:u,getCompilerOptions:h,files:f}=e,v="0"in p?p[0]:p[0]=0,g=e=>m.setState("0",e),y="1"in p?p[1]:p[1]="preview",w=e=>m.setState("1",e),b="2"in p?p[2]:p[2]=!1,_=e=>m.setState("2",e),k=f[v];c()(ne,(0,C.i)((()=>{(0,C.a)("left",{class:"editor-container",renderBody:e=>{c()(O,(0,C.i)((()=>{(0,C.a)("actions",{renderBody:e=>{c()(l.default,{renderBody:(e,t,n,o)=>{var r=t;c()(j,{files:f,filesChange:u,selectedIndex:v,selectedIndexChange:(0,a.cache)((0,a.cached)(n,[])||(e=>(0,s.default)(g,e)))},e,r,"3")}},e,o,"2")}}),(0,C.a)("body",{renderBody:e=>{c()(l.default,{renderBody:(e,t,o,r)=>{var d=t,m=o;const p="0"in r?r[0]:r[0]=null,h=e=>o.setState("0",e);p&&c()(l.default,{renderBody:(e,t,n,o)=>{var r=t;T()(e,p,(()=>({value:k.content,filename:k.path,valueChange:(0,a.cache)((0,a.cached)(n,[k,f,v])||function(e){const t={...k,content:e};(0,s.default)(u,[...f.slice(0,v),t,...f.slice(v+1)]),(0,s.default)(_,!0)})})),null,null,null,r,"6")}},e,d,"5"),(0,i.default)(m,{onMount:(0,a.cache)((0,a.cached)(o,[])||(async()=>{const e=await Promise.all([n.e(745),n.e(535),n.e(157),n.e(760),n.e(268)]).then(n.bind(n,"../components/repl/components/editor.marko"));await e.loading,(0,s.default)(h,e)}))})}},e,o,"4")}})})),e,o,"1")}}),(0,C.a)("right",{renderBody:e=>{c()(O,(0,C.i)((()=>{(0,C.a)("actions",{renderBody:e=>{c()(l.default,{renderBody:(e,t,n,o)=>{var r=t,i=n;c()(I,{value:y,valueChange:(0,a.cache)((0,a.cached)(n,[])||function(e){(0,s.default)(w,e),(0,s.default)(_,!1)}),class:"preview-select",renderBody:e=>{e.n(ie,i),e.n(le,i),e.n(de,i)}},e,r,"9"),c()(J,{files:f},e,r,"13")}},e,o,"8")}}),(0,C.a)("body",{renderBody:e=>{c()(l.default,{renderBody:(e,t,o,r)=>{var l=t,d=o;const c="0"in r?r[0]:r[0]=null,u=e=>o.setState("0",e);T()(e,c,(()=>({type:y,files:f,selectedFile:k,getCompilerOptions:h,debounce:b})),null,null,null,l,"15"),(0,i.default)(d,{onMount:(0,a.cache)((0,a.cached)(o,[])||(async()=>{(0,s.default)(u,await Promise.all([n.e(745),n.e(663),n.e(535),n.e(783),n.e(760),n.e(887),n.e(81)]).then(n.bind(n,"../components/repl/components/preview.marko")))}))})}},e,o,"14")}})})),e,o,"7")}})})),t,o,"0")}finally{(0,f.end)()}}),{t:se},ce),ae.Component=b()(ce,ae._)},"./playground/components/hash-value.marko":(e,t,n)=>{"use strict";n.d(t,{A:()=>v});var o=n("../../node_modules/marko/dist/runtime/vdom/index.js"),s=n("../../node_modules/lz-string/libs/lz-string.js"),a=n("../../node_modules/@marko/tags-api-preview/dist/transform/cached-values/index-browser.mjs"),r=n("../../node_modules/@marko/tags-api-preview/dist/util/replace-assignments/index.mjs"),i=n("../../node_modules/@marko/tags-api-preview/dist/components/lifecycle/index.mjs"),l=n("../../node_modules/@marko/tags-api-preview/dist/chunk-5R2Z7TR6.mjs"),d=n("../../node_modules/marko/dist/runtime/components/renderer.js"),c=n.n(d),u=n("../../node_modules/marko/dist/runtime/components/registry.js"),m=n("../../node_modules/marko/dist/runtime/components/defineComponent.js"),p=n.n(m);const h="iu_vYbKl",f=(0,o.t)(h),v=f;(0,u.r)(h,(()=>f));const g={onCreate(){this.state={}}};f._=c()((function(e,t,n,o,d,c){(0,l.begin)();try{var u=o,m=d;const{value:t}=e,n="0"in m?m[0]:m[0]=function(){try{return JSON.parse((0,s.decompressFromEncodedURIComponent)(window.location.hash.slice(1)))}catch(e){console.error(e)}}()||t,l=e=>u.setState("0",e);(0,i.default)(o,{onMount:(0,a.cache)((0,a.cached)(u,[])||function(){window.addEventListener("hashchange",this.handler=()=>{try{this.isUpdating?this.isUpdating=!1:(0,r.default)(l,JSON.parse((0,s.decompressFromEncodedURIComponent)(window.location.hash.slice(1))))}catch(e){console.error(e)}})}),onUpdate:(0,a.cache)((0,a.cached)(u,[n])||function(){this.isUpdating=!0,window.location.hash=(0,s.compressToEncodedURIComponent)(JSON.stringify(n))}),onDestroy:(0,a.cache)((0,a.cached)(u,[])||function(){window.removeEventListener("hashchange",this.handler)})}),e._return&&e._return({value:n,valueChange:(0,a.cache)((0,a.cached)(u,[])||(e=>(0,r.default)(l,e)))},1)}finally{(0,l.end)()}}),{t:h},g),f.Component=p()(g,f._)},"./v6/playground/index.marko?browser-entry":(e,t,n)=>{"use strict";var o=n("../../node_modules/marko/dist/runtime/components/index.js"),s=(n("../components/app-layout/favicon.png"),n("../logos/marko.svg"),n("../logos/marko-uwu.png"),n("../components/app-layout/components/layout-search/component-browser.js")),a=n("../components/app-layout/components/layout-header/component-browser.js"),r=n.n(a),i=n("../components/app-layout/components/layout-sidebar/components/version-switcher/component-browser.js"),l=n.n(i),d=n("../components/app-layout/components/layout-sidebar/component-browser.js"),c=n.n(d),u=(n("../components/app-footer/openjsf.svg"),n("../components/app-footer/osi.svg"),n("../components/app-footer/ebay.svg"),n("../logos/discord.svg"),n("../../node_modules/marko/dist/runtime/vdom/index.js")),m=n("./playground/components/hash-value.marko"),p=n("../../node_modules/@marko/translator-tags/dist/index.js"),h=n("../../node_modules/@marko/tags-api-preview/dist/transform/cached-values/index-browser.mjs"),f=n("../../node_modules/@marko/tags-api-preview/dist/components/return/index-browser.mjs"),v=n("../../node_modules/marko/dist/runtime/helpers/render-tag.js"),g=n.n(v),y=n("../components/repl/index.marko"),w=n("../../node_modules/@marko/tags-api-preview/dist/chunk-5R2Z7TR6.mjs"),b=n("../../node_modules/marko/dist/runtime/components/renderer.js"),_=n.n(b),k=n("../../node_modules/marko/dist/runtime/components/registry.js"),j=n("../../node_modules/marko/dist/runtime/components/defineComponent.js"),x=n.n(j);const C="TrmYoaCc",S=(0,u.t)(C);(0,k.r)(C,(()=>S));const T={onCreate(){this.state={}}};S._=_()((function(e,t,n,o,s,a){(0,w.begin)();try{var r=o,i=(0,f.default)(r);g()(m.A,{value:(0,h.cache)((0,h.cached)(r,[])||[{name:"index.marko",path:"/components/index.marko",content:"\n"}]),_return:i},t,n,"0");const{valueChange:e,value:s}=i();g()(y.A,{getCompilerOptions:(0,h.cache)((0,h.cached)(r,[])||function(){return{translator:p,optimize:!1}}),files:s,filesChange:e},t,n,"1")}finally{(0,w.end)()}}),{t:C},T),S.Component=x()(T,S._),(0,o.register)("MYKqWWDb",s.A),(0,o.register)("FbSTxHWc",r()),(0,o.register)("bjXvzQUk",l()),(0,o.register)("SxWdUlSh",c()),(0,o.init)()},"../../browser-shims/compiler/dist/babel-types/index.js":(e,t,n)=>{e.exports=n("../../node_modules/@marko/compiler/dist/babel-types/index.js")},"../../browser-shims/compiler/index.js":(e,t,n)=>{t.types=n("../../browser-shims/compiler/dist/babel-types/index.js")},"../../browser-shims/fs.js":(e,t,n)=>{e.exports=n("../../node_modules/memfs/lib/index.js")},"../../browser-shims/module.js":(e,t,n)=>{const o=n("../../node_modules/path-browserify/index.js"),s=n("../../node_modules/resolve/index.js"),a=n("../../node_modules/resolve.exports/dist/index.js"),r={_nodeModulePaths:function(e){const t=[];for(;;){const n=o.dirname(e);if(t.push(o.join(e,"node_modules")),!n||n===e)break;e=n}return t},_resolveFilename:function(e,t){return s.sync(e,{basedir:o.dirname(t.filename),paths:t.paths,extensions:[".js",".json",".marko",".mjs"],pathFilter(e,t,n){if(/^index(\.[^/\\]+)?$/.test(n))try{return a.legacy(e,r._resolveExportsOptions)}catch{}else try{return a.resolve(e,n,r._resolveExportsOptions)}catch{}return n}})},_resolveExportsOptions:{browser:!0}};e.exports=r},"../../browser-shims/process.js":e=>{e.exports={env:{},browser:!0,versions:{node:"1000.0.0"},cwd:()=>"/"}},"../components/app-layout/components/layout-header/component-browser.js":(e,t,n)=>{var o=n("../components/app-layout/components/layout-header/events.js"),s="headspace--fixed",a="headspace--hidden";e.exports={onMount(){o.emit("create",this);var e,t=0,n=this.getEl("header").offsetHeight,s=(this.getEl("banner")||{offsetHeight:0}).offsetHeight,a=(e=()=>{var e=window.pageYOffset;e<=s?this.reset():!this.paused&&e>n&&(Math.abs(e-t)>=3||e>t&&t<=n)&&(e>t?this.hide():this.fix()),t=e},()=>window.requestAnimationFrame(e));a(),window.addEventListener("scroll",a)},reset(){this.removeClass(s),this.removeClass(a),o.emit("reset")},fix(){this.addClass(s),this.removeClass(a),o.emit("fix")},hide(){this.addClass(a),o.emit("hide")},addClass(e){this.getEl("header").classList.add(e)},removeClass(e){this.getEl("header").classList.remove(e)},pause(){this.paused=!0},resume(){setTimeout((()=>window.requestAnimationFrame((()=>{this.paused=!1}))))},toggleMenu(){o.emit("toggle-menu")}}},"../components/app-layout/components/layout-header/events.js":(e,t,n)=>{var o=n("../../node_modules/events/events.js");e.exports=new o},"../components/app-layout/components/layout-search/component-browser.js":(e,t,n)=>{"use strict";n.d(t,{A:()=>o});const o=class{async onMount(){const{init:e}=await Promise.all([n.e(914),n.e(205)]).then(n.bind(n,"../components/app-layout/components/layout-search/doc-search.js"));e(this.getEl("container"))}}},"../components/app-layout/components/layout-sidebar/component-browser.js":(e,t,n)=>{var o,s=n("../components/app-layout/components/layout-header/events.js"),a=[].forEach,r=[].filter,i=[].slice;e.exports={onMount(){this.preventOverscroll(),this.listenForHeaderChanges(),this.initScrollSpy()},initScrollSpy(){var e=[1,2,3,4,5,6].map((e=>".doc-content h"+e)).join(","),t=i.call(document.querySelectorAll(e)),n=!1;t.length&&this.subscribeTo(window).on("scroll",(()=>{n||(n=!0,setTimeout((()=>{var e,o,s=window.innerHeight/3;t.map((t=>{var n=t.getBoundingClientRect().top;(null==o||ne.classList.remove("selected")));d;){var u=d.closest("ul"),m=u&&r.call(u.querySelectorAll(":scope > li > a[href^=\\#]"),(e=>e!==d));m&&m.forEach((e=>e.classList.remove("selected"))),d.classList.add("selected"),d=u&&u.previousElementSibling}this.scrollAnchorIntoView(l),n=!1}),50))}))},listenForHeaderChanges(){a.call(this.el.querySelectorAll("a[href^=\\#]"),(e=>{this.subscribeTo(e).on("click",(()=>{o.hide(),o.pause(),o.resume(),this.hide()}))}));var e=i.call(this.el.querySelectorAll("a.selected")).pop();e&&this.subscribeTo(e).on("click",(e=>{window.scrollTo(0,0),o.reset(),e.preventDefault()})),this.subscribeTo(s).on("reset",(()=>{this.el.classList.remove("no-header"),this.el.classList.remove("fixed"),setTimeout((()=>this.el.classList.remove("transition")),0)})).on("fix",(()=>{this.el.classList.remove("no-header"),this.el.classList.add("fixed"),setTimeout((()=>this.el.classList.add("transition")),0)})).on("hide",(()=>{this.el.classList.add("no-header"),this.el.classList.add("fixed"),setTimeout((()=>this.el.classList.add("transition")),0)})).on("toggle-menu",(()=>{this.el.classList.contains("show")?(this.el.classList.remove("show"),document.body.style.overflow=""):this.el.classList.add("show")})).on("create",(e=>{o=e,window.pageYOffset>o.el.offsetHeight&&(this.el.classList.add("no-header"),this.el.classList.add("fixed"))}))},preventOverscroll(){var e=this.getEl("sidebar");this.subscribeTo(document.body).on("wheel",(t=>{var n=t.deltaY,o=e.scrollTop+n,s=e.scrollHeight-e.offsetHeight,a=o<=0,r=o>=s;(n<0&&a||n>0&&r)&&(t.target===e||e.contains(t.target))&&(a&&0!=e.scrollTop?e.scrollTop=0:r&&e.scrollTop!=s&&(e.scrollTop=s),t.preventDefault())}))},scrollAnchorIntoView(e){for(var t,n=this.getEl("sidebar"),o=(e.offsetTop,n.scrollTop),s=n.offsetHeight,a=o+s,r=e.closest("li");(t=r.parentNode.closest("ul"))&&t.offsetHeighto&&i+l{e.exports={onMount(){const e=this.getEl("version").value,t=e.startsWith("/v6"),n=!t&&e.startsWith("/");(this.v6&&!t||!this.v6&&!n)&&(window.location.href=e)},switchVersion(e){window.location.href=e.target.value}}},"../components/app-footer/ebay.svg":(e,t,n)=>{"use strict";n.p},"../components/app-footer/openjsf.svg":(e,t,n)=>{"use strict";n.p},"../components/app-footer/osi.svg":(e,t,n)=>{"use strict";n.p},"../components/app-layout/favicon.png":(e,t,n)=>{"use strict";n.p},"../logos/discord.svg":(e,t,n)=>{"use strict";n.p},"../logos/marko-uwu.png":(e,t,n)=>{"use strict";n.p},"../logos/marko.svg":(e,t,n)=>{"use strict";n.d(t,{A:()=>o});const o=n.p+"91bc26e5.svg"},"?8b4e":()=>{},"?98fd":()=>{},"?2e65":()=>{},"?e376":()=>{},"?7dc1":()=>{},"?f84f":()=>{},"?4c42":()=>{},"?c95a":()=>{},"?c86f":()=>{},"?d1e8":()=>{}},e=>{e.O(0,[364,72,745,663,215],(()=>e(e.s="./v6/playground/index.marko?browser-entry"))),e.O()}]); -//# sourceMappingURL=313.b4d51fa5.js.map \ No newline at end of file diff --git a/assets/313.b4d51fa5.js.br b/assets/313.b4d51fa5.js.br deleted file mode 100644 index 2946bd16..00000000 Binary files a/assets/313.b4d51fa5.js.br and /dev/null differ diff --git a/assets/313.b4d51fa5.js.gz b/assets/313.b4d51fa5.js.gz deleted file mode 100644 index ff89a0fd..00000000 Binary files a/assets/313.b4d51fa5.js.gz and /dev/null differ diff --git a/assets/313.b4d51fa5.js.map.br b/assets/313.b4d51fa5.js.map.br deleted file mode 100644 index 0ea7ee14..00000000 Binary files a/assets/313.b4d51fa5.js.map.br and /dev/null differ diff --git a/assets/313.b4d51fa5.js.map.gz b/assets/313.b4d51fa5.js.map.gz deleted file mode 100644 index a3138a1d..00000000 Binary files a/assets/313.b4d51fa5.js.map.gz and /dev/null differ diff --git a/assets/313.fdf44b36.js b/assets/313.fdf44b36.js new file mode 100644 index 00000000..6abb3740 --- /dev/null +++ b/assets/313.fdf44b36.js @@ -0,0 +1,2 @@ +(globalThis.webpackChunk=globalThis.webpackChunk||[]).push([[313],{"../components/repl/index.marko":(e,t,n)=>{"use strict";n.d(t,{A:()=>re});var o=n("../../node_modules/marko/dist/runtime/vdom/index.js"),s=n("../../node_modules/@marko/tags-api-preview/dist/util/replace-assignments/index.mjs"),a=n("../../node_modules/@marko/tags-api-preview/dist/transform/cached-values/index-browser.mjs"),r=n("../../node_modules/@marko/tags-api-preview/dist/transform/native-tag-var/index-browser.mjs"),i=n("../../node_modules/@marko/tags-api-preview/dist/components/lifecycle/index.mjs"),l=n("../../node_modules/@marko/tags-api-preview/dist/components/_instance/index.marko"),d=n("../../node_modules/marko/dist/runtime/helpers/render-tag.js"),c=n.n(d),u=n("../../node_modules/marko/dist/runtime/helpers/class-value.js"),m=n.n(u),p=n("../../node_modules/marko/dist/runtime/helpers/of-fallback.js"),h=n.n(p),f=n("../../node_modules/@marko/tags-api-preview/dist/chunk-5R2Z7TR6.mjs"),v=n("../../node_modules/marko/dist/runtime/components/renderer.js"),g=n.n(v),y=n("../../node_modules/marko/dist/runtime/components/registry.js"),w=n("../../node_modules/marko/dist/runtime/components/defineComponent.js"),b=n.n(w);const _="JtPBPdcm",k=(0,o.t)(_),j=k;(0,y.r)(_,(()=>k));const x={onCreate(){this.state={}}};k._=g()((function(e,t,n,o,d,u){(0,f.begin)();try{var p=o,v=d;const{selectedIndexChange:u,filesChange:f,files:g,selectedIndex:y}=e,w=f||(e=>p.setState("0",e)),b=f?g:"0"in v?v[0]:v[0]=g,_=u||(e=>p.setState("1",e)),k=u?y:"1"in v?v[1]:v[1]=y,j=b[k];t.be("div",{class:"file-tabs"},"0",o,null,1);{const e="2"in v?v[2]:v[2]=1,d=e=>p.setState("2",e);let u=0;for(const e of h()(b)){let o=u++;const d=`[${o}]`;c()(l.default,{renderBody:(t,n,u,p)=>{var h=n,f=u;const v="0"in p?p[0]:p[0]=!1,g=e=>u.setState("0",e),y=j===e,x=o>0;t.be("div",{class:m()(["file-tab",{selected:y}])},"2"+d,f,null,1,{onclick:h.d("click",(function(){y?(0,s.default)(g,!0):((0,s.default)(g,!1),(0,s.default)(_,o))}),!1)}),v&&y&&x?c()(l.default,{renderBody:(t,n,l,d)=>{var c=n,u=l;const m="0"in d?d[0]:d[0]=e.name,p=(0,a.cache)((0,a.cached)(l,[m,b])||function(){const t={...e,name:m,path:e.path.replace(e.name,m)};(0,s.default)(w,[...b.slice(0,o),t,...b.slice(o+1)]),(0,s.default)(g,!1)}),h=(0,r.default)(l,"0");var f=e=>l.setState("0",e);t.e("input",{type:"text",size:m.length,value:m},"@0",u,0,0,{pa:[f&&"value"],onblur:c.d("blur",p,!1),onkeydown:c.d("keydown",(function(e){"Enter"===e.code&&p()}),!1),oninput:c.d("input",(e=>{f(e.target.value)}),!1)}),(0,i.default)(u,{onMount:(0,a.cache)((0,a.cached)(l,[m])||function(){h().focus(),h().setSelectionRange(0,m.indexOf("."))})})}},t,h,"3"+d):t.t(e.name,f),x&&(t.be("button",{class:"file-close"},"4"+d,f,null,1,{onclick:h.d("click",(function(t){window.confirm(`Delete ${e.path}?`)&&(k>=o&&(0,s.default)(_,k-1),(0,s.default)(w,[...b.slice(0,o),...b.slice(o+1)])),t.stopPropagation()}),!1)}),t.t("×",f),t.ee()),t.ee()}},t,n,"1"+d)}t.be("button",{class:"new-file"},"5",o,null,1,{onclick:n.d("click",(function(){const t={name:`Component${e}.marko`,path:`/components/Component${e}.marko`,content:""},n=b.length;(0,s.default)(w,b.concat(t)),(0,s.default)(_,n),(0,s.default)(d,e+1)}),!1)}),t.t("+",o),t.ee()}t.ee()}finally{(0,f.end)()}}),{t:_},x),k.Component=b()(x,k._);var C=n("../../node_modules/marko/dist/runtime/helpers/attr-tag.js"),S=n("../../node_modules/marko/dist/runtime/helpers/dynamic-tag.js"),T=n.n(S),E=n("../../node_modules/marko/dist/runtime/vdom/helpers/const-element.js"),L=n.n(E);const B="YdDerxpd",M=(0,o.t)(B),O=M,A=L()("div",{class:"pane-divider"},0);(0,y.r)(B,(()=>M));const H={};M._=g()((function(e,t,n,o,s,a){(0,f.begin)();try{const{actions:s,body:a}=e;t.be("div",{class:"pane"},"0",o,null,1),t.be("div",{class:"pane-actions"},"1",o,null,1),T()(t,s.renderBody,null,null,null,null,n,"2"),t.ee(),t.n(A,o),t.be("div",{class:"pane-body"},"4",o,null,1),T()(t,a.renderBody,null,null,null,null,n,"5"),t.ee(),t.ee()}finally{(0,f.end)()}}),{t:B,i:!0},H),M.Component=b()(H,M._);var R=n("../../node_modules/@marko/tags-api-preview/dist/components/effect/index.mjs");const q="edcMGKVi",F=(0,o.t)(q),I=F;(0,y.r)(q,(()=>F));const U={onCreate(){this.state={}}};F._=g()((function(e,t,n,o,s,i){(0,f.begin)();try{var l=o;const{value:s,valueChange:i,renderBody:d,class:c}=e,u=(0,r.default)(l,"0");t.be("select",{class:m()(c)},"@0",o,null,1,{onchange:n.d("change",(function(e){i(e.target.value)}),!1)}),T()(t,d,null,null,null,null,n,"0"),t.ee(),(0,R.default)(o,(0,a.cache)((0,a.cached)(l,[s,d,i])||function(){u().value=s}))}finally{(0,f.end)()}}),{t:q},U),F.Component=b()(U,F._);var P=n("../../node_modules/lz-string/libs/lz-string.js"),z=n("../../node_modules/@marko/tags-api-preview/dist/translate/native-tag-handlers/index-browser.mjs"),D=n("../../node_modules/marko/dist/runtime/vdom/helpers/attrs.js"),Y=n.n(D);const $="fLRwaABg",W=(0,o.t)($),J=W,N=L()("span",null,1).t("Open in playground ");(0,y.r)($,(()=>W));const V={};W._=g()((function(e,t,n,o,s,a){(0,f.begin)();try{const{files:s,...a}=e;var r={};t.be("a",Y()((0,z.default)({...a,href:`/playground/#${(0,P.compressToEncodedURIComponent)(JSON.stringify(s))}`,target:"_top",class:"playground-link"},n,"a",r)),"0",o,null,4,{...r}),t.n(N,o),t.t("↗",o),t.ee()}finally{(0,f.end)()}}),{t:$,i:!0},V),W.Component=b()(V,W._);var K=n("../../node_modules/@marko/tags-api-preview/dist/components/return/index-browser.mjs");const X="aEQdEE_f",Z=(0,o.t)(X),Q=Z;(0,y.r)(X,(()=>Z));const G={onCreate(){this.state={}}};Z._=g()((function(e,t,n,o,r,i){(0,f.begin)();try{var l=o,d=r;const{value:t,fallback:n}=e,i="0"in d?d[0]:d[0]=window.matchMedia(t).matches,c=e=>l.setState("0",e);(0,R.default)(o,(0,a.cache)((0,a.cached)(l,[t])||function(){const e=window.matchMedia(t),n=()=>(0,s.default)(c,!!e.matches);return e.addEventListener("change",n),(0,s.default)(c,!!e.matches),()=>e.removeEventListener("change",n)})),e._return&&e._return({value:i},1)}finally{(0,f.end)()}}),{t:X},G),Z.Component=b()(G,Z._);const ee="H_lRXCBe",te=(0,o.t)(ee),ne=te;(0,y.r)(ee,(()=>te));const oe={onCreate(){this.state={}}};te._=g()((function(e,t,n,o,i,d){(0,f.begin)();try{var u=o,p=i;const{left:d,right:f}=e,y="0"in p?p[0]:p[0]=.5,w=e=>u.setState("0",e),b="1"in p?p[1]:p[1]=!1,_=e=>u.setState("1",e);var h=(0,K.default)(u);c()(Q,{value:"(max-aspect-ratio: 1/1)",_return:h},t,n,"0");const{value:k}=h(),j=(0,r.default)(u,"0");t.be("div",{class:m()(["panes",b&&"resizing"])},"@0",o,null,1);var v={};t.be("div",Y()((0,z.default)({...d,style:`flex-grow:${y}`},n,"div",v)),"1",o,null,4,{...v}),T()(t,d.renderBody,null,null,null,null,n,"2"),t.ee(),t.be("div",{class:"divider"},"3",o,null,1),t.e("div",{class:"inner"},"4",o,0,1,{onmousedown:n.d("mousedown",(function(e){(0,s.default)(_,!0),e.preventDefault(),e.stopPropagation()}),!1)}),t.ee();var g={};t.be("div",Y()((0,z.default)({...f,style:"flex-grow:"+(1-y)},n,"div",g)),"5",o,null,4,{...g}),T()(t,f.renderBody,null,null,null,null,n,"6"),t.ee(),t.ee(),b&&c()(l.default,{renderBody:(e,t,n,o)=>{var r=n;(0,R.default)(r,(0,a.cache)((0,a.cached)(n,[k])||function(){const e=e=>{if(e.buttons||e.which){const t=j().getBoundingClientRect(),n=k?(e.clientY-t.top)/t.height:(e.clientX-t.left)/t.width;n>0&&(0,s.default)(w,Math.min(.8,Math.max(.2,n)))}else(0,s.default)(_,!1)};return window.addEventListener("mousemove",e),()=>window.removeEventListener("mousemove",e)}))}},t,n,"7")}finally{(0,f.end)()}}),{t:ee},oe),te.Component=b()(oe,te._);const se="rtapnbhf",ae=(0,o.t)(se),re=ae,ie=L()("option",{value:"preview"},1).t("App Preview"),le=L()("option",{value:"compiled-html"},1).t("Compiled (HTML)"),de=L()("option",{value:"compiled-vdom"},1).t("Compiled (DOM)");(0,y.r)(se,(()=>ae));const ce={onCreate(){this.state={}}};ae._=g()((function(e,t,o,r,d,u){(0,f.begin)();try{var m=r,p=d;const{filesChange:u,getCompilerOptions:h,files:f}=e,v="0"in p?p[0]:p[0]=0,g=e=>m.setState("0",e),y="1"in p?p[1]:p[1]="preview",w=e=>m.setState("1",e),b="2"in p?p[2]:p[2]=!1,_=e=>m.setState("2",e),k=f[v];c()(ne,(0,C.i)((()=>{(0,C.a)("left",{class:"editor-container",renderBody:e=>{c()(O,(0,C.i)((()=>{(0,C.a)("actions",{renderBody:e=>{c()(l.default,{renderBody:(e,t,n,o)=>{var r=t;c()(j,{files:f,filesChange:u,selectedIndex:v,selectedIndexChange:(0,a.cache)((0,a.cached)(n,[])||(e=>(0,s.default)(g,e)))},e,r,"3")}},e,o,"2")}}),(0,C.a)("body",{renderBody:e=>{c()(l.default,{renderBody:(e,t,o,r)=>{var d=t,m=o;const p="0"in r?r[0]:r[0]=null,h=e=>o.setState("0",e);p&&c()(l.default,{renderBody:(e,t,n,o)=>{var r=t;T()(e,p,(()=>({value:k.content,filename:k.path,valueChange:(0,a.cache)((0,a.cached)(n,[k,f,v])||function(e){const t={...k,content:e};(0,s.default)(u,[...f.slice(0,v),t,...f.slice(v+1)]),(0,s.default)(_,!0)})})),null,null,null,r,"6")}},e,d,"5"),(0,i.default)(m,{onMount:(0,a.cache)((0,a.cached)(o,[])||(async()=>{const e=await Promise.all([n.e(745),n.e(535),n.e(157),n.e(760),n.e(268)]).then(n.bind(n,"../components/repl/components/editor.marko"));await e.loading,(0,s.default)(h,e)}))})}},e,o,"4")}})})),e,o,"1")}}),(0,C.a)("right",{renderBody:e=>{c()(O,(0,C.i)((()=>{(0,C.a)("actions",{renderBody:e=>{c()(l.default,{renderBody:(e,t,n,o)=>{var r=t,i=n;c()(I,{value:y,valueChange:(0,a.cache)((0,a.cached)(n,[])||function(e){(0,s.default)(w,e),(0,s.default)(_,!1)}),class:"preview-select",renderBody:e=>{e.n(ie,i),e.n(le,i),e.n(de,i)}},e,r,"9"),c()(J,{files:f},e,r,"13")}},e,o,"8")}}),(0,C.a)("body",{renderBody:e=>{c()(l.default,{renderBody:(e,t,o,r)=>{var l=t,d=o;const c="0"in r?r[0]:r[0]=null,u=e=>o.setState("0",e);T()(e,c,(()=>({type:y,files:f,selectedFile:k,getCompilerOptions:h,debounce:b})),null,null,null,l,"15"),(0,i.default)(d,{onMount:(0,a.cache)((0,a.cached)(o,[])||(async()=>{(0,s.default)(u,await Promise.all([n.e(745),n.e(663),n.e(535),n.e(783),n.e(760),n.e(887),n.e(967)]).then(n.bind(n,"../components/repl/components/preview.marko")))}))})}},e,o,"14")}})})),e,o,"7")}})})),t,o,"0")}finally{(0,f.end)()}}),{t:se},ce),ae.Component=b()(ce,ae._)},"./playground/components/hash-value.marko":(e,t,n)=>{"use strict";n.d(t,{A:()=>v});var o=n("../../node_modules/marko/dist/runtime/vdom/index.js"),s=n("../../node_modules/lz-string/libs/lz-string.js"),a=n("../../node_modules/@marko/tags-api-preview/dist/transform/cached-values/index-browser.mjs"),r=n("../../node_modules/@marko/tags-api-preview/dist/util/replace-assignments/index.mjs"),i=n("../../node_modules/@marko/tags-api-preview/dist/components/lifecycle/index.mjs"),l=n("../../node_modules/@marko/tags-api-preview/dist/chunk-5R2Z7TR6.mjs"),d=n("../../node_modules/marko/dist/runtime/components/renderer.js"),c=n.n(d),u=n("../../node_modules/marko/dist/runtime/components/registry.js"),m=n("../../node_modules/marko/dist/runtime/components/defineComponent.js"),p=n.n(m);const h="iu_vYbKl",f=(0,o.t)(h),v=f;(0,u.r)(h,(()=>f));const g={onCreate(){this.state={}}};f._=c()((function(e,t,n,o,d,c){(0,l.begin)();try{var u=o,m=d;const{value:t}=e,n="0"in m?m[0]:m[0]=function(){try{return JSON.parse((0,s.decompressFromEncodedURIComponent)(window.location.hash.slice(1)))}catch(e){console.error(e)}}()||t,l=e=>u.setState("0",e);(0,i.default)(o,{onMount:(0,a.cache)((0,a.cached)(u,[])||function(){window.addEventListener("hashchange",this.handler=()=>{try{this.isUpdating?this.isUpdating=!1:(0,r.default)(l,JSON.parse((0,s.decompressFromEncodedURIComponent)(window.location.hash.slice(1))))}catch(e){console.error(e)}})}),onUpdate:(0,a.cache)((0,a.cached)(u,[n])||function(){this.isUpdating=!0,window.location.hash=(0,s.compressToEncodedURIComponent)(JSON.stringify(n))}),onDestroy:(0,a.cache)((0,a.cached)(u,[])||function(){window.removeEventListener("hashchange",this.handler)})}),e._return&&e._return({value:n,valueChange:(0,a.cache)((0,a.cached)(u,[])||(e=>(0,r.default)(l,e)))},1)}finally{(0,l.end)()}}),{t:h},g),f.Component=p()(g,f._)},"./v6/playground/index.marko?browser-entry":(e,t,n)=>{"use strict";var o=n("../../node_modules/marko/dist/runtime/components/index.js"),s=(n("../components/app-layout/favicon.png"),n("../logos/marko.svg"),n("../logos/marko-uwu.png"),n("../components/app-layout/components/layout-search/component-browser.js")),a=n("../components/app-layout/components/layout-header/component-browser.js"),r=n.n(a),i=n("../components/app-layout/components/layout-sidebar/components/version-switcher/component-browser.js"),l=n.n(i),d=n("../components/app-layout/components/layout-sidebar/component-browser.js"),c=n.n(d),u=(n("../components/app-footer/openjsf.svg"),n("../components/app-footer/osi.svg"),n("../components/app-footer/ebay.svg"),n("../logos/discord.svg"),n("../../node_modules/marko/dist/runtime/vdom/index.js")),m=n("./playground/components/hash-value.marko"),p=n("../../node_modules/@marko/translator-tags/dist/index.js"),h=n("../../node_modules/@marko/tags-api-preview/dist/transform/cached-values/index-browser.mjs"),f=n("../../node_modules/@marko/tags-api-preview/dist/components/return/index-browser.mjs"),v=n("../../node_modules/marko/dist/runtime/helpers/render-tag.js"),g=n.n(v),y=n("../components/repl/index.marko"),w=n("../../node_modules/@marko/tags-api-preview/dist/chunk-5R2Z7TR6.mjs"),b=n("../../node_modules/marko/dist/runtime/components/renderer.js"),_=n.n(b),k=n("../../node_modules/marko/dist/runtime/components/registry.js"),j=n("../../node_modules/marko/dist/runtime/components/defineComponent.js"),x=n.n(j);const C="TrmYoaCc",S=(0,u.t)(C);(0,k.r)(C,(()=>S));const T={onCreate(){this.state={}}};S._=_()((function(e,t,n,o,s,a){(0,w.begin)();try{var r=o,i=(0,f.default)(r);g()(m.A,{value:(0,h.cache)((0,h.cached)(r,[])||[{name:"index.marko",path:"/components/index.marko",content:"\n"}]),_return:i},t,n,"0");const{valueChange:e,value:s}=i();g()(y.A,{getCompilerOptions:(0,h.cache)((0,h.cached)(r,[])||function(){return{translator:p,optimize:!1}}),files:s,filesChange:e},t,n,"1")}finally{(0,w.end)()}}),{t:C},T),S.Component=x()(T,S._),(0,o.register)("MYKqWWDb",s.A),(0,o.register)("FbSTxHWc",r()),(0,o.register)("bjXvzQUk",l()),(0,o.register)("SxWdUlSh",c()),(0,o.init)()},"../../browser-shims/compiler/dist/babel-types/index.js":(e,t,n)=>{e.exports=n("../../node_modules/@marko/compiler/dist/babel-types/index.js")},"../../browser-shims/compiler/index.js":(e,t,n)=>{t.types=n("../../browser-shims/compiler/dist/babel-types/index.js")},"../../browser-shims/fs.js":(e,t,n)=>{e.exports=n("../../node_modules/memfs/lib/index.js")},"../../browser-shims/module.js":(e,t,n)=>{const o=n("../../node_modules/path-browserify/index.js"),s=n("../../node_modules/resolve/index.js"),a=n("../../node_modules/resolve.exports/dist/index.js"),r={_nodeModulePaths:function(e){const t=[];for(;;){const n=o.dirname(e);if(t.push(o.join(e,"node_modules")),!n||n===e)break;e=n}return t},_resolveFilename:function(e,t){return s.sync(e,{basedir:o.dirname(t.filename),paths:t.paths,extensions:[".js",".json",".marko",".mjs"],pathFilter(e,t,n){if(/^index(\.[^/\\]+)?$/.test(n))try{return a.legacy(e,r._resolveExportsOptions)}catch{}else try{return a.resolve(e,n,r._resolveExportsOptions)}catch{}return n}})},_resolveExportsOptions:{browser:!0}};e.exports=r},"../../browser-shims/process.js":e=>{e.exports={env:{},browser:!0,versions:{node:"1000.0.0"},cwd:()=>"/"}},"../components/app-layout/components/layout-header/component-browser.js":(e,t,n)=>{var o=n("../components/app-layout/components/layout-header/events.js"),s="headspace--fixed",a="headspace--hidden";e.exports={onMount(){o.emit("create",this);var e,t=0,n=this.getEl("header").offsetHeight,s=(this.getEl("banner")||{offsetHeight:0}).offsetHeight,a=(e=()=>{var e=window.pageYOffset;e<=s?this.reset():!this.paused&&e>n&&(Math.abs(e-t)>=3||e>t&&t<=n)&&(e>t?this.hide():this.fix()),t=e},()=>window.requestAnimationFrame(e));a(),window.addEventListener("scroll",a)},reset(){this.removeClass(s),this.removeClass(a),o.emit("reset")},fix(){this.addClass(s),this.removeClass(a),o.emit("fix")},hide(){this.addClass(a),o.emit("hide")},addClass(e){this.getEl("header").classList.add(e)},removeClass(e){this.getEl("header").classList.remove(e)},pause(){this.paused=!0},resume(){setTimeout((()=>window.requestAnimationFrame((()=>{this.paused=!1}))))},toggleMenu(){o.emit("toggle-menu")}}},"../components/app-layout/components/layout-header/events.js":(e,t,n)=>{var o=n("../../node_modules/events/events.js");e.exports=new o},"../components/app-layout/components/layout-search/component-browser.js":(e,t,n)=>{"use strict";n.d(t,{A:()=>o});const o=class{async onMount(){const{init:e}=await Promise.all([n.e(914),n.e(205)]).then(n.bind(n,"../components/app-layout/components/layout-search/doc-search.js"));e(this.getEl("container"))}}},"../components/app-layout/components/layout-sidebar/component-browser.js":(e,t,n)=>{var o,s=n("../components/app-layout/components/layout-header/events.js"),a=[].forEach,r=[].filter,i=[].slice;e.exports={onMount(){this.preventOverscroll(),this.listenForHeaderChanges(),this.initScrollSpy()},initScrollSpy(){var e=[1,2,3,4,5,6].map((e=>".doc-content h"+e)).join(","),t=i.call(document.querySelectorAll(e)),n=!1;t.length&&this.subscribeTo(window).on("scroll",(()=>{n||(n=!0,setTimeout((()=>{var e,o,s=window.innerHeight/3;t.map((t=>{var n=t.getBoundingClientRect().top;(null==o||ne.classList.remove("selected")));d;){var u=d.closest("ul"),m=u&&r.call(u.querySelectorAll(":scope > li > a[href^=\\#]"),(e=>e!==d));m&&m.forEach((e=>e.classList.remove("selected"))),d.classList.add("selected"),d=u&&u.previousElementSibling}this.scrollAnchorIntoView(l),n=!1}),50))}))},listenForHeaderChanges(){a.call(this.el.querySelectorAll("a[href^=\\#]"),(e=>{this.subscribeTo(e).on("click",(()=>{o.hide(),o.pause(),o.resume(),this.hide()}))}));var e=i.call(this.el.querySelectorAll("a.selected")).pop();e&&this.subscribeTo(e).on("click",(e=>{window.scrollTo(0,0),o.reset(),e.preventDefault()})),this.subscribeTo(s).on("reset",(()=>{this.el.classList.remove("no-header"),this.el.classList.remove("fixed"),setTimeout((()=>this.el.classList.remove("transition")),0)})).on("fix",(()=>{this.el.classList.remove("no-header"),this.el.classList.add("fixed"),setTimeout((()=>this.el.classList.add("transition")),0)})).on("hide",(()=>{this.el.classList.add("no-header"),this.el.classList.add("fixed"),setTimeout((()=>this.el.classList.add("transition")),0)})).on("toggle-menu",(()=>{this.el.classList.contains("show")?(this.el.classList.remove("show"),document.body.style.overflow=""):this.el.classList.add("show")})).on("create",(e=>{o=e,window.pageYOffset>o.el.offsetHeight&&(this.el.classList.add("no-header"),this.el.classList.add("fixed"))}))},preventOverscroll(){var e=this.getEl("sidebar");this.subscribeTo(document.body).on("wheel",(t=>{var n=t.deltaY,o=e.scrollTop+n,s=e.scrollHeight-e.offsetHeight,a=o<=0,r=o>=s;(n<0&&a||n>0&&r)&&(t.target===e||e.contains(t.target))&&(a&&0!=e.scrollTop?e.scrollTop=0:r&&e.scrollTop!=s&&(e.scrollTop=s),t.preventDefault())}))},scrollAnchorIntoView(e){for(var t,n=this.getEl("sidebar"),o=(e.offsetTop,n.scrollTop),s=n.offsetHeight,a=o+s,r=e.closest("li");(t=r.parentNode.closest("ul"))&&t.offsetHeighto&&i+l{e.exports={onMount(){const e=this.getEl("version").value,t=e.startsWith("/v6"),n=!t&&e.startsWith("/");(this.v6&&!t||!this.v6&&!n)&&(window.location.href=e)},switchVersion(e){window.location.href=e.target.value}}},"../components/app-footer/ebay.svg":(e,t,n)=>{"use strict";n.p},"../components/app-footer/openjsf.svg":(e,t,n)=>{"use strict";n.p},"../components/app-footer/osi.svg":(e,t,n)=>{"use strict";n.p},"../components/app-layout/favicon.png":(e,t,n)=>{"use strict";n.p},"../logos/discord.svg":(e,t,n)=>{"use strict";n.p},"../logos/marko-uwu.png":(e,t,n)=>{"use strict";n.p},"../logos/marko.svg":(e,t,n)=>{"use strict";n.d(t,{A:()=>o});const o=n.p+"91bc26e5.svg"},"?8b4e":()=>{},"?98fd":()=>{},"?2e65":()=>{},"?e376":()=>{},"?7dc1":()=>{},"?f84f":()=>{},"?4c42":()=>{},"?c95a":()=>{},"?c86f":()=>{},"?d1e8":()=>{}},e=>{e.O(0,[364,72,745,663,215],(()=>e(e.s="./v6/playground/index.marko?browser-entry"))),e.O()}]); +//# sourceMappingURL=313.fdf44b36.js.map \ No newline at end of file diff --git a/assets/313.fdf44b36.js.br b/assets/313.fdf44b36.js.br new file mode 100644 index 00000000..4aee9091 Binary files /dev/null and b/assets/313.fdf44b36.js.br differ diff --git a/assets/313.fdf44b36.js.gz b/assets/313.fdf44b36.js.gz new file mode 100644 index 00000000..e4220c64 Binary files /dev/null and b/assets/313.fdf44b36.js.gz differ diff --git a/assets/313.b4d51fa5.js.map b/assets/313.fdf44b36.js.map similarity index 99% rename from assets/313.b4d51fa5.js.map rename to assets/313.fdf44b36.js.map index b690f46c..7fa746ee 100644 --- a/assets/313.b4d51fa5.js.map +++ b/assets/313.fdf44b36.js.map @@ -1 +1 @@ -{"version":3,"file":"313.b4d51fa5.js","mappings":"00CAAO,oBAAAA,EAAA,YAAAC,EAAEC,MAAOC,EAAeC,cAAeC,GAAkBC,EAAAC,EAAAN,GAAA,CAAAO,GAAAC,EAAAC,SAAA,IAAAF,IAE3DN,EAF2DD,EAElDE,EAAa,MAAAQ,EAAAA,EAAA,GAAAA,EAAA,GAAbR,EAAaS,EAAAZ,GAAA,CAAAa,GAAAJ,EAAAC,SAAA,IAAAG,IACtBT,EADsBJ,EACLK,EAAgB,MAAAM,EAAAA,EAAA,GAAAA,EAAA,GAAhBN,EAEfS,EAAeZ,EAAME,GAE3BW,EAAAC,GAAA,MAAG,wBAAAC,EAAA,eACGC,EAAS,MAAHP,EAAAA,EAAA,GAAAA,EAAA,GAAG,EAACQ,EAAAC,GAAAX,EAAAC,SAAA,IAAAU,GAAA,IAAAC,EAAA,YACVC,KAAIC,IAAYrB,GAAK,KAAfsB,EAAKH,IAAA,MAAAI,EAAA,IAALD,KAAKE,IAAAC,EAAAA,QAAA,YAAAC,CAAAb,EAAAc,EAAAC,EAAAC,KAAA,IAAAC,EAAAH,EAAAZ,EAAAa,EAAA,MACTG,EAAU,MAAHF,EAAAA,EAAA,GAAAA,EAAA,IAAG,EAAKG,EAAAC,GAAAL,EAAApB,SAAA,IAAAyB,GACbC,EAAWtB,IAAiBQ,EAC5Be,EAAWb,EAAQ,EACzBT,EAAAC,GAAA,MAAG,OAAAsB,IAAA,CAAC,WAAe,CAAEF,eAAU,IAAAX,EAAAR,EAAA,gBAAAe,EAAAO,EAAA,SAAQ,WAClCH,GACFI,EAAAA,EAAAA,SAAAN,GAAU,KAEVM,EAAAA,EAAAA,SAAAN,GAAU,IACVM,EAAAA,EAAAA,SAAA5B,EAAgBY,GACjB,IACF,KACOS,GAAYG,GAAaC,EACjBX,IAAAC,EAAAA,QAAA,YAAAC,CAAAb,EAAA0B,EAAAC,EAAAC,KAAA,IAAAX,EAAAS,EAAAxB,EAAAyB,EAAA,MAGPE,EAAO,MAAHD,EAAAA,EAAA,GAAAA,EAAA,GAAGrB,EAAKsB,KACVC,GAAYC,EAAAA,EAAAA,QAAAC,EAAAA,EAAAA,QAAAL,EAAA,CAAAE,EAAA1C,KAAA,WACjB,MAAM8C,EAAe,IAAK1B,EAAMsB,OAAMK,KAAM3B,EAAK2B,KAAKC,QAAQ5B,EAAKsB,KAAMA,KACzEJ,EAAAA,EAAAA,SAAAjC,EAAQ,IACHL,EAAMiD,MAAM,EAAG3B,GAClBwB,KACG9C,EAAMiD,MAAM3B,EAAM,MAEvBgB,EAAAA,EAAAA,SAAAN,GAAU,EAAM,GAEXkB,GAASC,EAAAA,EAAAA,SAAAX,EAAA,SAAAY,EAVKC,GAAAb,EAAAhC,SAAA,IAAA6C,GAUpBxC,EAAAyC,EAAA,QAAK,kBAECZ,EAAKa,OAAM,MACTb,GAAI,KAAA3B,EAAA,KAAAyC,GAAA,CAAAJ,GAAA,gBAAAtB,EAAAO,EAAA,OACJM,GAAY,aAAAb,EAAAO,EAAA,WACV,SAACiB,GACO,UAAXA,EAAEG,MACJd,GACD,IACF,WAAAb,EAAAO,EAAA,SAAAiB,IAAAF,EAAAE,EAAAI,OAAAC,MAAA,UATGC,EAAAA,EAAAA,SAAA7C,EAAA,UAAA6B,EAAAA,EAAAA,QAAAC,EAAAA,EAAAA,QAAAL,EAAA,CAAAE,KAUY,WAChBQ,IAAYW,QACZX,IAAYY,kBAAkB,EAAGpB,EAAKqB,QAAQ,KAAM,IACrD,GAAAlD,EAAAiB,EAAA,IAAAP,GA1BDV,EAAAmD,EAAE5C,EAAKsB,KAAI3B,GA4BToB,IACDtB,EAAAC,GAAA,SAAM,yBAAAS,EAAAR,EAAA,gBAAAe,EAAAO,EAAA,SAAmB,SAACiB,GACrBW,OAAOC,QAAQ,UAAU9C,EAAK2B,WAC5B7C,GAAiBoB,IACnBgB,EAAAA,EAAAA,SAAA5B,EAnDTR,EAAa,IAqDNoC,EAAAA,EAAAA,SAAAjC,EAAQ,IAAIL,EAAMiD,MAAM,EAAG3B,MAAWtB,EAAMiD,MAAM3B,EAAM,MAE1DgC,EAAEa,iBAAkB,IACrB,KACCtD,EAAAmD,EAAA,IAAAjD,GAETF,EAAAuD,MAAUvD,EAAAuD,IAAA,GAAAvD,EAAAiB,EAAA,IAAAP,EAAA,CAGRV,EAAAC,GAAA,SAAM,uBAAAC,EAAA,gBAAAe,EAAAO,EAAA,SAAiB,WACtB,MAAMgC,EAAU,CAAE3B,KAAK,YAAY1B,UAAgB+B,KAAK,wBAAwB/B,UAAgBsD,QAAQ,IAClGC,EAAWvE,EAAMuD,QACvBjB,EAAAA,EAAAA,SAAAjC,EAAQL,EAAMwE,OAAOH,KACrB/B,EAAAA,EAAAA,SAAA5B,EAAgB6D,IAChBjC,EAAAA,EAAAA,SAAArB,EA9DGD,EAAM,EA8DA,IACV,KACCH,EAAAmD,EAAA,IAAAjD,GACGF,EAAAuD,IAAA,CAAAvD,EAAAuD,IAAA,UAAAK,EAAAA,EAAAA,MAAA,KAAAT,EAAAU,GAAAC,GAAAC,EAAAC,UAAAC,IAAAH,EAAAC,EAAAG,G,gRCnEJ,MAAG,2BAAAC,EAAAA,EAAAA,GAAAN,GAAA,IAAAE,IAAA,MAAAD,EAAA,GAAAC,EAAAG,EAAAE,KAAA,SAAA7E,EAAAS,EAAAiB,EAAAvB,EAAA2E,EAAAC,IAAAC,EAAAA,EAAAA,SAAA,UANC,QAAEC,EAAO,KAAEC,GAAMlF,EAEvBS,EAAAC,GAAA,MAAG,mBAAAP,EAAA,QACDM,EAAAC,GAAA,MAAG,2BAAAP,EAAA,QACFgF,IAAA1E,EAAGwE,EAAQ3D,WAAU,oBAAAI,EAAA,KAAGjB,EAAAuD,KAAAvD,EAAA2E,EAAAC,EAAAlF,GAGzBM,EAAAC,GAAA,MAAG,wBAAAP,EAAA,QACFgF,IAAA1E,EAAGyE,EAAK5D,WAAU,oBAAAI,EAAA,KAAGjB,EAAAuD,KAAAvD,EAAAuD,IAAA,UAAAK,EAAAA,EAAAA,MAAA,KAAAT,EAAAU,EAAAgB,GAAA,GAAAf,GAAAC,EAAAC,UAAAC,IAAAH,EAAAC,EAAAG,G,iPCRlB,MAAEpB,EAAK,YAAEgC,EAAW,WAAEjE,EAAYkE,MAAMC,GAAWzF,EAClD0F,GAAE3C,EAAAA,EAAAA,SAAA5C,EAAA,KAATM,EAAAC,GAAA,SAAM,OAAU+E,IAAAA,IAAS,KAAAjE,EAAA,iBAAAE,EAAAO,EAAA,UAAS,SAACiB,GAAKqC,EAAYrC,EAAEI,OAAOC,MAAO,IAAE,KACrE4B,IAAA1E,EAAGa,EAAU,oBAAAI,EAAA,KAAGjB,EAAAuD,MAAA2B,EAAAA,EAAAA,SAAAnE,GAAAgB,EAAAA,EAAAA,QAAAC,EAAAA,EAAAA,QAAAtC,EAAA,CAAAoD,EAAAjC,EAAAiE,KAEX,WACLG,IAAKnC,MAAQA,CAOW,GACzB,UAAAc,EAAAA,EAAAA,MAAA,KAAAT,EAAAU,GAAAC,GAAAC,EAAAC,UAAAC,IAAAH,EAAAC,EAAAG,G,iRCbyDU,EAAAO,IAMvD,OAAI,QAAAhC,EAAA,wBAAAgB,EAAAA,EAAAA,GAAAN,GAAA,IAAAE,IAAA,MAAAD,EAAA,GAAAC,EAAAG,EAAAE,KAAA,SAAA7E,EAAAS,EAAAiB,EAAAvB,EAAA2E,EAAAC,IAAAC,EAAAA,EAAAA,SAAA,UAJA,MAAEpF,KAAUiG,GAAO7F,EAAA,IAAA8F,EAAA,GACzBrF,EAAAC,GAAA,IAACqF,KAAAC,EAAAA,EAAAA,SAAA,IAAoBH,EAAK,KACpB,iBAAgBI,EAAAA,EAAAA,+BAA8BC,KAAKC,UAAUvG,MAAS,OACpE,OAAM,MAFZ,mBAAe8B,EAAjB,IAACoE,IAAA,IAAA3F,EAAA,WAAA2F,IAAArF,EAAA2E,EAAAC,EAAAlF,GAGgCM,EAAAmD,EAAA,IAAAzD,GAClCM,EAAAuD,IAAA,UAAAK,EAAAA,EAAAA,MAAA,KAAAT,EAAAU,EAAAgB,GAAA,GAAAf,GAAAC,EAAAC,UAAAC,IAAAH,EAAAC,EAAAG,G,6PCPSpB,MAAO6C,EAAK,SAAEC,GAAUrG,EAC5BsG,EAAU,MAAHjG,EAAAA,EAAA,GAAAA,EAAA,GAAmCwD,OAAO0C,WAAWH,GAAOI,QAAkBC,EAAAC,GAAAvG,EAAAC,SAAA,IAAAsG,IAAAf,EAAAA,EAAAA,SAAAnE,GAAAgB,EAAAA,EAAAA,QAAAC,EAAAA,EAAAA,QAAAtC,EAAA,CAAAiG,KAEnF,WACL,MAAMO,EAAK9C,OAAO0C,WAAWH,GACvBQ,EAAWA,KAAA1E,EAAAA,EAAAA,SAAAuE,IAAkBE,EAAGH,SAGtC,OAFAG,EAAGE,iBAAiB,SAAUD,IAC9B1E,EAAAA,EAAAA,SAAAuE,IAAYE,EAAGH,SACR,IAAMG,EAAGG,oBAAoB,SAAUF,EAAU,IACzD5G,EAAA+G,SAAA/G,EAAA+G,QAAA,OAEOT,GAAO,YAAAjC,EAAAA,EAAAA,MAAA,KAAAT,EAAAU,GAAAC,GAAAC,EAAAC,UAAAC,IAAAH,EAAAC,EAAAG,G,uKCXR,KAAEqC,EAAI,MAAEC,GAAOjH,EAEjBkH,EAAU,MAAA7G,EAAAA,EAAA,GAAAA,EAAA,GAAC,GAAG8G,EAAAC,GAAAjH,EAAAC,SAAA,IAAAgH,GACdC,EAAW,MAAHhH,EAAAA,EAAA,GAAAA,EAAA,IAAG,EAAKiH,EAAAC,GAAApH,EAAAC,SAAA,IAAAmH,GAAA,IAAAC,GAAAT,EAAAA,EAAAA,SAAA5G,GACrBiB,IAAAqG,EAAA,OAA0B,0BAAyB,QAAAD,GAAA/G,EAAAiB,EAAA,KAAE,MAAA6B,MAAxCmE,GAAUF,IAElBG,GAAS5E,EAAAA,EAAAA,SAAA5C,EAAA,KAAbM,EAAAC,GAAA,MAAG,OAAiBsB,IAAA,CAAC,QAASqF,GAAY,cAAW,KAAAjF,EAAA,QAAlD,IAAA0D,EAAA,GACDrF,EAAAC,GAAA,MAAGqF,KAAAC,EAAAA,EAAAA,SAAA,IAAIgB,EAAI,MAAO,aAAaE,KAAYxF,EAA3C,MAAGoE,IAAA,IAAA1D,EAAA,WAAA0D,IACFX,IAAA1E,EAAGuG,EAAK1F,WAAU,oBAAAI,EAAA,KAAGjB,EAAAuD,KAEtBvD,EAAAC,GAAA,MAAG,sBAAA0B,EAAA,QACD3B,EAAAyC,EAAA,MAAG,oBAAAd,EAAA,iBAAAV,EAAAO,EAAA,aACS,SAACiB,IACVhB,EAAAA,EAAAA,SAAAoF,GAAW,GACXpE,EAAE0E,iBACF1E,EAAEa,iBAAkB,IACrB,KALCtD,EAAAuD,KAAA,IAAA6D,EAAA,GAOLpH,EAAAC,GAAA,MAAGqF,KAAAC,EAAAA,EAAAA,SAAA,IAAIiB,EAAK,MAAO,cAAa,EAAEC,IAAYxF,EAA9C,MAAGmG,IAAA,IAAAzF,EAAA,WAAAyF,IACF1C,IAAA1E,EAAGwG,EAAM3F,WAAU,oBAAAI,EAAA,KAAGjB,EAAAuD,KAAAvD,EAAAuD,KAGtBqD,GAAQjG,IAAAC,EAAAA,QAAA,YAAAC,CAAAb,EAAAc,EAAAC,EAAAC,KAAA,IAAAW,EAAAZ,GAAAmE,EAAAA,EAAAA,SAAAvD,GAAAI,EAAAA,EAAAA,QAAAC,EAAAA,EAAAA,QAAAjB,EAAA,CAAAkG,KACH,WACL,MAAMI,EAAW5E,IACf,GAAIA,EAAE6E,SAAW7E,EAAE8E,MAAO,CACxB,MAAMC,EAAON,IAAYO,wBACnBC,EAAWT,GACZxE,EAAEkF,QAAUH,EAAKI,KAAOJ,EAAKK,QAC7BpF,EAAEqF,QAAUN,EAAKjB,MAAQiB,EAAKO,MAC/BL,EAAW,IAGbjG,EAAAA,EAAAA,SAAAiF,EAAasB,KAAKC,IAAI,GAAKD,KAAKE,IAAI,GAAKR,IAE7C,MACEjG,EAAAA,EAAAA,SAAAoF,GAAW,EACb,EAGF,OADAzD,OAAOgD,iBAAiB,YAAaiB,GAC9B,IAAMjE,OAAOiD,oBAAoB,YAAagB,EAAS,GAC/D,GAAArH,EAAAiB,EAAA,IACE,UAAA2C,EAAAA,EAAAA,MAAA,KAAAT,EAAAU,IAAAC,IAAAC,GAAAC,UAAAC,IAAAH,GAAAC,GAAAG,G,gDCUM,SAAM,qBAAAf,EAAA,eAAAgF,GAAAhD,IACN,SAAM,2BAAAhC,EAAA,mBAAAiF,GAAAjD,IACN,SAAM,2BAAAhC,EAAA,mBAAAgB,EAAAA,EAAAA,GAAAN,IAAA,IAAAE,KAAA,MAAAD,GAAA,CAAAuE,QAAAA,GAAA,KAAAhE,MAAA,KAAAN,GAAAG,EAAAE,KAAA,SAAA7E,EAAAS,EAAAiB,EAAAqH,EAAAjE,EAAAC,IAAAC,EAAAA,EAAAA,SAAA,QAAA7E,EAAA4I,EAAA1I,EAAAyE,EAAA,MAtDV,YAAAnF,EAAA,mBAAEqJ,EAAkB,MAAEpJ,GAAOI,EAC/BF,EAAgB,MAAHO,EAAAA,EAAA,GAAAA,EAAA,GAAG,EAACC,EAAAC,GAAAJ,EAAAC,SAAA,IAAAG,GACjB0I,EAAc,MAAH5I,EAAAA,EAAA,GAAAA,EAAA,GAAG,UAAS6I,EAAAC,GAAAhJ,EAAAC,SAAA,IAAA+I,GACvBC,EAAW,MAAH/I,EAAAA,EAAA,GAAAA,EAAA,IAAG,EAAKgJ,EAAAC,GAAAnJ,EAAAC,SAAA,IAAAkJ,GACd9I,EAAeZ,EAAME,GAS5BsB,IAAAmI,IAAAC,EAAAA,EAAAA,IAAA,MAAAC,EAAAA,EAAAA,GAAA,cACe,mBAAkB,WAAAhJ,IAC7BW,IAAAsI,GAAAF,EAAAA,EAAAA,IAAA,MAAAC,EAAAA,EAAAA,GAAA,sBAAAhJ,IAAAW,IAAAC,EAAAA,QAAA,YAAAC,CAAAb,EAAAc,EAAAC,EAAAC,KAAA,IAAAC,EAAAH,EAEIH,IAAAuI,EAAA,OAAkB/J,EAAK,YAAAD,EAAA,cAAgBG,EAAa,qBAAA0C,EAAAA,EAAAA,QAAAC,EAAAA,EAAAA,QAAAjB,EAAA,MAAAmD,IAAAiF,EAAAA,EAAAA,SAAAtJ,EAAAqE,MAAAlE,EAAAiB,EAAA,OAAEjB,EAAAiB,EAAA,SAAA+H,EAAAA,EAAAA,GAAA,mBAAAhJ,IAAAW,IAAAC,EAAAA,QAAA,YAAAC,CAAAb,EAAA0B,EAAAC,EAAAC,KAAA,IAAAX,EAAAS,EAAA4G,EAAA3G,EAAA,MAGjDyH,EAAe,MAAHxH,EAAAA,EAAA,GAAAA,EAAA,GAAG,KAAIyH,EAAAC,GAAA3H,EAAAhC,SAAA,IAAA2J,GACpBF,GAAYzI,IAAAC,EAAAA,QAAA,YAAAC,CAAAb,EAAAuJ,EAAArJ,EAAAsJ,KAAA,IAAAvI,EAAAsI,EACd7E,IAAA1E,EAAAoJ,GAAA,YACQrJ,EAAa0D,QAAO,SACjB1D,EAAamC,KAAI,aAAAH,EAAAA,EAAAA,QAAAC,EAAAA,EAAAA,QAAA9B,EAAA,CAAAH,EAAAZ,EAAAE,KACf,SAACoE,GACV,MAAMxB,EAAe,IAAKlC,EAAc0D,YACxChC,EAAAA,EAAAA,SAAAvC,EAAQ,IACHC,EAAMiD,MAAM,EAAG/C,GAClB4C,KACG9C,EAAMiD,MAAM/C,EAAc,MAE/B8J,EAAAA,EAAAA,SAAAP,GAAW,EAAK,MACjB,eAAA3H,EAAA,OAAEjB,EAAAiB,EAAA,MACF8B,EAAAA,EAAAA,SAAAuF,EAAA,UAAAvG,EAAAA,EAAAA,QAAAC,EAAAA,EAAAA,QAAAL,EAAA,gBAEH,MAAMc,QAAU,+HACVA,EAAEgH,SACRN,EAAAA,EAAAA,SAAAE,EAAe5G,EAChB,QAAAzC,EAAAiB,EAAA,WAAAjB,EAAAiB,EAAA,SAEE+H,EAAAA,EAAAA,GAAA,oBAAAhJ,IAGPW,IAAAsI,GAAAF,EAAAA,EAAAA,IAAA,MAAAC,EAAAA,EAAAA,GAAA,sBAAAhJ,IAAAW,IAAAC,EAAAA,QAAA,YAAAC,CAAAb,EAAA0J,EAAAC,EAAAC,KAAA,IAAA3I,EAAAyI,EAAApB,EAAAqB,EAEIhJ,IAAAkJ,EAAA,OACQrB,EAAW,aAAAzG,EAAAA,EAAAA,QAAAC,EAAAA,EAAAA,QAAA2H,EAAA,KACN,SAAC7G,IACVqG,EAAAA,EAAAA,SAAAV,EAAc3F,IACdqG,EAAAA,EAAAA,SAAAP,GAAW,EAAM,GAClB,MALkB,iBAAc,WAAA5I,IAAAA,EAAA2E,EAAAC,GAAA0D,GAAAtI,EAAA2E,EAAAwD,GAAAG,GAAAtI,EAAA2E,EAAAyD,GAAAE,EAAA,GAAAtI,EAAAiB,EAAA,KAUnCN,IAAAmJ,EAAA,OAAuB3K,GAAKa,EAAAiB,EAAA,QAAEjB,EAAAiB,EAAA,SAAA+H,EAAAA,EAAAA,GAAA,mBAAAhJ,IAAAW,IAAAC,EAAAA,QAAA,YAAAC,CAAAb,EAAA+J,EAAAC,EAAAC,KAAA,IAAAhJ,EAAA8I,EAAAzB,EAAA0B,EAAA,MAWzBE,EAAU,MAAHD,EAAAA,EAAA,GAAAA,EAAA,GAAG,KAAIE,EAAAC,GAAAJ,EAAArK,SAAA,IAAAyK,GACnB1F,IAAA1E,EAAGkK,GAAO,WACH1B,EAAW,MACVrJ,EAAK,aACEY,EAAY,mBACNwI,EAAkB,SAC5BI,KAAQ,eAAA1H,EAAA,OAAE8B,EAAAA,EAAAA,SAAAuF,EAAA,UAAAvG,EAAAA,EAAAA,QAAAC,EAAAA,EAAAA,QAAAgI,EAAA,iBAEnBb,EAAAA,EAAAA,SAAAgB,QAAgB,2IACjB,QAAAnK,EAAAiB,EAAA,YAAAjB,EAAAiB,EAAA,OAEE,IAAAjB,EAAAiB,EAAA,IAEO,UAAA2C,EAAAA,EAAAA,MAAA,KAAAT,EAAAU,IAAAC,IAAAC,GAAAC,UAAAC,IAAAH,GAAAC,GAAAG,E,+yBCtEjBC,EAAAA,EAAAA,GAAAN,GAAA,IAAAE,IAAA,MAAAD,EAAA,CAAAuE,QAAAA,GAAA,KAAAhE,MAAA,KAAAN,EAAAG,EAAAE,KAAA,SAAA7E,EAAAS,EAAAiB,EAAAF,EAAAsD,EAAAC,IAAAC,EAAAA,EAAAA,SAAA,QAAA7E,EAAAqB,EAAAnB,EAAAyE,EAAA,MAEQvB,MAAMuH,GAAc9K,EACxBuD,EAAQ,MAAHlD,EAAAA,EAAA,GAAAA,EAAA,GAXH,WACL,IAEI,OAAO6F,KAAK6E,OAAMC,EAAAA,EAAAA,mCAAkCnH,OAAOoH,SAASC,KAAKrI,MAAM,IAEnF,CAAE,MAAMK,GACNiI,QAAQC,MAAMlI,EAChB,CACF,CAGamI,IAAqBP,EAAYQ,EAAAC,GAAApL,EAAAC,SAAA,IAAAmL,IAAA/H,EAAAA,EAAAA,SAAAhC,EAAA,UAAAgB,EAAAA,EAAAA,QAAAC,EAAAA,EAAAA,QAAAtC,EAAA,KAErC,WACL0D,OAAOgD,iBAAiB,aAAc2E,KAAK1D,QAAU,KACnD,IACO0D,KAAKC,WAGRD,KAAKC,YAAa,GAFlBvJ,EAAAA,EAAAA,SAAAoJ,EAAQpF,KAAK6E,OAAMC,EAAAA,EAAAA,mCAAkCnH,OAAOoH,SAASC,KAAKrI,MAAM,KAIpF,CAAE,MAAMK,GACNiI,QAAQC,MAAMlI,EAChB,GACC,GACJ,UAAAV,EAAAA,EAAAA,QAAAC,EAAAA,EAAAA,QAAAtC,EAAA,CAAAoD,KACO,WACNiI,KAAKC,YAAa,EAClB5H,OAAOoH,SAASC,MAAOjF,EAAAA,EAAAA,+BAA8BC,KAAKC,UAAU5C,GAAQ,GAC7E,WAAAf,EAAAA,EAAAA,QAAAC,EAAAA,EAAAA,QAAAtC,EAAA,KACQ,WACP0D,OAAOiD,oBAAoB,aAAc0E,KAAK1D,QAAS,KACxD9H,EAAA+G,SAAA/G,EAAA+G,QAAA,OACMxD,EAAK,aAAAf,EAAAA,EAAAA,QAAAC,EAAAA,EAAAA,QAAAtC,EAAA,MAAAwE,IAAAzC,EAAAA,EAAAA,SAAAoJ,EAAA3G,MAAA,YAAAN,EAAAA,EAAAA,MAAA,KAAAT,EAAAU,GAAAC,GAAAC,EAAAC,UAAAC,IAAAH,EAAAC,EAAAG,E,shDClC2CC,EAAAA,EAAAA,GAAAN,GAAA,IAAAE,IAAA,MAAAD,EAAA,CAAAuE,QAAAA,GAAA,KAAAhE,MAAA,KAAAN,EAAAG,EAAAE,KAAA,SAAA7E,EAAAS,EAAAiB,EAAAF,EAAAsD,EAAAC,IAAAC,EAAAA,EAAAA,SAAA,QAAA7E,EAAAqB,EAAAkK,GAAA3E,EAAAA,EAAAA,SAAA5G,GAEzDiB,IAAAuK,EAAAA,EAAA,QAAAnJ,EAAAA,EAAAA,QAAAC,EAAAA,EAAAA,QAAAtC,EAAA,KAAiB,CACf,CACEmC,KAAM,cACNK,KAAM,0BACNuB,QACE,2EAEL,QAAAwH,GAAAjL,EAAAiB,EAAA,KAAE,kBAAAsB,EAAAO,MAPQ3D,GAAK8L,IAQhBtK,IAAAwK,EAAAA,EAAA,qBAAApJ,EAAAA,EAAAA,QAAAC,EAAAA,EAAAA,QAAAtC,EAAA,KACoB,WAChB,MAAO,CACL0L,WAAYC,EACZC,UAAU,EACV,GACH,MACMnM,EAAK,YAAAoD,GAAAvC,EAAAiB,EAAA,IACZ,UAAA2C,EAAAA,EAAAA,MAAA,KAAAT,EAAAU,GAAAC,GAAAC,EAAAC,UAAAC,IAAAH,EAAAC,EAAAG,ICVF,IAAAqH,UAAS,WAAY,MAErB,IAAAA,UAAS,WAAY,MAGrB,IAAAA,UAAS,WAAY,MAErB,IAAAA,UAAS,WAAY,MAQrB,IAAAC,O,qECxBAC,EAAOC,QAAU,EAAjBD,+D,oDCCAC,EAAQC,MAAQ,EAAhBD,yD,wCCDAD,EAAOC,QAAU,EAAjBD,wC,4CCAA,MAAMvJ,EAAO0J,EAAQ,+CACfC,EAAUD,EAAQ,uCAClBE,EAAiBF,EAAQ,oDAEzBG,EAAS,CACbC,iBAgCF,SAAyBC,GACvB,MAAMC,EAAQ,GAEd,OAAa,CACX,MAAMC,EAAYjK,EAAKkK,QAAQH,GAG/B,GAFAC,EAAMG,KAAKnK,EAAKoK,KAAKL,EAAK,kBAErBE,GAAaA,IAAcF,EAC9B,MAGFA,EAAME,CACR,CAEA,OAAOD,CACT,EA9CEK,iBAAkB,SAAU1J,EAAQ2J,GAClC,OAAOX,EAAQY,KAAK5J,EAAQ,CAC1B6J,QAASxK,EAAKkK,QAAQI,EAAWG,UACjCT,MAAOM,EAAWN,MAClBU,WAAY,CAAC,MAAO,QAAS,SAAU,QACvCC,UAAAA,CAAWC,EAAK5I,EAAG6I,GACjB,GAAI,sBAAsBC,KAAKD,GAC7B,IACE,OAAOjB,EAAemB,OAAOH,EAAKf,EAAOmB,uBAC3C,CAAE,MAAO,MAET,IACE,OAAOpB,EAAeD,QACpBiB,EACAC,EACAhB,EAAOmB,uBAEX,CAAE,MAAO,CAGX,OAAOH,CACT,GAEJ,EACAG,uBAAwB,CACtBC,SAAS,IAIb1B,EAAOC,QAAUK,C,uCCnCjBN,EAAOC,QAAU,CACf0B,IAAK,CAAC,EACND,SAAS,EACTE,SAAU,CACRC,KAAM,YAERC,IAAGA,IACM,I,qFCPX,IAAIC,EAAmB5B,EAAQ,+DAE3B6B,EAEK,mBAFLA,EAGM,oBAKVhC,EAAOC,QAAU,CACfgC,OAAAA,GACEF,EAAiBG,KAAK,SAAU5C,MAChC,IANW6C,EAMPC,EAAa,EACbC,EAAc/C,KAAKgD,MAAM,UAAUC,aACnCC,GAAgBlD,KAAKgD,MAAM,WAAa,CAAEC,aAAa,IAAKA,aAE5DE,GAVON,EAUiB,KAC1B,IAAIO,EAAgB/K,OAAOgL,YAEvBD,GAAiBF,EACnBlD,KAAKsD,SACKtD,KAAKuD,QAAUH,EAAgBL,IACnB9F,KAAKuG,IAAIJ,EAAgBN,IAfvC,GAgBYM,EAAgBN,GACrBA,GAAcC,KAE3BK,EAAgBN,EAAa9C,KAAKyD,OAASzD,KAAK0D,OAIpDZ,EAAaM,CAAa,EAxBX,IAAM/K,OAAOsL,sBAAsBd,IA2BpDM,IACA9K,OAAOgD,iBAAiB,SAAU8H,EACpC,EACAG,KAAAA,GACEtD,KAAK4D,YAAYlB,GACjB1C,KAAK4D,YAAYlB,GACjBD,EAAiBG,KAAK,QACxB,EACAc,GAAAA,GACE1D,KAAK6D,SAASnB,GACd1C,KAAK4D,YAAYlB,GACjBD,EAAiBG,KAAK,MACxB,EACAa,IAAAA,GACEzD,KAAK6D,SAASnB,GACdD,EAAiBG,KAAK,OACxB,EACAiB,QAAAA,CAASC,GACP9D,KAAKgD,MAAM,UAAUe,UAAUC,IAAIF,EACrC,EACAF,WAAAA,CAAYE,GACV9D,KAAKgD,MAAM,UAAUe,UAAUE,OAAOH,EACxC,EACAI,KAAAA,GACElE,KAAKuD,QAAS,CAChB,EACAY,MAAAA,GACEC,YAAW,IACT/L,OAAOsL,uBAAsB,KAC3B3D,KAAKuD,QAAS,CAAK,KAGzB,EACAc,UAAAA,GACE5B,EAAiBG,KAAK,cACxB,E,0ECpEF,IAAI0B,EAAezD,EAAQ,uCAE3BH,EAAOC,QAAU,IAAI2D,C,mHCHrB,cACE,aAAM3B,GACJ,MAAM,KAAElC,SAAe,mHACvBA,EAAKT,KAAKgD,MAAM,aAClB,E,sFCJF,IAIIuB,EAJA9B,EAAmB5B,EAAQ,+DAC3B2D,EAAU,GAAGA,QACbC,EAAS,GAAGA,OACZpN,EAAQ,GAAGA,MAGfqJ,EAAOC,QAAU,CACfgC,OAAAA,GACE3C,KAAK0E,oBACL1E,KAAK2E,yBACL3E,KAAK4E,eACP,EAEAA,aAAAA,GACE,IAAIC,EAAkB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GACnCC,KAAIlL,GAAK,iBAAmBA,IAC5B2H,KAAK,KACJwD,EAAU1N,EAAM2N,KAAKC,SAASC,iBAAiBL,IAC/CM,GAAU,EAEdJ,EAAQpN,QACNqI,KAAKoF,YAAY/M,QAAQgN,GAAG,UAAU,KAC/BF,IACHA,GAAU,EACVf,YAAW,KACT,IACIkB,EACAC,EAFAC,EAAYnN,OAAOoN,YAAc,EAIrCV,EAAQD,KAAIY,IACV,IAAI7I,EAAM6I,EAAOhJ,wBAAwBG,KAEzB,MAAd0I,GACC1I,EAAM2I,GAAavI,KAAKuG,IAAI3G,GAAOI,KAAKuG,IAAI+B,MAE7CA,EAAa1I,EACbyI,EAAgBI,EAClB,IAGF,IAAIC,EAASL,EAAcM,GACvBC,EACF7F,KAAK9F,GAAG4L,cAAc,YAAcH,EAAS,OAC7C3F,KAAK9F,GAAG4L,cAAc,cACpBC,EAAeF,EACfG,EAAYD,EAAaE,YAQ7B,IANID,GACFxB,EAAQQ,KAAKgB,EAAUd,iBAAiB,iBAAiBgB,GACvDA,EAAEnC,UAAUE,OAAO,cAIhB8B,GAAc,CACnB,IAAII,EAAaJ,EAAaK,QAAQ,MAClCC,EACFF,GACA1B,EAAOO,KACLmB,EAAWjB,iBAAiB,+BAC5BgB,GAAKA,IAAMH,IAEfM,GAAYA,EAAS7B,SAAQ0B,GAAKA,EAAEnC,UAAUE,OAAO,cACrD8B,EAAahC,UAAUC,IAAI,YAC3B+B,EAAeI,GAAcA,EAAWG,sBAC1C,CAEAtG,KAAKuG,qBAAqBV,GAE1BV,GAAU,CAAK,GACd,IACL,GAEN,EAEAR,sBAAAA,GACEH,EAAQQ,KAAKhF,KAAK9F,GAAGgL,iBAAiB,iBAAiBgB,IACrDlG,KAAKoF,YAAYc,GAAGb,GAAG,SAAS,KAC9Bd,EAAoBd,OACpBc,EAAoBL,QACpBK,EAAoBJ,SACpBnE,KAAKyD,MAAM,GACX,IAIJ,IAAI+C,EAAenP,EAAM2N,KAAKhF,KAAK9F,GAAGgL,iBAAiB,eAAeuB,MAEtED,GACExG,KAAKoF,YAAYoB,GAAcnB,GAAG,SAAS3N,IACzCW,OAAOqO,SAAS,EAAG,GACnBnC,EAAoBjB,QACpB5L,EAAE0E,gBAAgB,IAGtB4D,KAAKoF,YAAY3C,GACd4C,GAAG,SAAS,KACXrF,KAAK9F,GAAG6J,UAAUE,OAAO,aACzBjE,KAAK9F,GAAG6J,UAAUE,OAAO,SACzBG,YAAW,IAAMpE,KAAK9F,GAAG6J,UAAUE,OAAO,eAAe,EAAE,IAE5DoB,GAAG,OAAO,KACTrF,KAAK9F,GAAG6J,UAAUE,OAAO,aACzBjE,KAAK9F,GAAG6J,UAAUC,IAAI,SACtBI,YAAW,IAAMpE,KAAK9F,GAAG6J,UAAUC,IAAI,eAAe,EAAE,IAEzDqB,GAAG,QAAQ,KACVrF,KAAK9F,GAAG6J,UAAUC,IAAI,aACtBhE,KAAK9F,GAAG6J,UAAUC,IAAI,SACtBI,YAAW,IAAMpE,KAAK9F,GAAG6J,UAAUC,IAAI,eAAe,EAAE,IAEzDqB,GAAG,eAAe,KACbrF,KAAK9F,GAAG6J,UAAU4C,SAAS,SAC7B3G,KAAK9F,GAAG6J,UAAUE,OAAO,QACzBgB,SAASvL,KAAKkN,MAAMC,SAAW,IAE/B7G,KAAK9F,GAAG6J,UAAUC,IAAI,OACxB,IAEDqB,GAAG,UAAUyB,IACZvC,EAAsBuC,EAElBzO,OAAOgL,YAAckB,EAAoBrK,GAAG+I,eAC9CjD,KAAK9F,GAAG6J,UAAUC,IAAI,aACtBhE,KAAK9F,GAAG6J,UAAUC,IAAI,SACxB,GAEN,EAEAU,iBAAAA,GACE,IAAIqC,EAAU/G,KAAKgD,MAAM,WACzBhD,KAAKoF,YAAYH,SAASvL,MAAM2L,GAAG,SAAS3N,IAC1C,IAAIsP,EAAQtP,EAAEuP,OACVC,EAAeH,EAAQI,UAAYH,EAEnCI,EAAUL,EAAQM,aAAeN,EAAQ9D,aACzCqE,EAAQJ,GAFD,EAGPK,EAAWL,GAAgBE,GAE1BJ,EAAQ,GAAKM,GAAWN,EAAQ,GAAKO,KACpC7P,EAAEI,SAAWiP,GAAWA,EAAQJ,SAASjP,EAAEI,WACzCwP,GAPG,GAOMP,EAAQI,UACnBJ,EAAQI,UARH,EASII,GAAYR,EAAQI,WAAaC,IAC1CL,EAAQI,UAAYC,GAEtB1P,EAAE0E,iBAEN,GAEJ,EAEAmK,oBAAAA,CAAqBV,GAUnB,IATA,IAOIM,EAPAY,EAAU/G,KAAKgD,MAAM,WAErBwE,GADY3B,EAAS4B,UACFV,EAAQI,WAC3BO,EAAgBX,EAAQ9D,aACxB0E,EAAsBH,EAAmBE,EAEzCE,EAAa/B,EAASO,QAAQ,OAIhCD,EAAayB,EAAWC,WAAWzB,QAAQ,QACzBD,EAAWlD,aAAeyE,GAC1CE,EAAazB,EAMjB,IAAI2B,EAAYF,EAAWH,UACvBM,EAAeH,EAAW3E,aAG5B6E,EAAYN,GAFKM,EAAYC,EAEkBJ,IAG/CZ,EAAQI,UAAYW,EAAYC,EAAe,EAAIL,EAAgB,EAEvE,EAEAjE,IAAAA,GACEzD,KAAK9F,GAAG6J,UAAUE,OAAO,QACzBgB,SAASvL,KAAKkN,MAAMC,SAAW,EACjC,E,4GCxLFnG,EAAOC,QAAU,CACfgC,OAAAA,GACE,MAAM5K,EAAQiI,KAAKgD,MAAM,WAAWjL,MAC9BiQ,EAAUjQ,EAAMkQ,WAAW,OAC3BC,GAAWF,GAAWjQ,EAAMkQ,WAAW,MAC7BjI,KAAKmI,KAAOH,IAAchI,KAAKmI,KAAOD,KAEpD7P,OAAOoH,SAAS2I,KAAOrQ,EAE3B,EACAsQ,aAAAA,CAAc3Q,GACZW,OAAOoH,SAAS2I,KAAO1Q,EAAEI,OAAOC,KAClC,E,6DCZa,G,gECAA,G,4DCAA,G,gECAA,G,gDCAA,G,kDCAA,G,+DCAf,QAAe,IAA0B,c","sources":["webpack:///../components/repl/components/Users/dpiercey/dev/marko-js/website/src/components/repl/components/file-tabs.marko","webpack:///../components/repl/components/Users/dpiercey/dev/marko-js/website/src/components/repl/components/pane.marko","webpack:///../components/repl/components/Users/dpiercey/dev/marko-js/website/src/components/repl/components/controllable-select.marko","webpack:///../components/repl/components/Users/dpiercey/dev/marko-js/website/src/components/repl/components/playground-link.marko","webpack:///../components/repl/components/Users/dpiercey/dev/marko-js/website/src/components/repl/components/match-media.marko","webpack:///../components/repl/components/Users/dpiercey/dev/marko-js/website/src/components/repl/components/resizable-panes.marko","webpack:///../components/repl/Users/dpiercey/dev/marko-js/website/src/components/repl/index.marko","webpack:///./playground/components/Users/dpiercey/dev/marko-js/website/src/pages/playground/components/hash-value.marko","webpack:///./v6/playground/components/Users/dpiercey/dev/marko-js/website/src/pages/v6/playground/components/playground-6.marko","webpack:///./v6/playground/index.marko","webpack:///../../browser-shims/compiler/dist/babel-types/index.js","webpack:///../../browser-shims/compiler/index.js","webpack:///../../browser-shims/fs.js","webpack:///../../browser-shims/module.js","webpack:///../../browser-shims/process.js","webpack:///../components/app-layout/components/layout-header/component-browser.js","webpack:///../components/app-layout/components/layout-header/events.js","webpack:///../components/app-layout/components/layout-search/component-browser.js","webpack:///../components/app-layout/components/layout-sidebar/component-browser.js","webpack:///../components/app-layout/components/layout-sidebar/components/version-switcher/component-browser.js","webpack:///../components/app-footer/ebay.svg","webpack:///../components/app-footer/openjsf.svg","webpack:///../components/app-footer/osi.svg","webpack:///../components/app-layout/favicon.png","webpack:///../logos/discord.svg","webpack:///../logos/marko-uwu.png","webpack:///../logos/marko.svg"],"sourcesContent":["\n\n\n\n\n\n\n\n \n \n \n \n 0)/>\n \n \n ${file.name}\n \n \n \n \n \n \n \n \n = index) {\n selectedIndex--;\n }\n files = [...files.slice(0, index), ...files.slice(index+1)];\n }\n e.stopPropagation();\n }>\n ×\n \n \n \n \n \n +\n \n\n","\n\n\n \n <${actions.renderBody}/>\n \n \n \n <${body.renderBody}/>\n \n\n\n\n","\n\n\n // back to the original value. So we track those values as well,\n // so we can re-set the \n \n \n \n = index) {\n selectedIndex--;\n }\n files = [...files.slice(0, index), ...files.slice(index+1)];\n }\n e.stopPropagation();\n }>\n ×\n \n \n \n \n \n +\n \n\n","\n\n\n \n <${actions.renderBody}/>\n \n \n \n <${body.renderBody}/>\n \n\n\n\n","\n\n\n // back to the original value. So we track those values as well,\n // so we can re-set the \n \n \n \n = index) {\n selectedIndex--;\n }\n files = [...files.slice(0, index), ...files.slice(index+1)];\n }\n e.stopPropagation();\n }>\n ×\n \n \n \n \n \n +\n \n\n","\n\n\n \n <${actions.renderBody}/>\n \n \n \n <${body.renderBody}/>\n \n\n\n\n","\n\n\n // back to the original value. So we track those values as well,\n // so we can re-set the \n \n \n \n = index) {\n selectedIndex--;\n }\n files = [...files.slice(0, index), ...files.slice(index+1)];\n }\n e.stopPropagation();\n }>\n ×\n \n \n \n \n \n +\n \n\n","\n\n\n \n <${actions.renderBody}/>\n \n \n \n <${body.renderBody}/>\n \n\n\n\n","\n\n\n // back to the original value. So we track those values as well,\n // so we can re-set the \n \n \n \n = index) {\n selectedIndex--;\n }\n files = [...files.slice(0, index), ...files.slice(index+1)];\n }\n e.stopPropagation();\n }>\n ×\n \n \n \n \n \n +\n \n\n","\n\n\n \n <${actions.renderBody}/>\n \n \n \n <${body.renderBody}/>\n \n\n\n\n","\n\n\n // back to the original value. So we track those values as well,\n // so we can re-set the \n \n \n \n = index) {\n selectedIndex--;\n }\n files = [...files.slice(0, index), ...files.slice(index+1)];\n }\n e.stopPropagation();\n }>\n ×\n \n \n \n \n \n +\n \n\n","\n\n\n \n <${actions.renderBody}/>\n \n \n \n <${body.renderBody}/>\n \n\n\n\n","\n\n\n // back to the original value. So we track those values as well,\n // so we can re-set the \n \n \n \n = index) {\n selectedIndex--;\n }\n files = [...files.slice(0, index), ...files.slice(index+1)];\n }\n e.stopPropagation();\n }>\n ×\n \n \n \n \n \n +\n \n\n","\n\n\n \n <${actions.renderBody}/>\n \n \n \n <${body.renderBody}/>\n \n\n\n\n","\n\n\n // back to the original value. So we track those values as well,\n // so we can re-set the \n \n \n \n = index) {\n selectedIndex--;\n }\n files = [...files.slice(0, index), ...files.slice(index+1)];\n }\n e.stopPropagation();\n }>\n ×\n \n \n \n \n \n +\n \n\n","\n\n\n \n <${actions.renderBody}/>\n \n \n \n <${body.renderBody}/>\n \n\n\n\n","\n\n\n // back to the original value. So we track those values as well,\n // so we can re-set the
Marko logo

This article was published in August 2017. You can find the original "10 Awesome Marko Features" article here!

10 Awesome Marko Features

Marko is a friendly and super fast UI library that makes building web apps
fun! In celebration of rapidly approaching 5,000 stars on GitHub (the ultimate open source vanity metric), here are 10 features that will make you more productive in no particular order...

1. Shorthand Attributes

Tired of constantly typing out class and id attributes? No need with Marko. Simply utilize the shorthand based on CSS selectors:

style {
+    
Marko logo

This article was published in August 2017. You can find the original "10 Awesome Marko Features" article here!

10 Awesome Marko Features

Marko is a friendly and super fast UI library that makes building web apps
fun! In celebration of rapidly approaching 5,000 stars on GitHub (the ultimate open source vanity metric), here are 10 features that will make you more productive in no particular order...

1. Shorthand Attributes

Tired of constantly typing out class and id attributes? No need with Marko. Simply utilize the shorthand based on CSS selectors:

style {
   .count {
     color:#09c;
   }
diff --git a/docs/articles-overview/index.html b/docs/articles-overview/index.html
index 3b5d94e3..5a726e89 100644
--- a/docs/articles-overview/index.html
+++ b/docs/articles-overview/index.html
@@ -16,7 +16,7 @@
       } else {
         delete localStorage.uwu;
       }
-    

Body content

We're used to passing body content to HTML tags. When you do this, the tag has control over where and when this content is rendered. A good example of this is the HTML <details> element:

<details>
+    

Body content

We're used to passing body content to HTML tags. When you do this, the tag has control over where and when this content is rendered. A good example of this is the HTML <details> element:

<details>
   <summary>Hello <strong>World</strong></summary>
   This is some <em>content</em> that can be toggled.
 </details>
diff --git a/docs/bundler-integrations-overview/index.html b/docs/bundler-integrations-overview/index.html
index fd860bac..5b044891 100644
--- a/docs/bundler-integrations-overview/index.html
+++ b/docs/bundler-integrations-overview/index.html
@@ -16,7 +16,7 @@
       } else {
         delete localStorage.uwu;
       }
-    

Class Components

Marko makes it easy to create user interface components to use as building blocks for web pages and applications of any complexity.

Marko promotes self-contained components that:

  • Are independently testable
  • Encapsulate the view, client-side behavior (like event handling) and styling
  • Can easily be combined to create composite UI components.

Marko components compile into small, efficient JavaScript modules that hide implementation details from consumers. Components can be published to npm for reuse across applications.

UI component diagram

Component diagram

In Marko, the DOM output of a UI component is based on input properties and optional internal state used to control the view.

If Marko detects changes to input or the internal state, then the view (that is, the DOM) will automatically update to reflect the new input and state. Internally, Marko uses virtual DOM diffing/patching to update the view, but that’s an implementation detail that could change at any time.

Component structure

Marko makes it easy to keep your component’s class and styles next to the HTML view that they correspond to. The following are the key parts of any UI component:

  • View - The HTML template for your UI component. Receives input properties and states, and renders to either server-side HTML or browser-side virtual DOM nodes.
  • Client-side behavior - A JavaScript class with methods and properties for initialization, event handling (including DOM events, custom events and lifecycle events), and state management.
  • Styles - Cascading StyleSheets, including support for CSS preprocessors like Less or Sass.

Server-side rendering

A UI component can be rendered on the server or in the browser, but stateful component instances will be automatically mounted to the DOM in the browser for both. If a UI component tree is rendered on the server, then Marko will recreate the UI component tree in the browser with no extra code required. For more details, please see Rendering.

Single-file components

Marko lets you define a class for a component right in the .marko file, and call that class’s methods with on-* attributes:

class {
+    

Class Components

Marko makes it easy to create user interface components to use as building blocks for web pages and applications of any complexity.

Marko promotes self-contained components that:

  • Are independently testable
  • Encapsulate the view, client-side behavior (like event handling) and styling
  • Can easily be combined to create composite UI components.

Marko components compile into small, efficient JavaScript modules that hide implementation details from consumers. Components can be published to npm for reuse across applications.

UI component diagram

Component diagram

In Marko, the DOM output of a UI component is based on input properties and optional internal state used to control the view.

If Marko detects changes to input or the internal state, then the view (that is, the DOM) will automatically update to reflect the new input and state. Internally, Marko uses virtual DOM diffing/patching to update the view, but that’s an implementation detail that could change at any time.

Component structure

Marko makes it easy to keep your component’s class and styles next to the HTML view that they correspond to. The following are the key parts of any UI component:

  • View - The HTML template for your UI component. Receives input properties and states, and renders to either server-side HTML or browser-side virtual DOM nodes.
  • Client-side behavior - A JavaScript class with methods and properties for initialization, event handling (including DOM events, custom events and lifecycle events), and state management.
  • Styles - Cascading StyleSheets, including support for CSS preprocessors like Less or Sass.

Server-side rendering

A UI component can be rendered on the server or in the browser, but stateful component instances will be automatically mounted to the DOM in the browser for both. If a UI component tree is rendered on the server, then Marko will recreate the UI component tree in the browser with no extra code required. For more details, please see Rendering.

Single-file components

Marko lets you define a class for a component right in the .marko file, and call that class’s methods with on-* attributes:

class {
     onCreate() {
         this.state = {
             count: 0
diff --git a/docs/cloudflare-workers/index.html b/docs/cloudflare-workers/index.html
index 796b7c0e..50a1797f 100644
--- a/docs/cloudflare-workers/index.html
+++ b/docs/cloudflare-workers/index.html
@@ -16,7 +16,7 @@
       } else {
         delete localStorage.uwu;
       }
-    

Marko + Cloudflare Workers

See the the cloudflare sample project for a working example.

Usage

When using Marko with Cloudflare Workers, make sure that Marko is loaded with a worker export condition. Most bundlers support defining export conditions.

After that point, imported .marko files will export a .stream method that returns a worker compatible ReadableStream. You can then respond with that returned stream:

import Template from "./index.marko";
+    

Marko + Cloudflare Workers

See the the cloudflare sample project for a working example.

Usage

When using Marko with Cloudflare Workers, make sure that Marko is loaded with a worker export condition. Most bundlers support defining export conditions.

After that point, imported .marko files will export a .stream method that returns a worker compatible ReadableStream. You can then respond with that returned stream:

import Template from "./index.marko";
 
 addEventListener("fetch", (event) => {
   event.respondWith(handleRequest(event.request));
diff --git a/docs/color-picker/index.html b/docs/color-picker/index.html
index 2ea201af..dfb69dae 100644
--- a/docs/color-picker/index.html
+++ b/docs/color-picker/index.html
@@ -16,7 +16,7 @@
       } else {
         delete localStorage.uwu;
       }
-    

Building a Color Picker Component

Introduction

Marko makes building UI components extremely easy and fun! Today we are going to build a color picker component from scratch. We are going to learn how to:

  • Create a project using marko-cli
  • Create a basic and customizable color picker component

Our final goal for today is create this component:

Try Online

Getting Started

The quickest way to get up and running with Marko is to use the @marko/create cli.

For this tutorial lets tell @marko/create to give us a basic boilerplate by running the following command:

npx @marko/create --template basic --name color-picker-tutorial
+    

Building a Color Picker Component

Introduction

Marko makes building UI components extremely easy and fun! Today we are going to build a color picker component from scratch. We are going to learn how to:

  • Create a project using marko-cli
  • Create a basic and customizable color picker component

Our final goal for today is create this component:

Try Online

Getting Started

The quickest way to get up and running with Marko is to use the @marko/create cli.

For this tutorial lets tell @marko/create to give us a basic boilerplate by running the following command:

npx @marko/create --template basic --name color-picker-tutorial
 

Once the create command has finished, we can move into our new directory and get a development server up and running like so:

cd ./color-picker-tutorial
 npm run dev
 

This should open your default browser automatically.

Creating Components

NOTE: For a more detailed documentation of components, please see the markojs.com components documentation

In our new project, components are located in the color-picker-tutorial/src/components/ directory. Next we need to create our component in the components/ directory, which should look like this:

color-picker-tutorial/
diff --git a/docs/compiler/index.html b/docs/compiler/index.html
index cef3b3ba..53bdc0e1 100644
--- a/docs/compiler/index.html
+++ b/docs/compiler/index.html
@@ -16,7 +16,7 @@
       } else {
         delete localStorage.uwu;
       }
-    

Compiler

Warning: The compiler API and hooks are not terribly stable. They’re intended for advanced integrations or userland experimentation with new language features.

Prefer existing official plugins and the standard tag library when possible.

Compile API

Warning: The Compile API is intended for advanced integration with build tools, like Webpack and Rollup. Unless you’re doing that, you probably instead want build/serve in the Marko CLI, or one of Marko’s bundler integrations.

Compile Functions

Compile functions take two arguments:

  1. A source Marko template
  2. CompileOptions

Then, they return a CompileResult:

type CompileResult = {
+    

Compiler

Warning: The compiler API and hooks are not terribly stable. They’re intended for advanced integrations or userland experimentation with new language features.

Prefer existing official plugins and the standard tag library when possible.

Compile API

Warning: The Compile API is intended for advanced integration with build tools, like Webpack and Rollup. Unless you’re doing that, you probably instead want build/serve in the Marko CLI, or one of Marko’s bundler integrations.

Compile Functions

Compile functions take two arguments:

  1. A source Marko template
  2. CompileOptions

Then, they return a CompileResult:

type CompileResult = {
   code: string;
   map?: SourceMap;
   meta: Record<string, unknown>;
diff --git a/docs/concise/index.html b/docs/concise/index.html
index 01ce5765..28801d77 100644
--- a/docs/concise/index.html
+++ b/docs/concise/index.html
@@ -16,7 +16,7 @@
       } else {
         delete localStorage.uwu;
       }
-    

Concise syntax

Marko's concise syntax is very similar to the HTML syntax, except it's more... concise. Essentially, you take an HTML tag, remove the angle brackets (<>) and use indentation rather than a closing tag:

input.marko
div class="thumbnail"
+    

Concise syntax

Marko's concise syntax is very similar to the HTML syntax, except it's more... concise. Essentially, you take an HTML tag, remove the angle brackets (<>) and use indentation rather than a closing tag:

input.marko
div class="thumbnail"
     img src="https://example.com/thumb.png"
 
div.thumbnail
   img src="https://example.com/thumb.png"
diff --git a/docs/conditionals-and-lists/index.html b/docs/conditionals-and-lists/index.html
index 9c88ce6f..6415133e 100644
--- a/docs/conditionals-and-lists/index.html
+++ b/docs/conditionals-and-lists/index.html
@@ -16,7 +16,7 @@
       } else {
         delete localStorage.uwu;
       }
-    

Conditionals and Lists

While HTML itself does not support conditionally displaying elements or repeating elements, it is a critical part of building any web application. In Marko, this functionality is provided by the <if> and <for> tags.

Conditionals

The <if> tag receives an argument which is used to determine if its body content should be present.

<if(user.loggedOut)>
+    

Conditionals and Lists

While HTML itself does not support conditionally displaying elements or repeating elements, it is a critical part of building any web application. In Marko, this functionality is provided by the <if> and <for> tags.

Conditionals

The <if> tag receives an argument which is used to determine if its body content should be present.

<if(user.loggedOut)>
     <a href="/login">Log in</a>
 </if>
 
if(user.loggedOut)
diff --git a/docs/core-tags/index.html b/docs/core-tags/index.html
index 7d0f84b9..d1e0ee17 100644
--- a/docs/core-tags/index.html
+++ b/docs/core-tags/index.html
@@ -16,7 +16,7 @@
       } else {
         delete localStorage.uwu;
       }
-    

Core tags and attributes

Much like HTML has its own native tags, Marko includes core tags and global attributes for declaratively building modern applications.

<if>, <else-if>, <else>

Like the equivalent JavaScript statements, these tags render conditional content:

<if(arriving)>
+    

Core tags and attributes

Much like HTML has its own native tags, Marko includes core tags and global attributes for declaratively building modern applications.

<if>, <else-if>, <else>

Like the equivalent JavaScript statements, these tags render conditional content:

<if(arriving)>
   Hey there
 </if>
 <else-if(leaving)>
diff --git a/docs/custom-tags/index.html b/docs/custom-tags/index.html
index bea690a2..985b3d46 100644
--- a/docs/custom-tags/index.html
+++ b/docs/custom-tags/index.html
@@ -16,7 +16,7 @@
       } else {
         delete localStorage.uwu;
       }
-    

Custom tags

Custom tags allow you to break up your application UI into encapsulated, reusable components.

Your first custom tag

Let's say we have a page with the following content:

page.marko
<!doctype html>
+    

Custom tags

Custom tags allow you to break up your application UI into encapsulated, reusable components.

Your first custom tag

Let's say we have a page with the following content:

page.marko
<!doctype html>
 <html>
 <body>
     <h1>Hello World!</h1>
diff --git a/docs/editor-plugins/index.html b/docs/editor-plugins/index.html
index c3d09c01..730b9a11 100644
--- a/docs/editor-plugins/index.html
+++ b/docs/editor-plugins/index.html
@@ -16,7 +16,7 @@
       } else {
         delete localStorage.uwu;
       }
-    

Editor Plugins

Visual Studio Code

Documentation

  • Syntax highlighting
  • Tag matching
  • Tag, attribute and css autocompletion
  • Hyperclick (clickable tags and attributes)
  • Surfaces errors within the templates.
  • Prettyprinting (marko-prettyprint is used internally)

Atom

Documentation

  • Syntax highlighting
  • Tag matching
  • Tag and attribute autocompletion
  • Code snippets
  • Hyperclick (clickable tags and attributes)
  • Prettyprinting (marko-prettyprint is used internally)

Sublime

Documentation

  • Syntax highlighting

WebStorm

Documentation

  • Syntax highlighting

TextMate

Documentation

  • Syntax highlighting

CodeMirror

codemirror-atom-modes + atom-language-marko

EDIT on GitHub

Contributors

Helpful? You can thank these awesome people! You can also edit this doc if you see any issues or want to improve it.

Editor Plugins

Visual Studio Code

Documentation

  • Syntax highlighting
  • Tag matching
  • Tag, attribute and css autocompletion
  • Hyperclick (clickable tags and attributes)
  • Surfaces errors within the templates.
  • Prettyprinting (marko-prettyprint is used internally)

Atom

Documentation

  • Syntax highlighting
  • Tag matching
  • Tag and attribute autocompletion
  • Code snippets
  • Hyperclick (clickable tags and attributes)
  • Prettyprinting (marko-prettyprint is used internally)

Sublime

Documentation

  • Syntax highlighting

WebStorm

Documentation

  • Syntax highlighting

TextMate

Documentation

  • Syntax highlighting

CodeMirror

codemirror-atom-modes + atom-language-marko

EDIT on GitHub

Contributors

Helpful? You can thank these awesome people! You can also edit this doc if you see any issues or want to improve it.

Events

Marko’s event API supports:

Note that you can’t mix event targets and event types: custom tags can only listen for custom events, and native tags can only listen for native events.

Listening to events

Both kinds of events are received with an on-* attribute and the attribute arguments syntax:

<input type="checkbox"
+    

Events

Marko’s event API supports:

Note that you can’t mix event targets and event types: custom tags can only listen for custom events, and native tags can only listen for native events.

Listening to events

Both kinds of events are received with an on-* attribute and the attribute arguments syntax:

<input type="checkbox"
   on-change(event => console.info(`Checked? ${event.target.checked}`))
 />
 
input [
diff --git a/docs/express/index.html b/docs/express/index.html
index 7831794f..ea4a5c5a 100644
--- a/docs/express/index.html
+++ b/docs/express/index.html
@@ -16,7 +16,7 @@
       } else {
         delete localStorage.uwu;
       }
-    

Marko + Express

Quick Start

npm init marko -- --template vite-express
+    

Marko + Express

Quick Start

npm init marko -- --template vite-express
 # Or `npx create-marko --template vite-express`
 

See Marko’s example projects for working Express integration code, such as:

But if you want to do things the hard way…

Doing things the hard way

First, install Marko, Express, and the glue to hold them together:

npm install marko express @marko/express --save
 

Skip the view engine

Express’s builtin view engine may be asynchronous, but it doesn’t support streaming — see Rediscovering Progressive HTML Rendering for why that’s important. So instead, we bypass Express’s view engine to use @marko/express instead.

The @marko/express package adds a res.marko() method to Express’s response object. This method works like res.render(), but without the restrictions of Express’s view engine, letting you take full advantage of Marko’s streaming and modular template organization.

ProTip: By using res.marko(), properties from app.locals and res.locals are automatically available on $global.

import express from "express";
diff --git a/docs/fastify/index.html b/docs/fastify/index.html
index fae85a9c..0c31b389 100644
--- a/docs/fastify/index.html
+++ b/docs/fastify/index.html
@@ -16,7 +16,7 @@
       } else {
         delete localStorage.uwu;
       }
-    

Marko + Fastify

Quick Start

npm init marko -- --template vite-fastify
+    

Marko + Fastify

Quick Start

npm init marko -- --template vite-fastify
 

See the the fastify sample project for a working example.

From Scratch

First install Marko and the fastify related dependencies:

npm install marko @marko/fastify fastify --save
 

Usage

The @marko/fastify adds a reply.marko decorator to the reply object. This function allows us to pass in a Marko template and supports Marko's streaming and modular approach to templates.

By using reply.marko you'll automatically have access to app.locals, and reply.locals from within your Marko template and custom tags. These values are added to $global.

import fastify from "fastify";
 import markoPlugin from "@marko/fastify";
diff --git a/docs/getting-started/index.html b/docs/getting-started/index.html
index 62932620..88250b30 100644
--- a/docs/getting-started/index.html
+++ b/docs/getting-started/index.html
@@ -16,7 +16,7 @@
       } else {
         delete localStorage.uwu;
       }
-    

Getting started

Setup

Marko Run makes it easy to get started with little to no config and is the recommended starting point for a new Marko project.

To set up your project:

  1. npm init marko -- -t basic
  2. cd ./<PROJECT_NAME>
  3. npm run dev

Open src/routes/_index/+page.marko in your editor to change the index page. See the routing documentation to learn how to add additional pages to your project.

Other setups

If you just want to test out Marko in your browser, use the Try Online feature. You can open it in another tab and follow along. For other setups, check out the Installation page.

Hello world

Marko makes it easy to represent your UI using a syntax that is like HTML:

hello.marko
<h1>Hello World</h1>
+    

Getting started

Setup

Marko Run makes it easy to get started with little to no config and is the recommended starting point for a new Marko project.

To set up your project:

  1. npm init marko -- -t basic
  2. cd ./<PROJECT_NAME>
  3. npm run dev

Open src/routes/_index/+page.marko in your editor to change the index page. See the routing documentation to learn how to add additional pages to your project.

Other setups

If you just want to test out Marko in your browser, use the Try Online feature. You can open it in another tab and follow along. For other setups, check out the Installation page.

Hello world

Marko makes it easy to represent your UI using a syntax that is like HTML:

hello.marko
<h1>Hello World</h1>
 
h1 -- Hello World
 

In fact, Marko is so much like HTML, that you can use it as a replacement for a templating language like handlebars, mustache, or pug:

template.marko
<!doctype html>
 <html>
diff --git a/docs/guides-overview/index.html b/docs/guides-overview/index.html
index 5bca3f8e..9e8655bc 100644
--- a/docs/guides-overview/index.html
+++ b/docs/guides-overview/index.html
@@ -16,7 +16,7 @@
       } else {
         delete localStorage.uwu;
       }
-    

Marko + HTTP Server

See the the http sample project for a working example.

Usage

import http from "http";
+    

Marko + HTTP Server

See the the http sample project for a working example.

Usage

import http from "http";
 import Template from "./index.marko";
 
 const port = 8080;
diff --git a/docs/index.html b/docs/index.html
index 90433de8..0bd75651 100644
--- a/docs/index.html
+++ b/docs/index.html
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/docs/installing/index.html b/docs/installing/index.html
index e825afa7..40945cda 100644
--- a/docs/installing/index.html
+++ b/docs/installing/index.html
@@ -16,7 +16,7 @@
       } else {
         delete localStorage.uwu;
       }
-    

Installation

Trying out Marko

If you just want to play around with Marko in the browser, head on over to our Try Online feature. You'll be able to develop a Marko application right in your browser.

If you're starting from scratch, you can use Marko's CLI commands to quickly create a starter app:

npm init marko
+    

Installation

Trying out Marko

If you just want to play around with Marko in the browser, head on over to our Try Online feature. You'll be able to develop a Marko application right in your browser.

If you're starting from scratch, you can use Marko's CLI commands to quickly create a starter app:

npm init marko
 

This will use an interactive CLI to automatically create a project for you using the pre-made starter template of your choosing. The basic template is the most minimal and the easiest way to get started. It uses our recommended app framework Marko Run that handles building, bundling, and serving your web application. These projects are config-free with built-in file based routing and automatic code reloading.

Custom Bundling

Marko relies on JavaScript bundlers to package your code on both the client and the server. This is because Marko's client and server bundling works closely together to optimize the smallest client bundles and handle shared assets properly.

Using the CLI is still the easiest way to get started even when you want to get your hands dirty tweaking every last part of your config files. Marko currently supports Webpack, Lasso, and Rollup.

Webpack

Webpack Integration Docs

Marko Webpack Plugin

Webpack Example

CLI Command: npx @marko/create --template webpack-express

Lasso

Lasso Integration Docs

Marko Lasso Plugin

Lasso Example

CLI Command: npx @marko/create --template lasso-express

Rollup

Rollup Integration Docs

Marko Rollup Plugin

EDIT on GitHub

Contributors

Helpful? You can thank these awesome people! You can also edit this doc if you see any issues or want to improve it.

Marko + Koa

See the the koa sample project for a working example.

Installation

npm install koa marko --save
+    

Marko + Koa

See the the koa sample project for a working example.

Installation

npm install koa marko --save
 

Usage

import Koa from "koa";
 import Template from "./index.marko";
 
diff --git a/docs/lasso/index.html b/docs/lasso/index.html
index 0fa424a7..a7dd583d 100644
--- a/docs/lasso/index.html
+++ b/docs/lasso/index.html
@@ -16,7 +16,7 @@
       } else {
         delete localStorage.uwu;
       }
-    

Marko + Lasso

The lasso-marko plugin for Lasso.js will automatically compile all imported Marko templates during bundling. In addition, the lasso-marko plugin will automatically bundle any template dependencies (including required CSS).

Lasso.js provides Marko custom tags for injecting JavaScript and CSS bundles, images and other resources.

The sample lasso-express app demonstrates how to build a production-ready web application using Marko and Lasso. Run npx @marko/create --template lasso-express to use this sample as a starting point for a new app.

Installation

npm install lasso-marko --save
+    

Marko + Lasso

The lasso-marko plugin for Lasso.js will automatically compile all imported Marko templates during bundling. In addition, the lasso-marko plugin will automatically bundle any template dependencies (including required CSS).

Lasso.js provides Marko custom tags for injecting JavaScript and CSS bundles, images and other resources.

The sample lasso-express app demonstrates how to build a production-ready web application using Marko and Lasso. Run npx @marko/create --template lasso-express to use this sample as a starting point for a new app.

Installation

npm install lasso-marko --save
 

Registering the plugin

require('lasso').configure({
     "plugins": [
         ...
diff --git a/docs/marko-5-upgrade/index.html b/docs/marko-5-upgrade/index.html
index 4edddc8e..f2bb81d4 100644
--- a/docs/marko-5-upgrade/index.html
+++ b/docs/marko-5-upgrade/index.html
@@ -16,7 +16,7 @@
       } else {
         delete localStorage.uwu;
       }
-    

Upgrading to Marko 5

Step 0 - Ensure you're in a working state on the latest version of Marko 4

Before we start, you'll want to make sure that you are already on the latest 4.x release of marko.

# Upgrade using yarn
+    

Upgrading to Marko 5

Step 0 - Ensure you're in a working state on the latest version of Marko 4

Before we start, you'll want to make sure that you are already on the latest 4.x release of marko.

# Upgrade using yarn
 yarn upgrade marko@^4
 
# Upgrade using npm
 npm install marko@^4
diff --git a/docs/marko-json/index.html b/docs/marko-json/index.html
index 4a849383..68d3ec59 100644
--- a/docs/marko-json/index.html
+++ b/docs/marko-json/index.html
@@ -16,7 +16,7 @@
       } else {
         delete localStorage.uwu;
       }
-    

marko.json & marko-tag.json

Marko supports configuration files for validation, enabling experimental features, and custom paths for component files.

These configuration files are automatically found with the same discovery mechanism as custom tags.

There are 2 types of configuration files:

  1. marko.json describes an entire suite of components.
  2. marko-tag.json describes a single component.

Single component definition

marko-tag.json configures a single component. It’s automatically discovered if placed inside a tag directory.

Options

{
+    

marko.json & marko-tag.json

Marko supports configuration files for validation, enabling experimental features, and custom paths for component files.

These configuration files are automatically found with the same discovery mechanism as custom tags.

There are 2 types of configuration files:

  1. marko.json describes an entire suite of components.
  2. marko-tag.json describes a single component.

Single component definition

marko-tag.json configures a single component. It’s automatically discovered if placed inside a tag directory.

Options

{
   "html": true, // Treat as a native HTML tag, not a custom tag.
   "htmlType": "svg", // Optimizes for specific types of native tags (currently only `svg` and `html`).
   "open-tag-only": true, // Forbids passing body content to this tag.
diff --git a/docs/marko-vs-react/index.html b/docs/marko-vs-react/index.html
index 7b2e1345..8f071fae 100644
--- a/docs/marko-vs-react/index.html
+++ b/docs/marko-vs-react/index.html
@@ -16,7 +16,7 @@
       } else {
         delete localStorage.uwu;
       }
-    

Marko vs React: An In-depth Look

Marko logo

This article was published March 2017. Both frameworks have gone through several updates since. You can find the original "Marko vs React: An In-depth Look" article here!

In this article we will take an in-depth look at the differences and similarities between Marko and React from the perspective of the maintainers of Marko.

On the surface, Marko and React have a lot in common and both are trying to solve very similar problems. Specifically, both Marko and React allow developers to build web applications based on UI components and both free developers from having to write code to manually update the DOM. While many of the features in Marko were inspired by React, Marko and React offer very different usability and performance characteristics. Marko was designed to avoid almost all boilerplate and is more closely aligned with HTML. In almost all cases, a Marko UI component will require less lines of code than its React JSX equivalent while maintaining readability and allowing the same expressiveness as JSX. In addition, Marko is highly optimized for use on the server and in the browser and has a much smaller weight:

Marko logo

Because the Marko JavaScript library is much smaller than React, it will require less time to load and parse and this will drastically improve page load times on slow connections or on older devices. Based on our benchmarks, Marko consistently outperforms React by a significant margin on both the server and in the browser.

Example

The following code highlights some of the differences between Marko and React JSX using a somewhat contrived UI component as an example:

React JSX

class Counter extends React.Component {
+    

Marko vs React: An In-depth Look

Marko logo

This article was published March 2017. Both frameworks have gone through several updates since. You can find the original "Marko vs React: An In-depth Look" article here!

In this article we will take an in-depth look at the differences and similarities between Marko and React from the perspective of the maintainers of Marko.

On the surface, Marko and React have a lot in common and both are trying to solve very similar problems. Specifically, both Marko and React allow developers to build web applications based on UI components and both free developers from having to write code to manually update the DOM. While many of the features in Marko were inspired by React, Marko and React offer very different usability and performance characteristics. Marko was designed to avoid almost all boilerplate and is more closely aligned with HTML. In almost all cases, a Marko UI component will require less lines of code than its React JSX equivalent while maintaining readability and allowing the same expressiveness as JSX. In addition, Marko is highly optimized for use on the server and in the browser and has a much smaller weight:

Marko logo

Because the Marko JavaScript library is much smaller than React, it will require less time to load and parse and this will drastically improve page load times on slow connections or on older devices. Based on our benchmarks, Marko consistently outperforms React by a significant margin on both the server and in the browser.

Example

The following code highlights some of the differences between Marko and React JSX using a somewhat contrived UI component as an example:

React JSX

class Counter extends React.Component {
   constructor(props) {
     super(props);
 
diff --git a/docs/reference-overview/index.html b/docs/reference-overview/index.html
index 83d42ed3..663a3701 100644
--- a/docs/reference-overview/index.html
+++ b/docs/reference-overview/index.html
@@ -16,7 +16,7 @@
       } else {
         delete localStorage.uwu;
       }
-    

Rendering

To render a Marko view, you need to import it.

example.js
import FancyButton from "./components/fancy-button.marko";
+    

Rendering

To render a Marko view, you need to import it.

example.js
import FancyButton from "./components/fancy-button.marko";
 

Note: If you are targeting node.js, you will need to enable the require extension in order to require .marko files or you will need to precompile all of your templates using Marko CLI. If you are targeting the browser, you will need to use a bundler like lasso, webpack or rollup.

Once you have a view, you can pass input data and render it:

example.js
import FancyButton from "./components/fancy-button.marko";
 const html = FancyButton.renderToString({ label: "Click me!" });
 
diff --git a/docs/rollup/index.html b/docs/rollup/index.html
index 35b0d621..026b136d 100644
--- a/docs/rollup/index.html
+++ b/docs/rollup/index.html
@@ -16,7 +16,7 @@
       } else {
         delete localStorage.uwu;
       }
-    

Marko + Rollup

This is Marko’s official integration plugin for the Rollup bundler.

Installation

npm install --save-dev \
+    

Marko + Rollup

This is Marko’s official integration plugin for the Rollup bundler.

Installation

npm install --save-dev \
   @marko/rollup \
   rollup \
   @rollup/plugin-node-resolve \
diff --git a/docs/server-integrations-overview/index.html b/docs/server-integrations-overview/index.html
index ac232661..b91e7e84 100644
--- a/docs/server-integrations-overview/index.html
+++ b/docs/server-integrations-overview/index.html
@@ -16,7 +16,7 @@
       } else {
         delete localStorage.uwu;
       }
-    

State

The output of a component is based on input properties passed from its parent as attributes. However, a component may also maintain internal state that it uses to control its view. If Marko detects a change to either input or to the internal state, the view will automatically be updated.

ProTip: Only data that is owned and modified by the component should go into its state. State should be exclusively used for data that triggers rerenders. Parents control input, and the component controls its own state.

Initializing state

To use state in Marko, you must first create a class component and initialize the state within the onCreate method. In class methods, this.state may be used and within the template section, a state variable is available.

class {
+    

State

The output of a component is based on input properties passed from its parent as attributes. However, a component may also maintain internal state that it uses to control its view. If Marko detects a change to either input or to the internal state, the view will automatically be updated.

ProTip: Only data that is owned and modified by the component should go into its state. State should be exclusively used for data that triggers rerenders. Parents control input, and the component controls its own state.

Initializing state

To use state in Marko, you must first create a class component and initialize the state within the onCreate method. In class methods, this.state may be used and within the template section, a state variable is available.

class {
     onCreate() {
         this.state = { count: 0 };
     }
diff --git a/docs/styles/index.html b/docs/styles/index.html
index 0361ed1c..ddd65a5d 100644
--- a/docs/styles/index.html
+++ b/docs/styles/index.html
@@ -16,7 +16,7 @@
       } else {
         delete localStorage.uwu;
       }
-    

Styles

Both HTML and Marko provide support for <style> tags. However, Marko also provides a special syntax (called a style block) which adds support for CSS preprocessors and acts as a hint to bundlers to extract this static css from your templates into a common bundle.

style {
+    

Styles

Both HTML and Marko provide support for <style> tags. However, Marko also provides a special syntax (called a style block) which adds support for CSS preprocessors and acts as a hint to bundlers to extract this static css from your templates into a common bundle.

style {
     div {
         color: green;
     }
diff --git a/docs/syntax/index.html b/docs/syntax/index.html
index 8262e9f4..6d8ddea5 100644
--- a/docs/syntax/index.html
+++ b/docs/syntax/index.html
@@ -16,7 +16,7 @@
       } else {
         delete localStorage.uwu;
       }
-    

Syntax

Marko is HTML re-imagined as a language for building dynamic and reactive user interfaces. Just about any valid HTML is valid Marko, but Marko extends the HTML language to allow building modern applications in a declarative way.

ProTip: Marko also supports a beautiful concise syntax. If you'd prefer to see the documentation using this syntax, just click the switch syntax button in the corner of any Marko code sample.

Note: Text at the root of a template (outside any tags) must be prefixed with the concise syntax's -- to denote it is text. The parser starts in concise mode and would otherwise try to parse what you meant to be text as a concise tag declaration.

-- Root level text
+    

Syntax

Marko is HTML re-imagined as a language for building dynamic and reactive user interfaces. Just about any valid HTML is valid Marko, but Marko extends the HTML language to allow building modern applications in a declarative way.

ProTip: Marko also supports a beautiful concise syntax. If you'd prefer to see the documentation using this syntax, just click the switch syntax button in the corner of any Marko code sample.

Note: Text at the root of a template (outside any tags) must be prefixed with the concise syntax's -- to denote it is text. The parser starts in concise mode and would otherwise try to parse what you meant to be text as a concise tag declaration.

-- Root level text
 
-- Root level text
 

Tags

As you might expect, Marko supports all native HTML/SVG/whatever tags and attributes. In addition to these, it also comes with a set of useful core tags. Beyond this, you can also build your own custom tags and install third-party tags from npm.

All of these types of tags use the same syntax:

<my-tag-name/>
 
my-tag-name
diff --git a/docs/tooling-overview/index.html b/docs/tooling-overview/index.html
index c035ec8f..d5b6af46 100644
--- a/docs/tooling-overview/index.html
+++ b/docs/tooling-overview/index.html
@@ -16,7 +16,7 @@
       } else {
         delete localStorage.uwu;
       }
-    

Troubleshooting HTTP Streams

The way Marko streams HTML is old and well-supported, but default configurations and assumptions by other software can foil it. This page describes some known culprits that may buffer your Node server’s output HTTP streams.

Reverse proxies/load balancers

  • Turn off proxy buffering, or if you can’t, set the proxy buffer sizes to be reasonably small.

  • Make sure the “upstream” HTTP version is 1.1 or higher; HTTP/1.0 and lower do not support streaming.

  • Some software doesn’t support HTTP/2 or higher “upstream” connections at all or very well — if your Node server uses HTTP/2, you may need to downgrade.

  • Check if “upstream” connections are keep-alive: overhead from closing and reopening connections may delay responses.

  • For typical modern webpage filesizes, the following bullet points probably won’t matter. But if you want to stream small chunks of data with the lowest latency, investigate these sources of buffering:

NGiNX

Most of NGiNX’s relevant parameters are inside its builtin http_proxy module:

proxy_http_version 1.1; # 1.0 by default
+    

Troubleshooting HTTP Streams

The way Marko streams HTML is old and well-supported, but default configurations and assumptions by other software can foil it. This page describes some known culprits that may buffer your Node server’s output HTTP streams.

Reverse proxies/load balancers

  • Turn off proxy buffering, or if you can’t, set the proxy buffer sizes to be reasonably small.

  • Make sure the “upstream” HTTP version is 1.1 or higher; HTTP/1.0 and lower do not support streaming.

  • Some software doesn’t support HTTP/2 or higher “upstream” connections at all or very well — if your Node server uses HTTP/2, you may need to downgrade.

  • Check if “upstream” connections are keep-alive: overhead from closing and reopening connections may delay responses.

  • For typical modern webpage filesizes, the following bullet points probably won’t matter. But if you want to stream small chunks of data with the lowest latency, investigate these sources of buffering:

NGiNX

Most of NGiNX’s relevant parameters are inside its builtin http_proxy module:

proxy_http_version 1.1; # 1.0 by default
 proxy_buffering off; # on by default
 

Apache

Apache’s default configuration works fine with streaming, but your host may have it configured differently. The relevant Apache configuration is inside its mod_proxy and mod_proxy_* modules and their associated environment variables.

CDNs

Content Delivery Networks (CDNs) consider efficient streaming one of their best features, but it may be off by default or if certain features are enabled.

Node.js itself

For extreme cases where Node streams very small HTML chunks with its built-in compression modules, you may need to tweak the compressor stream settings. Here’s an example with createGzip and its Z_PARTIAL_FLUSH flag:

import http from "http";
diff --git a/docs/tutorials-overview/index.html b/docs/tutorials-overview/index.html
index e7c96972..0a42f41c 100644
--- a/docs/tutorials-overview/index.html
+++ b/docs/tutorials-overview/index.html
@@ -16,7 +16,7 @@
       } else {
         delete localStorage.uwu;
       }
-    

TypeScript in Marko

Note: Types are supported in Marko v5.22.7+ and Marko v4.24.6+

Marko’s TypeScript support offers in-editor error checking, makes refactoring less scary, verifies that data matches expectations, and even helps with API design.

Or maybe you just want more autocomplete in VSCode. That works too.

Enabling TypeScript in your Marko project

There are two (non-exclusive) ways to add TypeScript to a Marko project:

  • For sites and web apps, you can place a tsconfig.json file at the project root:
    +    

    TypeScript in Marko

    Note: Types are supported in Marko v5.22.7+ and Marko v4.24.6+

    Marko’s TypeScript support offers in-editor error checking, makes refactoring less scary, verifies that data matches expectations, and even helps with API design.

    Or maybe you just want more autocomplete in VSCode. That works too.

    Enabling TypeScript in your Marko project

    There are two (non-exclusive) ways to add TypeScript to a Marko project:

    • For sites and web apps, you can place a tsconfig.json file at the project root:
       📁 components/
       📁 node_modules/
        index.marko
      diff --git a/docs/v6/index.html b/docs/v6/index.html
      index b9b6441c..411a9023 100644
      --- a/docs/v6/index.html
      +++ b/docs/v6/index.html
      @@ -1,3 +1,3 @@
      -
      \ No newline at end of file
      diff --git a/docs/vite/index.html b/docs/vite/index.html
      index 210b5dc5..d5a6a9d5 100644
      --- a/docs/vite/index.html
      +++ b/docs/vite/index.html
      @@ -16,7 +16,7 @@
             } else {
               delete localStorage.uwu;
             }
      -    

      Marko + Vite

      Installation

      npm install @marko/vite vite
      +    

      Marko + Vite

      Installation

      npm install @marko/vite vite
       

      Example config

      import { defineConfig } from "vite";
       import marko from "@marko/vite";
       export default defineConfig({
      diff --git a/docs/webpack/index.html b/docs/webpack/index.html
      index a5181803..c63ecaf3 100644
      --- a/docs/webpack/index.html
      +++ b/docs/webpack/index.html
      @@ -16,7 +16,7 @@
             } else {
               delete localStorage.uwu;
             }
      -    

      Marko + Webpack

      Installation

      @marko/webpack >= 7 Only supports Marko 5+. For Marko 4 support use @marko/webpack@6.

      npm install @marko/webpack
      +    

      Marko + Webpack

      Installation

      @marko/webpack >= 7 Only supports Marko 5+. For Marko 4 support use @marko/webpack@6.

      npm install @marko/webpack
       

      Loader: @marko/webpack/loader

      The loader portion of this module can be used standalone and simply transforms your Marko templates into the appropriate JavaScript depending on your webpack target.

      You can override the output by adding a target option to the loader of target: "server" | "browser".

      Plugin: @marko/webpack/plugin

      The plugin actually creates two separate webpack plugins, the browser plugin and the server plugin.

      These are intended to be used in a isomorphic webpack multi compiler where you are bundling both the server and the browser. The way it works is that the server plugin is going to analyze the top level Marko components in your server and automatically communicate with the browser compiler to retrieve the assets for that template.

      This plugin also analyzes the top level Marko templates and determines if it is possible for them to rerender (currently the heuristic is simply does the component have an associated class or component.js). The plugin will automatically skip sending down any unnecessary top level templates to the browser.

      The end result is that you setup a multi compiler (as shown below) and you can simply import Marko templates, and all assets are automatically generated and inlined into an optimized server response. No need to keep track of a webpack manifest yourself!

      Tag: <webpack-assets>

      The <webpack-assets> tag can be used along with the plugin in a multi-compiler setup. This tag allows you to inject <script>/<style> tags into a server-rendered template for the assets of an entry in the client compiler.

      Example Usage

      <webpack-assets entry="tracking"/>
       
      webpack-assets entry="tracking"
       

      Example Config

      // ...
      diff --git a/docs/why-is-marko-fast/index.html b/docs/why-is-marko-fast/index.html
      index 1ced757f..4d2d6754 100644
      --- a/docs/why-is-marko-fast/index.html
      +++ b/docs/why-is-marko-fast/index.html
      @@ -16,7 +16,7 @@
             } else {
               delete localStorage.uwu;
             }
      -    

      Why is Marko Fast?

      Marko logo

      This article was published in May 2017. You can find the original "Why is Marko Fast?" article here!

      At eBay we are using Marko to render over a billion requests every day and this has required us to finely tune Marko, our open source UI library. We have heavily optimized Marko for fast rendering, advanced performance techniques and to achieve a minimal page weight (~10kb gzipped). Performance is only one concern because we have also had to scale Marko to support development across hundreds of teams in a way that allows developers to efficiently create maintainable and robust web apps.

      We have created our own benchmarks and we have added Marko to other benchmarks, but benchmarks cannot always be trusted. While we make every effort to be fair with our benchmarks, what matters most is performance in real world applications as opposed to focusing on micro benchmarks. This is one reason that the V8 team has switched to a new methodology to measure and understand real-world JavaScript performance.

      Similarly, we’ve taken a look at how our developers are actually writing their Marko components and have found patterns that could be further optimized. Instead of focusing on benchmarks in this article, I want to focus on the details of optimizations that we have applied to Marko.

      Multiple Compilation Outputs

      Marko is an isomorphic UI library that runs on both the server and in the browser. As Michael Rawlings mentioned in “Server-side Rendering Shootout”, when rendering on the server, Marko renders directly to a string representation of the document (HTML) that can be sent as the HTTP response.

      When rendering in the browser, an HTML string would have to be parsed in order to update the DOM. For this reason, Marko compiles a view to a program that renders directly to a virtual document (VDOM) tree that can be used to efficiently update the real DOM when targeting the browser.

      Given the following template:

      <div>Hello ${input.name}!</div>
      +    

      Why is Marko Fast?

      Marko logo

      This article was published in May 2017. You can find the original "Why is Marko Fast?" article here!

      At eBay we are using Marko to render over a billion requests every day and this has required us to finely tune Marko, our open source UI library. We have heavily optimized Marko for fast rendering, advanced performance techniques and to achieve a minimal page weight (~10kb gzipped). Performance is only one concern because we have also had to scale Marko to support development across hundreds of teams in a way that allows developers to efficiently create maintainable and robust web apps.

      We have created our own benchmarks and we have added Marko to other benchmarks, but benchmarks cannot always be trusted. While we make every effort to be fair with our benchmarks, what matters most is performance in real world applications as opposed to focusing on micro benchmarks. This is one reason that the V8 team has switched to a new methodology to measure and understand real-world JavaScript performance.

      Similarly, we’ve taken a look at how our developers are actually writing their Marko components and have found patterns that could be further optimized. Instead of focusing on benchmarks in this article, I want to focus on the details of optimizations that we have applied to Marko.

      Multiple Compilation Outputs

      Marko is an isomorphic UI library that runs on both the server and in the browser. As Michael Rawlings mentioned in “Server-side Rendering Shootout”, when rendering on the server, Marko renders directly to a string representation of the document (HTML) that can be sent as the HTTP response.

      When rendering in the browser, an HTML string would have to be parsed in order to update the DOM. For this reason, Marko compiles a view to a program that renders directly to a virtual document (VDOM) tree that can be used to efficiently update the real DOM when targeting the browser.

      Given the following template:

      <div>Hello ${input.name}!</div>
       
      div -- Hello ${input.name}!
       

      Compiled for the server

      The compiled output is optimized for streaming HTML output on the server:

      var marko_template = require("marko/html").t(__filename),
         marko_helpers = require("marko/runtime/html/helpers"),
      diff --git a/index.html b/index.html
      index 20dca11d..323afac2 100644
      --- a/index.html
      +++ b/index.html
      @@ -16,7 +16,7 @@
             } else {
               delete localStorage.uwu;
             }
      -    
      MarkoMarko

      A declarative, HTML-based language
      that makes building web apps fun

      Familiar

      If you know HTML, CSS, and Javascript, you know Marko

      Performant

      Streaming, partial hydration, an optimizing compiler, & a small runtime

      Scalable

      Start with simple HTML templates and add powerful components as needed

      Trusted

      Marko is powering high-traffic websites like ebay.com

      HTML Reimagined

      Marko is HTML re-imagined as a language for building dynamic and reactive user interfaces. Just about any valid HTML is valid Marko, but Marko extends the HTML language to allow building modern applications in a declarative way.

      <!doctype html>
      +    
      MarkoMarko

      A declarative, HTML-based language
      that makes building web apps fun

      Familiar

      If you know HTML, CSS, and Javascript, you know Marko

      Performant

      Streaming, partial hydration, an optimizing compiler, & a small runtime

      Scalable

      Start with simple HTML templates and add powerful components as needed

      Trusted

      Marko is powering high-traffic websites like ebay.com

      HTML Reimagined

      Marko is HTML re-imagined as a language for building dynamic and reactive user interfaces. Just about any valid HTML is valid Marko, but Marko extends the HTML language to allow building modern applications in a declarative way.

      <!doctype html>
       <html>
       <head>
           <title>Hello Marko</title>
      diff --git a/index.js b/index.js
      index 06bf6b04..d8c8dfe2 100644
      --- a/index.js
      +++ b/index.js
      @@ -718,7 +718,7 @@ _marko_template._ = renderer_js_default()(function (input, out, _componentDef, _
         getAssets(entry) {
           return this.build[entry];
         },
      -  build: {":name_5gMv":{"css":["8680a54b.css"],"js":["121.dee40b05.js","364.65751be0.js","72.101a150f.js","496.1f3507f7.js"]},":name_IGBa":{"css":["086d4324.css"],"js":["121.dee40b05.js","364.65751be0.js","586.bccf7e25.js"]},":name_Puth":{"js":["121.dee40b05.js","608.3649058d.js"]},":name_z0HT":{"css":["a50c84bf.css"],"js":["121.dee40b05.js","364.65751be0.js","991.56310bd8.js"]},"[name]_FLzY":{"css":["c2f5e683.css"],"js":["121.dee40b05.js","364.65751be0.js","72.101a150f.js","858.9323781e.js"]},"code-block-marko_UUum":{"css":["ff15f5e4.css"],"js":["121.dee40b05.js","364.65751be0.js","896.ddf9a235.js"]},"dir-index_C1oC":{"css":["31fa76ad.css"],"js":["121.dee40b05.js","512.7e55141a.js"]},"docs_MeqG":{"js":["121.dee40b05.js","127.29aea32d.js"]},"docs_zLbN":{"js":["121.dee40b05.js","375.d7b9d8b7.js"]},"index_WEBG":{"css":["3f0c1fd4.css"],"js":["121.dee40b05.js","364.65751be0.js","317.f3733e16.js"]},"playground_E8TY":{"css":["d7111765.css"],"js":["121.dee40b05.js","364.65751be0.js","72.101a150f.js","745.c73f1c83.js","663.28f5dddc.js","215.0e5fbbe7.js","313.b4d51fa5.js"]},"playground_mdf-":{"css":["d7111765.css"],"js":["121.dee40b05.js","364.65751be0.js","72.101a150f.js","39.0fd83ed0.js"]},"try-online-new_1yH9":{"js":["121.dee40b05.js","421.0313a7b1.js"]},"try-online_gkPN":{"css":["47274f39.css"],"js":["121.dee40b05.js","364.65751be0.js","665.464eee7b.js"]},"tutorials_p6eY":{"css":["7b8df9ad.css"],"js":["121.dee40b05.js","364.65751be0.js","247.3ad572d9.js"]},"v6_--pM":{"js":["121.dee40b05.js","497.5e264aae.js"]},"v6_4cho":{"js":["121.dee40b05.js","802.a646e289.js"]},"v6_YkD7":{"css":["3f0c1fd4.css"],"js":["121.dee40b05.js","364.65751be0.js","117.19da8542.js"]}}
      +  build: {":name_5gMv":{"css":["8680a54b.css"],"js":["121.5eeb4585.js","364.65751be0.js","72.101a150f.js","496.e12c06ed.js"]},":name_IGBa":{"css":["086d4324.css"],"js":["121.5eeb4585.js","364.65751be0.js","586.bccf7e25.js"]},":name_Puth":{"js":["121.5eeb4585.js","608.3649058d.js"]},":name_z0HT":{"css":["a50c84bf.css"],"js":["121.5eeb4585.js","364.65751be0.js","991.56310bd8.js"]},"[name]_FLzY":{"css":["c2f5e683.css"],"js":["121.5eeb4585.js","364.65751be0.js","72.101a150f.js","858.e13f35da.js"]},"code-block-marko_UUum":{"css":["ff15f5e4.css"],"js":["121.5eeb4585.js","364.65751be0.js","896.ddf9a235.js"]},"dir-index_C1oC":{"css":["31fa76ad.css"],"js":["121.5eeb4585.js","512.7e55141a.js"]},"docs_MeqG":{"js":["121.5eeb4585.js","127.29aea32d.js"]},"docs_zLbN":{"js":["121.5eeb4585.js","375.d7b9d8b7.js"]},"index_WEBG":{"css":["3f0c1fd4.css"],"js":["121.5eeb4585.js","364.65751be0.js","317.f3733e16.js"]},"playground_E8TY":{"css":["d7111765.css"],"js":["121.5eeb4585.js","364.65751be0.js","72.101a150f.js","745.c73f1c83.js","663.28f5dddc.js","215.0e5fbbe7.js","313.fdf44b36.js"]},"playground_mdf-":{"css":["d7111765.css"],"js":["121.5eeb4585.js","364.65751be0.js","72.101a150f.js","39.40a6ace1.js"]},"try-online-new_1yH9":{"js":["121.5eeb4585.js","421.0313a7b1.js"]},"try-online_gkPN":{"css":["47274f39.css"],"js":["121.5eeb4585.js","364.65751be0.js","665.464eee7b.js"]},"tutorials_p6eY":{"css":["7b8df9ad.css"],"js":["121.5eeb4585.js","364.65751be0.js","247.3ad572d9.js"]},"v6_--pM":{"js":["121.5eeb4585.js","497.5e264aae.js"]},"v6_4cho":{"js":["121.5eeb4585.js","802.a646e289.js"]},"v6_YkD7":{"css":["3f0c1fd4.css"],"js":["121.5eeb4585.js","364.65751be0.js","117.19da8542.js"]}}
       });
       ;// external "marko/dist/core-tags/core/__flush_here_and_after__.js"
       const _flush_here_and_after_js_namespaceObject = require("marko/dist/core-tags/core/__flush_here_and_after__.js");
      @@ -864,350 +864,242 @@ index_marko_server_entry_marko_template._ = renderer_js_default()(function (inpu
         t: index_marko_server_entry_marko_componentType,
         i: true
       }, index_marko_server_entry_marko_component);
      -;// external "@marko/tags-api-preview/dist/transform/cached-values"
      -const cached_values_namespaceObject = require("@marko/tags-api-preview/dist/transform/cached-values");
      -;// external "@marko/tags-api-preview/dist/components/return"
      -const return_namespaceObject = require("@marko/tags-api-preview/dist/components/return");
      -var return_default = /*#__PURE__*/__webpack_require__.n(return_namespaceObject);
      -;// external "lz-string"
      -const external_lz_string_namespaceObject = require("lz-string");
      -;// ./playground/components/hash-value.marko
      +;// ../logos/marko.svg
      +/* harmony default export */ const marko = (__webpack_require__.p + "91bc26e5.svg");
      +;// ./index/components/home-hero/marko-text.svg
      +/* harmony default export */ const marko_text = (__webpack_require__.p + "7443bd32.svg");
      +;// ../logos/marko-uwu.png
      +/* harmony default export */ const marko_uwu = (__webpack_require__.p + "2371441a.png");
      +;// external "marko/dist/runtime/html/helpers/data-marko.js"
      +const data_marko_js_namespaceObject = require("marko/dist/runtime/html/helpers/data-marko.js");
      +var data_marko_js_default = /*#__PURE__*/__webpack_require__.n(data_marko_js_namespaceObject);
      +;// ../logos/github.svg
      +/* harmony default export */ const github = (__webpack_require__.p + "0bc571bc.svg");
      +;// ./index/components/home-hero/components/github-link/index.marko
       
      -const hash_value_marko_marko_componentType = "iu_vYbKl",
      -  hash_value_marko_marko_template = (0,index_js_namespaceObject.t)(hash_value_marko_marko_componentType);
      -/* harmony default export */ const hash_value_marko = (hash_value_marko_marko_template);
      +const github_link_index_marko_marko_componentType = "ZLItxxri",
      +  github_link_index_marko_marko_template = (0,index_js_namespaceObject.t)(github_link_index_marko_marko_componentType);
      +/* harmony default export */ const github_link_index_marko = (github_link_index_marko_marko_template);
       
      -function getInitialValue() {
      -  try {
      -    if (false) {}
      -  } catch (e) {
      -    console.error(e);
      -  }
      -}
       
       
      -const hash_value_marko_marko_component = {
      -  onCreate() {
      -    this.state = {};
      -  }
      -};
      -hash_value_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component2, state, $global) {
      -  var _component = _component2,
      -    _state = state;
      -  const {
      -    value: defaultValue
      -  } = input;
      -  let value = getInitialValue() || defaultValue;
      -  input._return && input._return({
      -    "value": value,
      -    "valueChange": (0,cached_values_namespaceObject.cache)((0,cached_values_namespaceObject.cached)(_component, []) || (_ => value = _))
      -  }, 1);
      +
      +const github_link_index_marko_marko_component = {};
      +github_link_index_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) {
      +  out.w(`GitHub`);
       }, {
      -  t: hash_value_marko_marko_componentType
      -}, hash_value_marko_marko_component);
      -;// external "@marko/tags-api-preview/dist/util/replace-assignments"
      -const replace_assignments_namespaceObject = require("@marko/tags-api-preview/dist/util/replace-assignments");
      -var replace_assignments_default = /*#__PURE__*/__webpack_require__.n(replace_assignments_namespaceObject);
      -;// external "@marko/tags-api-preview/dist/transform/native-tag-var"
      -const native_tag_var_namespaceObject = require("@marko/tags-api-preview/dist/transform/native-tag-var");
      -var native_tag_var_default = /*#__PURE__*/__webpack_require__.n(native_tag_var_namespaceObject);
      -;// ../../node_modules/@marko/tags-api-preview/dist/components/_instance/index.marko
      +  t: github_link_index_marko_marko_componentType,
      +  s: true
      +}, github_link_index_marko_marko_component);
      +;// ./index/components/home-hero/index.marko
      +
      +const home_hero_index_marko_marko_componentType = "zOb$ETAb",
      +  home_hero_index_marko_marko_template = (0,index_js_namespaceObject.t)(home_hero_index_marko_marko_componentType);
      +/* harmony default export */ const home_hero_index_marko = (home_hero_index_marko_marko_template);
      +
       
      -const _instance_index_marko_marko_componentType = "ZcXvQUMl",
      -  _instance_index_marko_marko_template = (0,index_js_namespaceObject.t)(_instance_index_marko_marko_componentType);
      -/* harmony default export */ const _instance_index_marko = (_instance_index_marko_marko_template);
       
      -const _instance_index_marko_marko_component = {
      -  onCreate() {
      -    this.state = {};
      -  }
      -};
      -_instance_index_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) {
      -  var componentDef = _componentDef;
      -  input.renderBody(out, componentDef, _component, state);
      -}, {
      -  t: _instance_index_marko_marko_componentType
      -}, _instance_index_marko_marko_component);
      -;// external "marko/dist/runtime/helpers/class-value.js"
      -const class_value_js_namespaceObject = require("marko/dist/runtime/helpers/class-value.js");
      -var class_value_js_default = /*#__PURE__*/__webpack_require__.n(class_value_js_namespaceObject);
      -;// ../components/repl/components/file-tabs.marko
       
      -const file_tabs_marko_marko_componentType = "JtPBPdcm",
      -  file_tabs_marko_marko_template = (0,index_js_namespaceObject.t)(file_tabs_marko_marko_componentType);
      -/* harmony default export */ const file_tabs_marko = (file_tabs_marko_marko_template);
       
       
       
       
      +const home_hero_index_marko_marko_component = {};
      +home_hero_index_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) {
      +  out.w(`
      "); +}, { + t: home_hero_index_marko_marko_componentType, + s: true +}, home_hero_index_marko_marko_component); +;// ./index/components/home-features/index.marko +const home_features_index_marko_marko_componentType = "qRU$xLeb", + home_features_index_marko_marko_template = (0,index_js_namespaceObject.t)(home_features_index_marko_marko_componentType); +/* harmony default export */ const home_features_index_marko = (home_features_index_marko_marko_template); +const home_features_index_marko_marko_component = {}; +home_features_index_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { + out.w("

      Familiar

      If you know HTML, CSS, and Javascript, you know Marko

      Performant

      Streaming, partial hydration, an optimizing compiler, & a small runtime

      Scalable

      Start with simple HTML templates and add powerful components as needed

      Trusted

      Marko is powering high-traffic websites like ebay.com

      "); +}, { + t: home_features_index_marko_marko_componentType, + i: true +}, home_features_index_marko_marko_component); +;// external "marko/dist/runtime/helpers/attr-tag.js" +const attr_tag_js_namespaceObject = require("marko/dist/runtime/helpers/attr-tag.js"); +;// ./index/components/home-language/components/counter-tags.marko +const counter_tags_marko_marko_componentType = "jwtsId_c", + counter_tags_marko_marko_template = (0,index_js_namespaceObject.t)(counter_tags_marko_marko_componentType); +/* harmony default export */ const counter_tags_marko = (counter_tags_marko_marko_template); -const file_tabs_marko_marko_component = { +const counter_tags_marko_marko_component = { onCreate() { this.state = {}; } }; -file_tabs_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component4, state, $global) { - var _component = _component4, +counter_tags_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component2, state, $global) { + var _component = _component2, _state = state; - const { - "selectedIndexChange": _selectedIndexChange, - "filesChange": _filesChange, - files: externalFiles, - selectedIndex: externalSelected - } = input; - let files = externalFiles; - let selectedIndex = externalSelected; - const selectedFile = files[selectedIndex]; - out.w("
      "); - { - let nextId = 1; - let _index = 0; - for (const file of of_fallback_js_default()(files)) { - let index = _index++; - const _keyScope = `[${index}]`; - render_tag_js_default()(_instance_index_marko, { - "renderBody": (out, _nestedComponentDef, _component2, _state2) => { - var _componentDef = _nestedComponentDef, - _component4 = _component2; - let editing = false; - const selected = selectedFile === file; - const mutable = index > 0; - out.w(``); - if (!editing || !selected || !mutable) { - out.w((0,escape_xml_js_namespaceObject.x)(file.name)); - } else { - render_tag_js_default()(_instance_index_marko, { - "renderBody": (out, _nestedComponentDef2, _component3, _state3) => { - var _componentDef = _nestedComponentDef2, - _component4 = _component3; - let name = file.name; - const finishRename = (0,cached_values_namespaceObject.cache)((0,cached_values_namespaceObject.cached)(_component3, [name, files]) || function () { - const modifiedFile = { - ...file, - name, - path: file.path.replace(file.name, name) - }; - files = [...files.slice(0, index), modifiedFile, ...files.slice(index + 1)]; - editing = false; - }); - const nameInput = native_tag_var_default()(_component3, "0"); - out.w(``); - } - }, out, _componentDef, "3" + _keyScope); - } - if (mutable) { - out.w(""); - } - out.w("
      "); - } - }, out, _componentDef, "1" + _keyScope); - } - out.w(""); - } - out.w("
      "); + let count = 0; + out.w(``); }, { - t: file_tabs_marko_marko_componentType -}, file_tabs_marko_marko_component); -;// external "marko/dist/runtime/helpers/attr-tag.js" -const attr_tag_js_namespaceObject = require("marko/dist/runtime/helpers/attr-tag.js"); -;// external "marko/dist/runtime/helpers/dynamic-tag.js" -const dynamic_tag_js_namespaceObject = require("marko/dist/runtime/helpers/dynamic-tag.js"); -var dynamic_tag_js_default = /*#__PURE__*/__webpack_require__.n(dynamic_tag_js_namespaceObject); -;// ../components/repl/components/pane.marko + t: counter_tags_marko_marko_componentType +}, counter_tags_marko_marko_component); +;// ./index/components/home-language/components/counter-example/index.marko -const pane_marko_marko_componentType = "YdDerxpd", - pane_marko_marko_template = (0,index_js_namespaceObject.t)(pane_marko_marko_componentType); -/* harmony default export */ const pane_marko = (pane_marko_marko_template); +const counter_example_index_marko_marko_componentType = "bqxM_lge", + counter_example_index_marko_marko_template = (0,index_js_namespaceObject.t)(counter_example_index_marko_marko_componentType); +/* harmony default export */ const counter_example_index_marko = (counter_example_index_marko_marko_template); -const pane_marko_marko_component = {}; -pane_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { - const { - actions, - body - } = input; - out.w("
      "); - dynamic_tag_js_default()(out, actions.renderBody, null, null, null, null, _componentDef, "2"); - out.w("
      "); - dynamic_tag_js_default()(out, body.renderBody, null, null, null, null, _componentDef, "5"); - out.w("
      "); +const counter_example_index_marko_marko_component = { + onCreate() { + this.state = { + count: 0 + }; + }, + increment() { + this.state.count++; + } +}; +counter_example_index_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { + out.w(`
      ${(0,escape_xml_js_namespaceObject.x)(state.count)}
      `); }, { - t: pane_marko_marko_componentType, - i: true -}, pane_marko_marko_component); -;// ../components/repl/components/controllable-select.marko + t: counter_example_index_marko_marko_componentType +}, counter_example_index_marko_marko_component); +// EXTERNAL MODULE: ../components/heading/getAnchorName.js +var getAnchorName = __webpack_require__(272); +var getAnchorName_default = /*#__PURE__*/__webpack_require__.n(getAnchorName); +;// external "marko/dist/runtime/helpers/dynamic-tag.js" +const dynamic_tag_js_namespaceObject = require("marko/dist/runtime/helpers/dynamic-tag.js"); +var dynamic_tag_js_default = /*#__PURE__*/__webpack_require__.n(dynamic_tag_js_namespaceObject); +;// ../components/heading/index.marko -const controllable_select_marko_marko_componentType = "edcMGKVi", - controllable_select_marko_marko_template = (0,index_js_namespaceObject.t)(controllable_select_marko_marko_componentType); -/* harmony default export */ const controllable_select_marko = (controllable_select_marko_marko_template); +const heading_index_marko_marko_componentType = "m$Yyhouk", + heading_index_marko_marko_template = (0,index_js_namespaceObject.t)(heading_index_marko_marko_componentType); +/* harmony default export */ const heading_index_marko = (heading_index_marko_marko_template); -const controllable_select_marko_marko_component = { - onCreate() { - this.state = {}; - } -}; -controllable_select_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component2, state, $global) { - var _component = _component2, - _state = state; - const { - value, - valueChange, - renderBody, - class: className - } = input; - const el = native_tag_var_default()(_component, "0"); - out.w(``); - dynamic_tag_js_default()(out, renderBody, null, null, null, null, _componentDef, "0"); - out.w(""); +const heading_index_marko_marko_component = {}; +heading_index_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { + var className = input['class']; + var text = input.text; + var anchorName = input.anchorName || getAnchorName_default()(text, out); + dynamic_tag_js_default()(out, input.tag, () => ({ + "class": ['heading', className] + }), out => { + out.w(``); + if (text) { + out.w((0,escape_xml_js_namespaceObject.x)(text)); + } else { + dynamic_tag_js_default()(out, input.renderBody, null, null, null, null, _componentDef, "3"); + } + }, null, null, _componentDef, "0"); }, { - t: controllable_select_marko_marko_componentType -}, controllable_select_marko_marko_component); -;// external "@marko/tags-api-preview/dist/translate/native-tag-handlers" -const native_tag_handlers_namespaceObject = require("@marko/tags-api-preview/dist/translate/native-tag-handlers"); -var native_tag_handlers_default = /*#__PURE__*/__webpack_require__.n(native_tag_handlers_namespaceObject); -;// external "marko/dist/runtime/html/helpers/data-marko.js" -const data_marko_js_namespaceObject = require("marko/dist/runtime/html/helpers/data-marko.js"); -var data_marko_js_default = /*#__PURE__*/__webpack_require__.n(data_marko_js_namespaceObject); -;// external "marko/dist/runtime/html/helpers/attrs.js" -const attrs_js_namespaceObject = require("marko/dist/runtime/html/helpers/attrs.js"); -var attrs_js_default = /*#__PURE__*/__webpack_require__.n(attrs_js_namespaceObject); -;// ../components/repl/components/playground-link.marko - -const playground_link_marko_marko_componentType = "fLRwaABg", - playground_link_marko_marko_template = (0,index_js_namespaceObject.t)(playground_link_marko_marko_componentType); -/* harmony default export */ const playground_link_marko = (playground_link_marko_marko_template); + t: heading_index_marko_marko_componentType, + i: true +}, heading_index_marko_marko_component); +;// external "marko/dist/runtime/helpers/class-value.js" +const class_value_js_namespaceObject = require("marko/dist/runtime/helpers/class-value.js"); +var class_value_js_default = /*#__PURE__*/__webpack_require__.n(class_value_js_namespaceObject); +;// ./index/components/home-feature-block/index.marko +const home_feature_block_index_marko_marko_componentType = "TxbG_krh", + home_feature_block_index_marko_marko_template = (0,index_js_namespaceObject.t)(home_feature_block_index_marko_marko_componentType); +/* harmony default export */ const home_feature_block_index_marko = (home_feature_block_index_marko_marko_template); -const playground_link_marko_marko_component = {}; -playground_link_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { - const { - files, - ...attrs - } = input; - var _meta = {}; - out.w(`Open in playground \u2197`); -}, { - t: playground_link_marko_marko_componentType, - i: true -}, playground_link_marko_marko_component); -;// ../components/repl/components/match-media.marko -const match_media_marko_marko_componentType = "aEQdEE_f", - match_media_marko_marko_template = (0,index_js_namespaceObject.t)(match_media_marko_marko_componentType); -/* harmony default export */ const match_media_marko = (match_media_marko_marko_template); -const match_media_marko_marko_component = { - onCreate() { - this.state = {}; +const home_feature_block_index_marko_marko_component = {}; +home_feature_block_index_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { + out.w(`
      `); + render_tag_js_default()(heading_index_marko, { + "tag": "h1", + "class": "home-feature-block-title", + ...input.title + }, out, _componentDef, "3"); + out.w("
      "); + dynamic_tag_js_default()(out, input.content, null, null, null, null, _componentDef, "5"); + out.w(`
      `); + dynamic_tag_js_default()(out, input.visual, null, null, null, null, _componentDef, "7"); + out.w("
      "); + if (input.action) { + out.w(`
      ${(0,escape_xml_js_namespaceObject.x)(input.action.text || "Learn More")}
      `); } -}; -match_media_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component2, state, $global) { - var _component = _component2, - _state = state; - const { - value: query, - fallback - } = input; - let isMatch = false ? 0 : fallback; - input._return && input._return({ - "value": isMatch - }, 1); + out.w("
      "); + dynamic_tag_js_default()(out, input.breakout, null, null, null, null, _componentDef, "10"); + out.w("
      "); }, { - t: match_media_marko_marko_componentType -}, match_media_marko_marko_component); -;// ../components/repl/components/resizable-panes.marko - -const resizable_panes_marko_marko_componentType = "H_lRXCBe", - resizable_panes_marko_marko_template = (0,index_js_namespaceObject.t)(resizable_panes_marko_marko_componentType); -/* harmony default export */ const resizable_panes_marko = (resizable_panes_marko_marko_template); - - - - - + t: home_feature_block_index_marko_marko_componentType, + i: true +}, home_feature_block_index_marko_marko_component); +;// ./index/components/home-language/index.marko +const home_language_index_marko_marko_componentType = "fEFMinFc", + home_language_index_marko_marko_template = (0,index_js_namespaceObject.t)(home_language_index_marko_marko_componentType); +/* harmony default export */ const home_language_index_marko = (home_language_index_marko_marko_template); -const resizable_panes_marko_marko_component = { - onCreate() { - this.state = {}; - } -}; -resizable_panes_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component3, state, $global) { - var _component = _component3, - _state = state; - const { - left, - right - } = input; - let editorSize = 0.5; - let resizing = false; - var _matchMediaReturn = return_default()(_component); - render_tag_js_default()(match_media_marko, { - "value": "(max-aspect-ratio: 1/1)", - "_return": _matchMediaReturn - }, out, _componentDef, "0"); - const { - value: isVertical - } = _matchMediaReturn(); - const container = native_tag_var_default()(_component, "0"); - out.w(``); - var _meta = {}; - out.w(``); - dynamic_tag_js_default()(out, left.renderBody, null, null, null, null, _componentDef, "2"); - out.w("
      "); - var _meta2 = {}; - out.w(``); - dynamic_tag_js_default()(out, right.renderBody, null, null, null, null, _componentDef, "6"); - out.w("
      "); - if (resizing) { - render_tag_js_default()(_instance_index_marko, { - "renderBody": (out, _nestedComponentDef, _component2, _state2) => { - var _componentDef = _nestedComponentDef, - _component3 = _component2; +const home_language_index_marko_marko_component = {}; +home_language_index_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { + render_tag_js_default()(home_feature_block_index_marko, (0,attr_tag_js_namespaceObject.i)(() => { + (0,attr_tag_js_namespaceObject.a)("title", { + "text": "HTML Reimagined", + "anchorName": "language" + }); + (0,attr_tag_js_namespaceObject.a)("content", { + "renderBody": out => { + out.w("

      Marko is HTML re-imagined as a language for building dynamic and reactive user interfaces. Just about any valid HTML is valid Marko, but Marko extends the HTML language to allow building modern applications in a declarative way.

      "); } - }, out, _componentDef, "7"); - } + }); + (0,attr_tag_js_namespaceObject.a)("visual", { + "class": "home-language__examples", + "renderBody": out => { + if (input.v6) { + out.w("
      "); + render_tag_js_default()(counter_tags_marko, {}, out, _componentDef, "5"); + out.w("
      <!doctype html>\n<html>\n    <head>\n        <title>Count with Marko</title>\n    </head>\n    <body>\n        <let/count=0/>\n        <button onClick() { count++ }>\n            ${count}\n        </button>\n    </body>\n</html>\n
      "); + } else { + out.w("
      <!doctype html>\n<html>\n<head>\n    <title>Hello Marko</title>\n</head>\n<body>\n    <h1>My favorite colors</h1>\n    <ul>\n        <for|color| of=[\"red\", \"green\", \"blue\"]>\n            <li style=`color:${color}`>\n                ${color.toUpperCase()}\n            </li>\n        </for>\n    </ul>\n    <shared-footer/>\n</body>\n</html>\n
      HTML Templates, Custom Tags, & Javascript Expressions
      "); + render_tag_js_default()(counter_example_index_marko, {}, out, _componentDef, "12"); + out.w("
      class {\n  onCreate() {\n    this.state = { count: 0 };\n  }\n  increment() {\n    this.state.count++;\n  }\n}\n<div>${state.count}</div>\n<button on-click(\"increment\")>\n  Click me!\n</button>\n
      Interactive Logic & Reactive Values
      "); + } + } + }); + }, { + "class": "home-language" + }), out, _componentDef, "0"); }, { - t: resizable_panes_marko_marko_componentType -}, resizable_panes_marko_marko_component); -;// ../components/repl/index.marko + t: home_language_index_marko_marko_componentType, + i: true +}, home_language_index_marko_marko_component); +;// ./index/components/home-demo-page/product.png +/* harmony default export */ const product = (__webpack_require__.p + "2ff006d2.png"); +;// ./index/components/home-demo-page/x.svg +/* harmony default export */ const x = (__webpack_require__.p + "886b7024.svg"); +;// external "marko/dist/runtime/helpers/style-value.js" +const style_value_js_namespaceObject = require("marko/dist/runtime/helpers/style-value.js"); +var style_value_js_default = /*#__PURE__*/__webpack_require__.n(style_value_js_namespaceObject); +;// ./index/components/home-demo-page/index.marko -const repl_index_marko_marko_componentType = "rtapnbhf", - repl_index_marko_marko_template = (0,index_js_namespaceObject.t)(repl_index_marko_marko_componentType); -/* harmony default export */ const repl_index_marko = (repl_index_marko_marko_template); +const home_demo_page_index_marko_marko_componentType = "pYOALFJk", + home_demo_page_index_marko_marko_template = (0,index_js_namespaceObject.t)(home_demo_page_index_marko_marko_componentType); +/* harmony default export */ const home_demo_page_index_marko = (home_demo_page_index_marko_marko_template); @@ -1215,174 +1107,347 @@ const repl_index_marko_marko_componentType = "rtapnbhf", +const home_demo_page_index_marko_marko_component = {}; +home_demo_page_index_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { + const progress = input.buffered ? Math.floor(input.progress / 0.9) : input.progress / 0.9; + out.w(`
      `); + if (input.progress >= 0) { + out.w(`
      `); + } + out.w(`
      Cart (0)
      Google Home - $79
      Add to Cart
      Hands-free help around the house. Google Home is a smart speaker with the Google Assistant built in. So whenever you need help, it's by your side
      \u2605\u2605\u2605\u2605\u2606
      Cool gadget Google has created a nice device that provides music and information by voice control. The microphone is very good and will usually pick up commands from across the room. The speakers sound surprisingly good for such a small device. I wish it had tone control though.
      \u2605\u2605\u2605\u2605\u2605
      Incredible sound profile! Easy setup, great sound for any room size. Adjustable bass and treble. Currently have two paired up for better whole house sound.
      About
      Security
      Policies
      Help
      Sitemap
      `); + if (input.buffered || input.hydrateAll) { + out.w(`
      `); + } else { + out.w(`
      `); + } + out.w("
      "); +}, { + t: home_demo_page_index_marko_marko_componentType, + i: true +}, home_demo_page_index_marko_marko_component); +;// ./index/components/home-streaming/components/scroll-locked-stream-example/index.marko + +const scroll_locked_stream_example_index_marko_marko_componentType = "RQwDtLcd", + scroll_locked_stream_example_index_marko_marko_template = (0,index_js_namespaceObject.t)(scroll_locked_stream_example_index_marko_marko_componentType); +/* harmony default export */ const scroll_locked_stream_example_index_marko = (scroll_locked_stream_example_index_marko_marko_template); -const repl_index_marko_marko_component = { +const scroll_locked_stream_example_index_marko_marko_component = { onCreate() { - this.state = {}; + this.state = { + progress: 0.1 + }; + }, + onMount() { + this.observer = new IntersectionObserver(entries => { + if (entries[0].intersectionRatio <= 0) { + this.cleanProgress(); + } else { + this.initProgress(); + } + }); + this.observer.observe(this.getEl("root")); + }, + onDestroy() { + this.cleanProgress(); + this.observer.disconnect(); + }, + initProgress() { + const updateProgress = () => { + this.state.progress = (this.state.progress + 0.004) % 1.5; + this.frame = requestAnimationFrame(updateProgress); + }; + this.frame = requestAnimationFrame(updateProgress); + }, + cleanProgress() { + cancelAnimationFrame(this.frame); } }; -repl_index_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component7, state, $global) { - var _component = _component7, - _state = state; - const { - "filesChange": _filesChange, - getCompilerOptions, - files - } = input; - let selectedIndex = 0; - let previewType = "preview"; - let debounce = false; - const selectedFile = files[selectedIndex]; - render_tag_js_default()(resizable_panes_marko, (0,attr_tag_js_namespaceObject.i)(() => { - (0,attr_tag_js_namespaceObject.a)("left", { - "class": "editor-container", +scroll_locked_stream_example_index_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { + out.w(``); + render_tag_js_default()(home_demo_page_index_marko, { + "progress": state.progress, + "buffered": true, + "label": "Buffered pages don't show content as it loads" + }, out, _componentDef, "0"); + render_tag_js_default()(home_demo_page_index_marko, { + "progress": state.progress, + "label": "Streaming pages show content incrementally", + "class": "scroll-locked-progressive" + }, out, _componentDef, "1"); + out.w("
      "); +}, { + t: scroll_locked_stream_example_index_marko_marko_componentType +}, scroll_locked_stream_example_index_marko_marko_component); +;// ./index/components/home-streaming/index.marko + +const home_streaming_index_marko_marko_componentType = "opQEgCpi", + home_streaming_index_marko_marko_template = (0,index_js_namespaceObject.t)(home_streaming_index_marko_marko_componentType); +/* harmony default export */ const home_streaming_index_marko = (home_streaming_index_marko_marko_template); + + + + + +const home_streaming_index_marko_marko_component = {}; +home_streaming_index_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { + render_tag_js_default()(home_feature_block_index_marko, (0,attr_tag_js_namespaceObject.i)(() => { + (0,attr_tag_js_namespaceObject.a)("title", { + "text": "Progressive Rendering", + "anchorName": "streaming" + }); + (0,attr_tag_js_namespaceObject.a)("content", { "renderBody": out => { - render_tag_js_default()(pane_marko, (0,attr_tag_js_namespaceObject.i)(() => { - (0,attr_tag_js_namespaceObject.a)("actions", { - "renderBody": out => { - render_tag_js_default()(_instance_index_marko, { - "renderBody": (out, _nestedComponentDef, _component2, _state2) => { - var _componentDef = _nestedComponentDef, - _component7 = _component2; - render_tag_js_default()(file_tabs_marko, { - "files": files, - "filesChange": _filesChange, - "selectedIndex": selectedIndex, - "selectedIndexChange": (0,cached_values_namespaceObject.cache)((0,cached_values_namespaceObject.cached)(_component2, []) || (_ => selectedIndex = _)) - }, out, _componentDef, "3"); - } - }, out, _componentDef, "2"); - } - }); - (0,attr_tag_js_namespaceObject.a)("body", { - "renderBody": out => { - render_tag_js_default()(_instance_index_marko, { - "renderBody": (out, _nestedComponentDef2, _component3, _state3) => { - var _componentDef = _nestedComponentDef2, - _component7 = _component3; - let activeEditor = null; - if (activeEditor) { - render_tag_js_default()(_instance_index_marko, { - "renderBody": (out, _nestedComponentDef3, _component4, _state4) => { - var _componentDef = _nestedComponentDef3, - _component7 = _component4; - dynamic_tag_js_default()(out, activeEditor, () => ({ - "value": selectedFile.content, - "filename": selectedFile.path, - "valueChange": (0,cached_values_namespaceObject.cache)((0,cached_values_namespaceObject.cached)(_component4, [selectedFile, files, selectedIndex]) || function (content) { - const modifiedFile = { - ...selectedFile, - content - }; - replace_assignments_default()(_filesChange, [...files.slice(0, selectedIndex), modifiedFile, ...files.slice(selectedIndex + 1)]); - debounce = true; - }) - }), null, null, null, _componentDef, "6"); - } - }, out, _componentDef, "5"); - } - } - }, out, _componentDef, "4"); - } - }); - }), out, _componentDef, "1"); + out.w("

      Marko streams content to your users as soon as it\u2019s ready. No waiting for client side JavaScript bundles or data requests to start rendering. HTML, assets, and images are loaded as soon as possible with asynchronous data loading in as it completes.

      "); } }); - (0,attr_tag_js_namespaceObject.a)("right", { + (0,attr_tag_js_namespaceObject.a)("visual", { "renderBody": out => { - render_tag_js_default()(pane_marko, (0,attr_tag_js_namespaceObject.i)(() => { - (0,attr_tag_js_namespaceObject.a)("actions", { - "renderBody": out => { - render_tag_js_default()(_instance_index_marko, { - "renderBody": (out, _nestedComponentDef4, _component5, _state5) => { - var _componentDef = _nestedComponentDef4, - _component7 = _component5; - render_tag_js_default()(controllable_select_marko, { - "value": previewType, - "valueChange": (0,cached_values_namespaceObject.cache)((0,cached_values_namespaceObject.cached)(_component5, []) || function (value) { - previewType = value; - debounce = false; - }), - "class": "preview-select", - "renderBody": out => { - out.w(""); - } - }, out, _componentDef, "9"); - render_tag_js_default()(playground_link_marko, { - "files": files - }, out, _componentDef, "13"); - } - }, out, _componentDef, "8"); - } - }); - (0,attr_tag_js_namespaceObject.a)("body", { - "renderBody": out => { - render_tag_js_default()(_instance_index_marko, { - "renderBody": (out, _nestedComponentDef5, _component6, _state6) => { - var _componentDef = _nestedComponentDef5, - _component7 = _component6; - let preview = null; - dynamic_tag_js_default()(out, preview, () => ({ - "type": previewType, - "files": files, - "selectedFile": selectedFile, - "getCompilerOptions": getCompilerOptions, - "debounce": debounce - }), null, null, null, _componentDef, "15"); - } - }, out, _componentDef, "14"); - } - }); - }), out, _componentDef, "7"); + render_tag_js_default()(scroll_locked_stream_example_index_marko, { + "class": "home-streaming-example" + }, out, _componentDef, "2"); } }); + (0,attr_tag_js_namespaceObject.a)("action", { + "href": "https://dev.to/ryansolid/server-rendering-in-javascript-optimizing-performance-1jnk" + }); + }, { + "align": "left", + "class": "home-streaming" }), out, _componentDef, "0"); }, { - t: repl_index_marko_marko_componentType -}, repl_index_marko_marko_component); -;// ./playground/components/playground.marko + t: home_streaming_index_marko_marko_componentType, + i: true +}, home_streaming_index_marko_marko_component); +;// ./index/components/home-hydration/index.marko -const playground_marko_marko_componentType = "HUU$Znhn", - playground_marko_marko_template = (0,index_js_namespaceObject.t)(playground_marko_marko_componentType); -/* harmony default export */ const playground_marko = (playground_marko_marko_template); +const home_hydration_index_marko_marko_componentType = "NpXSyNze", + home_hydration_index_marko_marko_template = (0,index_js_namespaceObject.t)(home_hydration_index_marko_marko_componentType); +/* harmony default export */ const home_hydration_index_marko = (home_hydration_index_marko_marko_template); + + + + + +const home_hydration_index_marko_marko_component = {}; +home_hydration_index_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { + render_tag_js_default()(home_feature_block_index_marko, (0,attr_tag_js_namespaceObject.i)(() => { + (0,attr_tag_js_namespaceObject.a)("title", { + "text": "Code Elimination", + "anchorName": "hydration" + }); + (0,attr_tag_js_namespaceObject.a)("content", { + "renderBody": out => { + out.w("

      Marko only sends the code for interactive components to the browser. Its compiler automatically detects which components only need to be rendered on the server. This means less to download and less to execute. Your users can enjoy top tier performance regardless of their devices or networks.

      "); + } + }); + (0,attr_tag_js_namespaceObject.a)("visual", { + "renderBody": out => { + render_tag_js_default()(home_demo_page_index_marko, { + "hydrateAll": true, + "label": "Traditional hydration sends and re-excutes the code for all components", + "class": "home-hydration-example" + }, out, _componentDef, "2"); + render_tag_js_default()(home_demo_page_index_marko, { + "hydratePartial": true, + "label": "Marko's hydration only sends the code for interactive components", + "class": "home-hydration-example" + }, out, _componentDef, "3"); + } + }); + (0,attr_tag_js_namespaceObject.a)("action", { + "href": "https://medium.com/@mlrawlings/maybe-you-dont-need-that-spa-f2c659bc7fec" + }); + }, { + "align": "right", + "class": "home-hydration" + }), out, _componentDef, "0"); +}, { + t: home_hydration_index_marko_marko_componentType, + i: true +}, home_hydration_index_marko_marko_component); +;// ./index/components/home-performance/arrow.svg +/* harmony default export */ const arrow = (__webpack_require__.p + "7c1cc740.svg"); +;// ./index/components/home-performance/index.marko +const home_performance_index_marko_marko_componentType = "zumXQlzg", + home_performance_index_marko_marko_template = (0,index_js_namespaceObject.t)(home_performance_index_marko_marko_componentType); +/* harmony default export */ const home_performance_index_marko = (home_performance_index_marko_marko_template); -const playground_marko_marko_component = { - onCreate() { - this.state = {}; - } -}; -playground_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component2, state, $global) { - var _component = _component2, - _state = state; - var _hashValueReturn = return_default()(_component); - render_tag_js_default()(hash_value_marko, { - "value": (0,cached_values_namespaceObject.cache)((0,cached_values_namespaceObject.cached)(_component, []) || [{ - name: "index.marko", - path: "/components/index.marko", - content: "\n" - }]), - "_return": _hashValueReturn - }, out, _componentDef, "0"); - const { - "valueChange": _valueChange, - value: files - } = _hashValueReturn(); - render_tag_js_default()(repl_index_marko, { - "files": files, - "filesChange": _valueChange - }, out, _componentDef, "1"); + +const home_performance_index_marko_marko_component = {}; +home_performance_index_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { + render_tag_js_default()(home_feature_block_index_marko, (0,attr_tag_js_namespaceObject.i)(() => { + (0,attr_tag_js_namespaceObject.a)("title", { + "text": "Tailored Performance", + "anchorName": "performance" + }); + (0,attr_tag_js_namespaceObject.a)("content", { + "renderBody": out => { + out.w("

      Marko's compiler generates code tailored to where it is going to run. You write your code once and it is optimized for both the server and browser. This is especially apparent on the server where Marko is several times faster than other popular solutions.

      "); + } + }); + (0,attr_tag_js_namespaceObject.a)("visual", { + "renderBody": out => { + out.w(``); + } + }); + (0,attr_tag_js_namespaceObject.a)("action", { + "href": "https://github.com/marko-js/isomorphic-ui-benchmarks", + "text": "See the Benchmarks" + }); + }, { + "class": "home-performance" + }), out, _componentDef, "0"); +}, { + t: home_performance_index_marko_marko_componentType, + i: true +}, home_performance_index_marko_marko_component); +;// ./index/components/home-tooling/screen.png +/* harmony default export */ const screen = (__webpack_require__.p + "92c4e05e.png"); +;// ./index/components/home-tooling/index.marko + +const home_tooling_index_marko_marko_componentType = "ZYtbGNjl", + home_tooling_index_marko_marko_template = (0,index_js_namespaceObject.t)(home_tooling_index_marko_marko_componentType); +/* harmony default export */ const home_tooling_index_marko = (home_tooling_index_marko_marko_template); + + + + + + +const home_tooling_index_marko_marko_component = {}; +home_tooling_index_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { + render_tag_js_default()(home_feature_block_index_marko, (0,attr_tag_js_namespaceObject.i)(() => { + (0,attr_tag_js_namespaceObject.a)("title", { + "text": "Editor Support", + "anchorName": "tooling" + }); + (0,attr_tag_js_namespaceObject.a)("content", { + "renderBody": out => { + out.w("

      Marko provides first-class support for the VSCode editor including syntax highlighting, Autocompletion, Hyperclick to quickly jump to referenced files, and Pretty printing to keep your code readable.

      Community plugins also provide syntax highlighting for Sublime, Atom, Webstorm & others!

      "); + } + }); + (0,attr_tag_js_namespaceObject.a)("visual", { + "class": "home-tooling__screenshot-window", + "renderBody": out => { + out.w(`
      `); + } + }); + (0,attr_tag_js_namespaceObject.a)("action", { + "href": "/docs/editor-plugins", + "text": "View editor plugins" + }); + }, { + "align": "right", + "class": "home-tooling" + }), out, _componentDef, "0"); +}, { + t: home_tooling_index_marko_marko_componentType, + i: true +}, home_tooling_index_marko_marko_component); +// EXTERNAL MODULE: external "gh-got" +var external_gh_got_ = __webpack_require__(724); +var external_gh_got_default = /*#__PURE__*/__webpack_require__.n(external_gh_got_); +;// ../logos/stackoverflow.svg +/* harmony default export */ const stackoverflow = (__webpack_require__.p + "0bfc2ee7.svg"); +;// ../logos/discord.svg +/* harmony default export */ const discord = (__webpack_require__.p + "78800ea4.svg"); +;// ../logos/twitter.svg +/* harmony default export */ const twitter = (__webpack_require__.p + "82b09e37.svg"); +;// external "marko/dist/core-tags/core/await/renderer.js" +const await_renderer_js_namespaceObject = require("marko/dist/core-tags/core/await/renderer.js"); +var await_renderer_js_default = /*#__PURE__*/__webpack_require__.n(await_renderer_js_namespaceObject); +;// ./index/components/home-community/index.marko + +const home_community_index_marko_marko_componentType = "rsiRtNhi", + home_community_index_marko_marko_template = (0,index_js_namespaceObject.t)(home_community_index_marko_marko_componentType); +/* harmony default export */ const home_community_index_marko = (home_community_index_marko_marko_template); + + + + + + + + + + + + + +const home_community_index_marko_marko_component = {}; +home_community_index_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { + render_tag_js_default()(home_feature_block_index_marko, (0,attr_tag_js_namespaceObject.i)(() => { + (0,attr_tag_js_namespaceObject.a)("title", { + "text": "Join the Community", + "anchorName": "community", + "class": "home-community__title" + }); + (0,attr_tag_js_namespaceObject.a)("content", { + "renderBody": out => { + out.w("

      Need help? Want to contribute? Get involved in the Marko Community!

      "); + } + }); + (0,attr_tag_js_namespaceObject.a)("visual", { + "renderBody": out => { + out.w(`
      Ask & answer StackOverflow questions with the marko tag
      Hang out in our Discord server, ask questions, & discuss project direction
      Tweet to @MarkoDevTeam or with the #markojs hashtag
      Browse the code, open issues, & make pull requests on the GitHub repo
      `); + } + }); + (0,attr_tag_js_namespaceObject.a)("breakout", { + "renderBody": out => { + out.w("
      "); + render_tag_js_default()((await_renderer_js_default()), (0,attr_tag_js_namespaceObject.i)(() => { + (0,attr_tag_js_namespaceObject.a)("then", { + "renderBody": (out, { + body + }) => { + let _keyValue = 0; + for (const contributor of of_fallback_js_default()(body)) { + const _keyScope = `[${_keyValue++}]`; + out.w(``); + } + } + }); + (0,attr_tag_js_namespaceObject.a)("catch", {}); + }, { + "_provider": external_gh_got_default()('/repos/marko-js/marko/contributors?per_page=100'), + "_name": "ghGot('/repos/marko-js/marko/contributors?per_page=100')" + }), out, _componentDef, "25"); + out.w("
      "); + } + }); + }, { + "colors": ["#fff"] + }), out, _componentDef, "0"); }, { - t: playground_marko_marko_componentType -}, playground_marko_marko_component); + t: home_community_index_marko_marko_componentType, + i: true +}, home_community_index_marko_marko_component); ;// ../components/app-layout/favicon.png /* harmony default export */ const favicon = (__webpack_require__.p + "d78b83f1.png"); ;// ../components/app-layout/components/skip-link/index.marko @@ -1399,10 +1464,6 @@ skip_link_index_marko_marko_template._ = renderer_js_default()(function (input, t: skip_link_index_marko_marko_componentType, i: true }, skip_link_index_marko_marko_component); -;// ../logos/marko.svg -/* harmony default export */ const marko = (__webpack_require__.p + "91bc26e5.svg"); -;// ../logos/marko-uwu.png -/* harmony default export */ const marko_uwu = (__webpack_require__.p + "2371441a.png"); ;// ../components/app-layout/components/layout-search/index.marko const layout_search_index_marko_marko_componentType = "MYKqWWDb", @@ -1636,8 +1697,6 @@ google_analytics_index_marko_marko_template._ = renderer_js_default()(function ( t: google_analytics_index_marko_marko_componentType, i: true }, google_analytics_index_marko_marko_component); -;// ../logos/discord.svg -/* harmony default export */ const discord = (__webpack_require__.p + "78800ea4.svg"); ;// ../components/discord-link/index.marko const discord_link_index_marko_marko_componentType = "_GWD$Hh", @@ -1720,284 +1779,54 @@ app_layout_index_marko_marko_template._ = renderer_js_default()(function (input, t: app_layout_index_marko_marko_componentType, i: true }, app_layout_index_marko_marko_component); -;// ./playground/index.marko - -const playground_index_marko_marko_componentType = "MHuPCuWh", - playground_index_marko_marko_template = (0,index_js_namespaceObject.t)(playground_index_marko_marko_componentType); -/* harmony default export */ const playground_index_marko = (playground_index_marko_marko_template); - - - - -const playground_index_marko_marko_component = {}; -playground_index_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { - render_tag_js_default()(app_layout_index_marko, { - "title": "Try online", - "footer": false, - "discord": false, - "renderBody": out => { - render_tag_js_default()(playground_marko, {}, out, _componentDef, "1"); - } - }, out, _componentDef, "0"); - out.w(""); -}, { - t: playground_index_marko_marko_componentType, - i: true -}, playground_index_marko_marko_component); -;// ./playground/index.marko?server-entry - -const playground_index_marko_server_entry_marko_componentType = "gufdGSuf", - playground_index_marko_server_entry_marko_template = (0,index_js_namespaceObject.t)(playground_index_marko_server_entry_marko_componentType); -/* harmony default export */ const playground_index_marko_server_entry = (playground_index_marko_server_entry_marko_template); - - - -const playground_index_marko_server_entry_crossOriginAttr = new URL(__webpack_require__.p, "file:").protocol === "file:" ? "" : " crossorigin"; -function playground_index_marko_server_entry_renderAssets(out) { - const $global = out.global; - const entries = $global.___entries; - $global.___entries = undefined; - if (entries) { - const buildName = $global.buildName; - const nonce = $global.cspNonce; - const nonceAttr = nonce ? ` nonce=${JSON.stringify(nonce)}` : ""; - const written = $global.___writtenAssets || ($global.___writtenAssets = new Set()); - let scripts = ""; - let styles = ""; - for (const entry of entries) { - const assets = index_js_manifest.getAssets(entry, buildName); - if (assets.js) { - for (const href of assets.js) { - if (!written.has(href)) { - written.add(href); - scripts += ``; - } - } - } - if (assets.css) { - for (const href of assets.css) { - if (!written.has(href)) { - written.add(href); - styles += ``; - } - } - } - } - out.write(scripts + styles); - } -} - - - - - -const playground_index_marko_server_entry_marko_component = {}; -playground_index_marko_server_entry_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { - out.global.___renderAssets = playground_index_marko_server_entry_renderAssets; - (out.global.___entries || (out.global.___entries = [])).push("playground_mdf-"); - render_tag_js_default()((_flush_here_and_after_js_default()), { - "renderBody": out => { - const outAlias = out; - outAlias.global.___renderAssets && outAlias.global.___renderAssets(outAlias); - } - }, out, _componentDef, "0"); - render_tag_js_default()(playground_index_marko, input, out, _componentDef, "1"); - render_tag_js_default()((init_components_tag_js_default()), {}, out, _componentDef, "2"); - render_tag_js_default()((reorderer_renderer_js_default()), {}, out, _componentDef, "3"); -}, { - t: playground_index_marko_server_entry_marko_componentType, - i: true -}, playground_index_marko_server_entry_marko_component); -;// ./try-online-new/index.marko - -const try_online_new_index_marko_marko_componentType = "kokUincl", - try_online_new_index_marko_marko_template = (0,index_js_namespaceObject.t)(try_online_new_index_marko_marko_componentType); -/* harmony default export */ const try_online_new_index_marko = (try_online_new_index_marko_marko_template); - -const try_online_new_index_marko_marko_component = {}; -try_online_new_index_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { - out.w(""); -}, { - t: try_online_new_index_marko_marko_componentType, - i: true -}, try_online_new_index_marko_marko_component); -;// ./try-online-new/index.marko?server-entry - -const try_online_new_index_marko_server_entry_marko_componentType = "jBxauMAl", - try_online_new_index_marko_server_entry_marko_template = (0,index_js_namespaceObject.t)(try_online_new_index_marko_server_entry_marko_componentType); -/* harmony default export */ const try_online_new_index_marko_server_entry = (try_online_new_index_marko_server_entry_marko_template); - - - -const try_online_new_index_marko_server_entry_crossOriginAttr = new URL(__webpack_require__.p, "file:").protocol === "file:" ? "" : " crossorigin"; -function try_online_new_index_marko_server_entry_renderAssets(out) { - const $global = out.global; - const entries = $global.___entries; - $global.___entries = undefined; - if (entries) { - const buildName = $global.buildName; - const nonce = $global.cspNonce; - const nonceAttr = nonce ? ` nonce=${JSON.stringify(nonce)}` : ""; - const written = $global.___writtenAssets || ($global.___writtenAssets = new Set()); - let scripts = ""; - let styles = ""; - for (const entry of entries) { - const assets = index_js_manifest.getAssets(entry, buildName); - if (assets.js) { - for (const href of assets.js) { - if (!written.has(href)) { - written.add(href); - scripts += ``; - } - } - } - if (assets.css) { - for (const href of assets.css) { - if (!written.has(href)) { - written.add(href); - styles += ``; - } - } - } - } - out.write(scripts + styles); - } -} - - - - - -const try_online_new_index_marko_server_entry_marko_component = {}; -try_online_new_index_marko_server_entry_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { - out.global.___renderAssets = try_online_new_index_marko_server_entry_renderAssets; - (out.global.___entries || (out.global.___entries = [])).push("try-online-new_1yH9"); - render_tag_js_default()((_flush_here_and_after_js_default()), { - "renderBody": out => { - const outAlias = out; - outAlias.global.___renderAssets && outAlias.global.___renderAssets(outAlias); - } - }, out, _componentDef, "0"); - render_tag_js_default()(try_online_new_index_marko, input, out, _componentDef, "1"); - render_tag_js_default()((init_components_tag_js_default()), {}, out, _componentDef, "2"); - render_tag_js_default()((reorderer_renderer_js_default()), {}, out, _componentDef, "3"); -}, { - t: try_online_new_index_marko_server_entry_marko_componentType, - i: true -}, try_online_new_index_marko_server_entry_marko_component); -;// ../../node_modules/@marko-tags/subscribe/index.marko - -const subscribe_index_marko_marko_componentType = "DI$EjOwk", - subscribe_index_marko_marko_template = (0,index_js_namespaceObject.t)(subscribe_index_marko_marko_componentType); -/* harmony default export */ const subscribe_index_marko = (subscribe_index_marko_marko_template); - -const subscribe_index_marko_marko_component = { - onMount() { - this.listen(this.input); - }, - onInput(input) { - if (this.target && this.target !== input.to) { - this.onDestroy(); - this.listen(input); - } - }, - onDestroy() { - this.subscription.removeAllListeners(); - }, - listen(input) { - var target = this.target = input.to; - var subscription = this.subscription = this.subscribeTo(target); - var events = input.__events; - var len = events.length; - for (var i = 0; i < len; i += 2) { - var method = events[i]; - var name = events[i + 1]; - subscription[method](name, this.emit.bind(this, name)); - } - } -}; -subscribe_index_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) {}, { - t: subscribe_index_marko_marko_componentType -}, subscribe_index_marko_marko_component); -;// ./try-online/components/loader/index.marko +;// ./index/index.marko -const loader_index_marko_marko_componentType = "YfGHQdzh", - loader_index_marko_marko_template = (0,index_js_namespaceObject.t)(loader_index_marko_marko_componentType); -/* harmony default export */ const loader_index_marko = (loader_index_marko_marko_template); +const index_index_marko_marko_componentType = "riZjSFCe", + index_index_marko_marko_template = (0,index_js_namespaceObject.t)(index_index_marko_marko_componentType); +/* harmony default export */ const index_index_marko = (index_index_marko_marko_template); -const loader_index_marko_marko_component = { - onCreate() { - this.state = { - component: undefined, - show: false - }; - }, - async onMount() { - const rootComponent = false && (0); - await rootComponent.loading; - this.state.component = rootComponent; - this.checkIfLargeEnough(); - }, - checkIfLargeEnough() { - var windowSize = document.body.innerWidth || document.body.clientWidth; - this.state.show = windowSize > 1000; - } -}; -loader_index_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { - if (state.component) { - if (state.show) { - dynamic_tag_js_default()(out, state.component, () => ({ - "examples": input.examples - }), null, null, null, _componentDef, "0"); - } else { - render_tag_js_default()(subscribe_index_marko, { - "to": false && 0, - "__events": ["on", "resize"] - }, out, _componentDef, "1", [["resize", "checkIfLargeEnough", false]]); - out.w("

      Screen width too small

      Please increase the window size or rotate to load.

      If you are on a mobile phone, please open on a desktop

      View Docs

      "); - } - } else { - out.w("
      "); - } -}, { - t: loader_index_marko_marko_componentType -}, loader_index_marko_marko_component); -;// ./try-online/index.marko -const try_online_index_marko_marko_componentType = "hnzzKbLg", - try_online_index_marko_marko_template = (0,index_js_namespaceObject.t)(try_online_index_marko_marko_componentType); -/* harmony default export */ const try_online_index_marko = (try_online_index_marko_marko_template); -const try_online_index_marko_marko_component = {}; -try_online_index_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { + + +const index_index_marko_marko_component = {}; +index_index_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { render_tag_js_default()(app_layout_index_marko, { - "title": "Try online", - "footer": false, - "discord": false, + "v6": input.v6, + "class": "home", "renderBody": out => { - render_tag_js_default()(loader_index_marko, {}, out, _componentDef, "1"); + render_tag_js_default()(home_hero_index_marko, {}, out, _componentDef, "1"); + render_tag_js_default()(home_features_index_marko, {}, out, _componentDef, "2"); + render_tag_js_default()(home_language_index_marko, { + "v6": input.v6 + }, out, _componentDef, "3"); + render_tag_js_default()(home_streaming_index_marko, {}, out, _componentDef, "4"); + render_tag_js_default()(home_hydration_index_marko, {}, out, _componentDef, "5"); + render_tag_js_default()(home_performance_index_marko, {}, out, _componentDef, "6"); + render_tag_js_default()(home_tooling_index_marko, {}, out, _componentDef, "7"); + render_tag_js_default()(home_community_index_marko, {}, out, _componentDef, "8"); } }, out, _componentDef, "0"); }, { - t: try_online_index_marko_marko_componentType, + t: index_index_marko_marko_componentType, i: true -}, try_online_index_marko_marko_component); -;// ./try-online/index.marko?server-entry +}, index_index_marko_marko_component); +;// ./index/index.marko?server-entry -const try_online_index_marko_server_entry_marko_componentType = "xQvoHnzm", - try_online_index_marko_server_entry_marko_template = (0,index_js_namespaceObject.t)(try_online_index_marko_server_entry_marko_componentType); -/* harmony default export */ const try_online_index_marko_server_entry = (try_online_index_marko_server_entry_marko_template); +const index_index_marko_server_entry_marko_componentType = "oHUNYdtc", + index_index_marko_server_entry_marko_template = (0,index_js_namespaceObject.t)(index_index_marko_server_entry_marko_componentType); +/* harmony default export */ const index_index_marko_server_entry = (index_index_marko_server_entry_marko_template); -const try_online_index_marko_server_entry_crossOriginAttr = new URL(__webpack_require__.p, "file:").protocol === "file:" ? "" : " crossorigin"; -function try_online_index_marko_server_entry_renderAssets(out) { +const index_index_marko_server_entry_crossOriginAttr = new URL(__webpack_require__.p, "file:").protocol === "file:" ? "" : " crossorigin"; +function index_index_marko_server_entry_renderAssets(out) { const $global = out.global; const entries = $global.___entries; $global.___entries = undefined; @@ -2014,7 +1843,7 @@ function try_online_index_marko_server_entry_renderAssets(out) { for (const href of assets.js) { if (!written.has(href)) { written.add(href); - scripts += ``; + scripts += ``; } } } @@ -2035,158 +1864,92 @@ function try_online_index_marko_server_entry_renderAssets(out) { -const try_online_index_marko_server_entry_marko_component = {}; -try_online_index_marko_server_entry_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { - out.global.___renderAssets = try_online_index_marko_server_entry_renderAssets; - (out.global.___entries || (out.global.___entries = [])).push("try-online_gkPN"); +const index_index_marko_server_entry_marko_component = {}; +index_index_marko_server_entry_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { + out.global.___renderAssets = index_index_marko_server_entry_renderAssets; + (out.global.___entries || (out.global.___entries = [])).push("index_WEBG"); render_tag_js_default()((_flush_here_and_after_js_default()), { "renderBody": out => { const outAlias = out; outAlias.global.___renderAssets && outAlias.global.___renderAssets(outAlias); } }, out, _componentDef, "0"); - render_tag_js_default()(try_online_index_marko, input, out, _componentDef, "1"); + render_tag_js_default()(index_index_marko, input, out, _componentDef, "1"); render_tag_js_default()((init_components_tag_js_default()), {}, out, _componentDef, "2"); render_tag_js_default()((reorderer_renderer_js_default()), {}, out, _componentDef, "3"); }, { - t: try_online_index_marko_server_entry_marko_componentType, + t: index_index_marko_server_entry_marko_componentType, i: true -}, try_online_index_marko_server_entry_marko_component); -;// ./index/components/home-hero/marko-text.svg -/* harmony default export */ const marko_text = (__webpack_require__.p + "7443bd32.svg"); -;// ../logos/github.svg -/* harmony default export */ const github = (__webpack_require__.p + "0bc571bc.svg"); -;// ./index/components/home-hero/components/github-link/index.marko - -const github_link_index_marko_marko_componentType = "ZLItxxri", - github_link_index_marko_marko_template = (0,index_js_namespaceObject.t)(github_link_index_marko_marko_componentType); -/* harmony default export */ const github_link_index_marko = (github_link_index_marko_marko_template); - - - - -const github_link_index_marko_marko_component = {}; -github_link_index_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { - out.w(`GitHub`); -}, { - t: github_link_index_marko_marko_componentType, - s: true -}, github_link_index_marko_marko_component); -;// ./index/components/home-hero/index.marko - -const home_hero_index_marko_marko_componentType = "zOb$ETAb", - home_hero_index_marko_marko_template = (0,index_js_namespaceObject.t)(home_hero_index_marko_marko_componentType); -/* harmony default export */ const home_hero_index_marko = (home_hero_index_marko_marko_template); - - - - - - - - -const home_hero_index_marko_marko_component = {}; -home_hero_index_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { - out.w(`
      "); -}, { - t: home_hero_index_marko_marko_componentType, - s: true -}, home_hero_index_marko_marko_component); -;// ./index/components/home-features/index.marko - -const home_features_index_marko_marko_componentType = "qRU$xLeb", - home_features_index_marko_marko_template = (0,index_js_namespaceObject.t)(home_features_index_marko_marko_componentType); -/* harmony default export */ const home_features_index_marko = (home_features_index_marko_marko_template); +}, index_index_marko_server_entry_marko_component); +;// external "@marko/tags-api-preview/dist/transform/cached-values" +const cached_values_namespaceObject = require("@marko/tags-api-preview/dist/transform/cached-values"); +;// external "@marko/tags-api-preview/dist/components/return" +const return_namespaceObject = require("@marko/tags-api-preview/dist/components/return"); +var return_default = /*#__PURE__*/__webpack_require__.n(return_namespaceObject); +;// external "lz-string" +const external_lz_string_namespaceObject = require("lz-string"); +;// ./playground/components/hash-value.marko -const home_features_index_marko_marko_component = {}; -home_features_index_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { - out.w("

      Familiar

      If you know HTML, CSS, and Javascript, you know Marko

      Performant

      Streaming, partial hydration, an optimizing compiler, & a small runtime

      Scalable

      Start with simple HTML templates and add powerful components as needed

      Trusted

      Marko is powering high-traffic websites like ebay.com

      "); -}, { - t: home_features_index_marko_marko_componentType, - i: true -}, home_features_index_marko_marko_component); -;// ./index/components/home-language/components/counter-tags.marko +const hash_value_marko_marko_componentType = "iu_vYbKl", + hash_value_marko_marko_template = (0,index_js_namespaceObject.t)(hash_value_marko_marko_componentType); +/* harmony default export */ const hash_value_marko = (hash_value_marko_marko_template); -const counter_tags_marko_marko_componentType = "jwtsId_c", - counter_tags_marko_marko_template = (0,index_js_namespaceObject.t)(counter_tags_marko_marko_componentType); -/* harmony default export */ const counter_tags_marko = (counter_tags_marko_marko_template); +function getInitialValue() { + try { + if (false) {} + } catch (e) { + console.error(e); + } +} -const counter_tags_marko_marko_component = { +const hash_value_marko_marko_component = { onCreate() { this.state = {}; } }; -counter_tags_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component2, state, $global) { +hash_value_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component2, state, $global) { var _component = _component2, _state = state; - let count = 0; - out.w(``); + const { + value: defaultValue + } = input; + let value = getInitialValue() || defaultValue; + input._return && input._return({ + "value": value, + "valueChange": (0,cached_values_namespaceObject.cache)((0,cached_values_namespaceObject.cached)(_component, []) || (_ => value = _)) + }, 1); }, { - t: counter_tags_marko_marko_componentType -}, counter_tags_marko_marko_component); -;// ./index/components/home-language/components/counter-example/index.marko - -const counter_example_index_marko_marko_componentType = "bqxM_lge", - counter_example_index_marko_marko_template = (0,index_js_namespaceObject.t)(counter_example_index_marko_marko_componentType); -/* harmony default export */ const counter_example_index_marko = (counter_example_index_marko_marko_template); + t: hash_value_marko_marko_componentType +}, hash_value_marko_marko_component); +;// external "@marko/tags-api-preview/dist/util/replace-assignments" +const replace_assignments_namespaceObject = require("@marko/tags-api-preview/dist/util/replace-assignments"); +var replace_assignments_default = /*#__PURE__*/__webpack_require__.n(replace_assignments_namespaceObject); +;// external "@marko/tags-api-preview/dist/transform/native-tag-var" +const native_tag_var_namespaceObject = require("@marko/tags-api-preview/dist/transform/native-tag-var"); +var native_tag_var_default = /*#__PURE__*/__webpack_require__.n(native_tag_var_namespaceObject); +;// ../../node_modules/@marko/tags-api-preview/dist/components/_instance/index.marko +const _instance_index_marko_marko_componentType = "ZcXvQUMl", + _instance_index_marko_marko_template = (0,index_js_namespaceObject.t)(_instance_index_marko_marko_componentType); +/* harmony default export */ const _instance_index_marko = (_instance_index_marko_marko_template); -const counter_example_index_marko_marko_component = { +const _instance_index_marko_marko_component = { onCreate() { - this.state = { - count: 0 - }; - }, - increment() { - this.state.count++; + this.state = {}; } }; -counter_example_index_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { - out.w(`
      ${(0,escape_xml_js_namespaceObject.x)(state.count)}
      `); -}, { - t: counter_example_index_marko_marko_componentType -}, counter_example_index_marko_marko_component); -// EXTERNAL MODULE: ../components/heading/getAnchorName.js -var getAnchorName = __webpack_require__(272); -var getAnchorName_default = /*#__PURE__*/__webpack_require__.n(getAnchorName); -;// ../components/heading/index.marko - -const heading_index_marko_marko_componentType = "m$Yyhouk", - heading_index_marko_marko_template = (0,index_js_namespaceObject.t)(heading_index_marko_marko_componentType); -/* harmony default export */ const heading_index_marko = (heading_index_marko_marko_template); - - - - - - -const heading_index_marko_marko_component = {}; -heading_index_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { - var className = input['class']; - var text = input.text; - var anchorName = input.anchorName || getAnchorName_default()(text, out); - dynamic_tag_js_default()(out, input.tag, () => ({ - "class": ['heading', className] - }), out => { - out.w(``); - if (text) { - out.w((0,escape_xml_js_namespaceObject.x)(text)); - } else { - dynamic_tag_js_default()(out, input.renderBody, null, null, null, null, _componentDef, "3"); - } - }, null, null, _componentDef, "0"); +_instance_index_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { + var componentDef = _componentDef; + input.renderBody(out, componentDef, _component, state); }, { - t: heading_index_marko_marko_componentType, - i: true -}, heading_index_marko_marko_component); -;// ./index/components/home-feature-block/index.marko + t: _instance_index_marko_marko_componentType +}, _instance_index_marko_marko_component); +;// ../components/repl/components/file-tabs.marko -const home_feature_block_index_marko_marko_componentType = "TxbG_krh", - home_feature_block_index_marko_marko_template = (0,index_js_namespaceObject.t)(home_feature_block_index_marko_marko_componentType); -/* harmony default export */ const home_feature_block_index_marko = (home_feature_block_index_marko_marko_template); +const file_tabs_marko_marko_componentType = "JtPBPdcm", + file_tabs_marko_marko_template = (0,index_js_namespaceObject.t)(file_tabs_marko_marko_componentType); +/* harmony default export */ const file_tabs_marko = (file_tabs_marko_marko_template); @@ -2194,497 +1957,716 @@ const home_feature_block_index_marko_marko_componentType = "TxbG_krh", -const home_feature_block_index_marko_marko_component = {}; -home_feature_block_index_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { - out.w(`
      `); - render_tag_js_default()(heading_index_marko, { - "tag": "h1", - "class": "home-feature-block-title", - ...input.title - }, out, _componentDef, "3"); - out.w("
      "); - dynamic_tag_js_default()(out, input.content, null, null, null, null, _componentDef, "5"); - out.w(`
      `); - dynamic_tag_js_default()(out, input.visual, null, null, null, null, _componentDef, "7"); - out.w("
      "); - if (input.action) { - out.w(`
      ${(0,escape_xml_js_namespaceObject.x)(input.action.text || "Learn More")}
      `); + + +const file_tabs_marko_marko_component = { + onCreate() { + this.state = {}; + } +}; +file_tabs_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component4, state, $global) { + var _component = _component4, + _state = state; + const { + "selectedIndexChange": _selectedIndexChange, + "filesChange": _filesChange, + files: externalFiles, + selectedIndex: externalSelected + } = input; + let files = externalFiles; + let selectedIndex = externalSelected; + const selectedFile = files[selectedIndex]; + out.w("
      "); + { + let nextId = 1; + let _index = 0; + for (const file of of_fallback_js_default()(files)) { + let index = _index++; + const _keyScope = `[${index}]`; + render_tag_js_default()(_instance_index_marko, { + "renderBody": (out, _nestedComponentDef, _component2, _state2) => { + var _componentDef = _nestedComponentDef, + _component4 = _component2; + let editing = false; + const selected = selectedFile === file; + const mutable = index > 0; + out.w(``); + if (!editing || !selected || !mutable) { + out.w((0,escape_xml_js_namespaceObject.x)(file.name)); + } else { + render_tag_js_default()(_instance_index_marko, { + "renderBody": (out, _nestedComponentDef2, _component3, _state3) => { + var _componentDef = _nestedComponentDef2, + _component4 = _component3; + let name = file.name; + const finishRename = (0,cached_values_namespaceObject.cache)((0,cached_values_namespaceObject.cached)(_component3, [name, files]) || function () { + const modifiedFile = { + ...file, + name, + path: file.path.replace(file.name, name) + }; + files = [...files.slice(0, index), modifiedFile, ...files.slice(index + 1)]; + editing = false; + }); + const nameInput = native_tag_var_default()(_component3, "0"); + out.w(``); + } + }, out, _componentDef, "3" + _keyScope); + } + if (mutable) { + out.w(""); + } + out.w("
      "); + } + }, out, _componentDef, "1" + _keyScope); + } + out.w(""); } out.w("
      "); - dynamic_tag_js_default()(out, input.breakout, null, null, null, null, _componentDef, "10"); - out.w(""); }, { - t: home_feature_block_index_marko_marko_componentType, + t: file_tabs_marko_marko_componentType +}, file_tabs_marko_marko_component); +;// ../components/repl/components/pane.marko + +const pane_marko_marko_componentType = "YdDerxpd", + pane_marko_marko_template = (0,index_js_namespaceObject.t)(pane_marko_marko_componentType); +/* harmony default export */ const pane_marko = (pane_marko_marko_template); + + +const pane_marko_marko_component = {}; +pane_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { + const { + actions, + body + } = input; + out.w("
      "); + dynamic_tag_js_default()(out, actions.renderBody, null, null, null, null, _componentDef, "2"); + out.w("
      "); + dynamic_tag_js_default()(out, body.renderBody, null, null, null, null, _componentDef, "5"); + out.w("
      "); +}, { + t: pane_marko_marko_componentType, i: true -}, home_feature_block_index_marko_marko_component); -;// ./index/components/home-language/index.marko +}, pane_marko_marko_component); +;// ../components/repl/components/controllable-select.marko -const home_language_index_marko_marko_componentType = "fEFMinFc", - home_language_index_marko_marko_template = (0,index_js_namespaceObject.t)(home_language_index_marko_marko_componentType); -/* harmony default export */ const home_language_index_marko = (home_language_index_marko_marko_template); +const controllable_select_marko_marko_componentType = "edcMGKVi", + controllable_select_marko_marko_template = (0,index_js_namespaceObject.t)(controllable_select_marko_marko_componentType); +/* harmony default export */ const controllable_select_marko = (controllable_select_marko_marko_template); -const home_language_index_marko_marko_component = {}; -home_language_index_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { - render_tag_js_default()(home_feature_block_index_marko, (0,attr_tag_js_namespaceObject.i)(() => { - (0,attr_tag_js_namespaceObject.a)("title", { - "text": "HTML Reimagined", - "anchorName": "language" - }); - (0,attr_tag_js_namespaceObject.a)("content", { - "renderBody": out => { - out.w("

      Marko is HTML re-imagined as a language for building dynamic and reactive user interfaces. Just about any valid HTML is valid Marko, but Marko extends the HTML language to allow building modern applications in a declarative way.

      "); - } - }); - (0,attr_tag_js_namespaceObject.a)("visual", { - "class": "home-language__examples", - "renderBody": out => { - if (input.v6) { - out.w("
      "); - render_tag_js_default()(counter_tags_marko, {}, out, _componentDef, "5"); - out.w("
      <!doctype html>\n<html>\n    <head>\n        <title>Count with Marko</title>\n    </head>\n    <body>\n        <let/count=0/>\n        <button onClick() { count++ }>\n            ${count}\n        </button>\n    </body>\n</html>\n
      "); - } else { - out.w("
      <!doctype html>\n<html>\n<head>\n    <title>Hello Marko</title>\n</head>\n<body>\n    <h1>My favorite colors</h1>\n    <ul>\n        <for|color| of=[\"red\", \"green\", \"blue\"]>\n            <li style=`color:${color}`>\n                ${color.toUpperCase()}\n            </li>\n        </for>\n    </ul>\n    <shared-footer/>\n</body>\n</html>\n
      HTML Templates, Custom Tags, & Javascript Expressions
      "); - render_tag_js_default()(counter_example_index_marko, {}, out, _componentDef, "12"); - out.w("
      class {\n  onCreate() {\n    this.state = { count: 0 };\n  }\n  increment() {\n    this.state.count++;\n  }\n}\n<div>${state.count}</div>\n<button on-click(\"increment\")>\n  Click me!\n</button>\n
      Interactive Logic & Reactive Values
      "); - } - } - }); - }, { - "class": "home-language" - }), out, _componentDef, "0"); +const controllable_select_marko_marko_component = { + onCreate() { + this.state = {}; + } +}; +controllable_select_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component2, state, $global) { + var _component = _component2, + _state = state; + const { + value, + valueChange, + renderBody, + class: className + } = input; + const el = native_tag_var_default()(_component, "0"); + out.w(``); + dynamic_tag_js_default()(out, renderBody, null, null, null, null, _componentDef, "0"); + out.w(""); }, { - t: home_language_index_marko_marko_componentType, - i: true -}, home_language_index_marko_marko_component); -;// ./index/components/home-demo-page/product.png -/* harmony default export */ const product = (__webpack_require__.p + "2ff006d2.png"); -;// ./index/components/home-demo-page/x.svg -/* harmony default export */ const x = (__webpack_require__.p + "886b7024.svg"); -;// external "marko/dist/runtime/helpers/style-value.js" -const style_value_js_namespaceObject = require("marko/dist/runtime/helpers/style-value.js"); -var style_value_js_default = /*#__PURE__*/__webpack_require__.n(style_value_js_namespaceObject); -;// ./index/components/home-demo-page/index.marko + t: controllable_select_marko_marko_componentType +}, controllable_select_marko_marko_component); +;// external "@marko/tags-api-preview/dist/translate/native-tag-handlers" +const native_tag_handlers_namespaceObject = require("@marko/tags-api-preview/dist/translate/native-tag-handlers"); +var native_tag_handlers_default = /*#__PURE__*/__webpack_require__.n(native_tag_handlers_namespaceObject); +;// external "marko/dist/runtime/html/helpers/attrs.js" +const attrs_js_namespaceObject = require("marko/dist/runtime/html/helpers/attrs.js"); +var attrs_js_default = /*#__PURE__*/__webpack_require__.n(attrs_js_namespaceObject); +;// ../components/repl/components/playground-link.marko -const home_demo_page_index_marko_marko_componentType = "pYOALFJk", - home_demo_page_index_marko_marko_template = (0,index_js_namespaceObject.t)(home_demo_page_index_marko_marko_componentType); -/* harmony default export */ const home_demo_page_index_marko = (home_demo_page_index_marko_marko_template); +const playground_link_marko_marko_componentType = "fLRwaABg", + playground_link_marko_marko_template = (0,index_js_namespaceObject.t)(playground_link_marko_marko_componentType); +/* harmony default export */ const playground_link_marko = (playground_link_marko_marko_template); +const playground_link_marko_marko_component = {}; +playground_link_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { + const { + files, + ...attrs + } = input; + var _meta = {}; + out.w(`Open in playground \u2197`); +}, { + t: playground_link_marko_marko_componentType, + i: true +}, playground_link_marko_marko_component); +;// ../components/repl/components/match-media.marko +const match_media_marko_marko_componentType = "aEQdEE_f", + match_media_marko_marko_template = (0,index_js_namespaceObject.t)(match_media_marko_marko_componentType); +/* harmony default export */ const match_media_marko = (match_media_marko_marko_template); -const home_demo_page_index_marko_marko_component = {}; -home_demo_page_index_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { - const progress = input.buffered ? Math.floor(input.progress / 0.9) : input.progress / 0.9; - out.w(`
      `); - if (input.progress >= 0) { - out.w(`
      `); - } - out.w(`
      Cart (0)
      Google Home - $79
      Add to Cart
      Hands-free help around the house. Google Home is a smart speaker with the Google Assistant built in. So whenever you need help, it's by your side
      \u2605\u2605\u2605\u2605\u2606
      Cool gadget Google has created a nice device that provides music and information by voice control. The microphone is very good and will usually pick up commands from across the room. The speakers sound surprisingly good for such a small device. I wish it had tone control though.
      \u2605\u2605\u2605\u2605\u2605
      Incredible sound profile! Easy setup, great sound for any room size. Adjustable bass and treble. Currently have two paired up for better whole house sound.
      About
      Security
      Policies
      Help
      Sitemap
      `); - if (input.buffered || input.hydrateAll) { - out.w(`
      `); - } else { - out.w(`
      `); + +const match_media_marko_marko_component = { + onCreate() { + this.state = {}; } - out.w("
      "); +}; +match_media_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component2, state, $global) { + var _component = _component2, + _state = state; + const { + value: query, + fallback + } = input; + let isMatch = false ? 0 : fallback; + input._return && input._return({ + "value": isMatch + }, 1); }, { - t: home_demo_page_index_marko_marko_componentType, - i: true -}, home_demo_page_index_marko_marko_component); -;// ./index/components/home-streaming/components/scroll-locked-stream-example/index.marko + t: match_media_marko_marko_componentType +}, match_media_marko_marko_component); +;// ../components/repl/components/resizable-panes.marko -const scroll_locked_stream_example_index_marko_marko_componentType = "RQwDtLcd", - scroll_locked_stream_example_index_marko_marko_template = (0,index_js_namespaceObject.t)(scroll_locked_stream_example_index_marko_marko_componentType); -/* harmony default export */ const scroll_locked_stream_example_index_marko = (scroll_locked_stream_example_index_marko_marko_template); +const resizable_panes_marko_marko_componentType = "H_lRXCBe", + resizable_panes_marko_marko_template = (0,index_js_namespaceObject.t)(resizable_panes_marko_marko_componentType); +/* harmony default export */ const resizable_panes_marko = (resizable_panes_marko_marko_template); -const scroll_locked_stream_example_index_marko_marko_component = { + + + + + + + +const resizable_panes_marko_marko_component = { onCreate() { - this.state = { - progress: 0.1 - }; - }, - onMount() { - this.observer = new IntersectionObserver(entries => { - if (entries[0].intersectionRatio <= 0) { - this.cleanProgress(); - } else { - this.initProgress(); - } - }); - this.observer.observe(this.getEl("root")); - }, - onDestroy() { - this.cleanProgress(); - this.observer.disconnect(); - }, - initProgress() { - const updateProgress = () => { - this.state.progress = (this.state.progress + 0.004) % 1.5; - this.frame = requestAnimationFrame(updateProgress); - }; - this.frame = requestAnimationFrame(updateProgress); - }, - cleanProgress() { - cancelAnimationFrame(this.frame); + this.state = {}; } }; -scroll_locked_stream_example_index_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { - out.w(``); - render_tag_js_default()(home_demo_page_index_marko, { - "progress": state.progress, - "buffered": true, - "label": "Buffered pages don't show content as it loads" +resizable_panes_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component3, state, $global) { + var _component = _component3, + _state = state; + const { + left, + right + } = input; + let editorSize = 0.5; + let resizing = false; + var _matchMediaReturn = return_default()(_component); + render_tag_js_default()(match_media_marko, { + "value": "(max-aspect-ratio: 1/1)", + "_return": _matchMediaReturn }, out, _componentDef, "0"); - render_tag_js_default()(home_demo_page_index_marko, { - "progress": state.progress, - "label": "Streaming pages show content incrementally", - "class": "scroll-locked-progressive" - }, out, _componentDef, "1"); - out.w("
      "); + const { + value: isVertical + } = _matchMediaReturn(); + const container = native_tag_var_default()(_component, "0"); + out.w(``); + var _meta = {}; + out.w(``); + dynamic_tag_js_default()(out, left.renderBody, null, null, null, null, _componentDef, "2"); + out.w("
      "); + var _meta2 = {}; + out.w(``); + dynamic_tag_js_default()(out, right.renderBody, null, null, null, null, _componentDef, "6"); + out.w("
    "); + if (resizing) { + render_tag_js_default()(_instance_index_marko, { + "renderBody": (out, _nestedComponentDef, _component2, _state2) => { + var _componentDef = _nestedComponentDef, + _component3 = _component2; + } + }, out, _componentDef, "7"); + } }, { - t: scroll_locked_stream_example_index_marko_marko_componentType -}, scroll_locked_stream_example_index_marko_marko_component); -;// ./index/components/home-streaming/index.marko + t: resizable_panes_marko_marko_componentType +}, resizable_panes_marko_marko_component); +;// ../components/repl/index.marko -const home_streaming_index_marko_marko_componentType = "opQEgCpi", - home_streaming_index_marko_marko_template = (0,index_js_namespaceObject.t)(home_streaming_index_marko_marko_componentType); -/* harmony default export */ const home_streaming_index_marko = (home_streaming_index_marko_marko_template); +const repl_index_marko_marko_componentType = "rtapnbhf", + repl_index_marko_marko_template = (0,index_js_namespaceObject.t)(repl_index_marko_marko_componentType); +/* harmony default export */ const repl_index_marko = (repl_index_marko_marko_template); -const home_streaming_index_marko_marko_component = {}; -home_streaming_index_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { - render_tag_js_default()(home_feature_block_index_marko, (0,attr_tag_js_namespaceObject.i)(() => { - (0,attr_tag_js_namespaceObject.a)("title", { - "text": "Progressive Rendering", - "anchorName": "streaming" - }); - (0,attr_tag_js_namespaceObject.a)("content", { + + + + + + + +const repl_index_marko_marko_component = { + onCreate() { + this.state = {}; + } +}; +repl_index_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component7, state, $global) { + var _component = _component7, + _state = state; + const { + "filesChange": _filesChange, + getCompilerOptions, + files + } = input; + let selectedIndex = 0; + let previewType = "preview"; + let debounce = false; + const selectedFile = files[selectedIndex]; + render_tag_js_default()(resizable_panes_marko, (0,attr_tag_js_namespaceObject.i)(() => { + (0,attr_tag_js_namespaceObject.a)("left", { + "class": "editor-container", "renderBody": out => { - out.w("

    Marko streams content to your users as soon as it\u2019s ready. No waiting for client side JavaScript bundles or data requests to start rendering. HTML, assets, and images are loaded as soon as possible with asynchronous data loading in as it completes.

    "); + render_tag_js_default()(pane_marko, (0,attr_tag_js_namespaceObject.i)(() => { + (0,attr_tag_js_namespaceObject.a)("actions", { + "renderBody": out => { + render_tag_js_default()(_instance_index_marko, { + "renderBody": (out, _nestedComponentDef, _component2, _state2) => { + var _componentDef = _nestedComponentDef, + _component7 = _component2; + render_tag_js_default()(file_tabs_marko, { + "files": files, + "filesChange": _filesChange, + "selectedIndex": selectedIndex, + "selectedIndexChange": (0,cached_values_namespaceObject.cache)((0,cached_values_namespaceObject.cached)(_component2, []) || (_ => selectedIndex = _)) + }, out, _componentDef, "3"); + } + }, out, _componentDef, "2"); + } + }); + (0,attr_tag_js_namespaceObject.a)("body", { + "renderBody": out => { + render_tag_js_default()(_instance_index_marko, { + "renderBody": (out, _nestedComponentDef2, _component3, _state3) => { + var _componentDef = _nestedComponentDef2, + _component7 = _component3; + let activeEditor = null; + if (activeEditor) { + render_tag_js_default()(_instance_index_marko, { + "renderBody": (out, _nestedComponentDef3, _component4, _state4) => { + var _componentDef = _nestedComponentDef3, + _component7 = _component4; + dynamic_tag_js_default()(out, activeEditor, () => ({ + "value": selectedFile.content, + "filename": selectedFile.path, + "valueChange": (0,cached_values_namespaceObject.cache)((0,cached_values_namespaceObject.cached)(_component4, [selectedFile, files, selectedIndex]) || function (content) { + const modifiedFile = { + ...selectedFile, + content + }; + replace_assignments_default()(_filesChange, [...files.slice(0, selectedIndex), modifiedFile, ...files.slice(selectedIndex + 1)]); + debounce = true; + }) + }), null, null, null, _componentDef, "6"); + } + }, out, _componentDef, "5"); + } + } + }, out, _componentDef, "4"); + } + }); + }), out, _componentDef, "1"); } }); - (0,attr_tag_js_namespaceObject.a)("visual", { + (0,attr_tag_js_namespaceObject.a)("right", { "renderBody": out => { - render_tag_js_default()(scroll_locked_stream_example_index_marko, { - "class": "home-streaming-example" - }, out, _componentDef, "2"); + render_tag_js_default()(pane_marko, (0,attr_tag_js_namespaceObject.i)(() => { + (0,attr_tag_js_namespaceObject.a)("actions", { + "renderBody": out => { + render_tag_js_default()(_instance_index_marko, { + "renderBody": (out, _nestedComponentDef4, _component5, _state5) => { + var _componentDef = _nestedComponentDef4, + _component7 = _component5; + render_tag_js_default()(controllable_select_marko, { + "value": previewType, + "valueChange": (0,cached_values_namespaceObject.cache)((0,cached_values_namespaceObject.cached)(_component5, []) || function (value) { + previewType = value; + debounce = false; + }), + "class": "preview-select", + "renderBody": out => { + out.w(""); + } + }, out, _componentDef, "9"); + render_tag_js_default()(playground_link_marko, { + "files": files + }, out, _componentDef, "13"); + } + }, out, _componentDef, "8"); + } + }); + (0,attr_tag_js_namespaceObject.a)("body", { + "renderBody": out => { + render_tag_js_default()(_instance_index_marko, { + "renderBody": (out, _nestedComponentDef5, _component6, _state6) => { + var _componentDef = _nestedComponentDef5, + _component7 = _component6; + let preview = null; + dynamic_tag_js_default()(out, preview, () => ({ + "type": previewType, + "files": files, + "selectedFile": selectedFile, + "getCompilerOptions": getCompilerOptions, + "debounce": debounce + }), null, null, null, _componentDef, "15"); + } + }, out, _componentDef, "14"); + } + }); + }), out, _componentDef, "7"); } }); - (0,attr_tag_js_namespaceObject.a)("action", { - "href": "https://dev.to/ryansolid/server-rendering-in-javascript-optimizing-performance-1jnk" - }); - }, { - "align": "left", - "class": "home-streaming" }), out, _componentDef, "0"); }, { - t: home_streaming_index_marko_marko_componentType, - i: true -}, home_streaming_index_marko_marko_component); -;// ./index/components/home-hydration/index.marko - -const home_hydration_index_marko_marko_componentType = "NpXSyNze", - home_hydration_index_marko_marko_template = (0,index_js_namespaceObject.t)(home_hydration_index_marko_marko_componentType); -/* harmony default export */ const home_hydration_index_marko = (home_hydration_index_marko_marko_template); + t: repl_index_marko_marko_componentType +}, repl_index_marko_marko_component); +;// ./playground/components/playground.marko +const playground_marko_marko_componentType = "HUU$Znhn", + playground_marko_marko_template = (0,index_js_namespaceObject.t)(playground_marko_marko_componentType); +/* harmony default export */ const playground_marko = (playground_marko_marko_template); -const home_hydration_index_marko_marko_component = {}; -home_hydration_index_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { - render_tag_js_default()(home_feature_block_index_marko, (0,attr_tag_js_namespaceObject.i)(() => { - (0,attr_tag_js_namespaceObject.a)("title", { - "text": "Code Elimination", - "anchorName": "hydration" - }); - (0,attr_tag_js_namespaceObject.a)("content", { - "renderBody": out => { - out.w("

    Marko only sends the code for interactive components to the browser. Its compiler automatically detects which components only need to be rendered on the server. This means less to download and less to execute. Your users can enjoy top tier performance regardless of their devices or networks.

    "); - } - }); - (0,attr_tag_js_namespaceObject.a)("visual", { - "renderBody": out => { - render_tag_js_default()(home_demo_page_index_marko, { - "hydrateAll": true, - "label": "Traditional hydration sends and re-excutes the code for all components", - "class": "home-hydration-example" - }, out, _componentDef, "2"); - render_tag_js_default()(home_demo_page_index_marko, { - "hydratePartial": true, - "label": "Marko's hydration only sends the code for interactive components", - "class": "home-hydration-example" - }, out, _componentDef, "3"); - } - }); - (0,attr_tag_js_namespaceObject.a)("action", { - "href": "https://medium.com/@mlrawlings/maybe-you-dont-need-that-spa-f2c659bc7fec" - }); - }, { - "align": "right", - "class": "home-hydration" - }), out, _componentDef, "0"); -}, { - t: home_hydration_index_marko_marko_componentType, - i: true -}, home_hydration_index_marko_marko_component); -;// ./index/components/home-performance/arrow.svg -/* harmony default export */ const arrow = (__webpack_require__.p + "7c1cc740.svg"); -;// ./index/components/home-performance/index.marko -const home_performance_index_marko_marko_componentType = "zumXQlzg", - home_performance_index_marko_marko_template = (0,index_js_namespaceObject.t)(home_performance_index_marko_marko_componentType); -/* harmony default export */ const home_performance_index_marko = (home_performance_index_marko_marko_template); +const playground_marko_marko_component = { + onCreate() { + this.state = {}; + } +}; +playground_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component2, state, $global) { + var _component = _component2, + _state = state; + var _hashValueReturn = return_default()(_component); + render_tag_js_default()(hash_value_marko, { + "value": (0,cached_values_namespaceObject.cache)((0,cached_values_namespaceObject.cached)(_component, []) || [{ + name: "index.marko", + path: "/components/index.marko", + content: "\n" + }]), + "_return": _hashValueReturn + }, out, _componentDef, "0"); + const { + "valueChange": _valueChange, + value: files + } = _hashValueReturn(); + render_tag_js_default()(repl_index_marko, { + "files": files, + "filesChange": _valueChange + }, out, _componentDef, "1"); +}, { + t: playground_marko_marko_componentType +}, playground_marko_marko_component); +;// ./playground/index.marko +const playground_index_marko_marko_componentType = "MHuPCuWh", + playground_index_marko_marko_template = (0,index_js_namespaceObject.t)(playground_index_marko_marko_componentType); +/* harmony default export */ const playground_index_marko = (playground_index_marko_marko_template); -const home_performance_index_marko_marko_component = {}; -home_performance_index_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { - render_tag_js_default()(home_feature_block_index_marko, (0,attr_tag_js_namespaceObject.i)(() => { - (0,attr_tag_js_namespaceObject.a)("title", { - "text": "Tailored Performance", - "anchorName": "performance" - }); - (0,attr_tag_js_namespaceObject.a)("content", { - "renderBody": out => { - out.w("

    Marko's compiler generates code tailored to where it is going to run. You write your code once and it is optimized for both the server and browser. This is especially apparent on the server where Marko is several times faster than other popular solutions.

    "); - } - }); - (0,attr_tag_js_namespaceObject.a)("visual", { - "renderBody": out => { - out.w(``); - } - }); - (0,attr_tag_js_namespaceObject.a)("action", { - "href": "https://github.com/marko-js/isomorphic-ui-benchmarks", - "text": "See the Benchmarks" - }); - }, { - "class": "home-performance" - }), out, _componentDef, "0"); +const playground_index_marko_marko_component = {}; +playground_index_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { + render_tag_js_default()(app_layout_index_marko, { + "title": "Try online", + "footer": false, + "discord": false, + "renderBody": out => { + render_tag_js_default()(playground_marko, {}, out, _componentDef, "1"); + } + }, out, _componentDef, "0"); + out.w(""); }, { - t: home_performance_index_marko_marko_componentType, + t: playground_index_marko_marko_componentType, i: true -}, home_performance_index_marko_marko_component); -;// ./index/components/home-tooling/screen.png -/* harmony default export */ const screen = (__webpack_require__.p + "92c4e05e.png"); -;// ./index/components/home-tooling/index.marko - -const home_tooling_index_marko_marko_componentType = "ZYtbGNjl", - home_tooling_index_marko_marko_template = (0,index_js_namespaceObject.t)(home_tooling_index_marko_marko_componentType); -/* harmony default export */ const home_tooling_index_marko = (home_tooling_index_marko_marko_template); - - +}, playground_index_marko_marko_component); +;// ./playground/index.marko?server-entry +const playground_index_marko_server_entry_marko_componentType = "gufdGSuf", + playground_index_marko_server_entry_marko_template = (0,index_js_namespaceObject.t)(playground_index_marko_server_entry_marko_componentType); +/* harmony default export */ const playground_index_marko_server_entry = (playground_index_marko_server_entry_marko_template); -const home_tooling_index_marko_marko_component = {}; -home_tooling_index_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { - render_tag_js_default()(home_feature_block_index_marko, (0,attr_tag_js_namespaceObject.i)(() => { - (0,attr_tag_js_namespaceObject.a)("title", { - "text": "Editor Support", - "anchorName": "tooling" - }); - (0,attr_tag_js_namespaceObject.a)("content", { - "renderBody": out => { - out.w("

    Marko provides first-class support for the VSCode editor including syntax highlighting, Autocompletion, Hyperclick to quickly jump to referenced files, and Pretty printing to keep your code readable.

    Community plugins also provide syntax highlighting for Sublime, Atom, Webstorm & others!

    "); +const playground_index_marko_server_entry_crossOriginAttr = new URL(__webpack_require__.p, "file:").protocol === "file:" ? "" : " crossorigin"; +function playground_index_marko_server_entry_renderAssets(out) { + const $global = out.global; + const entries = $global.___entries; + $global.___entries = undefined; + if (entries) { + const buildName = $global.buildName; + const nonce = $global.cspNonce; + const nonceAttr = nonce ? ` nonce=${JSON.stringify(nonce)}` : ""; + const written = $global.___writtenAssets || ($global.___writtenAssets = new Set()); + let scripts = ""; + let styles = ""; + for (const entry of entries) { + const assets = index_js_manifest.getAssets(entry, buildName); + if (assets.js) { + for (const href of assets.js) { + if (!written.has(href)) { + written.add(href); + scripts += ``; + } + } } - }); - (0,attr_tag_js_namespaceObject.a)("visual", { - "class": "home-tooling__screenshot-window", - "renderBody": out => { - out.w(`
    `); + if (assets.css) { + for (const href of assets.css) { + if (!written.has(href)) { + written.add(href); + styles += ``; + } + } } - }); - (0,attr_tag_js_namespaceObject.a)("action", { - "href": "/docs/editor-plugins", - "text": "View editor plugins" - }); - }, { - "align": "right", - "class": "home-tooling" - }), out, _componentDef, "0"); -}, { - t: home_tooling_index_marko_marko_componentType, - i: true -}, home_tooling_index_marko_marko_component); -// EXTERNAL MODULE: external "gh-got" -var external_gh_got_ = __webpack_require__(724); -var external_gh_got_default = /*#__PURE__*/__webpack_require__.n(external_gh_got_); -;// ../logos/stackoverflow.svg -/* harmony default export */ const stackoverflow = (__webpack_require__.p + "0bfc2ee7.svg"); -;// ../logos/twitter.svg -/* harmony default export */ const twitter = (__webpack_require__.p + "82b09e37.svg"); -;// external "marko/dist/core-tags/core/await/renderer.js" -const await_renderer_js_namespaceObject = require("marko/dist/core-tags/core/await/renderer.js"); -var await_renderer_js_default = /*#__PURE__*/__webpack_require__.n(await_renderer_js_namespaceObject); -;// ./index/components/home-community/index.marko - -const home_community_index_marko_marko_componentType = "rsiRtNhi", - home_community_index_marko_marko_template = (0,index_js_namespaceObject.t)(home_community_index_marko_marko_componentType); -/* harmony default export */ const home_community_index_marko = (home_community_index_marko_marko_template); - - + } + out.write(scripts + styles); + } +} +const playground_index_marko_server_entry_marko_component = {}; +playground_index_marko_server_entry_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { + out.global.___renderAssets = playground_index_marko_server_entry_renderAssets; + (out.global.___entries || (out.global.___entries = [])).push("playground_mdf-"); + render_tag_js_default()((_flush_here_and_after_js_default()), { + "renderBody": out => { + const outAlias = out; + outAlias.global.___renderAssets && outAlias.global.___renderAssets(outAlias); + } + }, out, _componentDef, "0"); + render_tag_js_default()(playground_index_marko, input, out, _componentDef, "1"); + render_tag_js_default()((init_components_tag_js_default()), {}, out, _componentDef, "2"); + render_tag_js_default()((reorderer_renderer_js_default()), {}, out, _componentDef, "3"); +}, { + t: playground_index_marko_server_entry_marko_componentType, + i: true +}, playground_index_marko_server_entry_marko_component); +;// ./try-online-new/index.marko +const try_online_new_index_marko_marko_componentType = "kokUincl", + try_online_new_index_marko_marko_template = (0,index_js_namespaceObject.t)(try_online_new_index_marko_marko_componentType); +/* harmony default export */ const try_online_new_index_marko = (try_online_new_index_marko_marko_template); +const try_online_new_index_marko_marko_component = {}; +try_online_new_index_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { + out.w(""); +}, { + t: try_online_new_index_marko_marko_componentType, + i: true +}, try_online_new_index_marko_marko_component); +;// ./try-online-new/index.marko?server-entry +const try_online_new_index_marko_server_entry_marko_componentType = "jBxauMAl", + try_online_new_index_marko_server_entry_marko_template = (0,index_js_namespaceObject.t)(try_online_new_index_marko_server_entry_marko_componentType); +/* harmony default export */ const try_online_new_index_marko_server_entry = (try_online_new_index_marko_server_entry_marko_template); -const home_community_index_marko_marko_component = {}; -home_community_index_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { - render_tag_js_default()(home_feature_block_index_marko, (0,attr_tag_js_namespaceObject.i)(() => { - (0,attr_tag_js_namespaceObject.a)("title", { - "text": "Join the Community", - "anchorName": "community", - "class": "home-community__title" - }); - (0,attr_tag_js_namespaceObject.a)("content", { - "renderBody": out => { - out.w("

    Need help? Want to contribute? Get involved in the Marko Community!

    "); - } - }); - (0,attr_tag_js_namespaceObject.a)("visual", { - "renderBody": out => { - out.w(`
    Ask & answer StackOverflow questions with the marko tag
    Hang out in our Discord server, ask questions, & discuss project direction
    Tweet to @MarkoDevTeam or with the #markojs hashtag
    Browse the code, open issues, & make pull requests on the GitHub repo
    `); +const try_online_new_index_marko_server_entry_crossOriginAttr = new URL(__webpack_require__.p, "file:").protocol === "file:" ? "" : " crossorigin"; +function try_online_new_index_marko_server_entry_renderAssets(out) { + const $global = out.global; + const entries = $global.___entries; + $global.___entries = undefined; + if (entries) { + const buildName = $global.buildName; + const nonce = $global.cspNonce; + const nonceAttr = nonce ? ` nonce=${JSON.stringify(nonce)}` : ""; + const written = $global.___writtenAssets || ($global.___writtenAssets = new Set()); + let scripts = ""; + let styles = ""; + for (const entry of entries) { + const assets = index_js_manifest.getAssets(entry, buildName); + if (assets.js) { + for (const href of assets.js) { + if (!written.has(href)) { + written.add(href); + scripts += ``; + } + } } - }); - (0,attr_tag_js_namespaceObject.a)("breakout", { - "renderBody": out => { - out.w("
    "); - render_tag_js_default()((await_renderer_js_default()), (0,attr_tag_js_namespaceObject.i)(() => { - (0,attr_tag_js_namespaceObject.a)("then", { - "renderBody": (out, { - body - }) => { - let _keyValue = 0; - for (const contributor of of_fallback_js_default()(body)) { - const _keyScope = `[${_keyValue++}]`; - out.w(``); - } - } - }); - (0,attr_tag_js_namespaceObject.a)("catch", {}); - }, { - "_provider": external_gh_got_default()('/repos/marko-js/marko/contributors?per_page=100'), - "_name": "ghGot('/repos/marko-js/marko/contributors?per_page=100')" - }), out, _componentDef, "25"); - out.w("
    "); + if (assets.css) { + for (const href of assets.css) { + if (!written.has(href)) { + written.add(href); + styles += ``; + } + } } - }); - }, { - "colors": ["#fff"] - }), out, _componentDef, "0"); -}, { - t: home_community_index_marko_marko_componentType, - i: true -}, home_community_index_marko_marko_component); -;// ./index/index.marko + } + out.write(scripts + styles); + } +} -const index_index_marko_marko_componentType = "riZjSFCe", - index_index_marko_marko_template = (0,index_js_namespaceObject.t)(index_index_marko_marko_componentType); -/* harmony default export */ const index_index_marko = (index_index_marko_marko_template); +const try_online_new_index_marko_server_entry_marko_component = {}; +try_online_new_index_marko_server_entry_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { + out.global.___renderAssets = try_online_new_index_marko_server_entry_renderAssets; + (out.global.___entries || (out.global.___entries = [])).push("try-online-new_1yH9"); + render_tag_js_default()((_flush_here_and_after_js_default()), { + "renderBody": out => { + const outAlias = out; + outAlias.global.___renderAssets && outAlias.global.___renderAssets(outAlias); + } + }, out, _componentDef, "0"); + render_tag_js_default()(try_online_new_index_marko, input, out, _componentDef, "1"); + render_tag_js_default()((init_components_tag_js_default()), {}, out, _componentDef, "2"); + render_tag_js_default()((reorderer_renderer_js_default()), {}, out, _componentDef, "3"); +}, { + t: try_online_new_index_marko_server_entry_marko_componentType, + i: true +}, try_online_new_index_marko_server_entry_marko_component); +;// ../../node_modules/@marko-tags/subscribe/index.marko +const subscribe_index_marko_marko_componentType = "DI$EjOwk", + subscribe_index_marko_marko_template = (0,index_js_namespaceObject.t)(subscribe_index_marko_marko_componentType); +/* harmony default export */ const subscribe_index_marko = (subscribe_index_marko_marko_template); +const subscribe_index_marko_marko_component = { + onMount() { + this.listen(this.input); + }, + onInput(input) { + if (this.target && this.target !== input.to) { + this.onDestroy(); + this.listen(input); + } + }, + onDestroy() { + this.subscription.removeAllListeners(); + }, + listen(input) { + var target = this.target = input.to; + var subscription = this.subscription = this.subscribeTo(target); + var events = input.__events; + var len = events.length; + for (var i = 0; i < len; i += 2) { + var method = events[i]; + var name = events[i + 1]; + subscription[method](name, this.emit.bind(this, name)); + } + } +}; +subscribe_index_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) {}, { + t: subscribe_index_marko_marko_componentType +}, subscribe_index_marko_marko_component); +;// ./try-online/components/loader/index.marko +const loader_index_marko_marko_componentType = "YfGHQdzh", + loader_index_marko_marko_template = (0,index_js_namespaceObject.t)(loader_index_marko_marko_componentType); +/* harmony default export */ const loader_index_marko = (loader_index_marko_marko_template); -const index_index_marko_marko_component = {}; -index_index_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { - render_tag_js_default()(app_layout_index_marko, { - "v6": input.v6, - "class": "home", - "renderBody": out => { - render_tag_js_default()(home_hero_index_marko, {}, out, _componentDef, "1"); - render_tag_js_default()(home_features_index_marko, {}, out, _componentDef, "2"); - render_tag_js_default()(home_language_index_marko, { - "v6": input.v6 - }, out, _componentDef, "3"); - render_tag_js_default()(home_streaming_index_marko, {}, out, _componentDef, "4"); - render_tag_js_default()(home_hydration_index_marko, {}, out, _componentDef, "5"); - render_tag_js_default()(home_performance_index_marko, {}, out, _componentDef, "6"); - render_tag_js_default()(home_tooling_index_marko, {}, out, _componentDef, "7"); - render_tag_js_default()(home_community_index_marko, {}, out, _componentDef, "8"); +const loader_index_marko_marko_component = { + onCreate() { + this.state = { + component: undefined, + show: false + }; + }, + async onMount() { + const rootComponent = false && (0); + await rootComponent.loading; + this.state.component = rootComponent; + this.checkIfLargeEnough(); + }, + checkIfLargeEnough() { + var windowSize = document.body.innerWidth || document.body.clientWidth; + this.state.show = windowSize > 1000; + } +}; +loader_index_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { + if (state.component) { + if (state.show) { + dynamic_tag_js_default()(out, state.component, () => ({ + "examples": input.examples + }), null, null, null, _componentDef, "0"); + } else { + render_tag_js_default()(subscribe_index_marko, { + "to": false && 0, + "__events": ["on", "resize"] + }, out, _componentDef, "1", [["resize", "checkIfLargeEnough", false]]); + out.w("

    Screen width too small

    Please increase the window size or rotate to load.

    If you are on a mobile phone, please open on a desktop

    View Docs

    "); } - }, out, _componentDef, "0"); + } else { + out.w("
    "); + } }, { - t: index_index_marko_marko_componentType, - i: true -}, index_index_marko_marko_component); -;// ./v6/index.marko + t: loader_index_marko_marko_componentType +}, loader_index_marko_marko_component); +;// ./try-online/index.marko -const v6_index_marko_marko_componentType = "hbaVTqcf", - v6_index_marko_marko_template = (0,index_js_namespaceObject.t)(v6_index_marko_marko_componentType); -/* harmony default export */ const v6_index_marko = (v6_index_marko_marko_template); +const try_online_index_marko_marko_componentType = "hnzzKbLg", + try_online_index_marko_marko_template = (0,index_js_namespaceObject.t)(try_online_index_marko_marko_componentType); +/* harmony default export */ const try_online_index_marko = (try_online_index_marko_marko_template); -const v6_index_marko_marko_component = {}; -v6_index_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { - render_tag_js_default()(index_index_marko, { - "v6": true +const try_online_index_marko_marko_component = {}; +try_online_index_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { + render_tag_js_default()(app_layout_index_marko, { + "title": "Try online", + "footer": false, + "discord": false, + "renderBody": out => { + render_tag_js_default()(loader_index_marko, {}, out, _componentDef, "1"); + } }, out, _componentDef, "0"); }, { - t: v6_index_marko_marko_componentType, + t: try_online_index_marko_marko_componentType, i: true -}, v6_index_marko_marko_component); -;// ./v6/index.marko?server-entry +}, try_online_index_marko_marko_component); +;// ./try-online/index.marko?server-entry -const v6_index_marko_server_entry_marko_componentType = "IYYObaXi", - v6_index_marko_server_entry_marko_template = (0,index_js_namespaceObject.t)(v6_index_marko_server_entry_marko_componentType); -/* harmony default export */ const v6_index_marko_server_entry = (v6_index_marko_server_entry_marko_template); +const try_online_index_marko_server_entry_marko_componentType = "xQvoHnzm", + try_online_index_marko_server_entry_marko_template = (0,index_js_namespaceObject.t)(try_online_index_marko_server_entry_marko_componentType); +/* harmony default export */ const try_online_index_marko_server_entry = (try_online_index_marko_server_entry_marko_template); -const v6_index_marko_server_entry_crossOriginAttr = new URL(__webpack_require__.p, "file:").protocol === "file:" ? "" : " crossorigin"; -function v6_index_marko_server_entry_renderAssets(out) { +const try_online_index_marko_server_entry_crossOriginAttr = new URL(__webpack_require__.p, "file:").protocol === "file:" ? "" : " crossorigin"; +function try_online_index_marko_server_entry_renderAssets(out) { const $global = out.global; const entries = $global.___entries; $global.___entries = undefined; @@ -2701,7 +2683,7 @@ function v6_index_marko_server_entry_renderAssets(out) { for (const href of assets.js) { if (!written.has(href)) { written.add(href); - scripts += ``; + scripts += ``; } } } @@ -2722,33 +2704,51 @@ function v6_index_marko_server_entry_renderAssets(out) { -const v6_index_marko_server_entry_marko_component = {}; -v6_index_marko_server_entry_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { - out.global.___renderAssets = v6_index_marko_server_entry_renderAssets; - (out.global.___entries || (out.global.___entries = [])).push("v6_YkD7"); +const try_online_index_marko_server_entry_marko_component = {}; +try_online_index_marko_server_entry_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { + out.global.___renderAssets = try_online_index_marko_server_entry_renderAssets; + (out.global.___entries || (out.global.___entries = [])).push("try-online_gkPN"); render_tag_js_default()((_flush_here_and_after_js_default()), { "renderBody": out => { const outAlias = out; outAlias.global.___renderAssets && outAlias.global.___renderAssets(outAlias); } }, out, _componentDef, "0"); - render_tag_js_default()(v6_index_marko, input, out, _componentDef, "1"); - render_tag_js_default()((init_components_tag_js_default()), {}, out, _componentDef, "2"); - render_tag_js_default()((reorderer_renderer_js_default()), {}, out, _componentDef, "3"); + render_tag_js_default()(try_online_index_marko, input, out, _componentDef, "1"); + render_tag_js_default()((init_components_tag_js_default()), {}, out, _componentDef, "2"); + render_tag_js_default()((reorderer_renderer_js_default()), {}, out, _componentDef, "3"); +}, { + t: try_online_index_marko_server_entry_marko_componentType, + i: true +}, try_online_index_marko_server_entry_marko_component); +;// ./v6/index.marko + +const v6_index_marko_marko_componentType = "hbaVTqcf", + v6_index_marko_marko_template = (0,index_js_namespaceObject.t)(v6_index_marko_marko_componentType); +/* harmony default export */ const v6_index_marko = (v6_index_marko_marko_template); + + + + +const v6_index_marko_marko_component = {}; +v6_index_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { + render_tag_js_default()(index_index_marko, { + "v6": true + }, out, _componentDef, "0"); }, { - t: v6_index_marko_server_entry_marko_componentType, + t: v6_index_marko_marko_componentType, i: true -}, v6_index_marko_server_entry_marko_component); -;// ./index/index.marko?server-entry +}, v6_index_marko_marko_component); +;// ./v6/index.marko?server-entry -const index_index_marko_server_entry_marko_componentType = "oHUNYdtc", - index_index_marko_server_entry_marko_template = (0,index_js_namespaceObject.t)(index_index_marko_server_entry_marko_componentType); -/* harmony default export */ const index_index_marko_server_entry = (index_index_marko_server_entry_marko_template); +const v6_index_marko_server_entry_marko_componentType = "IYYObaXi", + v6_index_marko_server_entry_marko_template = (0,index_js_namespaceObject.t)(v6_index_marko_server_entry_marko_componentType); +/* harmony default export */ const v6_index_marko_server_entry = (v6_index_marko_server_entry_marko_template); -const index_index_marko_server_entry_crossOriginAttr = new URL(__webpack_require__.p, "file:").protocol === "file:" ? "" : " crossorigin"; -function index_index_marko_server_entry_renderAssets(out) { +const v6_index_marko_server_entry_crossOriginAttr = new URL(__webpack_require__.p, "file:").protocol === "file:" ? "" : " crossorigin"; +function v6_index_marko_server_entry_renderAssets(out) { const $global = out.global; const entries = $global.___entries; $global.___entries = undefined; @@ -2765,7 +2765,7 @@ function index_index_marko_server_entry_renderAssets(out) { for (const href of assets.js) { if (!written.has(href)) { written.add(href); - scripts += ``; + scripts += ``; } } } @@ -2786,23 +2786,23 @@ function index_index_marko_server_entry_renderAssets(out) { -const index_index_marko_server_entry_marko_component = {}; -index_index_marko_server_entry_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { - out.global.___renderAssets = index_index_marko_server_entry_renderAssets; - (out.global.___entries || (out.global.___entries = [])).push("index_WEBG"); +const v6_index_marko_server_entry_marko_component = {}; +v6_index_marko_server_entry_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { + out.global.___renderAssets = v6_index_marko_server_entry_renderAssets; + (out.global.___entries || (out.global.___entries = [])).push("v6_YkD7"); render_tag_js_default()((_flush_here_and_after_js_default()), { "renderBody": out => { const outAlias = out; outAlias.global.___renderAssets && outAlias.global.___renderAssets(outAlias); } }, out, _componentDef, "0"); - render_tag_js_default()(index_index_marko, input, out, _componentDef, "1"); + render_tag_js_default()(v6_index_marko, input, out, _componentDef, "1"); render_tag_js_default()((init_components_tag_js_default()), {}, out, _componentDef, "2"); render_tag_js_default()((reorderer_renderer_js_default()), {}, out, _componentDef, "3"); }, { - t: index_index_marko_server_entry_marko_componentType, + t: v6_index_marko_server_entry_marko_componentType, i: true -}, index_index_marko_server_entry_marko_component); +}, v6_index_marko_server_entry_marko_component); ;// ../components/code-block-marko/index.marko const code_block_marko_index_marko_marko_componentType = "wHhdTqje", @@ -4859,46 +4859,261 @@ function _name_index_marko_server_entry_renderAssets(out) { -const _name_index_marko_server_entry_marko_component = {}; -_name_index_marko_server_entry_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { - out.global.___renderAssets = _name_index_marko_server_entry_renderAssets; - (out.global.___entries || (out.global.___entries = [])).push(":name_z0HT"); - render_tag_js_default()((_flush_here_and_after_js_default()), { +const _name_index_marko_server_entry_marko_component = {}; +_name_index_marko_server_entry_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { + out.global.___renderAssets = _name_index_marko_server_entry_renderAssets; + (out.global.___entries || (out.global.___entries = [])).push(":name_z0HT"); + render_tag_js_default()((_flush_here_and_after_js_default()), { + "renderBody": out => { + const outAlias = out; + outAlias.global.___renderAssets && outAlias.global.___renderAssets(outAlias); + } + }, out, _componentDef, "0"); + render_tag_js_default()(_name_index_marko, input, out, _componentDef, "1"); + render_tag_js_default()((init_components_tag_js_default()), {}, out, _componentDef, "2"); + render_tag_js_default()((reorderer_renderer_js_default()), {}, out, _componentDef, "3"); +}, { + t: _name_index_marko_server_entry_marko_componentType, + i: true +}, _name_index_marko_server_entry_marko_component); +;// ./docs/v6/index.marko + +const docs_v6_index_marko_marko_componentType = "AMmYdPFl", + docs_v6_index_marko_marko_template = (0,index_js_namespaceObject.t)(docs_v6_index_marko_marko_componentType); +/* harmony default export */ const docs_v6_index_marko = (docs_v6_index_marko_marko_template); + +const docs_v6_index_marko_marko_component = {}; +docs_v6_index_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { + out.w(""); +}, { + t: docs_v6_index_marko_marko_componentType, + i: true +}, docs_v6_index_marko_marko_component); +;// ./docs/v6/index.marko?server-entry + +const docs_v6_index_marko_server_entry_marko_componentType = "N_UbfMue", + docs_v6_index_marko_server_entry_marko_template = (0,index_js_namespaceObject.t)(docs_v6_index_marko_server_entry_marko_componentType); +/* harmony default export */ const docs_v6_index_marko_server_entry = (docs_v6_index_marko_server_entry_marko_template); + + + +const docs_v6_index_marko_server_entry_crossOriginAttr = new URL(__webpack_require__.p, "file:").protocol === "file:" ? "" : " crossorigin"; +function docs_v6_index_marko_server_entry_renderAssets(out) { + const $global = out.global; + const entries = $global.___entries; + $global.___entries = undefined; + if (entries) { + const buildName = $global.buildName; + const nonce = $global.cspNonce; + const nonceAttr = nonce ? ` nonce=${JSON.stringify(nonce)}` : ""; + const written = $global.___writtenAssets || ($global.___writtenAssets = new Set()); + let scripts = ""; + let styles = ""; + for (const entry of entries) { + const assets = index_js_manifest.getAssets(entry, buildName); + if (assets.js) { + for (const href of assets.js) { + if (!written.has(href)) { + written.add(href); + scripts += ``; + } + } + } + if (assets.css) { + for (const href of assets.css) { + if (!written.has(href)) { + written.add(href); + styles += ``; + } + } + } + } + out.write(scripts + styles); + } +} + + + + + +const docs_v6_index_marko_server_entry_marko_component = {}; +docs_v6_index_marko_server_entry_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { + out.global.___renderAssets = docs_v6_index_marko_server_entry_renderAssets; + (out.global.___entries || (out.global.___entries = [])).push("v6_4cho"); + render_tag_js_default()((_flush_here_and_after_js_default()), { + "renderBody": out => { + const outAlias = out; + outAlias.global.___renderAssets && outAlias.global.___renderAssets(outAlias); + } + }, out, _componentDef, "0"); + render_tag_js_default()(docs_v6_index_marko, input, out, _componentDef, "1"); + render_tag_js_default()((init_components_tag_js_default()), {}, out, _componentDef, "2"); + render_tag_js_default()((reorderer_renderer_js_default()), {}, out, _componentDef, "3"); +}, { + t: docs_v6_index_marko_server_entry_marko_componentType, + i: true +}, docs_v6_index_marko_server_entry_marko_component); +;// ./playground/v6/index.marko + +const playground_v6_index_marko_marko_componentType = "XvQifyhn", + playground_v6_index_marko_marko_template = (0,index_js_namespaceObject.t)(playground_v6_index_marko_marko_componentType); +/* harmony default export */ const playground_v6_index_marko = (playground_v6_index_marko_marko_template); + +const playground_v6_index_marko_marko_component = {}; +playground_v6_index_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { + out.w(""); +}, { + t: playground_v6_index_marko_marko_componentType, + i: true +}, playground_v6_index_marko_marko_component); +;// ./playground/v6/index.marko?server-entry + +const playground_v6_index_marko_server_entry_marko_componentType = "FrpMAZmh", + playground_v6_index_marko_server_entry_marko_template = (0,index_js_namespaceObject.t)(playground_v6_index_marko_server_entry_marko_componentType); +/* harmony default export */ const playground_v6_index_marko_server_entry = (playground_v6_index_marko_server_entry_marko_template); + + + +const playground_v6_index_marko_server_entry_crossOriginAttr = new URL(__webpack_require__.p, "file:").protocol === "file:" ? "" : " crossorigin"; +function playground_v6_index_marko_server_entry_renderAssets(out) { + const $global = out.global; + const entries = $global.___entries; + $global.___entries = undefined; + if (entries) { + const buildName = $global.buildName; + const nonce = $global.cspNonce; + const nonceAttr = nonce ? ` nonce=${JSON.stringify(nonce)}` : ""; + const written = $global.___writtenAssets || ($global.___writtenAssets = new Set()); + let scripts = ""; + let styles = ""; + for (const entry of entries) { + const assets = index_js_manifest.getAssets(entry, buildName); + if (assets.js) { + for (const href of assets.js) { + if (!written.has(href)) { + written.add(href); + scripts += ``; + } + } + } + if (assets.css) { + for (const href of assets.css) { + if (!written.has(href)) { + written.add(href); + styles += ``; + } + } + } + } + out.write(scripts + styles); + } +} + + + + + +const playground_v6_index_marko_server_entry_marko_component = {}; +playground_v6_index_marko_server_entry_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { + out.global.___renderAssets = playground_v6_index_marko_server_entry_renderAssets; + (out.global.___entries || (out.global.___entries = [])).push("v6_--pM"); + render_tag_js_default()((_flush_here_and_after_js_default()), { + "renderBody": out => { + const outAlias = out; + outAlias.global.___renderAssets && outAlias.global.___renderAssets(outAlias); + } + }, out, _componentDef, "0"); + render_tag_js_default()(playground_v6_index_marko, input, out, _componentDef, "1"); + render_tag_js_default()((init_components_tag_js_default()), {}, out, _componentDef, "2"); + render_tag_js_default()((reorderer_renderer_js_default()), {}, out, _componentDef, "3"); +}, { + t: playground_v6_index_marko_server_entry_marko_componentType, + i: true +}, playground_v6_index_marko_server_entry_marko_component); +;// external "@marko/translator-tags" +const translator_tags_namespaceObject = require("@marko/translator-tags"); +;// ./v6/playground/components/playground-6.marko + +const playground_6_marko_marko_componentType = "TrmYoaCc", + playground_6_marko_marko_template = (0,index_js_namespaceObject.t)(playground_6_marko_marko_componentType); +/* harmony default export */ const playground_6_marko = (playground_6_marko_marko_template); + + + + + + + + +const playground_6_marko_marko_component = { + onCreate() { + this.state = {}; + } +}; +playground_6_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component2, state, $global) { + var _component = _component2, + _state = state; + var _HashValueReturn = return_default()(_component); + render_tag_js_default()(hash_value_marko, { + "value": (0,cached_values_namespaceObject.cache)((0,cached_values_namespaceObject.cached)(_component, []) || [{ + name: "index.marko", + path: "/components/index.marko", + content: "\n" + }]), + "_return": _HashValueReturn + }, out, _componentDef, "0"); + const { + "valueChange": _valueChange, + value: files + } = _HashValueReturn(); + render_tag_js_default()(repl_index_marko, { + "getCompilerOptions": (0,cached_values_namespaceObject.cache)((0,cached_values_namespaceObject.cached)(_component, []) || function () { + return { + translator: translator_tags_namespaceObject, + optimize: false + }; + }), + "files": files, + "filesChange": _valueChange + }, out, _componentDef, "1"); +}, { + t: playground_6_marko_marko_componentType +}, playground_6_marko_marko_component); +;// ./v6/playground/index.marko + +const v6_playground_index_marko_marko_componentType = "EefpJQab", + v6_playground_index_marko_marko_template = (0,index_js_namespaceObject.t)(v6_playground_index_marko_marko_componentType); +/* harmony default export */ const v6_playground_index_marko = (v6_playground_index_marko_marko_template); + + + + +const v6_playground_index_marko_marko_component = {}; +v6_playground_index_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { + render_tag_js_default()(app_layout_index_marko, { + "title": "Try online", + "footer": false, + "discord": false, + "v6": true, "renderBody": out => { - const outAlias = out; - outAlias.global.___renderAssets && outAlias.global.___renderAssets(outAlias); + render_tag_js_default()(playground_6_marko, {}, out, _componentDef, "1"); } }, out, _componentDef, "0"); - render_tag_js_default()(_name_index_marko, input, out, _componentDef, "1"); - render_tag_js_default()((init_components_tag_js_default()), {}, out, _componentDef, "2"); - render_tag_js_default()((reorderer_renderer_js_default()), {}, out, _componentDef, "3"); -}, { - t: _name_index_marko_server_entry_marko_componentType, - i: true -}, _name_index_marko_server_entry_marko_component); -;// ./docs/v6/index.marko - -const docs_v6_index_marko_marko_componentType = "AMmYdPFl", - docs_v6_index_marko_marko_template = (0,index_js_namespaceObject.t)(docs_v6_index_marko_marko_componentType); -/* harmony default export */ const docs_v6_index_marko = (docs_v6_index_marko_marko_template); - -const docs_v6_index_marko_marko_component = {}; -docs_v6_index_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { - out.w(""); + out.w(""); }, { - t: docs_v6_index_marko_marko_componentType, + t: v6_playground_index_marko_marko_componentType, i: true -}, docs_v6_index_marko_marko_component); -;// ./docs/v6/index.marko?server-entry +}, v6_playground_index_marko_marko_component); +;// ./v6/playground/index.marko?server-entry -const docs_v6_index_marko_server_entry_marko_componentType = "N_UbfMue", - docs_v6_index_marko_server_entry_marko_template = (0,index_js_namespaceObject.t)(docs_v6_index_marko_server_entry_marko_componentType); -/* harmony default export */ const docs_v6_index_marko_server_entry = (docs_v6_index_marko_server_entry_marko_template); +const v6_playground_index_marko_server_entry_marko_componentType = "UBSvwuej", + v6_playground_index_marko_server_entry_marko_template = (0,index_js_namespaceObject.t)(v6_playground_index_marko_server_entry_marko_componentType); +/* harmony default export */ const v6_playground_index_marko_server_entry = (v6_playground_index_marko_server_entry_marko_template); -const docs_v6_index_marko_server_entry_crossOriginAttr = new URL(__webpack_require__.p, "file:").protocol === "file:" ? "" : " crossorigin"; -function docs_v6_index_marko_server_entry_renderAssets(out) { +const v6_playground_index_marko_server_entry_crossOriginAttr = new URL(__webpack_require__.p, "file:").protocol === "file:" ? "" : " crossorigin"; +function v6_playground_index_marko_server_entry_renderAssets(out) { const $global = out.global; const entries = $global.___entries; $global.___entries = undefined; @@ -4915,7 +5130,7 @@ function docs_v6_index_marko_server_entry_renderAssets(out) { for (const href of assets.js) { if (!written.has(href)) { written.add(href); - scripts += ``; + scripts += ``; } } } @@ -4936,46 +5151,106 @@ function docs_v6_index_marko_server_entry_renderAssets(out) { -const docs_v6_index_marko_server_entry_marko_component = {}; -docs_v6_index_marko_server_entry_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { - out.global.___renderAssets = docs_v6_index_marko_server_entry_renderAssets; - (out.global.___entries || (out.global.___entries = [])).push("v6_4cho"); +const v6_playground_index_marko_server_entry_marko_component = {}; +v6_playground_index_marko_server_entry_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { + out.global.___renderAssets = v6_playground_index_marko_server_entry_renderAssets; + (out.global.___entries || (out.global.___entries = [])).push("playground_E8TY"); render_tag_js_default()((_flush_here_and_after_js_default()), { "renderBody": out => { const outAlias = out; outAlias.global.___renderAssets && outAlias.global.___renderAssets(outAlias); } }, out, _componentDef, "0"); - render_tag_js_default()(docs_v6_index_marko, input, out, _componentDef, "1"); + render_tag_js_default()(v6_playground_index_marko, input, out, _componentDef, "1"); render_tag_js_default()((init_components_tag_js_default()), {}, out, _componentDef, "2"); render_tag_js_default()((reorderer_renderer_js_default()), {}, out, _componentDef, "3"); }, { - t: docs_v6_index_marko_server_entry_marko_componentType, + t: v6_playground_index_marko_server_entry_marko_componentType, i: true -}, docs_v6_index_marko_server_entry_marko_component); -;// ./playground/v6/index.marko +}, v6_playground_index_marko_server_entry_marko_component); +;// ./v6/tutorials/tutorials.js +/* harmony default export */ const tutorials = ({ + loops: { + title: 'Loops', + description: 'Loops are a way to repeat a block of code multiple times.', + level: 'beginner', + time: '5 minutes', + category: 'basics', + steps: [{ + title: 'For ... of', + content: 'The for tag with an of attribute is used to loop through an array.', + before: [{ + name: "index.marko", + path: "/components/index.marko", + content: "
      \n
    • One
    • \n
    • Two
    • \n
    • Three
    • \n
    " + }], + after: [{ + name: "index.marko", + path: "/components/index.marko", + content: `
      \n \n
    • \${text}
    • \n \n
    ` + }] + }, { + title: 'For ... in', + content: 'The for tag with an in attribute is used to loop through an object\'s keys.', + before: [{ + name: "index.marko", + path: "/components/index.marko", + content: `
      \n
    • One: 1
    • \n
    • Two: 2
    • \n
    • Three: 3
    • \n
    ` + }], + after: [{ + name: "index.marko", + path: "/components/index.marko", + content: `
      \n \n
    • \${key}: \${value}
    • \n \n
    ` + }] + }] + } +}); +;// ./v6/tutorials/index.marko -const playground_v6_index_marko_marko_componentType = "XvQifyhn", - playground_v6_index_marko_marko_template = (0,index_js_namespaceObject.t)(playground_v6_index_marko_marko_componentType); -/* harmony default export */ const playground_v6_index_marko = (playground_v6_index_marko_marko_template); +const tutorials_index_marko_marko_componentType = "EdRjBJGi", + tutorials_index_marko_marko_template = (0,index_js_namespaceObject.t)(tutorials_index_marko_marko_componentType); +/* harmony default export */ const tutorials_index_marko = (tutorials_index_marko_marko_template); -const playground_v6_index_marko_marko_component = {}; -playground_v6_index_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { - out.w(""); + + + + + +const tutorials_index_marko_marko_component = {}; +tutorials_index_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { + render_tag_js_default()(app_layout_index_marko, { + "title": "Tutorials", + "footer": false, + "discord": false, + "v6": true, + "renderBody": out => { + out.w("

    Tutorials

    "); + for (const name in tutorials) { + const { + title, + description, + level, + time + } = tutorials[name]; + const _keyScope = `[${name}]`; + out.w(`${(0,escape_xml_js_namespaceObject.x)(title)}${(0,escape_xml_js_namespaceObject.x)(description)}${(0,escape_xml_js_namespaceObject.x)(level)}${(0,escape_xml_js_namespaceObject.x)(time)}`); + } + } + }, out, _componentDef, "0"); }, { - t: playground_v6_index_marko_marko_componentType, + t: tutorials_index_marko_marko_componentType, i: true -}, playground_v6_index_marko_marko_component); -;// ./playground/v6/index.marko?server-entry +}, tutorials_index_marko_marko_component); +;// ./v6/tutorials/index.marko?server-entry -const playground_v6_index_marko_server_entry_marko_componentType = "FrpMAZmh", - playground_v6_index_marko_server_entry_marko_template = (0,index_js_namespaceObject.t)(playground_v6_index_marko_server_entry_marko_componentType); -/* harmony default export */ const playground_v6_index_marko_server_entry = (playground_v6_index_marko_server_entry_marko_template); +const tutorials_index_marko_server_entry_marko_componentType = "toXd_ZKb", + tutorials_index_marko_server_entry_marko_template = (0,index_js_namespaceObject.t)(tutorials_index_marko_server_entry_marko_componentType); +/* harmony default export */ const tutorials_index_marko_server_entry = (tutorials_index_marko_server_entry_marko_template); -const playground_v6_index_marko_server_entry_crossOriginAttr = new URL(__webpack_require__.p, "file:").protocol === "file:" ? "" : " crossorigin"; -function playground_v6_index_marko_server_entry_renderAssets(out) { +const tutorials_index_marko_server_entry_crossOriginAttr = new URL(__webpack_require__.p, "file:").protocol === "file:" ? "" : " crossorigin"; +function tutorials_index_marko_server_entry_renderAssets(out) { const $global = out.global; const entries = $global.___entries; $global.___entries = undefined; @@ -4992,7 +5267,7 @@ function playground_v6_index_marko_server_entry_renderAssets(out) { for (const href of assets.js) { if (!written.has(href)) { written.add(href); - scripts += ``; + scripts += ``; } } } @@ -5013,23 +5288,23 @@ function playground_v6_index_marko_server_entry_renderAssets(out) { -const playground_v6_index_marko_server_entry_marko_component = {}; -playground_v6_index_marko_server_entry_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { - out.global.___renderAssets = playground_v6_index_marko_server_entry_renderAssets; - (out.global.___entries || (out.global.___entries = [])).push("v6_--pM"); +const tutorials_index_marko_server_entry_marko_component = {}; +tutorials_index_marko_server_entry_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { + out.global.___renderAssets = tutorials_index_marko_server_entry_renderAssets; + (out.global.___entries || (out.global.___entries = [])).push("tutorials_p6eY"); render_tag_js_default()((_flush_here_and_after_js_default()), { "renderBody": out => { const outAlias = out; outAlias.global.___renderAssets && outAlias.global.___renderAssets(outAlias); } }, out, _componentDef, "0"); - render_tag_js_default()(playground_v6_index_marko, input, out, _componentDef, "1"); + render_tag_js_default()(tutorials_index_marko, input, out, _componentDef, "1"); render_tag_js_default()((init_components_tag_js_default()), {}, out, _componentDef, "2"); render_tag_js_default()((reorderer_renderer_js_default()), {}, out, _componentDef, "3"); }, { - t: playground_v6_index_marko_server_entry_marko_componentType, + t: tutorials_index_marko_server_entry_marko_componentType, i: true -}, playground_v6_index_marko_server_entry_marko_component); +}, tutorials_index_marko_server_entry_marko_component); ;// ./v6/docs/index.marko const docs_index_marko_marko_componentType = "pgT$CsEc", @@ -5107,90 +5382,29 @@ docs_index_marko_server_entry_marko_template._ = renderer_js_default()(function t: docs_index_marko_server_entry_marko_componentType, i: true }, docs_index_marko_server_entry_marko_component); -;// external "@marko/translator-tags" -const translator_tags_namespaceObject = require("@marko/translator-tags"); -;// ./v6/playground/components/playground-6.marko - -const playground_6_marko_marko_componentType = "TrmYoaCc", - playground_6_marko_marko_template = (0,index_js_namespaceObject.t)(playground_6_marko_marko_componentType); -/* harmony default export */ const playground_6_marko = (playground_6_marko_marko_template); - - - - - - - - -const playground_6_marko_marko_component = { - onCreate() { - this.state = {}; - } -}; -playground_6_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component2, state, $global) { - var _component = _component2, - _state = state; - var _HashValueReturn = return_default()(_component); - render_tag_js_default()(hash_value_marko, { - "value": (0,cached_values_namespaceObject.cache)((0,cached_values_namespaceObject.cached)(_component, []) || [{ - name: "index.marko", - path: "/components/index.marko", - content: "\n" - }]), - "_return": _HashValueReturn - }, out, _componentDef, "0"); - const { - "valueChange": _valueChange, - value: files - } = _HashValueReturn(); - render_tag_js_default()(repl_index_marko, { - "getCompilerOptions": (0,cached_values_namespaceObject.cache)((0,cached_values_namespaceObject.cached)(_component, []) || function () { - return { - translator: translator_tags_namespaceObject, - optimize: false - }; - }), - "files": files, - "filesChange": _valueChange - }, out, _componentDef, "1"); -}, { - t: playground_6_marko_marko_componentType -}, playground_6_marko_marko_component); -;// ./v6/playground/index.marko - -const v6_playground_index_marko_marko_componentType = "EefpJQab", - v6_playground_index_marko_marko_template = (0,index_js_namespaceObject.t)(v6_playground_index_marko_marko_componentType); -/* harmony default export */ const v6_playground_index_marko = (v6_playground_index_marko_marko_template); - - +;// ./docs/v6/:name/index.marko +const v6_name_index_marko_marko_componentType = "sUSJIumd", + v6_name_index_marko_marko_template = (0,index_js_namespaceObject.t)(v6_name_index_marko_marko_componentType); +/* harmony default export */ const v6_name_index_marko = (v6_name_index_marko_marko_template); -const v6_playground_index_marko_marko_component = {}; -v6_playground_index_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { - render_tag_js_default()(app_layout_index_marko, { - "title": "Try online", - "footer": false, - "discord": false, - "v6": true, - "renderBody": out => { - render_tag_js_default()(playground_6_marko, {}, out, _componentDef, "1"); - } - }, out, _componentDef, "0"); - out.w(""); +const v6_name_index_marko_marko_component = {}; +v6_name_index_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { + out.w(""); }, { - t: v6_playground_index_marko_marko_componentType, + t: v6_name_index_marko_marko_componentType, i: true -}, v6_playground_index_marko_marko_component); -;// ./v6/playground/index.marko?server-entry +}, v6_name_index_marko_marko_component); +;// ./docs/v6/:name/index.marko?server-entry -const v6_playground_index_marko_server_entry_marko_componentType = "UBSvwuej", - v6_playground_index_marko_server_entry_marko_template = (0,index_js_namespaceObject.t)(v6_playground_index_marko_server_entry_marko_componentType); -/* harmony default export */ const v6_playground_index_marko_server_entry = (v6_playground_index_marko_server_entry_marko_template); +const v6_name_index_marko_server_entry_marko_componentType = "zltsaKQf", + v6_name_index_marko_server_entry_marko_template = (0,index_js_namespaceObject.t)(v6_name_index_marko_server_entry_marko_componentType); +/* harmony default export */ const v6_name_index_marko_server_entry = (v6_name_index_marko_server_entry_marko_template); -const v6_playground_index_marko_server_entry_crossOriginAttr = new URL(__webpack_require__.p, "file:").protocol === "file:" ? "" : " crossorigin"; -function v6_playground_index_marko_server_entry_renderAssets(out) { +const v6_name_index_marko_server_entry_crossOriginAttr = new URL(__webpack_require__.p, "file:").protocol === "file:" ? "" : " crossorigin"; +function v6_name_index_marko_server_entry_renderAssets(out) { const $global = out.global; const entries = $global.___entries; $global.___entries = undefined; @@ -5207,7 +5421,7 @@ function v6_playground_index_marko_server_entry_renderAssets(out) { for (const href of assets.js) { if (!written.has(href)) { written.add(href); - scripts += ``; + scripts += ``; } } } @@ -5228,106 +5442,102 @@ function v6_playground_index_marko_server_entry_renderAssets(out) { -const v6_playground_index_marko_server_entry_marko_component = {}; -v6_playground_index_marko_server_entry_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { - out.global.___renderAssets = v6_playground_index_marko_server_entry_renderAssets; - (out.global.___entries || (out.global.___entries = [])).push("playground_E8TY"); +const v6_name_index_marko_server_entry_marko_component = {}; +v6_name_index_marko_server_entry_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { + out.global.___renderAssets = v6_name_index_marko_server_entry_renderAssets; + (out.global.___entries || (out.global.___entries = [])).push(":name_Puth"); render_tag_js_default()((_flush_here_and_after_js_default()), { "renderBody": out => { const outAlias = out; outAlias.global.___renderAssets && outAlias.global.___renderAssets(outAlias); } }, out, _componentDef, "0"); - render_tag_js_default()(v6_playground_index_marko, input, out, _componentDef, "1"); + render_tag_js_default()(v6_name_index_marko, input, out, _componentDef, "1"); render_tag_js_default()((init_components_tag_js_default()), {}, out, _componentDef, "2"); render_tag_js_default()((reorderer_renderer_js_default()), {}, out, _componentDef, "3"); }, { - t: v6_playground_index_marko_server_entry_marko_componentType, + t: v6_name_index_marko_server_entry_marko_componentType, i: true -}, v6_playground_index_marko_server_entry_marko_component); -;// ./v6/tutorials/tutorials.js -/* harmony default export */ const tutorials = ({ - loops: { - title: 'Loops', - description: 'Loops are a way to repeat a block of code multiple times.', - level: 'beginner', - time: '5 minutes', - category: 'basics', - steps: [{ - title: 'For ... of', - content: 'The for tag with an of attribute is used to loop through an array.', - before: [{ - name: "index.marko", - path: "/components/index.marko", - content: "
      \n
    • One
    • \n
    • Two
    • \n
    • Three
    • \n
    " - }], - after: [{ - name: "index.marko", - path: "/components/index.marko", - content: `
      \n \n
    • \${text}
    • \n \n
    ` - }] - }, { - title: 'For ... in', - content: 'The for tag with an in attribute is used to loop through an object\'s keys.', - before: [{ - name: "index.marko", - path: "/components/index.marko", - content: `
      \n
    • One: 1
    • \n
    • Two: 2
    • \n
    • Three: 3
    • \n
    ` - }], - after: [{ - name: "index.marko", - path: "/components/index.marko", - content: `
      \n \n
    • \${key}: \${value}
    • \n \n
    ` - }] - }] - } -}); -;// ./v6/tutorials/index.marko +}, v6_name_index_marko_server_entry_marko_component); +;// ./v6/tutorials/:name/components/tutorial.marko -const tutorials_index_marko_marko_componentType = "EdRjBJGi", - tutorials_index_marko_marko_template = (0,index_js_namespaceObject.t)(tutorials_index_marko_marko_componentType); -/* harmony default export */ const tutorials_index_marko = (tutorials_index_marko_marko_template); +const tutorial_marko_marko_componentType = "wuKnSKQd", + tutorial_marko_marko_template = (0,index_js_namespaceObject.t)(tutorial_marko_marko_componentType); +/* harmony default export */ const tutorial_marko = (tutorial_marko_marko_template); -const tutorials_index_marko_marko_component = {}; -tutorials_index_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { + +const tutorial_marko_marko_component = { + onCreate() { + this.state = {}; + } +}; +tutorial_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component2, state, $global) { + var _component = _component2, + _state = state; + const { + tutorial + } = input; + let stepNumber = 0; + const totalSteps = tutorial.steps.length; + const step = tutorial.steps[stepNumber]; + const setStep = (0,cached_values_namespaceObject.cache)((0,cached_values_namespaceObject.cached)(_component, [tutorial["steps"]]) || function (number) { + stepNumber = number; + files = tutorial.steps[number].before; + }); + let files = step.before; + out.w(`
    ${(0,escape_xml_js_namespaceObject.x)(tutorial.title)}Step ${(0,escape_xml_js_namespaceObject.x)(stepNumber + 1)}/${(0,escape_xml_js_namespaceObject.x)(totalSteps)}PrevNext

    ${(0,escape_xml_js_namespaceObject.x)(step.title)}

    ${to_string_js_default()(step.content)}
    SolveReset
    `); + render_tag_js_default()(repl_index_marko, { + "files": files, + "filesChange": (0,cached_values_namespaceObject.cache)((0,cached_values_namespaceObject.cached)(_component, []) || (_ => files = _)) + }, out, _componentDef, "12"); + out.w("
    "); +}, { + t: tutorial_marko_marko_componentType +}, tutorial_marko_marko_component); +;// ./v6/tutorials/:name/index.marko + +const tutorials_name_index_marko_marko_componentType = "LaKxeARl", + tutorials_name_index_marko_marko_template = (0,index_js_namespaceObject.t)(tutorials_name_index_marko_marko_componentType); +/* harmony default export */ const tutorials_name_index_marko = (tutorials_name_index_marko_marko_template); + + + + + +const tutorials_name_index_marko_marko_component = {}; +tutorials_name_index_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { + const { + params + } = input; render_tag_js_default()(app_layout_index_marko, { - "title": "Tutorials", + "title": tutorials[params.name].title, "footer": false, "discord": false, - "v6": true, "renderBody": out => { - out.w("

    Tutorials

    "); - for (const name in tutorials) { - const { - title, - description, - level, - time - } = tutorials[name]; - const _keyScope = `[${name}]`; - out.w(`${(0,escape_xml_js_namespaceObject.x)(title)}${(0,escape_xml_js_namespaceObject.x)(description)}${(0,escape_xml_js_namespaceObject.x)(level)}${(0,escape_xml_js_namespaceObject.x)(time)}`); - } + render_tag_js_default()(tutorial_marko, { + "tutorial": tutorials[params.name] + }, out, _componentDef, "1"); } }, out, _componentDef, "0"); }, { - t: tutorials_index_marko_marko_componentType, + t: tutorials_name_index_marko_marko_componentType, i: true -}, tutorials_index_marko_marko_component); -;// ./v6/tutorials/index.marko?server-entry +}, tutorials_name_index_marko_marko_component); +;// ./v6/tutorials/:name/index.marko?server-entry -const tutorials_index_marko_server_entry_marko_componentType = "toXd_ZKb", - tutorials_index_marko_server_entry_marko_template = (0,index_js_namespaceObject.t)(tutorials_index_marko_server_entry_marko_componentType); -/* harmony default export */ const tutorials_index_marko_server_entry = (tutorials_index_marko_server_entry_marko_template); +const tutorials_name_index_marko_server_entry_marko_componentType = "yQHdQhNi", + tutorials_name_index_marko_server_entry_marko_template = (0,index_js_namespaceObject.t)(tutorials_name_index_marko_server_entry_marko_componentType); +/* harmony default export */ const tutorials_name_index_marko_server_entry = (tutorials_name_index_marko_server_entry_marko_template); -const tutorials_index_marko_server_entry_crossOriginAttr = new URL(__webpack_require__.p, "file:").protocol === "file:" ? "" : " crossorigin"; -function tutorials_index_marko_server_entry_renderAssets(out) { +const tutorials_name_index_marko_server_entry_crossOriginAttr = new URL(__webpack_require__.p, "file:").protocol === "file:" ? "" : " crossorigin"; +function tutorials_name_index_marko_server_entry_renderAssets(out) { const $global = out.global; const entries = $global.___entries; $global.___entries = undefined; @@ -5344,7 +5554,7 @@ function tutorials_index_marko_server_entry_renderAssets(out) { for (const href of assets.js) { if (!written.has(href)) { written.add(href); - scripts += ``; + scripts += ``; } } } @@ -5365,46 +5575,105 @@ function tutorials_index_marko_server_entry_renderAssets(out) { -const tutorials_index_marko_server_entry_marko_component = {}; -tutorials_index_marko_server_entry_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { - out.global.___renderAssets = tutorials_index_marko_server_entry_renderAssets; - (out.global.___entries || (out.global.___entries = [])).push("tutorials_p6eY"); +const tutorials_name_index_marko_server_entry_marko_component = {}; +tutorials_name_index_marko_server_entry_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { + out.global.___renderAssets = tutorials_name_index_marko_server_entry_renderAssets; + (out.global.___entries || (out.global.___entries = [])).push(":name_5gMv"); render_tag_js_default()((_flush_here_and_after_js_default()), { "renderBody": out => { const outAlias = out; outAlias.global.___renderAssets && outAlias.global.___renderAssets(outAlias); } }, out, _componentDef, "0"); - render_tag_js_default()(tutorials_index_marko, input, out, _componentDef, "1"); + render_tag_js_default()(tutorials_name_index_marko, input, out, _componentDef, "1"); render_tag_js_default()((init_components_tag_js_default()), {}, out, _componentDef, "2"); render_tag_js_default()((reorderer_renderer_js_default()), {}, out, _componentDef, "3"); }, { - t: tutorials_index_marko_server_entry_marko_componentType, + t: tutorials_name_index_marko_server_entry_marko_componentType, i: true -}, tutorials_index_marko_server_entry_marko_component); -;// ./docs/v6/:name/index.marko +}, tutorials_name_index_marko_server_entry_marko_component); +;// ./v6/examples/[name]/index.marko -const v6_name_index_marko_marko_componentType = "sUSJIumd", - v6_name_index_marko_marko_template = (0,index_js_namespaceObject.t)(v6_name_index_marko_marko_componentType); -/* harmony default export */ const v6_name_index_marko = (v6_name_index_marko_marko_template); +const examples_name_index_marko_marko_componentType = "QqsBIzdb", + examples_name_index_marko_marko_template = (0,index_js_namespaceObject.t)(examples_name_index_marko_marko_componentType); +/* harmony default export */ const examples_name_index_marko = (examples_name_index_marko_marko_template); +const examples = { + "counter": { + "title": "Counter", + "description": "A simple counter", + files: [{ + name: "index.marko", + path: "/components/index.marko", + content: "\n" + }] + }, + "hello-world": { + "title": "Hello World", + "description": "A simple hello world example", + files: [{ + name: "index.marko", + path: "/components/index.marko", + content: "

    Hello World

    " + }] + }, + "loop": { + "title": "Loops and Lists", + "description": "A simple loop example", + files: [{ + name: "index.marko", + path: "/components/index.marko", + content: "\n
      \n \n
    • ${item}
    • \n \n
    \n" + }] + } +}; -const v6_name_index_marko_marko_component = {}; -v6_name_index_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { - out.w(""); + + + + + +const examples_name_index_marko_marko_component = {}; +examples_name_index_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { + const { + params + } = input; + const currentExample = examples[params.name]; + render_tag_js_default()(app_layout_index_marko, { + "title": currentExample?.title, + "footer": false, + "discord": false, + "v6": true, + "renderBody": out => { + out.w("
    "); + for (const name in examples) { + const { + title, + description + } = examples[name]; + const _keyScope = `[${name}]`; + out.w(`${(0,escape_xml_js_namespaceObject.x)(title)}${(0,escape_xml_js_namespaceObject.x)(description)}`); + } + out.w("
    "); + render_tag_js_default()(repl_index_marko, { + "files": currentExample?.files || [] + }, out, _componentDef, "6"); + out.w("
    "); + } + }, out, _componentDef, "0"); }, { - t: v6_name_index_marko_marko_componentType, + t: examples_name_index_marko_marko_componentType, i: true -}, v6_name_index_marko_marko_component); -;// ./docs/v6/:name/index.marko?server-entry +}, examples_name_index_marko_marko_component); +;// ./v6/examples/[name]/index.marko?server-entry -const v6_name_index_marko_server_entry_marko_componentType = "zltsaKQf", - v6_name_index_marko_server_entry_marko_template = (0,index_js_namespaceObject.t)(v6_name_index_marko_server_entry_marko_componentType); -/* harmony default export */ const v6_name_index_marko_server_entry = (v6_name_index_marko_server_entry_marko_template); +const examples_name_index_marko_server_entry_marko_componentType = "ReYAiJik", + examples_name_index_marko_server_entry_marko_template = (0,index_js_namespaceObject.t)(examples_name_index_marko_server_entry_marko_componentType); +/* harmony default export */ const examples_name_index_marko_server_entry = (examples_name_index_marko_server_entry_marko_template); -const v6_name_index_marko_server_entry_crossOriginAttr = new URL(__webpack_require__.p, "file:").protocol === "file:" ? "" : " crossorigin"; -function v6_name_index_marko_server_entry_renderAssets(out) { +const examples_name_index_marko_server_entry_crossOriginAttr = new URL(__webpack_require__.p, "file:").protocol === "file:" ? "" : " crossorigin"; +function examples_name_index_marko_server_entry_renderAssets(out) { const $global = out.global; const entries = $global.___entries; $global.___entries = undefined; @@ -5421,7 +5690,7 @@ function v6_name_index_marko_server_entry_renderAssets(out) { for (const href of assets.js) { if (!written.has(href)) { written.add(href); - scripts += ``; + scripts += ``; } } } @@ -5442,23 +5711,23 @@ function v6_name_index_marko_server_entry_renderAssets(out) { -const v6_name_index_marko_server_entry_marko_component = {}; -v6_name_index_marko_server_entry_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { - out.global.___renderAssets = v6_name_index_marko_server_entry_renderAssets; - (out.global.___entries || (out.global.___entries = [])).push(":name_Puth"); +const examples_name_index_marko_server_entry_marko_component = {}; +examples_name_index_marko_server_entry_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { + out.global.___renderAssets = examples_name_index_marko_server_entry_renderAssets; + (out.global.___entries || (out.global.___entries = [])).push("[name]_FLzY"); render_tag_js_default()((_flush_here_and_after_js_default()), { "renderBody": out => { const outAlias = out; outAlias.global.___renderAssets && outAlias.global.___renderAssets(outAlias); } }, out, _componentDef, "0"); - render_tag_js_default()(v6_name_index_marko, input, out, _componentDef, "1"); + render_tag_js_default()(examples_name_index_marko, input, out, _componentDef, "1"); render_tag_js_default()((init_components_tag_js_default()), {}, out, _componentDef, "2"); render_tag_js_default()((reorderer_renderer_js_default()), {}, out, _componentDef, "3"); }, { - t: v6_name_index_marko_server_entry_marko_componentType, + t: examples_name_index_marko_server_entry_marko_componentType, i: true -}, v6_name_index_marko_server_entry_marko_component); +}, examples_name_index_marko_server_entry_marko_component); ;// ./v6/docs/markdown/components.md const components_marko_componentType = "cmLanQjg", @@ -5646,483 +5915,233 @@ language_marko_template._ = renderer_js_default()(function (input, out, _compone out.w("

    Concise Mode

    "); render_tag_js_default()(code_block_marko_index_marko_server_entry, { "html": "
    div\n  h1.title -- Hello World!\n
    ", - "concise": "
    div\n  h1.title -- Hello World!\n
    " - }, out, _componentDef, "36"); - out.w("

    TIP
    Concise Mode is entirely optional. You can choose the style that best suits your preferences and project needs. You can toggle between the two syntax modes in this documentation using the switch icon located at the top right corner of all Marko code blocks.

    Supercharging HTML

    While Marko embraces HTML, it doesn't stop there. Marko extends HTML with dynamic features that make building modern web applications a breeze. We'll cover these in the upcoming sections.

    "); -}, { - t: language_marko_componentType, - i: true -}, language_marko_component); -;// ./v6/docs/markdown/lists.md - -const lists_marko_componentType = "mmDLAhAf", - lists_marko_template = (0,index_js_namespaceObject.t)(lists_marko_componentType); -/* harmony default export */ const lists = (lists_marko_template); - -toc_registry.set("../pages/v6/docs/markdown/lists.md", ""); -const lists_title = "Lists in Marko"; - - - -const lists_marko_component = {}; -lists_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { - out.w("

    Lists in Marko

    <for of>: Iterating Over Arrays

    The most common use case for <for> is iterating over arrays. The of attribute specifies the array you want to loop through.

    "); - render_tag_js_default()(code_block_marko_index_marko_server_entry, { - "html": "
    <ul>\n  <for|item, index| of=items by=\"id\">\n    <li>(${index}) Item ID: ${item.id}, Name: ${item.name}</li>\n  </for>\n</ul>\n
    ", - "concise": "
    ul\n  for|item, index| of=items by=\"id\"\n    li -- (${index}) Item ID: ${item.id}, Name: ${item.name}\n
    " - }, out, _componentDef, "11"); - out.w("

    In this example:

    • items is the array we're iterating over.
    • The syntax |item, index| introduces Tag Parameters available to the body of the <for> tag.
      • the item parameter is the current item from the items array
      • the index parameter is the current index of the items array
    • by="id" specifies that the id property of each item should be used as the key.

    Importance of Keys

    Keys play a crucial role in efficiently updating the DOM when the data in a list changes. They help Marko identify:

    • Which items have been added to the list.
    • Which items have been removed from the list.
    • Which items have changed their position or content.

    Using unique and stable keys ensures that Marko can make precise updates to the DOM, improving performance and preventing unexpected behavior.

    • by as a String: When iterating over arrays, you often want to use a unique identifier from your data as the key. You can do this by providing a string to the by attribute, like by="id" in the example above. Marko will then use the value of the id property on each item as the key.

    • by as a Function: For more complex scenarios, you can provide a function to the by attribute. This function will be called for each item in the array, and it should return a unique key for that item. The function receives the iterated item as the first parameter, and the index as the second.

    CAUTION
    <for of> defaults to using the array index as the key if you don't specify the by attribute. While this might seem convenient, it can lead to problems:

    • Reordering Issues: If the order of items in the array changes, Marko might incorrectly reuse DOM elements based on their index, leading to unexpected behavior and potentially losing any component state associated with the reused element.
    • Performance Degradation: Inserting or deleting items at the beginning of a list can cause every subsequent item to be re-rendered, even if they haven't changed.

    Other <for> types

    <for in>

    You can also use <for in> to iterate over the properties of an object:

    "); - render_tag_js_default()(code_block_marko_index_marko_server_entry, { - "html": "
    <ul>\n  <for|key, value| in=myObject>\n    <li>${key}: ${value}</li>\n  </for>\n</ul>\n
    ", - "concise": "
    ul\n  for|key, value| in=myObject\n    li -- ${key}: ${value}\n
    " - }, out, _componentDef, "75"); - out.w("

    In this case:

    • myObject is the object whose properties we're iterating over.
    • key will hold the name of each property.
    • value will hold the value of each property.

    [!NOTE] > <for in> will default the key to the property name, which is often what you want, so it may not be necessary to specify a by attribute for the <for in> usage.

    <for from to>: Iterating Over Number Ranges

    The <for> tag can also generate number sequences, which is useful for creating things like numbered lists or grids:

    "); - render_tag_js_default()(code_block_marko_index_marko_server_entry, { - "html": "
    <ul>\n  <for|num| from=1 to=5 step=1>\n    <li>Item ${num}</li>\n  </for>\n</ul>\n
    ", - "concise": "
    ul\n  for|num| from=1 to=5 step=1\n    li -- Item ${num}\n
    " - }, out, _componentDef, "95"); - out.w("
    • from=1, to=5, and step=1 define the starting number, ending number (inclusive), and increment, respectively.
    "); -}, { - t: lists_marko_componentType, - i: true -}, lists_marko_component); -;// ./v6/docs/markdown/setup.md - -const setup_marko_componentType = "rsEgZyyk", - setup_marko_template = (0,index_js_namespaceObject.t)(setup_marko_componentType); -/* harmony default export */ const setup = (setup_marko_template); - -toc_registry.set("../pages/v6/docs/markdown/setup.md", ""); -const setup_title = "Setup"; - -const setup_marko_component = {}; -setup_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { - out.w("

    Setup

    Marko Playground

    The fastest way to try out Marko without installing anything is with the Marko Playground. It's an online interactive environment where you can write Marko code and see the results in real-time.

    In the Playground, you'll find a simple counter example. Go ahead and edit the code, and watch the output update instantly!

    Local Development with Marko Run

    To set up a local development environment, Marko Run is recommended as it makes this process quick and easy.

    Prerequisites

    • Node.js: Marko requires Node.js to be installed on your system. Download the latest LTS version from the official website: https://nodejs.org/
    • npm (or yarn): Node.js comes bundled with npm (Node Package Manager), but you can also use yarn if you prefer.

    1. Creating a new Project

    Once you have Node.js and npm (or yarn) installed, open your terminal (command prompt or PowerShell) and run the following command:

    npm init marko\n

    This cli will guide you through creating a new project.

    2. Basic Marko Run Commands

    After creating a Marko Run project, navigate to your project directory and use the following commands:

    • marko-run dev: Start a development server with live reload (your changes will automatically appear in the browser).
    • marko-run build: Build a production-ready version of your app.
    • marko-run preview: Preview a production build locally.

    3. Enhancing Your Workflow with Editor Plugins (Optional)

    Editor plugins can significantly improve your development experience by providing features like:

    • Syntax highlighting: Makes your Marko code more readable.
    • Code completion (IntelliSense): Helps you write code faster with suggestions and autocompletion.
    • Error checking (linting): Catches potential errors in your code early on.

    Recommended Plugins

    • VS Code: the official editor plugin from the marketplace
    • Other Editors: setup instructions to use the Marko language server in various other editors
    "); -}, { - t: setup_marko_componentType, - i: true -}, setup_marko_component); -;// ./v6/docs/markdown/state.md - -const markdown_state_marko_componentType = "KKNNFEaj", - markdown_state_marko_template = (0,index_js_namespaceObject.t)(markdown_state_marko_componentType); -/* harmony default export */ const markdown_state = (markdown_state_marko_template); - -toc_registry.set("../pages/v6/docs/markdown/state.md", ""); -const markdown_state_title = "State & Derived State"; - - - -const markdown_state_marko_component = {}; -markdown_state_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { - out.w("

    State & Derived State

    Marko's reactive system makes it easy to manage your application's data and keep your user interface in sync with any changes. The key to this reactivity is how Marko tracks state.

    State with <let>

    In Marko, the <let> tag is used to declare state variables. These variables represent the data that can change over time, affecting how your components render and behave.

    "); - render_tag_js_default()(code_block_marko_index_marko_server_entry, { - "html": "
    <let/count=0/>\n
    ", - "concise": "
    let/count=0\n
    " - }, out, _componentDef, "11"); - out.w("

    This line of code declares a state variable named count and initializes it to 0.

    NOTE
    The variable name is defined after the / in the tag. This is known as a Tag Variable and is a way for a tag to provide data to the rest of the template. Any tag can declare Tag Variables using this syntax.

    You can access the value of a state variable just like any other variable in your template.

    "); - render_tag_js_default()(code_block_marko_index_marko_server_entry, { - "html": "
    <div>The current count is: ${count}</div>\n
    ", - "concise": "
    div -- The current count is: ${count}\n
    " - }, out, _componentDef, "22"); - out.w("

    Updating State

    To update a state variable, you reassign a new value to the tag variable. When you do, Marko will automatically re-render the component and any other parts of the UI that depend on the state that changed.

    "); - render_tag_js_default()(code_block_marko_index_marko_server_entry, { - "html": "
    <button onClick() { count = count + 1; }>\n  Increment\n</button>\n
    ", - "concise": "
    button onClick() {\n  count = count + 1;\n}\n  -- Increment\n
    " - }, out, _componentDef, "27"); - out.w("

    IMPORTANT
    State variables are immutable by default, which means you can't mutate their values. For example if you need to add an item to an array, prefer array = array.concat(newItem) (which updates the state to a new array containing the additional item) to array.push(newItem) (which mutates the array).

    Derived State with <const>

    The <const> tag is used to create derived state. It works similarly to <let> in that it defines a Tag Variable after the /, but the value is computed from other values. Marko automatically re-computes the value whenever any of its dependencies change.

    "); - render_tag_js_default()(code_block_marko_index_marko_server_entry, { - "html": "
    <let/firstName=\"Luke\"/>\n<let/lastName=\"Edwards\"/>\n\n<const/fullName=`${firstName} ${lastName}`/>\n\n<div>Hello, ${fullName}!</div>\n
    ", - "concise": "
    let/firstName=\"Luke\"\nlet/lastName=\"Edwards\"\n\nconst/fullName=`${firstName} ${lastName}`\n\ndiv -- Hello, ${fullName}!\n
    " - }, out, _componentDef, "43"); - out.w("

    In this example, fullName is derived from the values of firstName and lastName. Whenever either firstName or lastName changes, Marko automatically updates fullName, ensuring the UI is always consistent with the latest state.

    "); -}, { - t: markdown_state_marko_componentType, - i: true -}, markdown_state_marko_component); -;// ./v6/docs/markdown/styles.md - -const markdown_styles_marko_componentType = "bmbaMTHh", - markdown_styles_marko_template = (0,index_js_namespaceObject.t)(markdown_styles_marko_componentType); -/* harmony default export */ const markdown_styles = (markdown_styles_marko_template); - -toc_registry.set("../pages/v6/docs/markdown/styles.md", ""); -const markdown_styles_title = "Styles in Marko"; - - - -const markdown_styles_marko_component = {}; -markdown_styles_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { - out.w("

    Styles in Marko

    This section explains the different ways to style your Marko components, from simple inline styles to powerful techniques like CSS Modules for organized and maintainable stylesheets.

    Basic Styling Options

    1. Internal Styles with <style> Tags

    You can add CSS styles directly within your Marko components using the <style> tag. Just like in HTML, styles defined within a <style> tag will apply to the HTML elements within that component.

    Here's a simple example:

    "); - render_tag_js_default()(code_block_marko_index_marko_server_entry, { - "html": "
    <style>\n  .message {\n    background-color: lightblue;\n    padding: 10px;\n    border-radius: 5px;\n  }\n</style>\n\n<div class=\"message\">\n  This is a styled message!\n</div>\n
    ", - "concise": "
    style\n  --\n  .message {\n    background-color: lightblue;\n    padding: 10px;\n    border-radius: 5px;\n  }\n  --\n\ndiv.message -- This is a styled message!\n
    " - }, out, _componentDef, "16"); - out.w("

    Note: Styles defined within <style> tags have global scope by default. This means that they could potentially affect the styling of other components in your application.

    2. Inline Styles

    For simple, element-specific styling, you can use inline styles directly on HTML elements using the style attribute. The value of the style attribute should be a JavaScript string containing CSS property-value pairs.

    Here's an example:

    "); - render_tag_js_default()(code_block_marko_index_marko_server_entry, { - "html": "
    <p style=\"color: blue; font-size: 16px;\">\n  This is a paragraph with blue text.\n</p>\n
    ", - "concise": "
    p style=\"color: blue; font-size: 16px;\" -- This is a paragraph with blue text.\n
    " - }, out, _componentDef, "29"); - out.w("

    Recommendation: Inline styles are generally best suited for simple styling or for dynamically applying styles based on component state or props. For more complex or reusable styles, it's better to use internal or external stylesheets.

    External Stylesheets

    You can keep your CSS organized in separate files and link them to your Marko components. This approach is generally recommended for larger applications or when you want to reuse styles across multiple components.

    Autodiscovered Stylesheets

    Marko makes it incredibly easy to include CSS stylesheets. By default, Marko will automatically look for a stylesheet with the same name as your component file (but with a .css extension) and include it.

    For example, if you have a component file named profile-card.marko, Marko will automatically load the styles from a profile-card.css file in the same directory.

    Importing Stylesheets

    You can also import stylesheets explicitly using the import statement. This gives you more control over the loading order of your stylesheets and is useful for importing styles from node modules.

    Here's an example:

    "); - render_tag_js_default()(code_block_marko_index_marko_server_entry, { - "html": "
    import \"./styles/global.css\"; // Importing a stylesheet from a relative path\n\n<div>This content has styles from the imported stylesheet.</div>\n
    ", - "concise": "
    import \"./styles/global.css\"; // Importing a stylesheet from a relative path\n\ndiv -- This content has styles from the imported stylesheet.\n
    " - }, out, _componentDef, "51"); - out.w("

    Note: Similar to styles defined in <style> tags, styles from external stylesheets also have global scope by default. This means they could potentially affect other parts of your application.

    Scoping with CSS Modules

    To prevent style conflicts and ensure that your CSS styles are applied specifically to the intended components, Marko supports CSS Modules. CSS Modules allow you to write modular and reusable CSS without worrying about naming collisions or unintended side effects. With CSS Modules, class names in your CSS files are scoped locally by default, which means they won't clash with class names in other parts of your application. This is especially beneficial when working with component-based architectures, as it promotes true style encapsulation.

    CSS Modules with <style> Tags

    You can use CSS Modules directly within <style> tags in your Marko components. To do this, you'll use a tag variable with the <style> tag, like this:

    "); - render_tag_js_default()(code_block_marko_index_marko_server_entry, { - "html": "
    <style/styles>\n  .message {\n    background-color: lightblue;\n    padding: 10px;\n    border-radius: 5px;\n  }\n</style>\n\n<div class=styles.message>\n  This is a styled message!\n</div>\n
    ", - "concise": "
    style/styles\n  --\n  .message {\n    background-color: lightblue;\n    padding: 10px;\n    border-radius: 5px;\n  }\n  --\n\ndiv class=styles.message -- This is a styled message!\n
    " - }, out, _componentDef, "69"); - out.w("

    The styles variable (you can name it anything) now acts as an object that holds the locally scoped class names from your CSS. By using styles.message, you ensure that this style is applied only to the intended element within this component.

    CSS Modules with External Stylesheets

    To use CSS modules with external stylesheets, you need to import the stylesheet using an alias and access the class names as properties of that alias. Most bundlers (like Webpack and Rollup) have built-in support for CSS modules and you only need to name your css files with the .module.css extension. For example, given the file styles/button.module.css:

    "); - render_tag_js_default()(code_block_marko_index_marko_server_entry, { - "html": "
    import styles from \"./styles/button.module.css\";\n\n<button class=styles.primary>\n  Submit\n</button>\n
    ", - "concise": "
    import styles from \"./styles/button.module.css\";\n\nbutton class=styles.primary -- Submit\n
    " - }, out, _componentDef, "79"); - out.w("

    In this example, styles.primary will contain a unique class name generated by the CSS Modules system, preventing any styling conflicts.

    Preprocessors (Optional)

    Marko can be used with CSS preprocessors like Sass, Less, and Stylus. However, the setup for preprocessors is typically handled by your build tools rather than Marko itself. Most modern JavaScript bundlers provide plugins or loaders to integrate with CSS preprocessors.

    If you'd like to use a CSS preprocessor with your Marko project, consult the documentation for your chosen bundler (like Webpack or Rollup) on how to set it up.

    "); -}, { - t: markdown_styles_marko_componentType, - i: true -}, markdown_styles_marko_component); -;// ./v6/docs/:name/document-lookup.js - - - - - - - - - - - - - -const document_lookup_documentLookup = {}; -const document_lookup_docsByRepo = { - "marko-js/website": { - trim: "", - docs: { - "../markdown/components.md": components_namespaceObject, - "../markdown/conditionals.md": conditionals_namespaceObject, - "../markdown/events.md": markdown_events_namespaceObject, - "../markdown/javascript.md": javascript_namespaceObject, - "../markdown/language.md": language_namespaceObject, - "../markdown/lists.md": lists_namespaceObject, - "../markdown/setup.md": setup_namespaceObject, - "../markdown/state.md": markdown_state_namespaceObject, - "../markdown/styles.md": markdown_styles_namespaceObject - } - } -}; -Object.keys(document_lookup_docsByRepo).forEach(repo => { - const { - trim, - prefix = "", - docs - } = document_lookup_docsByRepo[repo]; - Object.keys(docs).forEach(filePath => { - const slug = document_lookup_fileNameToSlug(filePath); - const doc = docs[filePath]; - const repoPath = filePath.replace(trim, prefix); - document_lookup_documentLookup[slug] = { - repo, - repoPath, - template: doc.default, - title: doc.title, - toc: toc_registry.get(filePath) - }; - }); -}); -function document_lookup_fileNameToSlug(file) { - let slug; - do { - slug = external_path_default().basename(file, ".md"); - file = external_path_default().dirname(file); - } while (slug === "README"); - return slug; -} -structure_json_default().forEach(doc => { - addOverviewDoc(doc); - function addOverviewDoc(doc, parentSlug) { - const { - title, - docs - } = doc; - const titleSlug = format_slug_default()(title); - docs.forEach(childDoc => { - if (typeof childDoc === "object") { - addOverviewDoc(childDoc, titleSlug); - } - }); - let docName; - if (parentSlug) { - docName = `${parentSlug}-${titleSlug}-overview`; - } else { - docName = `${titleSlug}-overview`; - } - document_lookup_documentLookup[docName] = { - overview: true, - title, - docs - }; - } -}); -/* harmony default export */ const _name_document_lookup = (document_lookup_documentLookup); -;// ./v6/docs/:name/index.marko - -const docs_name_index_marko_marko_componentType = "qroBBNJb", - docs_name_index_marko_marko_template = (0,index_js_namespaceObject.t)(docs_name_index_marko_marko_componentType); -/* harmony default export */ const docs_name_index_marko = (docs_name_index_marko_marko_template); - - - - - - - - + "concise": "
    div\n  h1.title -- Hello World!\n
    " + }, out, _componentDef, "36"); + out.w("

    TIP
    Concise Mode is entirely optional. You can choose the style that best suits your preferences and project needs. You can toggle between the two syntax modes in this documentation using the switch icon located at the top right corner of all Marko code blocks.

    Supercharging HTML

    While Marko embraces HTML, it doesn't stop there. Marko extends HTML with dynamic features that make building modern web applications a breeze. We'll cover these in the upcoming sections.

    "); +}, { + t: language_marko_componentType, + i: true +}, language_marko_component); +;// ./v6/docs/markdown/lists.md +const lists_marko_componentType = "mmDLAhAf", + lists_marko_template = (0,index_js_namespaceObject.t)(lists_marko_componentType); +/* harmony default export */ const lists = (lists_marko_template); +toc_registry.set("../pages/v6/docs/markdown/lists.md", ""); +const lists_title = "Lists in Marko"; -const docs_name_index_marko_marko_component = {}; -docs_name_index_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { - const { - params - } = input; - const doc = _name_document_lookup[params.name]; - render_tag_js_default()(app_layout_index_marko, { - "title": doc.title, - "currentDoc": params.name, - "toc": doc.toc, - "footer": false, - "v6": true, - "class": "docs", - "renderBody": out => { - out.w("
    "); - if (!doc.overview) { - dynamic_tag_js_default()(out, doc.template, null, null, null, null, _componentDef, "4"); - render_tag_js_default()(edit_on_github_index_marko, doc, out, _componentDef, "5"); - render_tag_js_default()(contributors_index_marko, doc, out, _componentDef, "6"); - } else { - render_tag_js_default()(document_overview_index_marko, doc, out, _componentDef, "7"); - } - render_tag_js_default()(app_footer_index_marko, { - "class": "doc-footer" - }, out, _componentDef, "8"); - out.w("
    "); - } - }, out, _componentDef, "0"); +const lists_marko_component = {}; +lists_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { + out.w("

    Lists in Marko

    <for of>: Iterating Over Arrays

    The most common use case for <for> is iterating over arrays. The of attribute specifies the array you want to loop through.

    "); + render_tag_js_default()(code_block_marko_index_marko_server_entry, { + "html": "
    <ul>\n  <for|item, index| of=items by=\"id\">\n    <li>(${index}) Item ID: ${item.id}, Name: ${item.name}</li>\n  </for>\n</ul>\n
    ", + "concise": "
    ul\n  for|item, index| of=items by=\"id\"\n    li -- (${index}) Item ID: ${item.id}, Name: ${item.name}\n
    " + }, out, _componentDef, "11"); + out.w("

    In this example:

    • items is the array we're iterating over.
    • The syntax |item, index| introduces Tag Parameters available to the body of the <for> tag.
      • the item parameter is the current item from the items array
      • the index parameter is the current index of the items array
    • by="id" specifies that the id property of each item should be used as the key.

    Importance of Keys

    Keys play a crucial role in efficiently updating the DOM when the data in a list changes. They help Marko identify:

    • Which items have been added to the list.
    • Which items have been removed from the list.
    • Which items have changed their position or content.

    Using unique and stable keys ensures that Marko can make precise updates to the DOM, improving performance and preventing unexpected behavior.

    • by as a String: When iterating over arrays, you often want to use a unique identifier from your data as the key. You can do this by providing a string to the by attribute, like by="id" in the example above. Marko will then use the value of the id property on each item as the key.

    • by as a Function: For more complex scenarios, you can provide a function to the by attribute. This function will be called for each item in the array, and it should return a unique key for that item. The function receives the iterated item as the first parameter, and the index as the second.

    CAUTION
    <for of> defaults to using the array index as the key if you don't specify the by attribute. While this might seem convenient, it can lead to problems:

    • Reordering Issues: If the order of items in the array changes, Marko might incorrectly reuse DOM elements based on their index, leading to unexpected behavior and potentially losing any component state associated with the reused element.
    • Performance Degradation: Inserting or deleting items at the beginning of a list can cause every subsequent item to be re-rendered, even if they haven't changed.

    Other <for> types

    <for in>

    You can also use <for in> to iterate over the properties of an object:

    "); + render_tag_js_default()(code_block_marko_index_marko_server_entry, { + "html": "
    <ul>\n  <for|key, value| in=myObject>\n    <li>${key}: ${value}</li>\n  </for>\n</ul>\n
    ", + "concise": "
    ul\n  for|key, value| in=myObject\n    li -- ${key}: ${value}\n
    " + }, out, _componentDef, "75"); + out.w("

    In this case:

    • myObject is the object whose properties we're iterating over.
    • key will hold the name of each property.
    • value will hold the value of each property.

    [!NOTE] > <for in> will default the key to the property name, which is often what you want, so it may not be necessary to specify a by attribute for the <for in> usage.

    <for from to>: Iterating Over Number Ranges

    The <for> tag can also generate number sequences, which is useful for creating things like numbered lists or grids:

    "); + render_tag_js_default()(code_block_marko_index_marko_server_entry, { + "html": "
    <ul>\n  <for|num| from=1 to=5 step=1>\n    <li>Item ${num}</li>\n  </for>\n</ul>\n
    ", + "concise": "
    ul\n  for|num| from=1 to=5 step=1\n    li -- Item ${num}\n
    " + }, out, _componentDef, "95"); + out.w("
    • from=1, to=5, and step=1 define the starting number, ending number (inclusive), and increment, respectively.
    "); }, { - t: docs_name_index_marko_marko_componentType, + t: lists_marko_componentType, i: true -}, docs_name_index_marko_marko_component); -;// ./v6/docs/:name/index.marko?server-entry - -const docs_name_index_marko_server_entry_marko_componentType = "RJzypcyb", - docs_name_index_marko_server_entry_marko_template = (0,index_js_namespaceObject.t)(docs_name_index_marko_server_entry_marko_componentType); -/* harmony default export */ const docs_name_index_marko_server_entry = (docs_name_index_marko_server_entry_marko_template); +}, lists_marko_component); +;// ./v6/docs/markdown/setup.md +const setup_marko_componentType = "rsEgZyyk", + setup_marko_template = (0,index_js_namespaceObject.t)(setup_marko_componentType); +/* harmony default export */ const setup = (setup_marko_template); +toc_registry.set("../pages/v6/docs/markdown/setup.md", ""); +const setup_title = "Setup"; -const docs_name_index_marko_server_entry_crossOriginAttr = new URL(__webpack_require__.p, "file:").protocol === "file:" ? "" : " crossorigin"; -function docs_name_index_marko_server_entry_renderAssets(out) { - const $global = out.global; - const entries = $global.___entries; - $global.___entries = undefined; - if (entries) { - const buildName = $global.buildName; - const nonce = $global.cspNonce; - const nonceAttr = nonce ? ` nonce=${JSON.stringify(nonce)}` : ""; - const written = $global.___writtenAssets || ($global.___writtenAssets = new Set()); - let scripts = ""; - let styles = ""; - for (const entry of entries) { - const assets = index_js_manifest.getAssets(entry, buildName); - if (assets.js) { - for (const href of assets.js) { - if (!written.has(href)) { - written.add(href); - scripts += ``; - } - } - } - if (assets.css) { - for (const href of assets.css) { - if (!written.has(href)) { - written.add(href); - styles += ``; - } - } - } - } - out.write(scripts + styles); - } -} +const setup_marko_component = {}; +setup_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { + out.w("

    Setup

    Marko Playground

    The fastest way to try out Marko without installing anything is with the Marko Playground. It's an online interactive environment where you can write Marko code and see the results in real-time.

    In the Playground, you'll find a simple counter example. Go ahead and edit the code, and watch the output update instantly!

    Local Development with Marko Run

    To set up a local development environment, Marko Run is recommended as it makes this process quick and easy.

    Prerequisites

    • Node.js: Marko requires Node.js to be installed on your system. Download the latest LTS version from the official website: https://nodejs.org/
    • npm (or yarn): Node.js comes bundled with npm (Node Package Manager), but you can also use yarn if you prefer.

    1. Creating a new Project

    Once you have Node.js and npm (or yarn) installed, open your terminal (command prompt or PowerShell) and run the following command:

    npm init marko\n

    This cli will guide you through creating a new project.

    2. Basic Marko Run Commands

    After creating a Marko Run project, navigate to your project directory and use the following commands:

    • marko-run dev: Start a development server with live reload (your changes will automatically appear in the browser).
    • marko-run build: Build a production-ready version of your app.
    • marko-run preview: Preview a production build locally.

    3. Enhancing Your Workflow with Editor Plugins (Optional)

    Editor plugins can significantly improve your development experience by providing features like:

    • Syntax highlighting: Makes your Marko code more readable.
    • Code completion (IntelliSense): Helps you write code faster with suggestions and autocompletion.
    • Error checking (linting): Catches potential errors in your code early on.

    Recommended Plugins

    • VS Code: the official editor plugin from the marketplace
    • Other Editors: setup instructions to use the Marko language server in various other editors
    "); +}, { + t: setup_marko_componentType, + i: true +}, setup_marko_component); +;// ./v6/docs/markdown/state.md +const markdown_state_marko_componentType = "KKNNFEaj", + markdown_state_marko_template = (0,index_js_namespaceObject.t)(markdown_state_marko_componentType); +/* harmony default export */ const markdown_state = (markdown_state_marko_template); +toc_registry.set("../pages/v6/docs/markdown/state.md", ""); +const markdown_state_title = "State & Derived State"; -const docs_name_index_marko_server_entry_marko_component = {}; -docs_name_index_marko_server_entry_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { - out.global.___renderAssets = docs_name_index_marko_server_entry_renderAssets; - (out.global.___entries || (out.global.___entries = [])).push(":name_IGBa"); - render_tag_js_default()((_flush_here_and_after_js_default()), { - "renderBody": out => { - const outAlias = out; - outAlias.global.___renderAssets && outAlias.global.___renderAssets(outAlias); - } - }, out, _componentDef, "0"); - render_tag_js_default()(docs_name_index_marko, input, out, _componentDef, "1"); - render_tag_js_default()((init_components_tag_js_default()), {}, out, _componentDef, "2"); - render_tag_js_default()((reorderer_renderer_js_default()), {}, out, _componentDef, "3"); +const markdown_state_marko_component = {}; +markdown_state_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { + out.w("

    State & Derived State

    Marko's reactive system makes it easy to manage your application's data and keep your user interface in sync with any changes. The key to this reactivity is how Marko tracks state.

    State with <let>

    In Marko, the <let> tag is used to declare state variables. These variables represent the data that can change over time, affecting how your components render and behave.

    "); + render_tag_js_default()(code_block_marko_index_marko_server_entry, { + "html": "
    <let/count=0/>\n
    ", + "concise": "
    let/count=0\n
    " + }, out, _componentDef, "11"); + out.w("

    This line of code declares a state variable named count and initializes it to 0.

    NOTE
    The variable name is defined after the / in the tag. This is known as a Tag Variable and is a way for a tag to provide data to the rest of the template. Any tag can declare Tag Variables using this syntax.

    You can access the value of a state variable just like any other variable in your template.

    "); + render_tag_js_default()(code_block_marko_index_marko_server_entry, { + "html": "
    <div>The current count is: ${count}</div>\n
    ", + "concise": "
    div -- The current count is: ${count}\n
    " + }, out, _componentDef, "22"); + out.w("

    Updating State

    To update a state variable, you reassign a new value to the tag variable. When you do, Marko will automatically re-render the component and any other parts of the UI that depend on the state that changed.

    "); + render_tag_js_default()(code_block_marko_index_marko_server_entry, { + "html": "
    <button onClick() { count = count + 1; }>\n  Increment\n</button>\n
    ", + "concise": "
    button onClick() {\n  count = count + 1;\n}\n  -- Increment\n
    " + }, out, _componentDef, "27"); + out.w("

    IMPORTANT
    State variables are immutable by default, which means you can't mutate their values. For example if you need to add an item to an array, prefer array = array.concat(newItem) (which updates the state to a new array containing the additional item) to array.push(newItem) (which mutates the array).

    Derived State with <const>

    The <const> tag is used to create derived state. It works similarly to <let> in that it defines a Tag Variable after the /, but the value is computed from other values. Marko automatically re-computes the value whenever any of its dependencies change.

    "); + render_tag_js_default()(code_block_marko_index_marko_server_entry, { + "html": "
    <let/firstName=\"Luke\"/>\n<let/lastName=\"Edwards\"/>\n\n<const/fullName=`${firstName} ${lastName}`/>\n\n<div>Hello, ${fullName}!</div>\n
    ", + "concise": "
    let/firstName=\"Luke\"\nlet/lastName=\"Edwards\"\n\nconst/fullName=`${firstName} ${lastName}`\n\ndiv -- Hello, ${fullName}!\n
    " + }, out, _componentDef, "43"); + out.w("

    In this example, fullName is derived from the values of firstName and lastName. Whenever either firstName or lastName changes, Marko automatically updates fullName, ensuring the UI is always consistent with the latest state.

    "); }, { - t: docs_name_index_marko_server_entry_marko_componentType, + t: markdown_state_marko_componentType, i: true -}, docs_name_index_marko_server_entry_marko_component); -;// ./v6/examples/[name]/index.marko - -const examples_name_index_marko_marko_componentType = "QqsBIzdb", - examples_name_index_marko_marko_template = (0,index_js_namespaceObject.t)(examples_name_index_marko_marko_componentType); -/* harmony default export */ const examples_name_index_marko = (examples_name_index_marko_marko_template); -const examples = { - "counter": { - "title": "Counter", - "description": "A simple counter", - files: [{ - name: "index.marko", - path: "/components/index.marko", - content: "\n" - }] - }, - "hello-world": { - "title": "Hello World", - "description": "A simple hello world example", - files: [{ - name: "index.marko", - path: "/components/index.marko", - content: "

    Hello World

    " - }] - }, - "loop": { - "title": "Loops and Lists", - "description": "A simple loop example", - files: [{ - name: "index.marko", - path: "/components/index.marko", - content: "\n
      \n \n
    • ${item}
    • \n \n
    \n" - }] - } -}; - +}, markdown_state_marko_component); +;// ./v6/docs/markdown/styles.md +const markdown_styles_marko_componentType = "bmbaMTHh", + markdown_styles_marko_template = (0,index_js_namespaceObject.t)(markdown_styles_marko_componentType); +/* harmony default export */ const markdown_styles = (markdown_styles_marko_template); +toc_registry.set("../pages/v6/docs/markdown/styles.md", ""); +const markdown_styles_title = "Styles in Marko"; -const examples_name_index_marko_marko_component = {}; -examples_name_index_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { - const { - params - } = input; - const currentExample = examples[params.name]; - render_tag_js_default()(app_layout_index_marko, { - "title": currentExample?.title, - "footer": false, - "discord": false, - "v6": true, - "renderBody": out => { - out.w("
    "); - for (const name in examples) { - const { - title, - description - } = examples[name]; - const _keyScope = `[${name}]`; - out.w(`${(0,escape_xml_js_namespaceObject.x)(title)}${(0,escape_xml_js_namespaceObject.x)(description)}`); - } - out.w("
    "); - render_tag_js_default()(repl_index_marko, { - "files": currentExample?.files || [] - }, out, _componentDef, "6"); - out.w("
    "); - } - }, out, _componentDef, "0"); +const markdown_styles_marko_component = {}; +markdown_styles_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { + out.w("

    Styles in Marko

    This section explains the different ways to style your Marko components, from simple inline styles to powerful techniques like CSS Modules for organized and maintainable stylesheets.

    Basic Styling Options

    1. Internal Styles with <style> Tags

    You can add CSS styles directly within your Marko components using the <style> tag. Just like in HTML, styles defined within a <style> tag will apply to the HTML elements within that component.

    Here's a simple example:

    "); + render_tag_js_default()(code_block_marko_index_marko_server_entry, { + "html": "
    <style>\n  .message {\n    background-color: lightblue;\n    padding: 10px;\n    border-radius: 5px;\n  }\n</style>\n\n<div class=\"message\">\n  This is a styled message!\n</div>\n
    ", + "concise": "
    style\n  --\n  .message {\n    background-color: lightblue;\n    padding: 10px;\n    border-radius: 5px;\n  }\n  --\n\ndiv.message -- This is a styled message!\n
    " + }, out, _componentDef, "16"); + out.w("

    Note: Styles defined within <style> tags have global scope by default. This means that they could potentially affect the styling of other components in your application.

    2. Inline Styles

    For simple, element-specific styling, you can use inline styles directly on HTML elements using the style attribute. The value of the style attribute should be a JavaScript string containing CSS property-value pairs.

    Here's an example:

    "); + render_tag_js_default()(code_block_marko_index_marko_server_entry, { + "html": "
    <p style=\"color: blue; font-size: 16px;\">\n  This is a paragraph with blue text.\n</p>\n
    ", + "concise": "
    p style=\"color: blue; font-size: 16px;\" -- This is a paragraph with blue text.\n
    " + }, out, _componentDef, "29"); + out.w("

    Recommendation: Inline styles are generally best suited for simple styling or for dynamically applying styles based on component state or props. For more complex or reusable styles, it's better to use internal or external stylesheets.

    External Stylesheets

    You can keep your CSS organized in separate files and link them to your Marko components. This approach is generally recommended for larger applications or when you want to reuse styles across multiple components.

    Autodiscovered Stylesheets

    Marko makes it incredibly easy to include CSS stylesheets. By default, Marko will automatically look for a stylesheet with the same name as your component file (but with a .css extension) and include it.

    For example, if you have a component file named profile-card.marko, Marko will automatically load the styles from a profile-card.css file in the same directory.

    Importing Stylesheets

    You can also import stylesheets explicitly using the import statement. This gives you more control over the loading order of your stylesheets and is useful for importing styles from node modules.

    Here's an example:

    "); + render_tag_js_default()(code_block_marko_index_marko_server_entry, { + "html": "
    import \"./styles/global.css\"; // Importing a stylesheet from a relative path\n\n<div>This content has styles from the imported stylesheet.</div>\n
    ", + "concise": "
    import \"./styles/global.css\"; // Importing a stylesheet from a relative path\n\ndiv -- This content has styles from the imported stylesheet.\n
    " + }, out, _componentDef, "51"); + out.w("

    Note: Similar to styles defined in <style> tags, styles from external stylesheets also have global scope by default. This means they could potentially affect other parts of your application.

    Scoping with CSS Modules

    To prevent style conflicts and ensure that your CSS styles are applied specifically to the intended components, Marko supports CSS Modules. CSS Modules allow you to write modular and reusable CSS without worrying about naming collisions or unintended side effects. With CSS Modules, class names in your CSS files are scoped locally by default, which means they won't clash with class names in other parts of your application. This is especially beneficial when working with component-based architectures, as it promotes true style encapsulation.

    CSS Modules with <style> Tags

    You can use CSS Modules directly within <style> tags in your Marko components. To do this, you'll use a tag variable with the <style> tag, like this:

    "); + render_tag_js_default()(code_block_marko_index_marko_server_entry, { + "html": "
    <style/styles>\n  .message {\n    background-color: lightblue;\n    padding: 10px;\n    border-radius: 5px;\n  }\n</style>\n\n<div class=styles.message>\n  This is a styled message!\n</div>\n
    ", + "concise": "
    style/styles\n  --\n  .message {\n    background-color: lightblue;\n    padding: 10px;\n    border-radius: 5px;\n  }\n  --\n\ndiv class=styles.message -- This is a styled message!\n
    " + }, out, _componentDef, "69"); + out.w("

    The styles variable (you can name it anything) now acts as an object that holds the locally scoped class names from your CSS. By using styles.message, you ensure that this style is applied only to the intended element within this component.

    CSS Modules with External Stylesheets

    To use CSS modules with external stylesheets, you need to import the stylesheet using an alias and access the class names as properties of that alias. Most bundlers (like Webpack and Rollup) have built-in support for CSS modules and you only need to name your css files with the .module.css extension. For example, given the file styles/button.module.css:

    "); + render_tag_js_default()(code_block_marko_index_marko_server_entry, { + "html": "
    import styles from \"./styles/button.module.css\";\n\n<button class=styles.primary>\n  Submit\n</button>\n
    ", + "concise": "
    import styles from \"./styles/button.module.css\";\n\nbutton class=styles.primary -- Submit\n
    " + }, out, _componentDef, "79"); + out.w("

    In this example, styles.primary will contain a unique class name generated by the CSS Modules system, preventing any styling conflicts.

    Preprocessors (Optional)

    Marko can be used with CSS preprocessors like Sass, Less, and Stylus. However, the setup for preprocessors is typically handled by your build tools rather than Marko itself. Most modern JavaScript bundlers provide plugins or loaders to integrate with CSS preprocessors.

    If you'd like to use a CSS preprocessor with your Marko project, consult the documentation for your chosen bundler (like Webpack or Rollup) on how to set it up.

    "); }, { - t: examples_name_index_marko_marko_componentType, + t: markdown_styles_marko_componentType, i: true -}, examples_name_index_marko_marko_component); -;// ./v6/examples/[name]/index.marko?server-entry +}, markdown_styles_marko_component); +;// ./v6/docs/:name/document-lookup.js -const examples_name_index_marko_server_entry_marko_componentType = "ReYAiJik", - examples_name_index_marko_server_entry_marko_template = (0,index_js_namespaceObject.t)(examples_name_index_marko_server_entry_marko_componentType); -/* harmony default export */ const examples_name_index_marko_server_entry = (examples_name_index_marko_server_entry_marko_template); -const examples_name_index_marko_server_entry_crossOriginAttr = new URL(__webpack_require__.p, "file:").protocol === "file:" ? "" : " crossorigin"; -function examples_name_index_marko_server_entry_renderAssets(out) { - const $global = out.global; - const entries = $global.___entries; - $global.___entries = undefined; - if (entries) { - const buildName = $global.buildName; - const nonce = $global.cspNonce; - const nonceAttr = nonce ? ` nonce=${JSON.stringify(nonce)}` : ""; - const written = $global.___writtenAssets || ($global.___writtenAssets = new Set()); - let scripts = ""; - let styles = ""; - for (const entry of entries) { - const assets = index_js_manifest.getAssets(entry, buildName); - if (assets.js) { - for (const href of assets.js) { - if (!written.has(href)) { - written.add(href); - scripts += ``; - } - } - } - if (assets.css) { - for (const href of assets.css) { - if (!written.has(href)) { - written.add(href); - styles += ``; - } - } - } - } - out.write(scripts + styles); - } -} -const examples_name_index_marko_server_entry_marko_component = {}; -examples_name_index_marko_server_entry_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { - out.global.___renderAssets = examples_name_index_marko_server_entry_renderAssets; - (out.global.___entries || (out.global.___entries = [])).push("[name]_FLzY"); - render_tag_js_default()((_flush_here_and_after_js_default()), { - "renderBody": out => { - const outAlias = out; - outAlias.global.___renderAssets && outAlias.global.___renderAssets(outAlias); + + + + +const document_lookup_documentLookup = {}; +const document_lookup_docsByRepo = { + "marko-js/website": { + trim: "", + docs: { + "../markdown/components.md": components_namespaceObject, + "../markdown/conditionals.md": conditionals_namespaceObject, + "../markdown/events.md": markdown_events_namespaceObject, + "../markdown/javascript.md": javascript_namespaceObject, + "../markdown/language.md": language_namespaceObject, + "../markdown/lists.md": lists_namespaceObject, + "../markdown/setup.md": setup_namespaceObject, + "../markdown/state.md": markdown_state_namespaceObject, + "../markdown/styles.md": markdown_styles_namespaceObject } - }, out, _componentDef, "0"); - render_tag_js_default()(examples_name_index_marko, input, out, _componentDef, "1"); - render_tag_js_default()((init_components_tag_js_default()), {}, out, _componentDef, "2"); - render_tag_js_default()((reorderer_renderer_js_default()), {}, out, _componentDef, "3"); -}, { - t: examples_name_index_marko_server_entry_marko_componentType, - i: true -}, examples_name_index_marko_server_entry_marko_component); -;// ./v6/tutorials/:name/components/tutorial.marko + } +}; +Object.keys(document_lookup_docsByRepo).forEach(repo => { + const { + trim, + prefix = "", + docs + } = document_lookup_docsByRepo[repo]; + Object.keys(docs).forEach(filePath => { + const slug = document_lookup_fileNameToSlug(filePath); + const doc = docs[filePath]; + const repoPath = filePath.replace(trim, prefix); + document_lookup_documentLookup[slug] = { + repo, + repoPath, + template: doc.default, + title: doc.title, + toc: toc_registry.get(filePath) + }; + }); +}); +function document_lookup_fileNameToSlug(file) { + let slug; + do { + slug = external_path_default().basename(file, ".md"); + file = external_path_default().dirname(file); + } while (slug === "README"); + return slug; +} +structure_json_default().forEach(doc => { + addOverviewDoc(doc); + function addOverviewDoc(doc, parentSlug) { + const { + title, + docs + } = doc; + const titleSlug = format_slug_default()(title); + docs.forEach(childDoc => { + if (typeof childDoc === "object") { + addOverviewDoc(childDoc, titleSlug); + } + }); + let docName; + if (parentSlug) { + docName = `${parentSlug}-${titleSlug}-overview`; + } else { + docName = `${titleSlug}-overview`; + } + document_lookup_documentLookup[docName] = { + overview: true, + title, + docs + }; + } +}); +/* harmony default export */ const _name_document_lookup = (document_lookup_documentLookup); +;// ./v6/docs/:name/index.marko -const tutorial_marko_marko_componentType = "wuKnSKQd", - tutorial_marko_marko_template = (0,index_js_namespaceObject.t)(tutorial_marko_marko_componentType); -/* harmony default export */ const tutorial_marko = (tutorial_marko_marko_template); +const docs_name_index_marko_marko_componentType = "qroBBNJb", + docs_name_index_marko_marko_template = (0,index_js_namespaceObject.t)(docs_name_index_marko_marko_componentType); +/* harmony default export */ const docs_name_index_marko = (docs_name_index_marko_marko_template); @@ -6130,73 +6149,54 @@ const tutorial_marko_marko_componentType = "wuKnSKQd", -const tutorial_marko_marko_component = { - onCreate() { - this.state = {}; - } -}; -tutorial_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component2, state, $global) { - var _component = _component2, - _state = state; - const { - tutorial - } = input; - let stepNumber = 0; - const totalSteps = tutorial.steps.length; - const step = tutorial.steps[stepNumber]; - const setStep = (0,cached_values_namespaceObject.cache)((0,cached_values_namespaceObject.cached)(_component, [tutorial["steps"]]) || function (number) { - stepNumber = number; - files = tutorial.steps[number].before; - }); - let files = step.before; - out.w(`
    ${(0,escape_xml_js_namespaceObject.x)(tutorial.title)}Step ${(0,escape_xml_js_namespaceObject.x)(stepNumber + 1)}/${(0,escape_xml_js_namespaceObject.x)(totalSteps)}PrevNext

    ${(0,escape_xml_js_namespaceObject.x)(step.title)}

    ${to_string_js_default()(step.content)}
    SolveReset
    `); - render_tag_js_default()(repl_index_marko, { - "files": files, - "filesChange": (0,cached_values_namespaceObject.cache)((0,cached_values_namespaceObject.cached)(_component, []) || (_ => files = _)) - }, out, _componentDef, "12"); - out.w("
    "); -}, { - t: tutorial_marko_marko_componentType -}, tutorial_marko_marko_component); -;// ./v6/tutorials/:name/index.marko -const tutorials_name_index_marko_marko_componentType = "LaKxeARl", - tutorials_name_index_marko_marko_template = (0,index_js_namespaceObject.t)(tutorials_name_index_marko_marko_componentType); -/* harmony default export */ const tutorials_name_index_marko = (tutorials_name_index_marko_marko_template); -const tutorials_name_index_marko_marko_component = {}; -tutorials_name_index_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { +const docs_name_index_marko_marko_component = {}; +docs_name_index_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { const { params } = input; + const doc = _name_document_lookup[params.name]; render_tag_js_default()(app_layout_index_marko, { - "title": tutorials[params.name].title, + "title": doc.title, + "currentDoc": params.name, + "toc": doc.toc, "footer": false, - "discord": false, + "v6": true, + "class": "docs", "renderBody": out => { - render_tag_js_default()(tutorial_marko, { - "tutorial": tutorials[params.name] - }, out, _componentDef, "1"); + out.w("
    "); + if (!doc.overview) { + dynamic_tag_js_default()(out, doc.template, null, null, null, null, _componentDef, "4"); + render_tag_js_default()(edit_on_github_index_marko, doc, out, _componentDef, "5"); + render_tag_js_default()(contributors_index_marko, doc, out, _componentDef, "6"); + } else { + render_tag_js_default()(document_overview_index_marko, doc, out, _componentDef, "7"); + } + render_tag_js_default()(app_footer_index_marko, { + "class": "doc-footer" + }, out, _componentDef, "8"); + out.w("
    "); } }, out, _componentDef, "0"); }, { - t: tutorials_name_index_marko_marko_componentType, + t: docs_name_index_marko_marko_componentType, i: true -}, tutorials_name_index_marko_marko_component); -;// ./v6/tutorials/:name/index.marko?server-entry +}, docs_name_index_marko_marko_component); +;// ./v6/docs/:name/index.marko?server-entry -const tutorials_name_index_marko_server_entry_marko_componentType = "yQHdQhNi", - tutorials_name_index_marko_server_entry_marko_template = (0,index_js_namespaceObject.t)(tutorials_name_index_marko_server_entry_marko_componentType); -/* harmony default export */ const tutorials_name_index_marko_server_entry = (tutorials_name_index_marko_server_entry_marko_template); +const docs_name_index_marko_server_entry_marko_componentType = "RJzypcyb", + docs_name_index_marko_server_entry_marko_template = (0,index_js_namespaceObject.t)(docs_name_index_marko_server_entry_marko_componentType); +/* harmony default export */ const docs_name_index_marko_server_entry = (docs_name_index_marko_server_entry_marko_template); -const tutorials_name_index_marko_server_entry_crossOriginAttr = new URL(__webpack_require__.p, "file:").protocol === "file:" ? "" : " crossorigin"; -function tutorials_name_index_marko_server_entry_renderAssets(out) { +const docs_name_index_marko_server_entry_crossOriginAttr = new URL(__webpack_require__.p, "file:").protocol === "file:" ? "" : " crossorigin"; +function docs_name_index_marko_server_entry_renderAssets(out) { const $global = out.global; const entries = $global.___entries; $global.___entries = undefined; @@ -6213,7 +6213,7 @@ function tutorials_name_index_marko_server_entry_renderAssets(out) { for (const href of assets.js) { if (!written.has(href)) { written.add(href); - scripts += ``; + scripts += ``; } } } @@ -6234,23 +6234,23 @@ function tutorials_name_index_marko_server_entry_renderAssets(out) { -const tutorials_name_index_marko_server_entry_marko_component = {}; -tutorials_name_index_marko_server_entry_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { - out.global.___renderAssets = tutorials_name_index_marko_server_entry_renderAssets; - (out.global.___entries || (out.global.___entries = [])).push(":name_5gMv"); +const docs_name_index_marko_server_entry_marko_component = {}; +docs_name_index_marko_server_entry_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { + out.global.___renderAssets = docs_name_index_marko_server_entry_renderAssets; + (out.global.___entries || (out.global.___entries = [])).push(":name_IGBa"); render_tag_js_default()((_flush_here_and_after_js_default()), { "renderBody": out => { const outAlias = out; outAlias.global.___renderAssets && outAlias.global.___renderAssets(outAlias); } }, out, _componentDef, "0"); - render_tag_js_default()(tutorials_name_index_marko, input, out, _componentDef, "1"); + render_tag_js_default()(docs_name_index_marko, input, out, _componentDef, "1"); render_tag_js_default()((init_components_tag_js_default()), {}, out, _componentDef, "2"); render_tag_js_default()((reorderer_renderer_js_default()), {}, out, _componentDef, "3"); }, { - t: tutorials_name_index_marko_server_entry_marko_componentType, + t: docs_name_index_marko_server_entry_marko_componentType, i: true -}, tutorials_name_index_marko_server_entry_marko_component); +}, docs_name_index_marko_server_entry_marko_component); ;// ../../node_modules/webpack-inject-plugin/dist/webpack-inject-plugin.loader.js?id=webpack-inject-module-2! @@ -6301,33 +6301,33 @@ function getRoute(url) { return { params, template:examples_name_index_marko_server_entry }; } } else {} - } else if (part_1 === "tutorials") { + } else if (part_1 === "docs") { const part_2 = pathParts[2]; if (part_2 === undefined) { - return { params, template:tutorials_index_marko_server_entry }; + return { params, template:docs_index_marko_server_entry }; } else if (true) { params["name"] = part_2; const part_3 = pathParts[3]; if (part_3 === undefined) { - return { params, template:tutorials_name_index_marko_server_entry }; + return { params, template:docs_name_index_marko_server_entry }; } } - } else if (part_1 === "playground") { - const part_2 = pathParts[2]; - if (part_2 === undefined) { - return { params, template:v6_playground_index_marko_server_entry }; - } - } else if (part_1 === "docs") { + } else if (part_1 === "tutorials") { const part_2 = pathParts[2]; if (part_2 === undefined) { - return { params, template:docs_index_marko_server_entry }; + return { params, template:tutorials_index_marko_server_entry }; } else if (true) { params["name"] = part_2; const part_3 = pathParts[3]; if (part_3 === undefined) { - return { params, template:docs_name_index_marko_server_entry }; + return { params, template:tutorials_name_index_marko_server_entry }; } } + } else if (part_1 === "playground") { + const part_2 = pathParts[2]; + if (part_2 === undefined) { + return { params, template:v6_playground_index_marko_server_entry }; + } } } else if (part_0 === "try-online") { const part_1 = pathParts[1]; @@ -6413,4 +6413,4 @@ _http.default.createServer((req, res) => { module.exports = __webpack_exports__; /******/ })() ; -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7OztBQ3JEQTtBQUNBO0FBQ0E7QUFJQTtBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7Ozs7QUNkQTtBQUVBO0FBQ0E7QUFFQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBRUE7QUFFQTtBQUNBO0FBR0E7QUFDQTtBQUdBO0FBQ0E7Ozs7Ozs7QUNsQ0E7QUFRQTtBQUNBO0FBRUE7QUFDQTtBQUVBO0FBQ0E7QUFHQTtBQUNBO0FBR0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBOzs7Ozs7O0FDekNBO0FBQ0E7QUFJQTs7Ozs7Ozs7QUNMQTs7Ozs7Ozs7QUNBQTs7Ozs7Ozs7QUNBQTs7Ozs7Ozs7QUNBQTs7Ozs7Ozs7QUNBQTs7Ozs7O0FDQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7O0FDdkJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7O0FDUEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7QUNQQTs7Ozs7QUNBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7QUNOQTs7Ozs7OztBQ0FBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ0hBOztBQ0FBOztBQ0FBOztBQ0FBOztBQ0FBOztBQ0FBOztBQ0FBOzs7QUNBQTs7O0FDQUE7OztBQ0FBOzs7QUNBQTs7O0FDQUE7OztBQ0FBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNxRUE7QUFBQTtBQUFBO0FBQUE7QUFTQTtBQUFBO0FBQUE7QUFBQTtBQUdBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBS0E7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUFBO0FBSUE7QUFBQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBS0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUNoSEE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBOztBQ0FBOzs7Ozs7O0FGQUE7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQ0E7QUFHQTtBQUFBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFFQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTs7Ozs7Ozs7O0FHNURBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUNBO0FBR0E7QUFBQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBRUE7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7O0FDNURBOztBQ0FBOzs7QUNBQTs7Ozs7O0FDQUE7QUFFQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFDQTtBQUFBO0FBc0JBO0FBQUE7QUFBQTtBQUFBO0FBQUE7O0FDbkNBOzs7QUNBQTs7Ozs7Ozs7O0FDQ0E7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBQUE7O0FDUEE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ0FBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFDQTtBQUlBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFFQTtBQUFBO0FBQUE7QUFRQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBR0E7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFLQTtBQUFBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQWVBO0FBQ0E7QUFBQTtBQVdBO0FBQUE7QUFBQTtBQUFBO0FBR0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBOztBQ2pFQTs7QUNBQTs7Ozs7Ozs7Ozs7QUNBQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBRUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNSQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUNGQTs7O0FDQUE7OztBQ0FBOzs7Ozs7O0FDQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFGQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7Ozs7Ozs7Ozs7O0FDSEE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFVQTtBQUFBO0FBQUE7QUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNYQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFVQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFHQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBb0JBO0FBQUE7QUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUMxQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBVUE7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBS0E7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU9BO0FBQUE7QUFBQTtBQUFBO0FBR0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQ0E7QUFFQTtBQUNBO0FBQUE7QUFDQTtBQUxBO0FBTUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVlBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQUE7QUFBQTtBQUVBO0FBQUE7QUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDaEZBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFKQTtBQUtBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBOztBQ0xBOzs7Ozs7Ozs7O0FDQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUNBQTs7QUNBQTs7Ozs7Ozs7OztBQ0FBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Ozs7Ozs7Ozs7Ozs7OztBQ0FBO0FBZ0JBO0FBQ0E7QUFBQTtBQVdBO0FBQUE7QUFPQTtBQUdBO0FBQUE7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7O0FDeENBOzs7Ozs7Ozs7OztBQ0FBOzs7QUNBQTs7Ozs7O0FDQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBR0E7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUdBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7QUNSQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBRUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUVBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBRUE7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUlBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBR0E7QUFBQTtBQUZBO0FBSUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFPQTtBQUFBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7O0FDdkVBOztBQ0FBOztBQ0FBOzs7Ozs7Ozs7Ozs7OztBQ0FBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Ozs7Ozs7Ozs7QUNBQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQ0E7QUFBQTtBQVNBO0FBQUE7QUFBQTtBQUFBOztBQ1pBOzs7Ozs7Ozs7OztBQzRDQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7QUM1Q0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBT0E7QUFDQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBMEJBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFBQTtBQU9BO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQUE7QUFFQTtBQUNBO0FBQUE7QUFHQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Ozs7Ozs7Ozs7OztBQzVEQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFBQTtBQUFBO0FBR0E7QUFBQTtBQUFBO0FBQUE7QUFBQTs7Ozs7O0FBSkE7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQ0E7QUFHQTtBQUFBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFFQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTs7Ozs7Ozs7O0FDNURBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUNBO0FBR0E7QUFBQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBRUE7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Ozs7Ozs7O0FDM0RBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTs7Ozs7Ozs7Ozs7QUN6QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBR0E7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBR0E7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUFBO0FBSEE7QUFnQkE7QUFBQTtBQUZBO0FBQUE7QUFBQTs7Ozs7Ozs7Ozs7O0FDcENBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFBQTs7Ozs7O0FBRkE7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQ0E7QUFHQTtBQUFBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFFQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUM1REE7O0FDQUE7Ozs7Ozs7Ozs7OztBQ0FBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBQTtBQXNCQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Ozs7Ozs7OztBQ3RCQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7Ozs7Ozs7Ozs7O0FDQUE7QUFDQTtBQUFBO0FBQUE7QUFBQTs7Ozs7Ozs7O0FDQUE7QUFDQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFBQTs7Ozs7Ozs7O0FDUkE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQ0E7QUFDQTtBQW1DQTtBQUFBO0FBQUE7QUFDQTtBQUdBO0FBQ0E7QUFBQTtBQUdBO0FBQUE7QUFGQTtBQUlBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7Ozs7Ozs7Ozs7QUNqREE7QUFHQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUFBO0FBSUE7QUFBQTtBQUVBO0FBQ0E7QUFBQTtBQUtBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7Ozs7Ozs7OztBQ25CQTtBQUFBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFJQTtBQUNBO0FBQ0E7QUFHQTtBQUFBO0FBQUE7QUFvQkE7QUErQkE7QUFBQTtBQUFBO0FBakNBO0FBQUE7QUFBQTtBQUFBO0FBOUJBO0FBaUZBO0FBQUE7QUFBQTtBQUFBOztBQ2pGQTs7QUNBQTs7QUNBQTs7Ozs7Ozs7Ozs7Ozs7OztBQ3dOQTtBQUVBO0FBQ0E7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUtBO0FBQUE7QUFDQTtBQUFBO0FBT0E7QUFBQTtBQVNBO0FBQUE7QUFTQTtBQUFBO0FBUUE7QUFDQTtBQUFBO0FBT0E7QUFBQTtBQUZBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Ozs7Ozs7Ozs7OztBQzNRQTtBQUNBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBZUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFJQTtBQUNBO0FBQUE7QUFBQTtBQUdBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7Ozs7Ozs7Ozs7OztBQ2pEQTtBQUFBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFHQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQVJBO0FBQUE7QUFTQTtBQUFBO0FBQUE7QUFBQTs7Ozs7Ozs7Ozs7OztBQ1RBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUdBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFUQTtBQUFBO0FBVUE7QUFBQTtBQUFBO0FBQUE7O0FDVkE7Ozs7Ozs7Ozs7Ozs7O0FDQUE7QUFBQTtBQUFBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBR0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQTJEQTtBQUFBO0FBQUE7QUFBQTtBQWpFQTtBQWtFQTtBQUFBO0FBQUE7QUFBQTs7QUNsRUE7Ozs7Ozs7Ozs7Ozs7O0FDQUE7QUFBQTtBQUFBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBV0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBU0E7QUFBQTtBQUFBO0FBQUE7QUF4QkE7QUFBQTtBQXlCQTtBQUFBO0FBQUE7QUFBQTs7Ozs7QUN6QkE7O0FDQUE7O0FDQUE7Ozs7Ozs7QUNBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUdBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUE0QkE7QUFDQTtBQUFBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFIQTtBQUFBO0FBU0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQTVDQTtBQStDQTtBQUFBO0FBQUE7QUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ2pEQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7QUNUQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7Ozs7O0FBRkE7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQ0E7QUFHQTtBQUFBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFFQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTs7Ozs7O0FENURBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUNBO0FBR0E7QUFBQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBRUE7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Ozs7Ozs7Ozs7O0FFNURBO0FBQUE7QUFDQTtBQURBO0FBQUE7QUFBQTtBQUFBOztBQ0FBOzs7Ozs7QURBQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBS0E7QUFDQTtBQUdBO0FBQUE7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUVBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7QUU1REE7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUF3Q0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFpREE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQWdCQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBWUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVdBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFlQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBd0JBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Ozs7OztBQ2hMQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQWFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBU0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBS0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBVUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7Ozs7O0FDcEZBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBY0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUdBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFTQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFHQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBS0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFpQkE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBOztBQzdEQTs7Ozs7O0FDQUE7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBb0JBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBR0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVdBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFtQkE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVdBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFXQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBU0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVdBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFHQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1BO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBV0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUdBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBUUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBdUdBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUF3TUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQXNCQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7Ozs7O0FDN2RBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7O0FDSkE7Ozs7OztBQ0FBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQXNHQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBbUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Ozs7OztBQzdJQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFRQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQWFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFHQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBR0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUdBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFHQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Ozs7OztBQ3JDQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUdBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7QUNwQkE7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFHQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFVQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQXVDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBR0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Ozs7OztBQ3JHQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFHQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBR0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUdBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFHQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBNkJBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFPQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Ozs7OztBQ3hEQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7QUNKQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBR0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7QUNsQ0E7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7Ozs7O0FDSkE7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFZQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7QUNoQkE7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFZQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBR0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFHQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Ozs7OztBQzNCQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7QUNKQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7QUNKQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7QUNKQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQW1CQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7QUN2QkE7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7Ozs7O0FDSkE7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7Ozs7O0FDSkE7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUE4QkE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQTZJQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBUUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQWdCQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBUUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUdBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQWFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBR0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQTBCQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUdBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFZQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7QUM3UkE7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7QUNUQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUEySkE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7Ozs7O0FDektBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBZ0RBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7QUMxREE7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBR0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFpQkE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7Ozs7O0FDN0JBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7QUNOQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFRQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVdBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUdBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBS0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFTQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQWNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBU0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFRQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1BO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBR0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBT0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFPQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7Ozs7O0FDM0tBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7O0FDSkE7O0FDQUE7O0FDQUE7Ozs7OztBQ0FBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFvQkE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBR0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBZ0VBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFHQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBR0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBR0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7QUNoSkE7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7Ozs7O0FDSkE7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFXQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7QUNmQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQXdDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBV0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQWdCQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBWUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQXFCQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ3hHQTtBQUNBO0FBRUE7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUdBO0FBQ0E7QUFFQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBRUE7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7O0FDN0VBOzs7Ozs7Ozs7Ozs7QUNBQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7Ozs7QUNBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBMENBO0FBQUE7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBY0E7QUFDQTtBQUFBO0FBS0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUF0QkE7QUFBQTtBQThCQTtBQUFBO0FBQUE7QUFBQTs7Ozs7O0FDMUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUNBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUdBO0FBQUE7QUFGQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBT0E7QUFBQTtBQUFBO0FBQUE7Ozs7OztBQ25CQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFDQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBR0E7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7QUF0QkE7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQ0E7QUFHQTtBQUFBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFFQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTs7Ozs7Ozs7O0FDNURBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUNBO0FBR0E7QUFBQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBRUE7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Ozs7Ozs7OztBQzVEQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBS0E7QUFDQTtBQUdBO0FBQUE7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUVBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7Ozs7QUM1REE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQ0E7QUFHQTtBQUFBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFFQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUM1REE7Ozs7OztBQ0FBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBRUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBUEE7QUFRQTtBQUFBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUFBQTs7Ozs7Ozs7Ozs7O0FDbkJBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUdBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Ozs7OztBQUpBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUNBO0FBR0E7QUFBQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBRUE7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7O0FDNURBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTs7Ozs7O0FDdENBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQVNBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7QUFkQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBS0E7QUFDQTtBQUdBO0FBQUE7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUVBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7Ozs7QUM1REE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQ0E7QUFHQTtBQUFBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFFQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTs7Ozs7O0FDNURBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQW1CQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7Ozs7O0FDakNBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQXVCQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBR0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFVQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7QUM5Q0E7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFHQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7QUNmQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUdBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBR0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Ozs7OztBQ2hCQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU9BO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7Ozs7O0FDbkJBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQThCQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBU0E7QUFBQTtBQUFBO0FBQUE7QUFBQTs7Ozs7O0FDN0NBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Ozs7OztBQ0pBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBR0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBR0E7QUFBQTtBQUFBO0FBQUE7QUFBQTs7Ozs7O0FDaEJBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFPQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUdBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Ozs7Ozs7Ozs7O0FDMUJBO0FBQ0E7QUFFQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFFQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTs7Ozs7O0FDdEVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUNBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUdBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFBQTs7Ozs7O0FBekJBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUNBO0FBR0E7QUFBQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBRUE7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Ozs7OztBQzVEQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUNBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFNQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFBQTs7Ozs7O0FBN0NBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUNBO0FBR0E7QUFBQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBRUE7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQzVEQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFBQTtBQUNBO0FBRUE7QUF5QkE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7Ozs7O0FDbENBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFBQTs7Ozs7O0FBTkE7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQ0E7QUFHQTtBQUFBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFFQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUM1REE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7O0FDNUhBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZXMiOlsiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL25vZGVfbW9kdWxlcy9AbWFya28vYnVpbGQvZGlzdC9maWxlcy9taWRkbGV3YXJlLmpzIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9jb21wb25lbnRzL2hlYWRpbmcvZ2V0QW5jaG9yTmFtZS5qcyIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvcGFnZXMvZG9jcy9jb21wb25lbnRzL2NvbnRyaWJ1dG9ycy9nZXQtY29udHJpYnV0b3JzLmpzIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy91dGlscy9jcmVhdGUtb3ZlcnZpZXctdHJlZS5qcyIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvdXRpbHMvZm9ybWF0LXNsdWcuanMiLCJleHRlcm5hbCBjb21tb25qcyBcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvaW50ZXJvcFJlcXVpcmVEZWZhdWx0XCIiLCJleHRlcm5hbCBjb21tb25qcyBcImNvbm5lY3QtZ3ppcC1zdGF0aWNcIiIsImV4dGVybmFsIGNvbW1vbmpzIFwiZ2gtZ290XCIiLCJleHRlcm5hbCBub2RlLWNvbW1vbmpzIFwiaHR0cFwiIiwiZXh0ZXJuYWwgbm9kZS1jb21tb25qcyBcInBhdGhcIiIsIndlYnBhY2svYm9vdHN0cmFwIiwid2VicGFjay9ydW50aW1lL2NvbXBhdCBnZXQgZGVmYXVsdCBleHBvcnQiLCJ3ZWJwYWNrL3J1bnRpbWUvZGVmaW5lIHByb3BlcnR5IGdldHRlcnMiLCJ3ZWJwYWNrL3J1bnRpbWUvaGFzT3duUHJvcGVydHkgc2hvcnRoYW5kIiwid2VicGFjay9ydW50aW1lL21ha2UgbmFtZXNwYWNlIG9iamVjdCIsIndlYnBhY2svcnVudGltZS9wdWJsaWNQYXRoIiwiIiwiZXh0ZXJuYWwgY29tbW9uanMgXCJtYXJrby9kaXN0L3J1bnRpbWUvaHRtbC9pbmRleC5qc1wiIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL25vZGVfbW9kdWxlcy9AbWFya28vYnVpbGQvZGlzdC9maWxlcy9wYXJlbnQtZGlyLnBuZyIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9ub2RlX21vZHVsZXMvQG1hcmtvL2J1aWxkL2Rpc3QvZmlsZXMvZGlyLnBuZyIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9ub2RlX21vZHVsZXMvQG1hcmtvL2J1aWxkL2Rpc3QvZmlsZXMvZmlsZS5wbmciLCJleHRlcm5hbCBjb21tb25qcyBcIm1hcmtvL2Rpc3QvcnVudGltZS9odG1sL2hlbHBlcnMvZXNjYXBlLXhtbC5qc1wiIiwiZXh0ZXJuYWwgY29tbW9uanMgXCJtYXJrby9kaXN0L3J1bnRpbWUvaHRtbC9oZWxwZXJzL2VzY2FwZS1xdW90ZXMuanNcIiIsImV4dGVybmFsIGNvbW1vbmpzIFwibWFya28vZGlzdC9ydW50aW1lL2hlbHBlcnMvb2YtZmFsbGJhY2suanNcIiIsImV4dGVybmFsIGNvbW1vbmpzIFwibWFya28vZGlzdC9ydW50aW1lL2h0bWwvaGVscGVycy9hdHRyLmpzXCIiLCJleHRlcm5hbCBjb21tb25qcyBcIm1hcmtvL2Rpc3QvY29yZS10YWdzL2NvbXBvbmVudHMvaW5pdC1jb21wb25lbnRzLXRhZy5qc1wiIiwiZXh0ZXJuYWwgY29tbW9uanMgXCJtYXJrby9kaXN0L3J1bnRpbWUvaGVscGVycy9yZW5kZXItdGFnLmpzXCIiLCJleHRlcm5hbCBjb21tb25qcyBcIm1hcmtvL2Rpc3QvY29yZS10YWdzL2NvcmUvYXdhaXQvcmVvcmRlcmVyLXJlbmRlcmVyLmpzXCIiLCJleHRlcm5hbCBjb21tb25qcyBcIm1hcmtvL2Rpc3QvY29yZS10YWdzL2NvbXBvbmVudHMvcHJlZmVycmVkLXNjcmlwdC1sb2NhdGlvbi10YWcuanNcIiIsImV4dGVybmFsIGNvbW1vbmpzIFwibWFya28vZGlzdC9ydW50aW1lL2NvbXBvbmVudHMvcmVuZGVyZXIuanNcIiIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9ub2RlX21vZHVsZXMvQG1hcmtvL2J1aWxkL2Rpc3QvZmlsZXMvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvbm9kZV9tb2R1bGVzL0BtYXJrby9idWlsZC9kaXN0L2ZpbGVzL2Rpci1pbmRleC5tYXJrbyIsIj9tYW5pZmVzdCIsImV4dGVybmFsIGNvbW1vbmpzIFwibWFya28vZGlzdC9jb3JlLXRhZ3MvY29yZS9fX2ZsdXNoX2hlcmVfYW5kX2FmdGVyX18uanNcIiIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvcGFnZXMvZG9jcy9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvcGFnZXMvZG9jcy9pbmRleC5tYXJrbyIsImV4dGVybmFsIGNvbW1vbmpzIFwiQG1hcmtvL3RhZ3MtYXBpLXByZXZpZXcvZGlzdC90cmFuc2Zvcm0vY2FjaGVkLXZhbHVlc1wiIiwiZXh0ZXJuYWwgY29tbW9uanMgXCJAbWFya28vdGFncy1hcGktcHJldmlldy9kaXN0L2NvbXBvbmVudHMvcmV0dXJuXCIiLCJleHRlcm5hbCBjb21tb25qcyBcImx6LXN0cmluZ1wiIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9wYWdlcy9wbGF5Z3JvdW5kL2NvbXBvbmVudHMvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL3BhZ2VzL3BsYXlncm91bmQvY29tcG9uZW50cy9oYXNoLXZhbHVlLm1hcmtvIiwiZXh0ZXJuYWwgY29tbW9uanMgXCJAbWFya28vdGFncy1hcGktcHJldmlldy9kaXN0L3V0aWwvcmVwbGFjZS1hc3NpZ25tZW50c1wiIiwiZXh0ZXJuYWwgY29tbW9uanMgXCJAbWFya28vdGFncy1hcGktcHJldmlldy9kaXN0L3RyYW5zZm9ybS9uYXRpdmUtdGFnLXZhclwiIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL25vZGVfbW9kdWxlcy9AbWFya28vdGFncy1hcGktcHJldmlldy9kaXN0L2NvbXBvbmVudHMvX2luc3RhbmNlL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL25vZGVfbW9kdWxlcy9AbWFya28vdGFncy1hcGktcHJldmlldy9kaXN0L2NvbXBvbmVudHMvX2luc3RhbmNlL2luZGV4Lm1hcmtvIiwiZXh0ZXJuYWwgY29tbW9uanMgXCJtYXJrby9kaXN0L3J1bnRpbWUvaGVscGVycy9jbGFzcy12YWx1ZS5qc1wiIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9jb21wb25lbnRzL3JlcGwvY29tcG9uZW50cy9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvY29tcG9uZW50cy9yZXBsL2NvbXBvbmVudHMvZmlsZS10YWJzLm1hcmtvIiwiZXh0ZXJuYWwgY29tbW9uanMgXCJtYXJrby9kaXN0L3J1bnRpbWUvaGVscGVycy9hdHRyLXRhZy5qc1wiIiwiZXh0ZXJuYWwgY29tbW9uanMgXCJtYXJrby9kaXN0L3J1bnRpbWUvaGVscGVycy9keW5hbWljLXRhZy5qc1wiIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9jb21wb25lbnRzL3JlcGwvY29tcG9uZW50cy9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvY29tcG9uZW50cy9yZXBsL2NvbXBvbmVudHMvcGFuZS5tYXJrbyIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvY29tcG9uZW50cy9yZXBsL2NvbXBvbmVudHMvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL2NvbXBvbmVudHMvcmVwbC9jb21wb25lbnRzL2NvbnRyb2xsYWJsZS1zZWxlY3QubWFya28iLCJleHRlcm5hbCBjb21tb25qcyBcIkBtYXJrby90YWdzLWFwaS1wcmV2aWV3L2Rpc3QvdHJhbnNsYXRlL25hdGl2ZS10YWctaGFuZGxlcnNcIiIsImV4dGVybmFsIGNvbW1vbmpzIFwibWFya28vZGlzdC9ydW50aW1lL2h0bWwvaGVscGVycy9kYXRhLW1hcmtvLmpzXCIiLCJleHRlcm5hbCBjb21tb25qcyBcIm1hcmtvL2Rpc3QvcnVudGltZS9odG1sL2hlbHBlcnMvYXR0cnMuanNcIiIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvY29tcG9uZW50cy9yZXBsL2NvbXBvbmVudHMvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL2NvbXBvbmVudHMvcmVwbC9jb21wb25lbnRzL3BsYXlncm91bmQtbGluay5tYXJrbyIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvY29tcG9uZW50cy9yZXBsL2NvbXBvbmVudHMvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL2NvbXBvbmVudHMvcmVwbC9jb21wb25lbnRzL21hdGNoLW1lZGlhLm1hcmtvIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9jb21wb25lbnRzL3JlcGwvY29tcG9uZW50cy9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvY29tcG9uZW50cy9yZXBsL2NvbXBvbmVudHMvcmVzaXphYmxlLXBhbmVzLm1hcmtvIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9jb21wb25lbnRzL3JlcGwvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL2NvbXBvbmVudHMvcmVwbC9pbmRleC5tYXJrbyIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvcGFnZXMvcGxheWdyb3VuZC9jb21wb25lbnRzL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9wYWdlcy9wbGF5Z3JvdW5kL2NvbXBvbmVudHMvcGxheWdyb3VuZC5tYXJrbyIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvY29tcG9uZW50cy9hcHAtbGF5b3V0L2Zhdmljb24ucG5nIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9jb21wb25lbnRzL2FwcC1sYXlvdXQvY29tcG9uZW50cy9za2lwLWxpbmsvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL2NvbXBvbmVudHMvYXBwLWxheW91dC9jb21wb25lbnRzL3NraXAtbGluay9pbmRleC5tYXJrbyIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvbG9nb3MvbWFya28uc3ZnIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9sb2dvcy9tYXJrby11d3UucG5nIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9jb21wb25lbnRzL2FwcC1sYXlvdXQvY29tcG9uZW50cy9sYXlvdXQtc2VhcmNoL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9jb21wb25lbnRzL2FwcC1sYXlvdXQvY29tcG9uZW50cy9sYXlvdXQtc2VhcmNoL2luZGV4Lm1hcmtvIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9jb21wb25lbnRzL2FwcC1sYXlvdXQvY29tcG9uZW50cy9sYXlvdXQtaGVhZGVyL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9jb21wb25lbnRzL2FwcC1sYXlvdXQvY29tcG9uZW50cy9sYXlvdXQtaGVhZGVyL2luZGV4Lm1hcmtvIiwiZXh0ZXJuYWwgY29tbW9uanMgXCJtYXJrby9kb2NzL3N0cnVjdHVyZS5qc29uXCIiLCJleHRlcm5hbCBjb21tb25qcyBcIm1hcmtvL2Rpc3QvcnVudGltZS9oZWxwZXJzL3RvLXN0cmluZy5qc1wiIiwiZXh0ZXJuYWwgY29tbW9uanMgXCJtYXJrby9wYWNrYWdlLmpzb25cIiIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvY29tcG9uZW50cy9hcHAtbGF5b3V0L2NvbXBvbmVudHMvbGF5b3V0LXNpZGViYXIvY29tcG9uZW50cy92ZXJzaW9uLXN3aXRjaGVyL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9jb21wb25lbnRzL2FwcC1sYXlvdXQvY29tcG9uZW50cy9sYXlvdXQtc2lkZWJhci9jb21wb25lbnRzL3ZlcnNpb24tc3dpdGNoZXIvaW5kZXgubWFya28iLCIvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL2NvbXBvbmVudHMvYXBwLWxheW91dC9jb21wb25lbnRzL2xheW91dC1zaWRlYmFyL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9jb21wb25lbnRzL2FwcC1sYXlvdXQvY29tcG9uZW50cy9sYXlvdXQtc2lkZWJhci9pbmRleC5tYXJrbyIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvY29tcG9uZW50cy9hcHAtZm9vdGVyL29wZW5qc2Yuc3ZnIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9jb21wb25lbnRzL2FwcC1mb290ZXIvb3NpLnN2ZyIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvY29tcG9uZW50cy9hcHAtZm9vdGVyL2ViYXkuc3ZnIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9jb21wb25lbnRzL2FwcC1mb290ZXIvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL2NvbXBvbmVudHMvYXBwLWZvb3Rlci9pbmRleC5tYXJrbyIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvY29tcG9uZW50cy9hcHAtbGF5b3V0L2NvbXBvbmVudHMvZ29vZ2xlLWFuYWx5dGljcy9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvY29tcG9uZW50cy9hcHAtbGF5b3V0L2NvbXBvbmVudHMvZ29vZ2xlLWFuYWx5dGljcy9pbmRleC5tYXJrbyIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvbG9nb3MvZGlzY29yZC5zdmciLCIvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL2NvbXBvbmVudHMvZGlzY29yZC1saW5rL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9jb21wb25lbnRzL2Rpc2NvcmQtbGluay9pbmRleC5tYXJrbyIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvY29tcG9uZW50cy9hcHAtbGF5b3V0L1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9jb21wb25lbnRzL2FwcC1sYXlvdXQvaW5kZXgubWFya28iLCIvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL3BhZ2VzL3BsYXlncm91bmQvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL3BhZ2VzL3BsYXlncm91bmQvaW5kZXgubWFya28iLCIvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL3BhZ2VzL3RyeS1vbmxpbmUtbmV3L1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9wYWdlcy90cnktb25saW5lLW5ldy9pbmRleC5tYXJrbyIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9ub2RlX21vZHVsZXMvQG1hcmtvLXRhZ3Mvc3Vic2NyaWJlL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL25vZGVfbW9kdWxlcy9AbWFya28tdGFncy9zdWJzY3JpYmUvaW5kZXgubWFya28iLCIvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL3BhZ2VzL3RyeS1vbmxpbmUvY29tcG9uZW50cy9sb2FkZXIvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL3BhZ2VzL3RyeS1vbmxpbmUvY29tcG9uZW50cy9sb2FkZXIvaW5kZXgubWFya28iLCIvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL3BhZ2VzL3RyeS1vbmxpbmUvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL3BhZ2VzL3RyeS1vbmxpbmUvaW5kZXgubWFya28iLCIvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL3BhZ2VzL2luZGV4L2NvbXBvbmVudHMvaG9tZS1oZXJvL21hcmtvLXRleHQuc3ZnIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9sb2dvcy9naXRodWIuc3ZnIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9wYWdlcy9pbmRleC9jb21wb25lbnRzL2hvbWUtaGVyby9jb21wb25lbnRzL2dpdGh1Yi1saW5rL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9wYWdlcy9pbmRleC9jb21wb25lbnRzL2hvbWUtaGVyby9jb21wb25lbnRzL2dpdGh1Yi1saW5rL2luZGV4Lm1hcmtvIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9wYWdlcy9pbmRleC9jb21wb25lbnRzL2hvbWUtaGVyby9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvcGFnZXMvaW5kZXgvY29tcG9uZW50cy9ob21lLWhlcm8vaW5kZXgubWFya28iLCIvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL3BhZ2VzL2luZGV4L2NvbXBvbmVudHMvaG9tZS1mZWF0dXJlcy9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvcGFnZXMvaW5kZXgvY29tcG9uZW50cy9ob21lLWZlYXR1cmVzL2luZGV4Lm1hcmtvIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9wYWdlcy9pbmRleC9jb21wb25lbnRzL2hvbWUtbGFuZ3VhZ2UvY29tcG9uZW50cy9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvcGFnZXMvaW5kZXgvY29tcG9uZW50cy9ob21lLWxhbmd1YWdlL2NvbXBvbmVudHMvY291bnRlci10YWdzLm1hcmtvIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9wYWdlcy9pbmRleC9jb21wb25lbnRzL2hvbWUtbGFuZ3VhZ2UvY29tcG9uZW50cy9jb3VudGVyLWV4YW1wbGUvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL3BhZ2VzL2luZGV4L2NvbXBvbmVudHMvaG9tZS1sYW5ndWFnZS9jb21wb25lbnRzL2NvdW50ZXItZXhhbXBsZS9pbmRleC5tYXJrbyIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvY29tcG9uZW50cy9oZWFkaW5nL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9jb21wb25lbnRzL2hlYWRpbmcvaW5kZXgubWFya28iLCIvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL3BhZ2VzL2luZGV4L2NvbXBvbmVudHMvaG9tZS1mZWF0dXJlLWJsb2NrL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9wYWdlcy9pbmRleC9jb21wb25lbnRzL2hvbWUtZmVhdHVyZS1ibG9jay9pbmRleC5tYXJrbyIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvcGFnZXMvaW5kZXgvY29tcG9uZW50cy9ob21lLWxhbmd1YWdlL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9wYWdlcy9pbmRleC9jb21wb25lbnRzL2hvbWUtbGFuZ3VhZ2UvaW5kZXgubWFya28iLCIvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL3BhZ2VzL2luZGV4L2NvbXBvbmVudHMvaG9tZS1kZW1vLXBhZ2UvcHJvZHVjdC5wbmciLCIvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL3BhZ2VzL2luZGV4L2NvbXBvbmVudHMvaG9tZS1kZW1vLXBhZ2UveC5zdmciLCJleHRlcm5hbCBjb21tb25qcyBcIm1hcmtvL2Rpc3QvcnVudGltZS9oZWxwZXJzL3N0eWxlLXZhbHVlLmpzXCIiLCIvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL3BhZ2VzL2luZGV4L2NvbXBvbmVudHMvaG9tZS1kZW1vLXBhZ2UvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL3BhZ2VzL2luZGV4L2NvbXBvbmVudHMvaG9tZS1kZW1vLXBhZ2UvaW5kZXgubWFya28iLCIvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL3BhZ2VzL2luZGV4L2NvbXBvbmVudHMvaG9tZS1zdHJlYW1pbmcvY29tcG9uZW50cy9zY3JvbGwtbG9ja2VkLXN0cmVhbS1leGFtcGxlL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9wYWdlcy9pbmRleC9jb21wb25lbnRzL2hvbWUtc3RyZWFtaW5nL2NvbXBvbmVudHMvc2Nyb2xsLWxvY2tlZC1zdHJlYW0tZXhhbXBsZS9pbmRleC5tYXJrbyIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvcGFnZXMvaW5kZXgvY29tcG9uZW50cy9ob21lLXN0cmVhbWluZy9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvcGFnZXMvaW5kZXgvY29tcG9uZW50cy9ob21lLXN0cmVhbWluZy9pbmRleC5tYXJrbyIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvcGFnZXMvaW5kZXgvY29tcG9uZW50cy9ob21lLWh5ZHJhdGlvbi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvcGFnZXMvaW5kZXgvY29tcG9uZW50cy9ob21lLWh5ZHJhdGlvbi9pbmRleC5tYXJrbyIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvcGFnZXMvaW5kZXgvY29tcG9uZW50cy9ob21lLXBlcmZvcm1hbmNlL2Fycm93LnN2ZyIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvcGFnZXMvaW5kZXgvY29tcG9uZW50cy9ob21lLXBlcmZvcm1hbmNlL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9wYWdlcy9pbmRleC9jb21wb25lbnRzL2hvbWUtcGVyZm9ybWFuY2UvaW5kZXgubWFya28iLCIvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL3BhZ2VzL2luZGV4L2NvbXBvbmVudHMvaG9tZS10b29saW5nL3NjcmVlbi5wbmciLCIvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL3BhZ2VzL2luZGV4L2NvbXBvbmVudHMvaG9tZS10b29saW5nL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9wYWdlcy9pbmRleC9jb21wb25lbnRzL2hvbWUtdG9vbGluZy9pbmRleC5tYXJrbyIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvbG9nb3Mvc3RhY2tvdmVyZmxvdy5zdmciLCIvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL2xvZ29zL3R3aXR0ZXIuc3ZnIiwiZXh0ZXJuYWwgY29tbW9uanMgXCJtYXJrby9kaXN0L2NvcmUtdGFncy9jb3JlL2F3YWl0L3JlbmRlcmVyLmpzXCIiLCIvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL3BhZ2VzL2luZGV4L2NvbXBvbmVudHMvaG9tZS1jb21tdW5pdHkvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL3BhZ2VzL2luZGV4L2NvbXBvbmVudHMvaG9tZS1jb21tdW5pdHkvaW5kZXgubWFya28iLCIvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL3BhZ2VzL2luZGV4L1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9wYWdlcy9pbmRleC9pbmRleC5tYXJrbyIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvcGFnZXMvdjYvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL3BhZ2VzL3Y2L2luZGV4Lm1hcmtvIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9jb21wb25lbnRzL2NvZGUtYmxvY2stbWFya28vVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL2NvbXBvbmVudHMvY29kZS1ibG9jay1tYXJrby9pbmRleC5tYXJrbyIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvdXRpbHMvdG9jLXJlZ2lzdHJ5LmpzIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL2V4YW1wbGVzL2V4YW1wbGVzL2NvbG9yLXBpY2tlci9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9leGFtcGxlcy9leGFtcGxlcy9jb2xvci1waWNrZXIvUkVBRE1FLm1kIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL25vZGVfbW9kdWxlcy9tYXJrby9kb2NzL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL25vZGVfbW9kdWxlcy9tYXJrby9kb2NzLzEwLWF3ZXNvbWUtbWFya28tZmVhdHVyZXMubWQiLCIvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvbm9kZV9tb2R1bGVzL21hcmtvL2RvY3MvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvbm9kZV9tb2R1bGVzL21hcmtvL2RvY3MvYm9keS1jb250ZW50Lm1kIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL25vZGVfbW9kdWxlcy9tYXJrby9kb2NzL2NvbXBvbmVudC1kaWFncmFtLnN2ZyIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9ub2RlX21vZHVsZXMvbWFya28vZG9jcy9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9ub2RlX21vZHVsZXMvbWFya28vZG9jcy9jbGFzcy1jb21wb25lbnRzLm1kIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL25vZGVfbW9kdWxlcy9tYXJrby9kb2NzL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL25vZGVfbW9kdWxlcy9tYXJrby9kb2NzL2Nsb3VkZmxhcmUtd29ya2Vycy5tZCIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9ub2RlX21vZHVsZXMvbWFya28vZG9jcy9jb21waWxlci1ob29rcy5wbmciLCIvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvbm9kZV9tb2R1bGVzL21hcmtvL2RvY3MvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvbm9kZV9tb2R1bGVzL21hcmtvL2RvY3MvY29tcGlsZXIubWQiLCIvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvbm9kZV9tb2R1bGVzL21hcmtvL2RvY3MvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvbm9kZV9tb2R1bGVzL21hcmtvL2RvY3MvY29uY2lzZS5tZCIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9ub2RlX21vZHVsZXMvbWFya28vZG9jcy9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9ub2RlX21vZHVsZXMvbWFya28vZG9jcy9jb25kaXRpb25hbHMtYW5kLWxpc3RzLm1kIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL25vZGVfbW9kdWxlcy9tYXJrby9kb2NzL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL25vZGVfbW9kdWxlcy9tYXJrby9kb2NzL2NvcmUtdGFncy5tZCIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9ub2RlX21vZHVsZXMvbWFya28vZG9jcy9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9ub2RlX21vZHVsZXMvbWFya28vZG9jcy9jdXN0b20tdGFncy5tZCIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9ub2RlX21vZHVsZXMvbWFya28vZG9jcy9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9ub2RlX21vZHVsZXMvbWFya28vZG9jcy9lZGl0b3ItcGx1Z2lucy5tZCIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9ub2RlX21vZHVsZXMvbWFya28vZG9jcy9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9ub2RlX21vZHVsZXMvbWFya28vZG9jcy9ldmVudHMubWQiLCIvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvbm9kZV9tb2R1bGVzL21hcmtvL2RvY3MvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvbm9kZV9tb2R1bGVzL21hcmtvL2RvY3MvZXhwcmVzcy5tZCIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9ub2RlX21vZHVsZXMvbWFya28vZG9jcy9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9ub2RlX21vZHVsZXMvbWFya28vZG9jcy9mYXN0aWZ5Lm1kIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL25vZGVfbW9kdWxlcy9tYXJrby9kb2NzL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL25vZGVfbW9kdWxlcy9tYXJrby9kb2NzL2dldHRpbmctc3RhcnRlZC5tZCIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9ub2RlX21vZHVsZXMvbWFya28vZG9jcy9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9ub2RlX21vZHVsZXMvbWFya28vZG9jcy9odHRwLm1kIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL25vZGVfbW9kdWxlcy9tYXJrby9kb2NzL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL25vZGVfbW9kdWxlcy9tYXJrby9kb2NzL2luc3RhbGxpbmcubWQiLCIvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvbm9kZV9tb2R1bGVzL21hcmtvL2RvY3MvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvbm9kZV9tb2R1bGVzL21hcmtvL2RvY3Mva29hLm1kIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL25vZGVfbW9kdWxlcy9tYXJrby9kb2NzL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL25vZGVfbW9kdWxlcy9tYXJrby9kb2NzL2xhc3NvLm1kIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL25vZGVfbW9kdWxlcy9tYXJrby9kb2NzL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL25vZGVfbW9kdWxlcy9tYXJrby9kb2NzL21hcmtvLTUtdXBncmFkZS5tZCIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9ub2RlX21vZHVsZXMvbWFya28vZG9jcy9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9ub2RlX21vZHVsZXMvbWFya28vZG9jcy9tYXJrby1qc29uLm1kIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL25vZGVfbW9kdWxlcy9tYXJrby9kb2NzL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL25vZGVfbW9kdWxlcy9tYXJrby9kb2NzL21hcmtvLXZzLXJlYWN0Lm1kIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL25vZGVfbW9kdWxlcy9tYXJrby9kb2NzL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL25vZGVfbW9kdWxlcy9tYXJrby9kb2NzL3JlZHV4Lm1kIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL25vZGVfbW9kdWxlcy9tYXJrby9kb2NzL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL25vZGVfbW9kdWxlcy9tYXJrby9kb2NzL3JlbmRlcmluZy5tZCIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9ub2RlX21vZHVsZXMvbWFya28vZG9jcy9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9ub2RlX21vZHVsZXMvbWFya28vZG9jcy9yb2xsdXAubWQiLCIvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvbm9kZV9tb2R1bGVzL21hcmtvL2RvY3MvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvbm9kZV9tb2R1bGVzL21hcmtvL2RvY3Mvc3RhdGUubWQiLCIvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvbm9kZV9tb2R1bGVzL21hcmtvL2RvY3MvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvbm9kZV9tb2R1bGVzL21hcmtvL2RvY3Mvc3R5bGVzLm1kIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL25vZGVfbW9kdWxlcy9tYXJrby9kb2NzL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL25vZGVfbW9kdWxlcy9tYXJrby9kb2NzL3N5bnRheC5tZCIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9ub2RlX21vZHVsZXMvbWFya28vZG9jcy9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9ub2RlX21vZHVsZXMvbWFya28vZG9jcy90cm91Ymxlc2hvb3Rpbmctc3RyZWFtaW5nLm1kIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL25vZGVfbW9kdWxlcy9tYXJrby9kb2NzL2ljb25zL21hcmtvLnN2ZyIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9ub2RlX21vZHVsZXMvbWFya28vZG9jcy9pY29ucy90cy5zdmciLCIvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvbm9kZV9tb2R1bGVzL21hcmtvL2RvY3MvaWNvbnMvanMuc3ZnIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL25vZGVfbW9kdWxlcy9tYXJrby9kb2NzL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL25vZGVfbW9kdWxlcy9tYXJrby9kb2NzL3R5cGVzY3JpcHQubWQiLCIvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvbm9kZV9tb2R1bGVzL21hcmtvL2RvY3MvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvbm9kZV9tb2R1bGVzL21hcmtvL2RvY3Mvdml0ZS5tZCIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9ub2RlX21vZHVsZXMvbWFya28vZG9jcy9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9ub2RlX21vZHVsZXMvbWFya28vZG9jcy93ZWJwYWNrLm1kIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL25vZGVfbW9kdWxlcy9tYXJrby9kb2NzL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL25vZGVfbW9kdWxlcy9tYXJrby9kb2NzL3doeS1pcy1tYXJrby1mYXN0Lm1kIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9wYWdlcy9kb2NzLzpuYW1lL2RvY3VtZW50LWxvb2t1cC5qcyIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvcGFnZXMvZG9jcy9jb21wb25lbnRzL2VkaXQtb24tZ2l0aHViL2dpdGh1Yi5zdmciLCIvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL3BhZ2VzL2RvY3MvY29tcG9uZW50cy9lZGl0LW9uLWdpdGh1Yi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvcGFnZXMvZG9jcy9jb21wb25lbnRzL2VkaXQtb24tZ2l0aHViL2luZGV4Lm1hcmtvIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9wYWdlcy9kb2NzL2NvbXBvbmVudHMvY29udHJpYnV0b3JzL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9wYWdlcy9kb2NzL2NvbXBvbmVudHMvY29udHJpYnV0b3JzL2luZGV4Lm1hcmtvIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9wYWdlcy9kb2NzL2NvbXBvbmVudHMvZG9jdW1lbnQtb3ZlcnZpZXcvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL3BhZ2VzL2RvY3MvY29tcG9uZW50cy9kb2N1bWVudC1vdmVydmlldy9pbmRleC5tYXJrbyIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvcGFnZXMvZG9jcy86bmFtZS9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvcGFnZXMvZG9jcy86bmFtZS9pbmRleC5tYXJrbyIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvcGFnZXMvZG9jcy92Ni9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvcGFnZXMvZG9jcy92Ni9pbmRleC5tYXJrbyIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvcGFnZXMvcGxheWdyb3VuZC92Ni9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvcGFnZXMvcGxheWdyb3VuZC92Ni9pbmRleC5tYXJrbyIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvcGFnZXMvdjYvZG9jcy9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvcGFnZXMvdjYvZG9jcy9pbmRleC5tYXJrbyIsImV4dGVybmFsIGNvbW1vbmpzIFwiQG1hcmtvL3RyYW5zbGF0b3ItdGFnc1wiIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9wYWdlcy92Ni9wbGF5Z3JvdW5kL2NvbXBvbmVudHMvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL3BhZ2VzL3Y2L3BsYXlncm91bmQvY29tcG9uZW50cy9wbGF5Z3JvdW5kLTYubWFya28iLCIvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL3BhZ2VzL3Y2L3BsYXlncm91bmQvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL3BhZ2VzL3Y2L3BsYXlncm91bmQvaW5kZXgubWFya28iLCIvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL3BhZ2VzL3Y2L3R1dG9yaWFscy90dXRvcmlhbHMuanMiLCIvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL3BhZ2VzL3Y2L3R1dG9yaWFscy9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvcGFnZXMvdjYvdHV0b3JpYWxzL2luZGV4Lm1hcmtvIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9wYWdlcy9kb2NzL3Y2LzpuYW1lL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9wYWdlcy9kb2NzL3Y2LzpuYW1lL2luZGV4Lm1hcmtvIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9wYWdlcy92Ni9kb2NzL21hcmtkb3duL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9wYWdlcy92Ni9kb2NzL21hcmtkb3duL2NvbXBvbmVudHMubWQiLCIvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL3BhZ2VzL3Y2L2RvY3MvbWFya2Rvd24vVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL3BhZ2VzL3Y2L2RvY3MvbWFya2Rvd24vY29uZGl0aW9uYWxzLm1kIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9wYWdlcy92Ni9kb2NzL21hcmtkb3duL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9wYWdlcy92Ni9kb2NzL21hcmtkb3duL2V2ZW50cy5tZCIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvcGFnZXMvdjYvZG9jcy9tYXJrZG93bi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvcGFnZXMvdjYvZG9jcy9tYXJrZG93bi9qYXZhc2NyaXB0Lm1kIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9wYWdlcy92Ni9kb2NzL21hcmtkb3duL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9wYWdlcy92Ni9kb2NzL21hcmtkb3duL2xhbmd1YWdlLm1kIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9wYWdlcy92Ni9kb2NzL21hcmtkb3duL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9wYWdlcy92Ni9kb2NzL21hcmtkb3duL2xpc3RzLm1kIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9wYWdlcy92Ni9kb2NzL21hcmtkb3duL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9wYWdlcy92Ni9kb2NzL21hcmtkb3duL3NldHVwLm1kIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9wYWdlcy92Ni9kb2NzL21hcmtkb3duL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9wYWdlcy92Ni9kb2NzL21hcmtkb3duL3N0YXRlLm1kIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9wYWdlcy92Ni9kb2NzL21hcmtkb3duL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9wYWdlcy92Ni9kb2NzL21hcmtkb3duL3N0eWxlcy5tZCIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvcGFnZXMvdjYvZG9jcy86bmFtZS9kb2N1bWVudC1sb29rdXAuanMiLCIvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL3BhZ2VzL3Y2L2RvY3MvOm5hbWUvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL3BhZ2VzL3Y2L2RvY3MvOm5hbWUvaW5kZXgubWFya28iLCIvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL3BhZ2VzL3Y2L2V4YW1wbGVzL1tuYW1lXS9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvcGFnZXMvdjYvZXhhbXBsZXMvW25hbWVdL2luZGV4Lm1hcmtvIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9wYWdlcy92Ni90dXRvcmlhbHMvOm5hbWUvY29tcG9uZW50cy9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvcGFnZXMvdjYvdHV0b3JpYWxzLzpuYW1lL2NvbXBvbmVudHMvdHV0b3JpYWwubWFya28iLCIvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL3BhZ2VzL3Y2L3R1dG9yaWFscy86bmFtZS9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvcGFnZXMvdjYvdHV0b3JpYWxzLzpuYW1lL2luZGV4Lm1hcmtvIiwid2VicGFjazovLy8/ODUzZiIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9ub2RlX21vZHVsZXMvQG1hcmtvL2J1aWxkL2Rpc3QvZmlsZXMvc2VydmVyLmpzIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9 \ No newline at end of file +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7OztBQ3JEQTtBQUNBO0FBQ0E7QUFJQTtBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7Ozs7QUNkQTtBQUVBO0FBQ0E7QUFFQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBRUE7QUFFQTtBQUNBO0FBR0E7QUFDQTtBQUdBO0FBQ0E7Ozs7Ozs7QUNsQ0E7QUFRQTtBQUNBO0FBRUE7QUFDQTtBQUVBO0FBQ0E7QUFHQTtBQUNBO0FBR0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBOzs7Ozs7O0FDekNBO0FBQ0E7QUFJQTs7Ozs7Ozs7QUNMQTs7Ozs7Ozs7QUNBQTs7Ozs7Ozs7QUNBQTs7Ozs7Ozs7QUNBQTs7Ozs7Ozs7QUNBQTs7Ozs7O0FDQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7O0FDdkJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7O0FDUEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7QUNQQTs7Ozs7QUNBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7QUNOQTs7Ozs7OztBQ0FBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ0hBOztBQ0FBOztBQ0FBOztBQ0FBOztBQ0FBOztBQ0FBOztBQ0FBOzs7QUNBQTs7O0FDQUE7OztBQ0FBOzs7QUNBQTs7O0FDQUE7OztBQ0FBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNxRUE7QUFBQTtBQUFBO0FBQUE7QUFTQTtBQUFBO0FBQUE7QUFBQTtBQUdBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBS0E7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUFBO0FBSUE7QUFBQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBS0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUNoSEE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBOztBQ0FBOzs7Ozs7O0FGQUE7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQ0E7QUFHQTtBQUFBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFFQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTs7Ozs7Ozs7O0FHNURBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUNBO0FBR0E7QUFBQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBRUE7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7O0FDNURBOztBQ0FBOztBQ0FBOztBQ0FBOzs7QUNBQTs7Ozs7Ozs7Ozs7O0FDQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7Ozs7Ozs7Ozs7Ozs7OztBQ0FBO0FBc0JBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7Ozs7Ozs7O0FDdEJBO0FBQUE7QUFBQTtBQUFBO0FBQUE7O0FDQUE7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBQTtBQUNBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7Ozs7QUNBQTtBQUNBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUFBOzs7OztBQ1JBOzs7Ozs7O0FDQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQ0E7QUFDQTtBQW1DQTtBQUFBO0FBQUE7QUFDQTtBQUdBO0FBQ0E7QUFBQTtBQUdBO0FBQUE7QUFGQTtBQUlBO0FBQUE7QUFBQTtBQUFBOztBQ2pEQTs7Ozs7Ozs7Ozs7Ozs7OztBQ0FBO0FBR0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFBQTtBQUlBO0FBQUE7QUFFQTtBQUNBO0FBQUE7QUFLQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7Ozs7Ozs7Ozs7Ozs7QUNuQkE7QUFBQTtBQUFBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBSUE7QUFDQTtBQUNBO0FBR0E7QUFBQTtBQUFBO0FBb0JBO0FBK0JBO0FBQUE7QUFBQTtBQWpDQTtBQUFBO0FBQUE7QUFBQTtBQTlCQTtBQWlGQTtBQUFBO0FBQUE7QUFBQTs7QUNqRkE7O0FDQUE7O0FDQUE7Ozs7Ozs7Ozs7Ozs7Ozs7QUN3TkE7QUFFQTtBQUNBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBQ0E7QUFBQTtBQU9BO0FBQUE7QUFTQTtBQUFBO0FBU0E7QUFBQTtBQVFBO0FBQ0E7QUFBQTtBQU9BO0FBQUE7QUFGQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7Ozs7Ozs7QUMzUUE7QUFDQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQWVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBSUE7QUFDQTtBQUFBO0FBQUE7QUFHQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Ozs7Ozs7Ozs7Ozs7QUNqREE7QUFBQTtBQUFBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBR0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFSQTtBQUFBO0FBU0E7QUFBQTtBQUFBO0FBQUE7Ozs7Ozs7Ozs7Ozs7QUNUQTtBQUFBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFHQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBVEE7QUFBQTtBQVVBO0FBQUE7QUFBQTtBQUFBOztBQ1ZBOzs7Ozs7Ozs7Ozs7OztBQ0FBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUdBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUEyREE7QUFBQTtBQUFBO0FBQUE7QUFqRUE7QUFrRUE7QUFBQTtBQUFBO0FBQUE7O0FDbEVBOzs7Ozs7Ozs7Ozs7OztBQ0FBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVdBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVNBO0FBQUE7QUFBQTtBQUFBO0FBeEJBO0FBQUE7QUF5QkE7QUFBQTtBQUFBO0FBQUE7Ozs7O0FDekJBOztBQ0FBOztBQ0FBOztBQ0FBOzs7Ozs7O0FDQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFHQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBNEJBO0FBQ0E7QUFBQTtBQUFBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBSEE7QUFBQTtBQVNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUE1Q0E7QUErQ0E7QUFBQTtBQUFBO0FBQUE7O0FDakRBOzs7Ozs7Ozs7O0FDQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7Ozs7Ozs7OztBQ0FBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Ozs7Ozs7Ozs7Ozs7OztBQ0FBO0FBZ0JBO0FBQ0E7QUFBQTtBQVdBO0FBQUE7QUFPQTtBQUdBO0FBQUE7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7O0FDeENBOzs7Ozs7Ozs7OztBQ0FBOzs7QUNBQTs7Ozs7O0FDQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBR0E7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUdBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7QUNSQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBRUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUVBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBRUE7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUlBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBR0E7QUFBQTtBQUZBO0FBSUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFPQTtBQUFBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7O0FDdkVBOztBQ0FBOztBQ0FBOzs7Ozs7Ozs7Ozs7OztBQ0FBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Ozs7Ozs7Ozs7QUNBQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQ0E7QUFBQTtBQVNBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7Ozs7OztBQ2dDQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7QUM1Q0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBT0E7QUFDQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBMEJBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFBQTtBQU9BO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQUE7QUFFQTtBQUNBO0FBQUE7QUFHQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUM1REE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFBQTs7Ozs7O0FBVEE7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQ0E7QUFHQTtBQUFBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFFQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUM1REE7O0FDQUE7OztBQ0FBOzs7Ozs7QUNBQTtBQUVBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFzQkE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUNuQ0E7OztBQ0FBOzs7Ozs7Ozs7QUNDQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNQQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQ0E7QUFJQTtBQUFBO0FBQUE7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBRUE7QUFBQTtBQUFBO0FBUUE7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUdBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBS0E7QUFBQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFlQTtBQUNBO0FBQUE7QUFXQTtBQUFBO0FBQUE7QUFBQTtBQUdBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7Ozs7Ozs7OztBQ2pFQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBRUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNSQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUNGQTs7O0FDQUE7Ozs7Ozs7QUNBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUZBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7QUNIQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFBQTtBQVVBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ1hBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQVVBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFBQTtBQUdBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFvQkE7QUFBQTtBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQzFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFVQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFLQTtBQUFBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBT0E7QUFBQTtBQUFBO0FBQUE7QUFHQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQUE7QUFDQTtBQUVBO0FBQ0E7QUFBQTtBQUNBO0FBTEE7QUFNQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBWUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBS0E7QUFBQTtBQUFBO0FBRUE7QUFBQTtBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNoRkE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUpBO0FBS0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Ozs7Ozs7Ozs7OztBQ0xBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFHQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7QUFKQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBS0E7QUFDQTtBQUdBO0FBQUE7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUVBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7Ozs7QUM1REE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQ0E7QUFHQTtBQUFBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFFQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTs7Ozs7Ozs7QUMzREE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7Ozs7OztBQ3pCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFHQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFHQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFIQTtBQWdCQTtBQUFBO0FBRkE7QUFBQTtBQUFBOzs7Ozs7Ozs7Ozs7QUNwQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7QUFGQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBS0E7QUFDQTtBQUdBO0FBQUE7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUVBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7QUM1REE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Ozs7OztBQUZBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUNBO0FBR0E7QUFBQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBRUE7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Ozs7Ozs7Ozs7O0FDNURBO0FBQUE7QUFDQTtBQURBO0FBQUE7QUFBQTtBQUFBOztBQ0FBOzs7Ozs7QURBQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBS0E7QUFDQTtBQUdBO0FBQUE7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUVBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7QUU1REE7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUF3Q0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFpREE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQWdCQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBWUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVdBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFlQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBd0JBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Ozs7OztBQ2hMQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQWFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBU0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBS0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBVUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7Ozs7O0FDcEZBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBY0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUdBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFTQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFHQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBS0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFpQkE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBOztBQzdEQTs7Ozs7O0FDQUE7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBb0JBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBR0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVdBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFtQkE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVdBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFXQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBU0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVdBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFHQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1BO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBV0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUdBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBUUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBdUdBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUF3TUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQXNCQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7Ozs7O0FDN2RBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7O0FDSkE7Ozs7OztBQ0FBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQXNHQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBbUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Ozs7OztBQzdJQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFRQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQWFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFHQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBR0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUdBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFHQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Ozs7OztBQ3JDQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUdBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7QUNwQkE7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFHQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFVQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQXVDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBR0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Ozs7OztBQ3JHQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFHQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBR0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUdBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFHQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBNkJBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFPQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Ozs7OztBQ3hEQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7QUNKQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBR0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7QUNsQ0E7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7Ozs7O0FDSkE7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFZQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7QUNoQkE7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFZQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBR0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFHQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Ozs7OztBQzNCQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7QUNKQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7QUNKQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7QUNKQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQW1CQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7QUN2QkE7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7Ozs7O0FDSkE7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7Ozs7O0FDSkE7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUE4QkE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQTZJQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBUUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQWdCQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBUUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUdBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQWFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBR0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQTBCQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUdBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFZQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7QUM3UkE7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7QUNUQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUEySkE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7Ozs7O0FDektBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBZ0RBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7QUMxREE7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBR0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFpQkE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7Ozs7O0FDN0JBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7QUNOQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFRQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVdBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUdBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBS0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFTQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQWNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBU0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFRQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1BO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBR0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBT0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFPQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7Ozs7O0FDM0tBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7O0FDSkE7O0FDQUE7O0FDQUE7Ozs7OztBQ0FBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFvQkE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBR0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBZ0VBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFHQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBR0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBR0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7QUNoSkE7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7Ozs7O0FDSkE7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFXQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7QUNmQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQXdDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBV0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQWdCQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBWUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQXFCQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ3hHQTtBQUNBO0FBRUE7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUdBO0FBQ0E7QUFFQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBRUE7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7O0FDN0VBOzs7Ozs7Ozs7Ozs7QUNBQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7Ozs7QUNBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBMENBO0FBQUE7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBY0E7QUFDQTtBQUFBO0FBS0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUF0QkE7QUFBQTtBQThCQTtBQUFBO0FBQUE7QUFBQTs7Ozs7O0FDMUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUNBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUdBO0FBQUE7QUFGQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBT0E7QUFBQTtBQUFBO0FBQUE7Ozs7OztBQ25CQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFDQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBR0E7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7QUF0QkE7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQ0E7QUFHQTtBQUFBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFFQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTs7Ozs7Ozs7O0FDNURBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUNBO0FBR0E7QUFBQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBRUE7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Ozs7Ozs7OztBQzVEQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBS0E7QUFDQTtBQUdBO0FBQUE7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUVBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBOztBQzVEQTs7Ozs7O0FDQUE7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQUE7QUFFQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFQQTtBQVFBO0FBQUE7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUFBOzs7Ozs7Ozs7Ozs7QUNuQkE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFBQTtBQUFBO0FBR0E7QUFBQTtBQUFBO0FBQUE7QUFBQTs7Ozs7O0FBSkE7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQ0E7QUFHQTtBQUFBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFFQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUM1REE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBOzs7Ozs7QUN0Q0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBU0E7QUFBQTtBQUFBO0FBQUE7Ozs7OztBQWRBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUNBO0FBR0E7QUFBQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBRUE7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Ozs7Ozs7OztBQzVEQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBS0E7QUFDQTtBQUdBO0FBQUE7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUVBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7Ozs7QUM1REE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQ0E7QUFHQTtBQUFBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFFQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDNURBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUFBO0FBQ0E7QUFFQTtBQXlCQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7QUNsQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7QUFOQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBS0E7QUFDQTtBQUdBO0FBQUE7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUVBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7QUM1REE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFDQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFBQTtBQUFBO0FBTUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBQUE7Ozs7OztBQTdDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBS0E7QUFDQTtBQUdBO0FBQUE7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUVBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7QUM1REE7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBbUJBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1BO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7QUNqQ0E7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBdUJBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFHQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Ozs7OztBQzlDQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUdBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Ozs7OztBQ2ZBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBR0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFHQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7Ozs7O0FDaEJBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBT0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1BO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7QUNuQkE7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBOEJBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFTQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7QUM3Q0E7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7Ozs7O0FDSkE7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFHQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFHQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7QUNoQkE7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU9BO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBR0E7QUFBQTtBQUFBO0FBQUE7QUFBQTs7Ozs7Ozs7Ozs7QUMxQkE7QUFDQTtBQUVBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUVBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBOzs7Ozs7QUN0RUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBQ0E7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBR0E7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7QUF6QkE7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQ0E7QUFHQTtBQUFBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFFQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUM1REE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7O0FDNUhBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZXMiOlsiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL25vZGVfbW9kdWxlcy9AbWFya28vYnVpbGQvZGlzdC9maWxlcy9taWRkbGV3YXJlLmpzIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9jb21wb25lbnRzL2hlYWRpbmcvZ2V0QW5jaG9yTmFtZS5qcyIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvcGFnZXMvZG9jcy9jb21wb25lbnRzL2NvbnRyaWJ1dG9ycy9nZXQtY29udHJpYnV0b3JzLmpzIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy91dGlscy9jcmVhdGUtb3ZlcnZpZXctdHJlZS5qcyIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvdXRpbHMvZm9ybWF0LXNsdWcuanMiLCJleHRlcm5hbCBjb21tb25qcyBcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvaW50ZXJvcFJlcXVpcmVEZWZhdWx0XCIiLCJleHRlcm5hbCBjb21tb25qcyBcImNvbm5lY3QtZ3ppcC1zdGF0aWNcIiIsImV4dGVybmFsIGNvbW1vbmpzIFwiZ2gtZ290XCIiLCJleHRlcm5hbCBub2RlLWNvbW1vbmpzIFwiaHR0cFwiIiwiZXh0ZXJuYWwgbm9kZS1jb21tb25qcyBcInBhdGhcIiIsIndlYnBhY2svYm9vdHN0cmFwIiwid2VicGFjay9ydW50aW1lL2NvbXBhdCBnZXQgZGVmYXVsdCBleHBvcnQiLCJ3ZWJwYWNrL3J1bnRpbWUvZGVmaW5lIHByb3BlcnR5IGdldHRlcnMiLCJ3ZWJwYWNrL3J1bnRpbWUvaGFzT3duUHJvcGVydHkgc2hvcnRoYW5kIiwid2VicGFjay9ydW50aW1lL21ha2UgbmFtZXNwYWNlIG9iamVjdCIsIndlYnBhY2svcnVudGltZS9wdWJsaWNQYXRoIiwiIiwiZXh0ZXJuYWwgY29tbW9uanMgXCJtYXJrby9kaXN0L3J1bnRpbWUvaHRtbC9pbmRleC5qc1wiIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL25vZGVfbW9kdWxlcy9AbWFya28vYnVpbGQvZGlzdC9maWxlcy9wYXJlbnQtZGlyLnBuZyIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9ub2RlX21vZHVsZXMvQG1hcmtvL2J1aWxkL2Rpc3QvZmlsZXMvZGlyLnBuZyIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9ub2RlX21vZHVsZXMvQG1hcmtvL2J1aWxkL2Rpc3QvZmlsZXMvZmlsZS5wbmciLCJleHRlcm5hbCBjb21tb25qcyBcIm1hcmtvL2Rpc3QvcnVudGltZS9odG1sL2hlbHBlcnMvZXNjYXBlLXhtbC5qc1wiIiwiZXh0ZXJuYWwgY29tbW9uanMgXCJtYXJrby9kaXN0L3J1bnRpbWUvaHRtbC9oZWxwZXJzL2VzY2FwZS1xdW90ZXMuanNcIiIsImV4dGVybmFsIGNvbW1vbmpzIFwibWFya28vZGlzdC9ydW50aW1lL2hlbHBlcnMvb2YtZmFsbGJhY2suanNcIiIsImV4dGVybmFsIGNvbW1vbmpzIFwibWFya28vZGlzdC9ydW50aW1lL2h0bWwvaGVscGVycy9hdHRyLmpzXCIiLCJleHRlcm5hbCBjb21tb25qcyBcIm1hcmtvL2Rpc3QvY29yZS10YWdzL2NvbXBvbmVudHMvaW5pdC1jb21wb25lbnRzLXRhZy5qc1wiIiwiZXh0ZXJuYWwgY29tbW9uanMgXCJtYXJrby9kaXN0L3J1bnRpbWUvaGVscGVycy9yZW5kZXItdGFnLmpzXCIiLCJleHRlcm5hbCBjb21tb25qcyBcIm1hcmtvL2Rpc3QvY29yZS10YWdzL2NvcmUvYXdhaXQvcmVvcmRlcmVyLXJlbmRlcmVyLmpzXCIiLCJleHRlcm5hbCBjb21tb25qcyBcIm1hcmtvL2Rpc3QvY29yZS10YWdzL2NvbXBvbmVudHMvcHJlZmVycmVkLXNjcmlwdC1sb2NhdGlvbi10YWcuanNcIiIsImV4dGVybmFsIGNvbW1vbmpzIFwibWFya28vZGlzdC9ydW50aW1lL2NvbXBvbmVudHMvcmVuZGVyZXIuanNcIiIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9ub2RlX21vZHVsZXMvQG1hcmtvL2J1aWxkL2Rpc3QvZmlsZXMvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvbm9kZV9tb2R1bGVzL0BtYXJrby9idWlsZC9kaXN0L2ZpbGVzL2Rpci1pbmRleC5tYXJrbyIsIj9tYW5pZmVzdCIsImV4dGVybmFsIGNvbW1vbmpzIFwibWFya28vZGlzdC9jb3JlLXRhZ3MvY29yZS9fX2ZsdXNoX2hlcmVfYW5kX2FmdGVyX18uanNcIiIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvcGFnZXMvZG9jcy9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvcGFnZXMvZG9jcy9pbmRleC5tYXJrbyIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvbG9nb3MvbWFya28uc3ZnIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9wYWdlcy9pbmRleC9jb21wb25lbnRzL2hvbWUtaGVyby9tYXJrby10ZXh0LnN2ZyIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvbG9nb3MvbWFya28tdXd1LnBuZyIsImV4dGVybmFsIGNvbW1vbmpzIFwibWFya28vZGlzdC9ydW50aW1lL2h0bWwvaGVscGVycy9kYXRhLW1hcmtvLmpzXCIiLCIvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL2xvZ29zL2dpdGh1Yi5zdmciLCIvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL3BhZ2VzL2luZGV4L2NvbXBvbmVudHMvaG9tZS1oZXJvL2NvbXBvbmVudHMvZ2l0aHViLWxpbmsvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL3BhZ2VzL2luZGV4L2NvbXBvbmVudHMvaG9tZS1oZXJvL2NvbXBvbmVudHMvZ2l0aHViLWxpbmsvaW5kZXgubWFya28iLCIvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL3BhZ2VzL2luZGV4L2NvbXBvbmVudHMvaG9tZS1oZXJvL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9wYWdlcy9pbmRleC9jb21wb25lbnRzL2hvbWUtaGVyby9pbmRleC5tYXJrbyIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvcGFnZXMvaW5kZXgvY29tcG9uZW50cy9ob21lLWZlYXR1cmVzL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9wYWdlcy9pbmRleC9jb21wb25lbnRzL2hvbWUtZmVhdHVyZXMvaW5kZXgubWFya28iLCJleHRlcm5hbCBjb21tb25qcyBcIm1hcmtvL2Rpc3QvcnVudGltZS9oZWxwZXJzL2F0dHItdGFnLmpzXCIiLCIvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL3BhZ2VzL2luZGV4L2NvbXBvbmVudHMvaG9tZS1sYW5ndWFnZS9jb21wb25lbnRzL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9wYWdlcy9pbmRleC9jb21wb25lbnRzL2hvbWUtbGFuZ3VhZ2UvY29tcG9uZW50cy9jb3VudGVyLXRhZ3MubWFya28iLCIvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL3BhZ2VzL2luZGV4L2NvbXBvbmVudHMvaG9tZS1sYW5ndWFnZS9jb21wb25lbnRzL2NvdW50ZXItZXhhbXBsZS9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvcGFnZXMvaW5kZXgvY29tcG9uZW50cy9ob21lLWxhbmd1YWdlL2NvbXBvbmVudHMvY291bnRlci1leGFtcGxlL2luZGV4Lm1hcmtvIiwiZXh0ZXJuYWwgY29tbW9uanMgXCJtYXJrby9kaXN0L3J1bnRpbWUvaGVscGVycy9keW5hbWljLXRhZy5qc1wiIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9jb21wb25lbnRzL2hlYWRpbmcvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL2NvbXBvbmVudHMvaGVhZGluZy9pbmRleC5tYXJrbyIsImV4dGVybmFsIGNvbW1vbmpzIFwibWFya28vZGlzdC9ydW50aW1lL2hlbHBlcnMvY2xhc3MtdmFsdWUuanNcIiIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvcGFnZXMvaW5kZXgvY29tcG9uZW50cy9ob21lLWZlYXR1cmUtYmxvY2svVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL3BhZ2VzL2luZGV4L2NvbXBvbmVudHMvaG9tZS1mZWF0dXJlLWJsb2NrL2luZGV4Lm1hcmtvIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9wYWdlcy9pbmRleC9jb21wb25lbnRzL2hvbWUtbGFuZ3VhZ2UvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL3BhZ2VzL2luZGV4L2NvbXBvbmVudHMvaG9tZS1sYW5ndWFnZS9pbmRleC5tYXJrbyIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvcGFnZXMvaW5kZXgvY29tcG9uZW50cy9ob21lLWRlbW8tcGFnZS9wcm9kdWN0LnBuZyIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvcGFnZXMvaW5kZXgvY29tcG9uZW50cy9ob21lLWRlbW8tcGFnZS94LnN2ZyIsImV4dGVybmFsIGNvbW1vbmpzIFwibWFya28vZGlzdC9ydW50aW1lL2hlbHBlcnMvc3R5bGUtdmFsdWUuanNcIiIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvcGFnZXMvaW5kZXgvY29tcG9uZW50cy9ob21lLWRlbW8tcGFnZS9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvcGFnZXMvaW5kZXgvY29tcG9uZW50cy9ob21lLWRlbW8tcGFnZS9pbmRleC5tYXJrbyIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvcGFnZXMvaW5kZXgvY29tcG9uZW50cy9ob21lLXN0cmVhbWluZy9jb21wb25lbnRzL3Njcm9sbC1sb2NrZWQtc3RyZWFtLWV4YW1wbGUvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL3BhZ2VzL2luZGV4L2NvbXBvbmVudHMvaG9tZS1zdHJlYW1pbmcvY29tcG9uZW50cy9zY3JvbGwtbG9ja2VkLXN0cmVhbS1leGFtcGxlL2luZGV4Lm1hcmtvIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9wYWdlcy9pbmRleC9jb21wb25lbnRzL2hvbWUtc3RyZWFtaW5nL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9wYWdlcy9pbmRleC9jb21wb25lbnRzL2hvbWUtc3RyZWFtaW5nL2luZGV4Lm1hcmtvIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9wYWdlcy9pbmRleC9jb21wb25lbnRzL2hvbWUtaHlkcmF0aW9uL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9wYWdlcy9pbmRleC9jb21wb25lbnRzL2hvbWUtaHlkcmF0aW9uL2luZGV4Lm1hcmtvIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9wYWdlcy9pbmRleC9jb21wb25lbnRzL2hvbWUtcGVyZm9ybWFuY2UvYXJyb3cuc3ZnIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9wYWdlcy9pbmRleC9jb21wb25lbnRzL2hvbWUtcGVyZm9ybWFuY2UvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL3BhZ2VzL2luZGV4L2NvbXBvbmVudHMvaG9tZS1wZXJmb3JtYW5jZS9pbmRleC5tYXJrbyIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvcGFnZXMvaW5kZXgvY29tcG9uZW50cy9ob21lLXRvb2xpbmcvc2NyZWVuLnBuZyIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvcGFnZXMvaW5kZXgvY29tcG9uZW50cy9ob21lLXRvb2xpbmcvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL3BhZ2VzL2luZGV4L2NvbXBvbmVudHMvaG9tZS10b29saW5nL2luZGV4Lm1hcmtvIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9sb2dvcy9zdGFja292ZXJmbG93LnN2ZyIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvbG9nb3MvZGlzY29yZC5zdmciLCIvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL2xvZ29zL3R3aXR0ZXIuc3ZnIiwiZXh0ZXJuYWwgY29tbW9uanMgXCJtYXJrby9kaXN0L2NvcmUtdGFncy9jb3JlL2F3YWl0L3JlbmRlcmVyLmpzXCIiLCIvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL3BhZ2VzL2luZGV4L2NvbXBvbmVudHMvaG9tZS1jb21tdW5pdHkvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL3BhZ2VzL2luZGV4L2NvbXBvbmVudHMvaG9tZS1jb21tdW5pdHkvaW5kZXgubWFya28iLCIvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL2NvbXBvbmVudHMvYXBwLWxheW91dC9mYXZpY29uLnBuZyIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvY29tcG9uZW50cy9hcHAtbGF5b3V0L2NvbXBvbmVudHMvc2tpcC1saW5rL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9jb21wb25lbnRzL2FwcC1sYXlvdXQvY29tcG9uZW50cy9za2lwLWxpbmsvaW5kZXgubWFya28iLCIvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL2NvbXBvbmVudHMvYXBwLWxheW91dC9jb21wb25lbnRzL2xheW91dC1zZWFyY2gvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL2NvbXBvbmVudHMvYXBwLWxheW91dC9jb21wb25lbnRzL2xheW91dC1zZWFyY2gvaW5kZXgubWFya28iLCIvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL2NvbXBvbmVudHMvYXBwLWxheW91dC9jb21wb25lbnRzL2xheW91dC1oZWFkZXIvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL2NvbXBvbmVudHMvYXBwLWxheW91dC9jb21wb25lbnRzL2xheW91dC1oZWFkZXIvaW5kZXgubWFya28iLCJleHRlcm5hbCBjb21tb25qcyBcIm1hcmtvL2RvY3Mvc3RydWN0dXJlLmpzb25cIiIsImV4dGVybmFsIGNvbW1vbmpzIFwibWFya28vZGlzdC9ydW50aW1lL2hlbHBlcnMvdG8tc3RyaW5nLmpzXCIiLCJleHRlcm5hbCBjb21tb25qcyBcIm1hcmtvL3BhY2thZ2UuanNvblwiIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9jb21wb25lbnRzL2FwcC1sYXlvdXQvY29tcG9uZW50cy9sYXlvdXQtc2lkZWJhci9jb21wb25lbnRzL3ZlcnNpb24tc3dpdGNoZXIvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL2NvbXBvbmVudHMvYXBwLWxheW91dC9jb21wb25lbnRzL2xheW91dC1zaWRlYmFyL2NvbXBvbmVudHMvdmVyc2lvbi1zd2l0Y2hlci9pbmRleC5tYXJrbyIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvY29tcG9uZW50cy9hcHAtbGF5b3V0L2NvbXBvbmVudHMvbGF5b3V0LXNpZGViYXIvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL2NvbXBvbmVudHMvYXBwLWxheW91dC9jb21wb25lbnRzL2xheW91dC1zaWRlYmFyL2luZGV4Lm1hcmtvIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9jb21wb25lbnRzL2FwcC1mb290ZXIvb3BlbmpzZi5zdmciLCIvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL2NvbXBvbmVudHMvYXBwLWZvb3Rlci9vc2kuc3ZnIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9jb21wb25lbnRzL2FwcC1mb290ZXIvZWJheS5zdmciLCIvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL2NvbXBvbmVudHMvYXBwLWZvb3Rlci9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvY29tcG9uZW50cy9hcHAtZm9vdGVyL2luZGV4Lm1hcmtvIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9jb21wb25lbnRzL2FwcC1sYXlvdXQvY29tcG9uZW50cy9nb29nbGUtYW5hbHl0aWNzL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9jb21wb25lbnRzL2FwcC1sYXlvdXQvY29tcG9uZW50cy9nb29nbGUtYW5hbHl0aWNzL2luZGV4Lm1hcmtvIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9jb21wb25lbnRzL2Rpc2NvcmQtbGluay9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvY29tcG9uZW50cy9kaXNjb3JkLWxpbmsvaW5kZXgubWFya28iLCIvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL2NvbXBvbmVudHMvYXBwLWxheW91dC9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvY29tcG9uZW50cy9hcHAtbGF5b3V0L2luZGV4Lm1hcmtvIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9wYWdlcy9pbmRleC9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvcGFnZXMvaW5kZXgvaW5kZXgubWFya28iLCJleHRlcm5hbCBjb21tb25qcyBcIkBtYXJrby90YWdzLWFwaS1wcmV2aWV3L2Rpc3QvdHJhbnNmb3JtL2NhY2hlZC12YWx1ZXNcIiIsImV4dGVybmFsIGNvbW1vbmpzIFwiQG1hcmtvL3RhZ3MtYXBpLXByZXZpZXcvZGlzdC9jb21wb25lbnRzL3JldHVyblwiIiwiZXh0ZXJuYWwgY29tbW9uanMgXCJsei1zdHJpbmdcIiIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvcGFnZXMvcGxheWdyb3VuZC9jb21wb25lbnRzL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9wYWdlcy9wbGF5Z3JvdW5kL2NvbXBvbmVudHMvaGFzaC12YWx1ZS5tYXJrbyIsImV4dGVybmFsIGNvbW1vbmpzIFwiQG1hcmtvL3RhZ3MtYXBpLXByZXZpZXcvZGlzdC91dGlsL3JlcGxhY2UtYXNzaWdubWVudHNcIiIsImV4dGVybmFsIGNvbW1vbmpzIFwiQG1hcmtvL3RhZ3MtYXBpLXByZXZpZXcvZGlzdC90cmFuc2Zvcm0vbmF0aXZlLXRhZy12YXJcIiIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9ub2RlX21vZHVsZXMvQG1hcmtvL3RhZ3MtYXBpLXByZXZpZXcvZGlzdC9jb21wb25lbnRzL19pbnN0YW5jZS9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9ub2RlX21vZHVsZXMvQG1hcmtvL3RhZ3MtYXBpLXByZXZpZXcvZGlzdC9jb21wb25lbnRzL19pbnN0YW5jZS9pbmRleC5tYXJrbyIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvY29tcG9uZW50cy9yZXBsL2NvbXBvbmVudHMvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL2NvbXBvbmVudHMvcmVwbC9jb21wb25lbnRzL2ZpbGUtdGFicy5tYXJrbyIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvY29tcG9uZW50cy9yZXBsL2NvbXBvbmVudHMvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL2NvbXBvbmVudHMvcmVwbC9jb21wb25lbnRzL3BhbmUubWFya28iLCIvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL2NvbXBvbmVudHMvcmVwbC9jb21wb25lbnRzL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9jb21wb25lbnRzL3JlcGwvY29tcG9uZW50cy9jb250cm9sbGFibGUtc2VsZWN0Lm1hcmtvIiwiZXh0ZXJuYWwgY29tbW9uanMgXCJAbWFya28vdGFncy1hcGktcHJldmlldy9kaXN0L3RyYW5zbGF0ZS9uYXRpdmUtdGFnLWhhbmRsZXJzXCIiLCJleHRlcm5hbCBjb21tb25qcyBcIm1hcmtvL2Rpc3QvcnVudGltZS9odG1sL2hlbHBlcnMvYXR0cnMuanNcIiIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvY29tcG9uZW50cy9yZXBsL2NvbXBvbmVudHMvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL2NvbXBvbmVudHMvcmVwbC9jb21wb25lbnRzL3BsYXlncm91bmQtbGluay5tYXJrbyIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvY29tcG9uZW50cy9yZXBsL2NvbXBvbmVudHMvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL2NvbXBvbmVudHMvcmVwbC9jb21wb25lbnRzL21hdGNoLW1lZGlhLm1hcmtvIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9jb21wb25lbnRzL3JlcGwvY29tcG9uZW50cy9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvY29tcG9uZW50cy9yZXBsL2NvbXBvbmVudHMvcmVzaXphYmxlLXBhbmVzLm1hcmtvIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9jb21wb25lbnRzL3JlcGwvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL2NvbXBvbmVudHMvcmVwbC9pbmRleC5tYXJrbyIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvcGFnZXMvcGxheWdyb3VuZC9jb21wb25lbnRzL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9wYWdlcy9wbGF5Z3JvdW5kL2NvbXBvbmVudHMvcGxheWdyb3VuZC5tYXJrbyIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvcGFnZXMvcGxheWdyb3VuZC9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvcGFnZXMvcGxheWdyb3VuZC9pbmRleC5tYXJrbyIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvcGFnZXMvdHJ5LW9ubGluZS1uZXcvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL3BhZ2VzL3RyeS1vbmxpbmUtbmV3L2luZGV4Lm1hcmtvIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL25vZGVfbW9kdWxlcy9AbWFya28tdGFncy9zdWJzY3JpYmUvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvbm9kZV9tb2R1bGVzL0BtYXJrby10YWdzL3N1YnNjcmliZS9pbmRleC5tYXJrbyIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvcGFnZXMvdHJ5LW9ubGluZS9jb21wb25lbnRzL2xvYWRlci9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvcGFnZXMvdHJ5LW9ubGluZS9jb21wb25lbnRzL2xvYWRlci9pbmRleC5tYXJrbyIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvcGFnZXMvdHJ5LW9ubGluZS9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvcGFnZXMvdHJ5LW9ubGluZS9pbmRleC5tYXJrbyIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvcGFnZXMvdjYvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL3BhZ2VzL3Y2L2luZGV4Lm1hcmtvIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9jb21wb25lbnRzL2NvZGUtYmxvY2stbWFya28vVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL2NvbXBvbmVudHMvY29kZS1ibG9jay1tYXJrby9pbmRleC5tYXJrbyIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvdXRpbHMvdG9jLXJlZ2lzdHJ5LmpzIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL2V4YW1wbGVzL2V4YW1wbGVzL2NvbG9yLXBpY2tlci9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9leGFtcGxlcy9leGFtcGxlcy9jb2xvci1waWNrZXIvUkVBRE1FLm1kIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL25vZGVfbW9kdWxlcy9tYXJrby9kb2NzL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL25vZGVfbW9kdWxlcy9tYXJrby9kb2NzLzEwLWF3ZXNvbWUtbWFya28tZmVhdHVyZXMubWQiLCIvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvbm9kZV9tb2R1bGVzL21hcmtvL2RvY3MvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvbm9kZV9tb2R1bGVzL21hcmtvL2RvY3MvYm9keS1jb250ZW50Lm1kIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL25vZGVfbW9kdWxlcy9tYXJrby9kb2NzL2NvbXBvbmVudC1kaWFncmFtLnN2ZyIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9ub2RlX21vZHVsZXMvbWFya28vZG9jcy9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9ub2RlX21vZHVsZXMvbWFya28vZG9jcy9jbGFzcy1jb21wb25lbnRzLm1kIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL25vZGVfbW9kdWxlcy9tYXJrby9kb2NzL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL25vZGVfbW9kdWxlcy9tYXJrby9kb2NzL2Nsb3VkZmxhcmUtd29ya2Vycy5tZCIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9ub2RlX21vZHVsZXMvbWFya28vZG9jcy9jb21waWxlci1ob29rcy5wbmciLCIvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvbm9kZV9tb2R1bGVzL21hcmtvL2RvY3MvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvbm9kZV9tb2R1bGVzL21hcmtvL2RvY3MvY29tcGlsZXIubWQiLCIvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvbm9kZV9tb2R1bGVzL21hcmtvL2RvY3MvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvbm9kZV9tb2R1bGVzL21hcmtvL2RvY3MvY29uY2lzZS5tZCIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9ub2RlX21vZHVsZXMvbWFya28vZG9jcy9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9ub2RlX21vZHVsZXMvbWFya28vZG9jcy9jb25kaXRpb25hbHMtYW5kLWxpc3RzLm1kIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL25vZGVfbW9kdWxlcy9tYXJrby9kb2NzL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL25vZGVfbW9kdWxlcy9tYXJrby9kb2NzL2NvcmUtdGFncy5tZCIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9ub2RlX21vZHVsZXMvbWFya28vZG9jcy9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9ub2RlX21vZHVsZXMvbWFya28vZG9jcy9jdXN0b20tdGFncy5tZCIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9ub2RlX21vZHVsZXMvbWFya28vZG9jcy9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9ub2RlX21vZHVsZXMvbWFya28vZG9jcy9lZGl0b3ItcGx1Z2lucy5tZCIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9ub2RlX21vZHVsZXMvbWFya28vZG9jcy9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9ub2RlX21vZHVsZXMvbWFya28vZG9jcy9ldmVudHMubWQiLCIvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvbm9kZV9tb2R1bGVzL21hcmtvL2RvY3MvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvbm9kZV9tb2R1bGVzL21hcmtvL2RvY3MvZXhwcmVzcy5tZCIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9ub2RlX21vZHVsZXMvbWFya28vZG9jcy9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9ub2RlX21vZHVsZXMvbWFya28vZG9jcy9mYXN0aWZ5Lm1kIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL25vZGVfbW9kdWxlcy9tYXJrby9kb2NzL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL25vZGVfbW9kdWxlcy9tYXJrby9kb2NzL2dldHRpbmctc3RhcnRlZC5tZCIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9ub2RlX21vZHVsZXMvbWFya28vZG9jcy9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9ub2RlX21vZHVsZXMvbWFya28vZG9jcy9odHRwLm1kIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL25vZGVfbW9kdWxlcy9tYXJrby9kb2NzL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL25vZGVfbW9kdWxlcy9tYXJrby9kb2NzL2luc3RhbGxpbmcubWQiLCIvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvbm9kZV9tb2R1bGVzL21hcmtvL2RvY3MvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvbm9kZV9tb2R1bGVzL21hcmtvL2RvY3Mva29hLm1kIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL25vZGVfbW9kdWxlcy9tYXJrby9kb2NzL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL25vZGVfbW9kdWxlcy9tYXJrby9kb2NzL2xhc3NvLm1kIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL25vZGVfbW9kdWxlcy9tYXJrby9kb2NzL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL25vZGVfbW9kdWxlcy9tYXJrby9kb2NzL21hcmtvLTUtdXBncmFkZS5tZCIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9ub2RlX21vZHVsZXMvbWFya28vZG9jcy9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9ub2RlX21vZHVsZXMvbWFya28vZG9jcy9tYXJrby1qc29uLm1kIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL25vZGVfbW9kdWxlcy9tYXJrby9kb2NzL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL25vZGVfbW9kdWxlcy9tYXJrby9kb2NzL21hcmtvLXZzLXJlYWN0Lm1kIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL25vZGVfbW9kdWxlcy9tYXJrby9kb2NzL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL25vZGVfbW9kdWxlcy9tYXJrby9kb2NzL3JlZHV4Lm1kIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL25vZGVfbW9kdWxlcy9tYXJrby9kb2NzL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL25vZGVfbW9kdWxlcy9tYXJrby9kb2NzL3JlbmRlcmluZy5tZCIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9ub2RlX21vZHVsZXMvbWFya28vZG9jcy9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9ub2RlX21vZHVsZXMvbWFya28vZG9jcy9yb2xsdXAubWQiLCIvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvbm9kZV9tb2R1bGVzL21hcmtvL2RvY3MvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvbm9kZV9tb2R1bGVzL21hcmtvL2RvY3Mvc3RhdGUubWQiLCIvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvbm9kZV9tb2R1bGVzL21hcmtvL2RvY3MvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvbm9kZV9tb2R1bGVzL21hcmtvL2RvY3Mvc3R5bGVzLm1kIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL25vZGVfbW9kdWxlcy9tYXJrby9kb2NzL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL25vZGVfbW9kdWxlcy9tYXJrby9kb2NzL3N5bnRheC5tZCIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9ub2RlX21vZHVsZXMvbWFya28vZG9jcy9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9ub2RlX21vZHVsZXMvbWFya28vZG9jcy90cm91Ymxlc2hvb3Rpbmctc3RyZWFtaW5nLm1kIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL25vZGVfbW9kdWxlcy9tYXJrby9kb2NzL2ljb25zL21hcmtvLnN2ZyIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9ub2RlX21vZHVsZXMvbWFya28vZG9jcy9pY29ucy90cy5zdmciLCIvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvbm9kZV9tb2R1bGVzL21hcmtvL2RvY3MvaWNvbnMvanMuc3ZnIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL25vZGVfbW9kdWxlcy9tYXJrby9kb2NzL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL25vZGVfbW9kdWxlcy9tYXJrby9kb2NzL3R5cGVzY3JpcHQubWQiLCIvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvbm9kZV9tb2R1bGVzL21hcmtvL2RvY3MvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvbm9kZV9tb2R1bGVzL21hcmtvL2RvY3Mvdml0ZS5tZCIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9ub2RlX21vZHVsZXMvbWFya28vZG9jcy9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9ub2RlX21vZHVsZXMvbWFya28vZG9jcy93ZWJwYWNrLm1kIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL25vZGVfbW9kdWxlcy9tYXJrby9kb2NzL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL25vZGVfbW9kdWxlcy9tYXJrby9kb2NzL3doeS1pcy1tYXJrby1mYXN0Lm1kIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9wYWdlcy9kb2NzLzpuYW1lL2RvY3VtZW50LWxvb2t1cC5qcyIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvcGFnZXMvZG9jcy9jb21wb25lbnRzL2VkaXQtb24tZ2l0aHViL2dpdGh1Yi5zdmciLCIvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL3BhZ2VzL2RvY3MvY29tcG9uZW50cy9lZGl0LW9uLWdpdGh1Yi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvcGFnZXMvZG9jcy9jb21wb25lbnRzL2VkaXQtb24tZ2l0aHViL2luZGV4Lm1hcmtvIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9wYWdlcy9kb2NzL2NvbXBvbmVudHMvY29udHJpYnV0b3JzL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9wYWdlcy9kb2NzL2NvbXBvbmVudHMvY29udHJpYnV0b3JzL2luZGV4Lm1hcmtvIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9wYWdlcy9kb2NzL2NvbXBvbmVudHMvZG9jdW1lbnQtb3ZlcnZpZXcvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL3BhZ2VzL2RvY3MvY29tcG9uZW50cy9kb2N1bWVudC1vdmVydmlldy9pbmRleC5tYXJrbyIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvcGFnZXMvZG9jcy86bmFtZS9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvcGFnZXMvZG9jcy86bmFtZS9pbmRleC5tYXJrbyIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvcGFnZXMvZG9jcy92Ni9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvcGFnZXMvZG9jcy92Ni9pbmRleC5tYXJrbyIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvcGFnZXMvcGxheWdyb3VuZC92Ni9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvcGFnZXMvcGxheWdyb3VuZC92Ni9pbmRleC5tYXJrbyIsImV4dGVybmFsIGNvbW1vbmpzIFwiQG1hcmtvL3RyYW5zbGF0b3ItdGFnc1wiIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9wYWdlcy92Ni9wbGF5Z3JvdW5kL2NvbXBvbmVudHMvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL3BhZ2VzL3Y2L3BsYXlncm91bmQvY29tcG9uZW50cy9wbGF5Z3JvdW5kLTYubWFya28iLCIvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL3BhZ2VzL3Y2L3BsYXlncm91bmQvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL3BhZ2VzL3Y2L3BsYXlncm91bmQvaW5kZXgubWFya28iLCIvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL3BhZ2VzL3Y2L3R1dG9yaWFscy90dXRvcmlhbHMuanMiLCIvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL3BhZ2VzL3Y2L3R1dG9yaWFscy9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvcGFnZXMvdjYvdHV0b3JpYWxzL2luZGV4Lm1hcmtvIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9wYWdlcy92Ni9kb2NzL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9wYWdlcy92Ni9kb2NzL2luZGV4Lm1hcmtvIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9wYWdlcy9kb2NzL3Y2LzpuYW1lL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9wYWdlcy9kb2NzL3Y2LzpuYW1lL2luZGV4Lm1hcmtvIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9wYWdlcy92Ni90dXRvcmlhbHMvOm5hbWUvY29tcG9uZW50cy9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvcGFnZXMvdjYvdHV0b3JpYWxzLzpuYW1lL2NvbXBvbmVudHMvdHV0b3JpYWwubWFya28iLCIvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL3BhZ2VzL3Y2L3R1dG9yaWFscy86bmFtZS9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvcGFnZXMvdjYvdHV0b3JpYWxzLzpuYW1lL2luZGV4Lm1hcmtvIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9wYWdlcy92Ni9leGFtcGxlcy9bbmFtZV0vVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL3BhZ2VzL3Y2L2V4YW1wbGVzL1tuYW1lXS9pbmRleC5tYXJrbyIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvcGFnZXMvdjYvZG9jcy9tYXJrZG93bi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvcGFnZXMvdjYvZG9jcy9tYXJrZG93bi9jb21wb25lbnRzLm1kIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9wYWdlcy92Ni9kb2NzL21hcmtkb3duL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9wYWdlcy92Ni9kb2NzL21hcmtkb3duL2NvbmRpdGlvbmFscy5tZCIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvcGFnZXMvdjYvZG9jcy9tYXJrZG93bi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvcGFnZXMvdjYvZG9jcy9tYXJrZG93bi9ldmVudHMubWQiLCIvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL3BhZ2VzL3Y2L2RvY3MvbWFya2Rvd24vVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL3BhZ2VzL3Y2L2RvY3MvbWFya2Rvd24vamF2YXNjcmlwdC5tZCIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvcGFnZXMvdjYvZG9jcy9tYXJrZG93bi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvcGFnZXMvdjYvZG9jcy9tYXJrZG93bi9sYW5ndWFnZS5tZCIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvcGFnZXMvdjYvZG9jcy9tYXJrZG93bi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvcGFnZXMvdjYvZG9jcy9tYXJrZG93bi9saXN0cy5tZCIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvcGFnZXMvdjYvZG9jcy9tYXJrZG93bi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvcGFnZXMvdjYvZG9jcy9tYXJrZG93bi9zZXR1cC5tZCIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvcGFnZXMvdjYvZG9jcy9tYXJrZG93bi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvcGFnZXMvdjYvZG9jcy9tYXJrZG93bi9zdGF0ZS5tZCIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvcGFnZXMvdjYvZG9jcy9tYXJrZG93bi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvcGFnZXMvdjYvZG9jcy9tYXJrZG93bi9zdHlsZXMubWQiLCIvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL3BhZ2VzL3Y2L2RvY3MvOm5hbWUvZG9jdW1lbnQtbG9va3VwLmpzIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9wYWdlcy92Ni9kb2NzLzpuYW1lL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9wYWdlcy92Ni9kb2NzLzpuYW1lL2luZGV4Lm1hcmtvIiwid2VicGFjazovLy8/ODUzZiIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9ub2RlX21vZHVsZXMvQG1hcmtvL2J1aWxkL2Rpc3QvZmlsZXMvc2VydmVyLmpzIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9 \ No newline at end of file diff --git a/middleware.js b/middleware.js index 55182fd9..f767b9a5 100644 --- a/middleware.js +++ b/middleware.js @@ -649,7 +649,7 @@ _marko_template._ = renderer_js_default()(function (input, out, _componentDef, _ getAssets(entry) { return this.build[entry]; }, - build: {":name_5gMv":{"css":["8680a54b.css"],"js":["121.dee40b05.js","364.65751be0.js","72.101a150f.js","496.1f3507f7.js"]},":name_IGBa":{"css":["086d4324.css"],"js":["121.dee40b05.js","364.65751be0.js","586.bccf7e25.js"]},":name_Puth":{"js":["121.dee40b05.js","608.3649058d.js"]},":name_z0HT":{"css":["a50c84bf.css"],"js":["121.dee40b05.js","364.65751be0.js","991.56310bd8.js"]},"[name]_FLzY":{"css":["c2f5e683.css"],"js":["121.dee40b05.js","364.65751be0.js","72.101a150f.js","858.9323781e.js"]},"code-block-marko_UUum":{"css":["ff15f5e4.css"],"js":["121.dee40b05.js","364.65751be0.js","896.ddf9a235.js"]},"dir-index_C1oC":{"css":["31fa76ad.css"],"js":["121.dee40b05.js","512.7e55141a.js"]},"docs_MeqG":{"js":["121.dee40b05.js","127.29aea32d.js"]},"docs_zLbN":{"js":["121.dee40b05.js","375.d7b9d8b7.js"]},"index_WEBG":{"css":["3f0c1fd4.css"],"js":["121.dee40b05.js","364.65751be0.js","317.f3733e16.js"]},"playground_E8TY":{"css":["d7111765.css"],"js":["121.dee40b05.js","364.65751be0.js","72.101a150f.js","745.c73f1c83.js","663.28f5dddc.js","215.0e5fbbe7.js","313.b4d51fa5.js"]},"playground_mdf-":{"css":["d7111765.css"],"js":["121.dee40b05.js","364.65751be0.js","72.101a150f.js","39.0fd83ed0.js"]},"try-online-new_1yH9":{"js":["121.dee40b05.js","421.0313a7b1.js"]},"try-online_gkPN":{"css":["47274f39.css"],"js":["121.dee40b05.js","364.65751be0.js","665.464eee7b.js"]},"tutorials_p6eY":{"css":["7b8df9ad.css"],"js":["121.dee40b05.js","364.65751be0.js","247.3ad572d9.js"]},"v6_--pM":{"js":["121.dee40b05.js","497.5e264aae.js"]},"v6_4cho":{"js":["121.dee40b05.js","802.a646e289.js"]},"v6_YkD7":{"css":["3f0c1fd4.css"],"js":["121.dee40b05.js","364.65751be0.js","117.19da8542.js"]}} + build: {":name_5gMv":{"css":["8680a54b.css"],"js":["121.5eeb4585.js","364.65751be0.js","72.101a150f.js","496.e12c06ed.js"]},":name_IGBa":{"css":["086d4324.css"],"js":["121.5eeb4585.js","364.65751be0.js","586.bccf7e25.js"]},":name_Puth":{"js":["121.5eeb4585.js","608.3649058d.js"]},":name_z0HT":{"css":["a50c84bf.css"],"js":["121.5eeb4585.js","364.65751be0.js","991.56310bd8.js"]},"[name]_FLzY":{"css":["c2f5e683.css"],"js":["121.5eeb4585.js","364.65751be0.js","72.101a150f.js","858.e13f35da.js"]},"code-block-marko_UUum":{"css":["ff15f5e4.css"],"js":["121.5eeb4585.js","364.65751be0.js","896.ddf9a235.js"]},"dir-index_C1oC":{"css":["31fa76ad.css"],"js":["121.5eeb4585.js","512.7e55141a.js"]},"docs_MeqG":{"js":["121.5eeb4585.js","127.29aea32d.js"]},"docs_zLbN":{"js":["121.5eeb4585.js","375.d7b9d8b7.js"]},"index_WEBG":{"css":["3f0c1fd4.css"],"js":["121.5eeb4585.js","364.65751be0.js","317.f3733e16.js"]},"playground_E8TY":{"css":["d7111765.css"],"js":["121.5eeb4585.js","364.65751be0.js","72.101a150f.js","745.c73f1c83.js","663.28f5dddc.js","215.0e5fbbe7.js","313.fdf44b36.js"]},"playground_mdf-":{"css":["d7111765.css"],"js":["121.5eeb4585.js","364.65751be0.js","72.101a150f.js","39.40a6ace1.js"]},"try-online-new_1yH9":{"js":["121.5eeb4585.js","421.0313a7b1.js"]},"try-online_gkPN":{"css":["47274f39.css"],"js":["121.5eeb4585.js","364.65751be0.js","665.464eee7b.js"]},"tutorials_p6eY":{"css":["7b8df9ad.css"],"js":["121.5eeb4585.js","364.65751be0.js","247.3ad572d9.js"]},"v6_--pM":{"js":["121.5eeb4585.js","497.5e264aae.js"]},"v6_4cho":{"js":["121.5eeb4585.js","802.a646e289.js"]},"v6_YkD7":{"css":["3f0c1fd4.css"],"js":["121.5eeb4585.js","364.65751be0.js","117.19da8542.js"]}} }); ;// external "marko/dist/core-tags/core/__flush_here_and_after__.js" const _flush_here_and_after_js_namespaceObject = require("marko/dist/core-tags/core/__flush_here_and_after__.js"); @@ -795,350 +795,242 @@ index_marko_server_entry_marko_template._ = renderer_js_default()(function (inpu t: index_marko_server_entry_marko_componentType, i: true }, index_marko_server_entry_marko_component); -;// external "@marko/tags-api-preview/dist/transform/cached-values" -const cached_values_namespaceObject = require("@marko/tags-api-preview/dist/transform/cached-values"); -;// external "@marko/tags-api-preview/dist/components/return" -const return_namespaceObject = require("@marko/tags-api-preview/dist/components/return"); -var return_default = /*#__PURE__*/__webpack_require__.n(return_namespaceObject); -;// external "lz-string" -const external_lz_string_namespaceObject = require("lz-string"); -;// ./playground/components/hash-value.marko +;// ../logos/marko.svg +/* harmony default export */ const marko = (__webpack_require__.p + "91bc26e5.svg"); +;// ./index/components/home-hero/marko-text.svg +/* harmony default export */ const marko_text = (__webpack_require__.p + "7443bd32.svg"); +;// ../logos/marko-uwu.png +/* harmony default export */ const marko_uwu = (__webpack_require__.p + "2371441a.png"); +;// external "marko/dist/runtime/html/helpers/data-marko.js" +const data_marko_js_namespaceObject = require("marko/dist/runtime/html/helpers/data-marko.js"); +var data_marko_js_default = /*#__PURE__*/__webpack_require__.n(data_marko_js_namespaceObject); +;// ../logos/github.svg +/* harmony default export */ const github = (__webpack_require__.p + "0bc571bc.svg"); +;// ./index/components/home-hero/components/github-link/index.marko -const hash_value_marko_marko_componentType = "iu_vYbKl", - hash_value_marko_marko_template = (0,index_js_namespaceObject.t)(hash_value_marko_marko_componentType); -/* harmony default export */ const hash_value_marko = (hash_value_marko_marko_template); +const github_link_index_marko_marko_componentType = "ZLItxxri", + github_link_index_marko_marko_template = (0,index_js_namespaceObject.t)(github_link_index_marko_marko_componentType); +/* harmony default export */ const github_link_index_marko = (github_link_index_marko_marko_template); -function getInitialValue() { - try { - if (false) {} - } catch (e) { - console.error(e); - } -} -const hash_value_marko_marko_component = { - onCreate() { - this.state = {}; - } -}; -hash_value_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component2, state, $global) { - var _component = _component2, - _state = state; - const { - value: defaultValue - } = input; - let value = getInitialValue() || defaultValue; - input._return && input._return({ - "value": value, - "valueChange": (0,cached_values_namespaceObject.cache)((0,cached_values_namespaceObject.cached)(_component, []) || (_ => value = _)) - }, 1); + +const github_link_index_marko_marko_component = {}; +github_link_index_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { + out.w(`GitHub`); }, { - t: hash_value_marko_marko_componentType -}, hash_value_marko_marko_component); -;// external "@marko/tags-api-preview/dist/util/replace-assignments" -const replace_assignments_namespaceObject = require("@marko/tags-api-preview/dist/util/replace-assignments"); -var replace_assignments_default = /*#__PURE__*/__webpack_require__.n(replace_assignments_namespaceObject); -;// external "@marko/tags-api-preview/dist/transform/native-tag-var" -const native_tag_var_namespaceObject = require("@marko/tags-api-preview/dist/transform/native-tag-var"); -var native_tag_var_default = /*#__PURE__*/__webpack_require__.n(native_tag_var_namespaceObject); -;// ../../node_modules/@marko/tags-api-preview/dist/components/_instance/index.marko + t: github_link_index_marko_marko_componentType, + s: true +}, github_link_index_marko_marko_component); +;// ./index/components/home-hero/index.marko + +const home_hero_index_marko_marko_componentType = "zOb$ETAb", + home_hero_index_marko_marko_template = (0,index_js_namespaceObject.t)(home_hero_index_marko_marko_componentType); +/* harmony default export */ const home_hero_index_marko = (home_hero_index_marko_marko_template); + -const _instance_index_marko_marko_componentType = "ZcXvQUMl", - _instance_index_marko_marko_template = (0,index_js_namespaceObject.t)(_instance_index_marko_marko_componentType); -/* harmony default export */ const _instance_index_marko = (_instance_index_marko_marko_template); -const _instance_index_marko_marko_component = { - onCreate() { - this.state = {}; - } -}; -_instance_index_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { - var componentDef = _componentDef; - input.renderBody(out, componentDef, _component, state); -}, { - t: _instance_index_marko_marko_componentType -}, _instance_index_marko_marko_component); -;// external "marko/dist/runtime/helpers/class-value.js" -const class_value_js_namespaceObject = require("marko/dist/runtime/helpers/class-value.js"); -var class_value_js_default = /*#__PURE__*/__webpack_require__.n(class_value_js_namespaceObject); -;// ../components/repl/components/file-tabs.marko -const file_tabs_marko_marko_componentType = "JtPBPdcm", - file_tabs_marko_marko_template = (0,index_js_namespaceObject.t)(file_tabs_marko_marko_componentType); -/* harmony default export */ const file_tabs_marko = (file_tabs_marko_marko_template); +const home_hero_index_marko_marko_component = {}; +home_hero_index_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { + out.w(`
    "); +}, { + t: home_hero_index_marko_marko_componentType, + s: true +}, home_hero_index_marko_marko_component); +;// ./index/components/home-features/index.marko +const home_features_index_marko_marko_componentType = "qRU$xLeb", + home_features_index_marko_marko_template = (0,index_js_namespaceObject.t)(home_features_index_marko_marko_componentType); +/* harmony default export */ const home_features_index_marko = (home_features_index_marko_marko_template); +const home_features_index_marko_marko_component = {}; +home_features_index_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { + out.w("

    Familiar

    If you know HTML, CSS, and Javascript, you know Marko

    Performant

    Streaming, partial hydration, an optimizing compiler, & a small runtime

    Scalable

    Start with simple HTML templates and add powerful components as needed

    Trusted

    Marko is powering high-traffic websites like ebay.com

    "); +}, { + t: home_features_index_marko_marko_componentType, + i: true +}, home_features_index_marko_marko_component); +;// external "marko/dist/runtime/helpers/attr-tag.js" +const attr_tag_js_namespaceObject = require("marko/dist/runtime/helpers/attr-tag.js"); +;// ./index/components/home-language/components/counter-tags.marko +const counter_tags_marko_marko_componentType = "jwtsId_c", + counter_tags_marko_marko_template = (0,index_js_namespaceObject.t)(counter_tags_marko_marko_componentType); +/* harmony default export */ const counter_tags_marko = (counter_tags_marko_marko_template); -const file_tabs_marko_marko_component = { +const counter_tags_marko_marko_component = { onCreate() { this.state = {}; } }; -file_tabs_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component4, state, $global) { - var _component = _component4, +counter_tags_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component2, state, $global) { + var _component = _component2, _state = state; - const { - "selectedIndexChange": _selectedIndexChange, - "filesChange": _filesChange, - files: externalFiles, - selectedIndex: externalSelected - } = input; - let files = externalFiles; - let selectedIndex = externalSelected; - const selectedFile = files[selectedIndex]; - out.w("
    "); - { - let nextId = 1; - let _index = 0; - for (const file of of_fallback_js_default()(files)) { - let index = _index++; - const _keyScope = `[${index}]`; - render_tag_js_default()(_instance_index_marko, { - "renderBody": (out, _nestedComponentDef, _component2, _state2) => { - var _componentDef = _nestedComponentDef, - _component4 = _component2; - let editing = false; - const selected = selectedFile === file; - const mutable = index > 0; - out.w(``); - if (!editing || !selected || !mutable) { - out.w((0,escape_xml_js_namespaceObject.x)(file.name)); - } else { - render_tag_js_default()(_instance_index_marko, { - "renderBody": (out, _nestedComponentDef2, _component3, _state3) => { - var _componentDef = _nestedComponentDef2, - _component4 = _component3; - let name = file.name; - const finishRename = (0,cached_values_namespaceObject.cache)((0,cached_values_namespaceObject.cached)(_component3, [name, files]) || function () { - const modifiedFile = { - ...file, - name, - path: file.path.replace(file.name, name) - }; - files = [...files.slice(0, index), modifiedFile, ...files.slice(index + 1)]; - editing = false; - }); - const nameInput = native_tag_var_default()(_component3, "0"); - out.w(``); - } - }, out, _componentDef, "3" + _keyScope); - } - if (mutable) { - out.w(""); - } - out.w("
    "); - } - }, out, _componentDef, "1" + _keyScope); - } - out.w(""); - } - out.w("
    "); + let count = 0; + out.w(``); }, { - t: file_tabs_marko_marko_componentType -}, file_tabs_marko_marko_component); -;// external "marko/dist/runtime/helpers/attr-tag.js" -const attr_tag_js_namespaceObject = require("marko/dist/runtime/helpers/attr-tag.js"); -;// external "marko/dist/runtime/helpers/dynamic-tag.js" -const dynamic_tag_js_namespaceObject = require("marko/dist/runtime/helpers/dynamic-tag.js"); -var dynamic_tag_js_default = /*#__PURE__*/__webpack_require__.n(dynamic_tag_js_namespaceObject); -;// ../components/repl/components/pane.marko + t: counter_tags_marko_marko_componentType +}, counter_tags_marko_marko_component); +;// ./index/components/home-language/components/counter-example/index.marko -const pane_marko_marko_componentType = "YdDerxpd", - pane_marko_marko_template = (0,index_js_namespaceObject.t)(pane_marko_marko_componentType); -/* harmony default export */ const pane_marko = (pane_marko_marko_template); +const counter_example_index_marko_marko_componentType = "bqxM_lge", + counter_example_index_marko_marko_template = (0,index_js_namespaceObject.t)(counter_example_index_marko_marko_componentType); +/* harmony default export */ const counter_example_index_marko = (counter_example_index_marko_marko_template); -const pane_marko_marko_component = {}; -pane_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { - const { - actions, - body - } = input; - out.w("
    "); - dynamic_tag_js_default()(out, actions.renderBody, null, null, null, null, _componentDef, "2"); - out.w("
    "); - dynamic_tag_js_default()(out, body.renderBody, null, null, null, null, _componentDef, "5"); - out.w("
    "); +const counter_example_index_marko_marko_component = { + onCreate() { + this.state = { + count: 0 + }; + }, + increment() { + this.state.count++; + } +}; +counter_example_index_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { + out.w(`
    ${(0,escape_xml_js_namespaceObject.x)(state.count)}
    `); }, { - t: pane_marko_marko_componentType, - i: true -}, pane_marko_marko_component); -;// ../components/repl/components/controllable-select.marko + t: counter_example_index_marko_marko_componentType +}, counter_example_index_marko_marko_component); +// EXTERNAL MODULE: ../components/heading/getAnchorName.js +var getAnchorName = __webpack_require__(272); +var getAnchorName_default = /*#__PURE__*/__webpack_require__.n(getAnchorName); +;// external "marko/dist/runtime/helpers/dynamic-tag.js" +const dynamic_tag_js_namespaceObject = require("marko/dist/runtime/helpers/dynamic-tag.js"); +var dynamic_tag_js_default = /*#__PURE__*/__webpack_require__.n(dynamic_tag_js_namespaceObject); +;// ../components/heading/index.marko -const controllable_select_marko_marko_componentType = "edcMGKVi", - controllable_select_marko_marko_template = (0,index_js_namespaceObject.t)(controllable_select_marko_marko_componentType); -/* harmony default export */ const controllable_select_marko = (controllable_select_marko_marko_template); +const heading_index_marko_marko_componentType = "m$Yyhouk", + heading_index_marko_marko_template = (0,index_js_namespaceObject.t)(heading_index_marko_marko_componentType); +/* harmony default export */ const heading_index_marko = (heading_index_marko_marko_template); -const controllable_select_marko_marko_component = { - onCreate() { - this.state = {}; - } -}; -controllable_select_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component2, state, $global) { - var _component = _component2, - _state = state; - const { - value, - valueChange, - renderBody, - class: className - } = input; - const el = native_tag_var_default()(_component, "0"); - out.w(``); - dynamic_tag_js_default()(out, renderBody, null, null, null, null, _componentDef, "0"); - out.w(""); +const heading_index_marko_marko_component = {}; +heading_index_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { + var className = input['class']; + var text = input.text; + var anchorName = input.anchorName || getAnchorName_default()(text, out); + dynamic_tag_js_default()(out, input.tag, () => ({ + "class": ['heading', className] + }), out => { + out.w(``); + if (text) { + out.w((0,escape_xml_js_namespaceObject.x)(text)); + } else { + dynamic_tag_js_default()(out, input.renderBody, null, null, null, null, _componentDef, "3"); + } + }, null, null, _componentDef, "0"); }, { - t: controllable_select_marko_marko_componentType -}, controllable_select_marko_marko_component); -;// external "@marko/tags-api-preview/dist/translate/native-tag-handlers" -const native_tag_handlers_namespaceObject = require("@marko/tags-api-preview/dist/translate/native-tag-handlers"); -var native_tag_handlers_default = /*#__PURE__*/__webpack_require__.n(native_tag_handlers_namespaceObject); -;// external "marko/dist/runtime/html/helpers/data-marko.js" -const data_marko_js_namespaceObject = require("marko/dist/runtime/html/helpers/data-marko.js"); -var data_marko_js_default = /*#__PURE__*/__webpack_require__.n(data_marko_js_namespaceObject); -;// external "marko/dist/runtime/html/helpers/attrs.js" -const attrs_js_namespaceObject = require("marko/dist/runtime/html/helpers/attrs.js"); -var attrs_js_default = /*#__PURE__*/__webpack_require__.n(attrs_js_namespaceObject); -;// ../components/repl/components/playground-link.marko - -const playground_link_marko_marko_componentType = "fLRwaABg", - playground_link_marko_marko_template = (0,index_js_namespaceObject.t)(playground_link_marko_marko_componentType); -/* harmony default export */ const playground_link_marko = (playground_link_marko_marko_template); + t: heading_index_marko_marko_componentType, + i: true +}, heading_index_marko_marko_component); +;// external "marko/dist/runtime/helpers/class-value.js" +const class_value_js_namespaceObject = require("marko/dist/runtime/helpers/class-value.js"); +var class_value_js_default = /*#__PURE__*/__webpack_require__.n(class_value_js_namespaceObject); +;// ./index/components/home-feature-block/index.marko +const home_feature_block_index_marko_marko_componentType = "TxbG_krh", + home_feature_block_index_marko_marko_template = (0,index_js_namespaceObject.t)(home_feature_block_index_marko_marko_componentType); +/* harmony default export */ const home_feature_block_index_marko = (home_feature_block_index_marko_marko_template); -const playground_link_marko_marko_component = {}; -playground_link_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { - const { - files, - ...attrs - } = input; - var _meta = {}; - out.w(`Open in playground \u2197`); -}, { - t: playground_link_marko_marko_componentType, - i: true -}, playground_link_marko_marko_component); -;// ../components/repl/components/match-media.marko -const match_media_marko_marko_componentType = "aEQdEE_f", - match_media_marko_marko_template = (0,index_js_namespaceObject.t)(match_media_marko_marko_componentType); -/* harmony default export */ const match_media_marko = (match_media_marko_marko_template); -const match_media_marko_marko_component = { - onCreate() { - this.state = {}; +const home_feature_block_index_marko_marko_component = {}; +home_feature_block_index_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { + out.w(`
    `); + render_tag_js_default()(heading_index_marko, { + "tag": "h1", + "class": "home-feature-block-title", + ...input.title + }, out, _componentDef, "3"); + out.w("
    "); + dynamic_tag_js_default()(out, input.content, null, null, null, null, _componentDef, "5"); + out.w(`
    `); + dynamic_tag_js_default()(out, input.visual, null, null, null, null, _componentDef, "7"); + out.w("
    "); + if (input.action) { + out.w(`
    ${(0,escape_xml_js_namespaceObject.x)(input.action.text || "Learn More")}
    `); } -}; -match_media_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component2, state, $global) { - var _component = _component2, - _state = state; - const { - value: query, - fallback - } = input; - let isMatch = false ? 0 : fallback; - input._return && input._return({ - "value": isMatch - }, 1); + out.w("
    "); + dynamic_tag_js_default()(out, input.breakout, null, null, null, null, _componentDef, "10"); + out.w(""); }, { - t: match_media_marko_marko_componentType -}, match_media_marko_marko_component); -;// ../components/repl/components/resizable-panes.marko - -const resizable_panes_marko_marko_componentType = "H_lRXCBe", - resizable_panes_marko_marko_template = (0,index_js_namespaceObject.t)(resizable_panes_marko_marko_componentType); -/* harmony default export */ const resizable_panes_marko = (resizable_panes_marko_marko_template); - - - - - + t: home_feature_block_index_marko_marko_componentType, + i: true +}, home_feature_block_index_marko_marko_component); +;// ./index/components/home-language/index.marko +const home_language_index_marko_marko_componentType = "fEFMinFc", + home_language_index_marko_marko_template = (0,index_js_namespaceObject.t)(home_language_index_marko_marko_componentType); +/* harmony default export */ const home_language_index_marko = (home_language_index_marko_marko_template); -const resizable_panes_marko_marko_component = { - onCreate() { - this.state = {}; - } -}; -resizable_panes_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component3, state, $global) { - var _component = _component3, - _state = state; - const { - left, - right - } = input; - let editorSize = 0.5; - let resizing = false; - var _matchMediaReturn = return_default()(_component); - render_tag_js_default()(match_media_marko, { - "value": "(max-aspect-ratio: 1/1)", - "_return": _matchMediaReturn - }, out, _componentDef, "0"); - const { - value: isVertical - } = _matchMediaReturn(); - const container = native_tag_var_default()(_component, "0"); - out.w(``); - var _meta = {}; - out.w(``); - dynamic_tag_js_default()(out, left.renderBody, null, null, null, null, _componentDef, "2"); - out.w("
"); - var _meta2 = {}; - out.w(``); - dynamic_tag_js_default()(out, right.renderBody, null, null, null, null, _componentDef, "6"); - out.w("
"); - if (resizing) { - render_tag_js_default()(_instance_index_marko, { - "renderBody": (out, _nestedComponentDef, _component2, _state2) => { - var _componentDef = _nestedComponentDef, - _component3 = _component2; +const home_language_index_marko_marko_component = {}; +home_language_index_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { + render_tag_js_default()(home_feature_block_index_marko, (0,attr_tag_js_namespaceObject.i)(() => { + (0,attr_tag_js_namespaceObject.a)("title", { + "text": "HTML Reimagined", + "anchorName": "language" + }); + (0,attr_tag_js_namespaceObject.a)("content", { + "renderBody": out => { + out.w("

Marko is HTML re-imagined as a language for building dynamic and reactive user interfaces. Just about any valid HTML is valid Marko, but Marko extends the HTML language to allow building modern applications in a declarative way.

"); } - }, out, _componentDef, "7"); - } + }); + (0,attr_tag_js_namespaceObject.a)("visual", { + "class": "home-language__examples", + "renderBody": out => { + if (input.v6) { + out.w("
"); + render_tag_js_default()(counter_tags_marko, {}, out, _componentDef, "5"); + out.w("
<!doctype html>\n<html>\n    <head>\n        <title>Count with Marko</title>\n    </head>\n    <body>\n        <let/count=0/>\n        <button onClick() { count++ }>\n            ${count}\n        </button>\n    </body>\n</html>\n
"); + } else { + out.w("
<!doctype html>\n<html>\n<head>\n    <title>Hello Marko</title>\n</head>\n<body>\n    <h1>My favorite colors</h1>\n    <ul>\n        <for|color| of=[\"red\", \"green\", \"blue\"]>\n            <li style=`color:${color}`>\n                ${color.toUpperCase()}\n            </li>\n        </for>\n    </ul>\n    <shared-footer/>\n</body>\n</html>\n
HTML Templates, Custom Tags, & Javascript Expressions
"); + render_tag_js_default()(counter_example_index_marko, {}, out, _componentDef, "12"); + out.w("
class {\n  onCreate() {\n    this.state = { count: 0 };\n  }\n  increment() {\n    this.state.count++;\n  }\n}\n<div>${state.count}</div>\n<button on-click(\"increment\")>\n  Click me!\n</button>\n
Interactive Logic & Reactive Values
"); + } + } + }); + }, { + "class": "home-language" + }), out, _componentDef, "0"); }, { - t: resizable_panes_marko_marko_componentType -}, resizable_panes_marko_marko_component); -;// ../components/repl/index.marko + t: home_language_index_marko_marko_componentType, + i: true +}, home_language_index_marko_marko_component); +;// ./index/components/home-demo-page/product.png +/* harmony default export */ const product = (__webpack_require__.p + "2ff006d2.png"); +;// ./index/components/home-demo-page/x.svg +/* harmony default export */ const x = (__webpack_require__.p + "886b7024.svg"); +;// external "marko/dist/runtime/helpers/style-value.js" +const style_value_js_namespaceObject = require("marko/dist/runtime/helpers/style-value.js"); +var style_value_js_default = /*#__PURE__*/__webpack_require__.n(style_value_js_namespaceObject); +;// ./index/components/home-demo-page/index.marko -const repl_index_marko_marko_componentType = "rtapnbhf", - repl_index_marko_marko_template = (0,index_js_namespaceObject.t)(repl_index_marko_marko_componentType); -/* harmony default export */ const repl_index_marko = (repl_index_marko_marko_template); +const home_demo_page_index_marko_marko_componentType = "pYOALFJk", + home_demo_page_index_marko_marko_template = (0,index_js_namespaceObject.t)(home_demo_page_index_marko_marko_componentType); +/* harmony default export */ const home_demo_page_index_marko = (home_demo_page_index_marko_marko_template); @@ -1146,174 +1038,347 @@ const repl_index_marko_marko_componentType = "rtapnbhf", +const home_demo_page_index_marko_marko_component = {}; +home_demo_page_index_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { + const progress = input.buffered ? Math.floor(input.progress / 0.9) : input.progress / 0.9; + out.w(`
`); + if (input.progress >= 0) { + out.w(`
`); + } + out.w(`
Cart (0)
Google Home - $79
Add to Cart
Hands-free help around the house. Google Home is a smart speaker with the Google Assistant built in. So whenever you need help, it's by your side
\u2605\u2605\u2605\u2605\u2606
Cool gadget Google has created a nice device that provides music and information by voice control. The microphone is very good and will usually pick up commands from across the room. The speakers sound surprisingly good for such a small device. I wish it had tone control though.
\u2605\u2605\u2605\u2605\u2605
Incredible sound profile! Easy setup, great sound for any room size. Adjustable bass and treble. Currently have two paired up for better whole house sound.
About
Security
Policies
Help
Sitemap
`); + if (input.buffered || input.hydrateAll) { + out.w(`
`); + } else { + out.w(`
`); + } + out.w("
"); +}, { + t: home_demo_page_index_marko_marko_componentType, + i: true +}, home_demo_page_index_marko_marko_component); +;// ./index/components/home-streaming/components/scroll-locked-stream-example/index.marko + +const scroll_locked_stream_example_index_marko_marko_componentType = "RQwDtLcd", + scroll_locked_stream_example_index_marko_marko_template = (0,index_js_namespaceObject.t)(scroll_locked_stream_example_index_marko_marko_componentType); +/* harmony default export */ const scroll_locked_stream_example_index_marko = (scroll_locked_stream_example_index_marko_marko_template); -const repl_index_marko_marko_component = { +const scroll_locked_stream_example_index_marko_marko_component = { onCreate() { - this.state = {}; + this.state = { + progress: 0.1 + }; + }, + onMount() { + this.observer = new IntersectionObserver(entries => { + if (entries[0].intersectionRatio <= 0) { + this.cleanProgress(); + } else { + this.initProgress(); + } + }); + this.observer.observe(this.getEl("root")); + }, + onDestroy() { + this.cleanProgress(); + this.observer.disconnect(); + }, + initProgress() { + const updateProgress = () => { + this.state.progress = (this.state.progress + 0.004) % 1.5; + this.frame = requestAnimationFrame(updateProgress); + }; + this.frame = requestAnimationFrame(updateProgress); + }, + cleanProgress() { + cancelAnimationFrame(this.frame); } }; -repl_index_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component7, state, $global) { - var _component = _component7, - _state = state; - const { - "filesChange": _filesChange, - getCompilerOptions, - files - } = input; - let selectedIndex = 0; - let previewType = "preview"; - let debounce = false; - const selectedFile = files[selectedIndex]; - render_tag_js_default()(resizable_panes_marko, (0,attr_tag_js_namespaceObject.i)(() => { - (0,attr_tag_js_namespaceObject.a)("left", { - "class": "editor-container", +scroll_locked_stream_example_index_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { + out.w(``); + render_tag_js_default()(home_demo_page_index_marko, { + "progress": state.progress, + "buffered": true, + "label": "Buffered pages don't show content as it loads" + }, out, _componentDef, "0"); + render_tag_js_default()(home_demo_page_index_marko, { + "progress": state.progress, + "label": "Streaming pages show content incrementally", + "class": "scroll-locked-progressive" + }, out, _componentDef, "1"); + out.w("
"); +}, { + t: scroll_locked_stream_example_index_marko_marko_componentType +}, scroll_locked_stream_example_index_marko_marko_component); +;// ./index/components/home-streaming/index.marko + +const home_streaming_index_marko_marko_componentType = "opQEgCpi", + home_streaming_index_marko_marko_template = (0,index_js_namespaceObject.t)(home_streaming_index_marko_marko_componentType); +/* harmony default export */ const home_streaming_index_marko = (home_streaming_index_marko_marko_template); + + + + + +const home_streaming_index_marko_marko_component = {}; +home_streaming_index_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { + render_tag_js_default()(home_feature_block_index_marko, (0,attr_tag_js_namespaceObject.i)(() => { + (0,attr_tag_js_namespaceObject.a)("title", { + "text": "Progressive Rendering", + "anchorName": "streaming" + }); + (0,attr_tag_js_namespaceObject.a)("content", { "renderBody": out => { - render_tag_js_default()(pane_marko, (0,attr_tag_js_namespaceObject.i)(() => { - (0,attr_tag_js_namespaceObject.a)("actions", { - "renderBody": out => { - render_tag_js_default()(_instance_index_marko, { - "renderBody": (out, _nestedComponentDef, _component2, _state2) => { - var _componentDef = _nestedComponentDef, - _component7 = _component2; - render_tag_js_default()(file_tabs_marko, { - "files": files, - "filesChange": _filesChange, - "selectedIndex": selectedIndex, - "selectedIndexChange": (0,cached_values_namespaceObject.cache)((0,cached_values_namespaceObject.cached)(_component2, []) || (_ => selectedIndex = _)) - }, out, _componentDef, "3"); - } - }, out, _componentDef, "2"); - } - }); - (0,attr_tag_js_namespaceObject.a)("body", { - "renderBody": out => { - render_tag_js_default()(_instance_index_marko, { - "renderBody": (out, _nestedComponentDef2, _component3, _state3) => { - var _componentDef = _nestedComponentDef2, - _component7 = _component3; - let activeEditor = null; - if (activeEditor) { - render_tag_js_default()(_instance_index_marko, { - "renderBody": (out, _nestedComponentDef3, _component4, _state4) => { - var _componentDef = _nestedComponentDef3, - _component7 = _component4; - dynamic_tag_js_default()(out, activeEditor, () => ({ - "value": selectedFile.content, - "filename": selectedFile.path, - "valueChange": (0,cached_values_namespaceObject.cache)((0,cached_values_namespaceObject.cached)(_component4, [selectedFile, files, selectedIndex]) || function (content) { - const modifiedFile = { - ...selectedFile, - content - }; - replace_assignments_default()(_filesChange, [...files.slice(0, selectedIndex), modifiedFile, ...files.slice(selectedIndex + 1)]); - debounce = true; - }) - }), null, null, null, _componentDef, "6"); - } - }, out, _componentDef, "5"); - } - } - }, out, _componentDef, "4"); - } - }); - }), out, _componentDef, "1"); + out.w("

Marko streams content to your users as soon as it\u2019s ready. No waiting for client side JavaScript bundles or data requests to start rendering. HTML, assets, and images are loaded as soon as possible with asynchronous data loading in as it completes.

"); } }); - (0,attr_tag_js_namespaceObject.a)("right", { + (0,attr_tag_js_namespaceObject.a)("visual", { "renderBody": out => { - render_tag_js_default()(pane_marko, (0,attr_tag_js_namespaceObject.i)(() => { - (0,attr_tag_js_namespaceObject.a)("actions", { - "renderBody": out => { - render_tag_js_default()(_instance_index_marko, { - "renderBody": (out, _nestedComponentDef4, _component5, _state5) => { - var _componentDef = _nestedComponentDef4, - _component7 = _component5; - render_tag_js_default()(controllable_select_marko, { - "value": previewType, - "valueChange": (0,cached_values_namespaceObject.cache)((0,cached_values_namespaceObject.cached)(_component5, []) || function (value) { - previewType = value; - debounce = false; - }), - "class": "preview-select", - "renderBody": out => { - out.w(""); - } - }, out, _componentDef, "9"); - render_tag_js_default()(playground_link_marko, { - "files": files - }, out, _componentDef, "13"); - } - }, out, _componentDef, "8"); - } - }); - (0,attr_tag_js_namespaceObject.a)("body", { - "renderBody": out => { - render_tag_js_default()(_instance_index_marko, { - "renderBody": (out, _nestedComponentDef5, _component6, _state6) => { - var _componentDef = _nestedComponentDef5, - _component7 = _component6; - let preview = null; - dynamic_tag_js_default()(out, preview, () => ({ - "type": previewType, - "files": files, - "selectedFile": selectedFile, - "getCompilerOptions": getCompilerOptions, - "debounce": debounce - }), null, null, null, _componentDef, "15"); - } - }, out, _componentDef, "14"); - } - }); - }), out, _componentDef, "7"); + render_tag_js_default()(scroll_locked_stream_example_index_marko, { + "class": "home-streaming-example" + }, out, _componentDef, "2"); } }); + (0,attr_tag_js_namespaceObject.a)("action", { + "href": "https://dev.to/ryansolid/server-rendering-in-javascript-optimizing-performance-1jnk" + }); + }, { + "align": "left", + "class": "home-streaming" }), out, _componentDef, "0"); }, { - t: repl_index_marko_marko_componentType -}, repl_index_marko_marko_component); -;// ./playground/components/playground.marko + t: home_streaming_index_marko_marko_componentType, + i: true +}, home_streaming_index_marko_marko_component); +;// ./index/components/home-hydration/index.marko -const playground_marko_marko_componentType = "HUU$Znhn", - playground_marko_marko_template = (0,index_js_namespaceObject.t)(playground_marko_marko_componentType); -/* harmony default export */ const playground_marko = (playground_marko_marko_template); +const home_hydration_index_marko_marko_componentType = "NpXSyNze", + home_hydration_index_marko_marko_template = (0,index_js_namespaceObject.t)(home_hydration_index_marko_marko_componentType); +/* harmony default export */ const home_hydration_index_marko = (home_hydration_index_marko_marko_template); + + + + + +const home_hydration_index_marko_marko_component = {}; +home_hydration_index_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { + render_tag_js_default()(home_feature_block_index_marko, (0,attr_tag_js_namespaceObject.i)(() => { + (0,attr_tag_js_namespaceObject.a)("title", { + "text": "Code Elimination", + "anchorName": "hydration" + }); + (0,attr_tag_js_namespaceObject.a)("content", { + "renderBody": out => { + out.w("

Marko only sends the code for interactive components to the browser. Its compiler automatically detects which components only need to be rendered on the server. This means less to download and less to execute. Your users can enjoy top tier performance regardless of their devices or networks.

"); + } + }); + (0,attr_tag_js_namespaceObject.a)("visual", { + "renderBody": out => { + render_tag_js_default()(home_demo_page_index_marko, { + "hydrateAll": true, + "label": "Traditional hydration sends and re-excutes the code for all components", + "class": "home-hydration-example" + }, out, _componentDef, "2"); + render_tag_js_default()(home_demo_page_index_marko, { + "hydratePartial": true, + "label": "Marko's hydration only sends the code for interactive components", + "class": "home-hydration-example" + }, out, _componentDef, "3"); + } + }); + (0,attr_tag_js_namespaceObject.a)("action", { + "href": "https://medium.com/@mlrawlings/maybe-you-dont-need-that-spa-f2c659bc7fec" + }); + }, { + "align": "right", + "class": "home-hydration" + }), out, _componentDef, "0"); +}, { + t: home_hydration_index_marko_marko_componentType, + i: true +}, home_hydration_index_marko_marko_component); +;// ./index/components/home-performance/arrow.svg +/* harmony default export */ const arrow = (__webpack_require__.p + "7c1cc740.svg"); +;// ./index/components/home-performance/index.marko +const home_performance_index_marko_marko_componentType = "zumXQlzg", + home_performance_index_marko_marko_template = (0,index_js_namespaceObject.t)(home_performance_index_marko_marko_componentType); +/* harmony default export */ const home_performance_index_marko = (home_performance_index_marko_marko_template); -const playground_marko_marko_component = { - onCreate() { - this.state = {}; - } -}; -playground_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component2, state, $global) { - var _component = _component2, - _state = state; - var _hashValueReturn = return_default()(_component); - render_tag_js_default()(hash_value_marko, { - "value": (0,cached_values_namespaceObject.cache)((0,cached_values_namespaceObject.cached)(_component, []) || [{ - name: "index.marko", - path: "/components/index.marko", - content: "\n" - }]), - "_return": _hashValueReturn - }, out, _componentDef, "0"); - const { - "valueChange": _valueChange, - value: files - } = _hashValueReturn(); - render_tag_js_default()(repl_index_marko, { - "files": files, - "filesChange": _valueChange - }, out, _componentDef, "1"); + +const home_performance_index_marko_marko_component = {}; +home_performance_index_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { + render_tag_js_default()(home_feature_block_index_marko, (0,attr_tag_js_namespaceObject.i)(() => { + (0,attr_tag_js_namespaceObject.a)("title", { + "text": "Tailored Performance", + "anchorName": "performance" + }); + (0,attr_tag_js_namespaceObject.a)("content", { + "renderBody": out => { + out.w("

Marko's compiler generates code tailored to where it is going to run. You write your code once and it is optimized for both the server and browser. This is especially apparent on the server where Marko is several times faster than other popular solutions.

"); + } + }); + (0,attr_tag_js_namespaceObject.a)("visual", { + "renderBody": out => { + out.w(``); + } + }); + (0,attr_tag_js_namespaceObject.a)("action", { + "href": "https://github.com/marko-js/isomorphic-ui-benchmarks", + "text": "See the Benchmarks" + }); + }, { + "class": "home-performance" + }), out, _componentDef, "0"); +}, { + t: home_performance_index_marko_marko_componentType, + i: true +}, home_performance_index_marko_marko_component); +;// ./index/components/home-tooling/screen.png +/* harmony default export */ const screen = (__webpack_require__.p + "92c4e05e.png"); +;// ./index/components/home-tooling/index.marko + +const home_tooling_index_marko_marko_componentType = "ZYtbGNjl", + home_tooling_index_marko_marko_template = (0,index_js_namespaceObject.t)(home_tooling_index_marko_marko_componentType); +/* harmony default export */ const home_tooling_index_marko = (home_tooling_index_marko_marko_template); + + + + + + +const home_tooling_index_marko_marko_component = {}; +home_tooling_index_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { + render_tag_js_default()(home_feature_block_index_marko, (0,attr_tag_js_namespaceObject.i)(() => { + (0,attr_tag_js_namespaceObject.a)("title", { + "text": "Editor Support", + "anchorName": "tooling" + }); + (0,attr_tag_js_namespaceObject.a)("content", { + "renderBody": out => { + out.w("

Marko provides first-class support for the VSCode editor including syntax highlighting, Autocompletion, Hyperclick to quickly jump to referenced files, and Pretty printing to keep your code readable.

Community plugins also provide syntax highlighting for Sublime, Atom, Webstorm & others!

"); + } + }); + (0,attr_tag_js_namespaceObject.a)("visual", { + "class": "home-tooling__screenshot-window", + "renderBody": out => { + out.w(`
`); + } + }); + (0,attr_tag_js_namespaceObject.a)("action", { + "href": "/docs/editor-plugins", + "text": "View editor plugins" + }); + }, { + "align": "right", + "class": "home-tooling" + }), out, _componentDef, "0"); +}, { + t: home_tooling_index_marko_marko_componentType, + i: true +}, home_tooling_index_marko_marko_component); +// EXTERNAL MODULE: external "gh-got" +var external_gh_got_ = __webpack_require__(724); +var external_gh_got_default = /*#__PURE__*/__webpack_require__.n(external_gh_got_); +;// ../logos/stackoverflow.svg +/* harmony default export */ const stackoverflow = (__webpack_require__.p + "0bfc2ee7.svg"); +;// ../logos/discord.svg +/* harmony default export */ const discord = (__webpack_require__.p + "78800ea4.svg"); +;// ../logos/twitter.svg +/* harmony default export */ const twitter = (__webpack_require__.p + "82b09e37.svg"); +;// external "marko/dist/core-tags/core/await/renderer.js" +const await_renderer_js_namespaceObject = require("marko/dist/core-tags/core/await/renderer.js"); +var await_renderer_js_default = /*#__PURE__*/__webpack_require__.n(await_renderer_js_namespaceObject); +;// ./index/components/home-community/index.marko + +const home_community_index_marko_marko_componentType = "rsiRtNhi", + home_community_index_marko_marko_template = (0,index_js_namespaceObject.t)(home_community_index_marko_marko_componentType); +/* harmony default export */ const home_community_index_marko = (home_community_index_marko_marko_template); + + + + + + + + + + + + + +const home_community_index_marko_marko_component = {}; +home_community_index_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { + render_tag_js_default()(home_feature_block_index_marko, (0,attr_tag_js_namespaceObject.i)(() => { + (0,attr_tag_js_namespaceObject.a)("title", { + "text": "Join the Community", + "anchorName": "community", + "class": "home-community__title" + }); + (0,attr_tag_js_namespaceObject.a)("content", { + "renderBody": out => { + out.w("

Need help? Want to contribute? Get involved in the Marko Community!

"); + } + }); + (0,attr_tag_js_namespaceObject.a)("visual", { + "renderBody": out => { + out.w(`
Ask & answer StackOverflow questions with the marko tag
Hang out in our Discord server, ask questions, & discuss project direction
Tweet to @MarkoDevTeam or with the #markojs hashtag
Browse the code, open issues, & make pull requests on the GitHub repo
`); + } + }); + (0,attr_tag_js_namespaceObject.a)("breakout", { + "renderBody": out => { + out.w("
"); + render_tag_js_default()((await_renderer_js_default()), (0,attr_tag_js_namespaceObject.i)(() => { + (0,attr_tag_js_namespaceObject.a)("then", { + "renderBody": (out, { + body + }) => { + let _keyValue = 0; + for (const contributor of of_fallback_js_default()(body)) { + const _keyScope = `[${_keyValue++}]`; + out.w(``); + } + } + }); + (0,attr_tag_js_namespaceObject.a)("catch", {}); + }, { + "_provider": external_gh_got_default()('/repos/marko-js/marko/contributors?per_page=100'), + "_name": "ghGot('/repos/marko-js/marko/contributors?per_page=100')" + }), out, _componentDef, "25"); + out.w("
"); + } + }); + }, { + "colors": ["#fff"] + }), out, _componentDef, "0"); }, { - t: playground_marko_marko_componentType -}, playground_marko_marko_component); + t: home_community_index_marko_marko_componentType, + i: true +}, home_community_index_marko_marko_component); ;// ../components/app-layout/favicon.png /* harmony default export */ const favicon = (__webpack_require__.p + "d78b83f1.png"); ;// ../components/app-layout/components/skip-link/index.marko @@ -1330,10 +1395,6 @@ skip_link_index_marko_marko_template._ = renderer_js_default()(function (input, t: skip_link_index_marko_marko_componentType, i: true }, skip_link_index_marko_marko_component); -;// ../logos/marko.svg -/* harmony default export */ const marko = (__webpack_require__.p + "91bc26e5.svg"); -;// ../logos/marko-uwu.png -/* harmony default export */ const marko_uwu = (__webpack_require__.p + "2371441a.png"); ;// ../components/app-layout/components/layout-search/index.marko const layout_search_index_marko_marko_componentType = "MYKqWWDb", @@ -1567,8 +1628,6 @@ google_analytics_index_marko_marko_template._ = renderer_js_default()(function ( t: google_analytics_index_marko_marko_componentType, i: true }, google_analytics_index_marko_marko_component); -;// ../logos/discord.svg -/* harmony default export */ const discord = (__webpack_require__.p + "78800ea4.svg"); ;// ../components/discord-link/index.marko const discord_link_index_marko_marko_componentType = "_GWD$Hh", @@ -1651,284 +1710,54 @@ app_layout_index_marko_marko_template._ = renderer_js_default()(function (input, t: app_layout_index_marko_marko_componentType, i: true }, app_layout_index_marko_marko_component); -;// ./playground/index.marko - -const playground_index_marko_marko_componentType = "MHuPCuWh", - playground_index_marko_marko_template = (0,index_js_namespaceObject.t)(playground_index_marko_marko_componentType); -/* harmony default export */ const playground_index_marko = (playground_index_marko_marko_template); - - - - -const playground_index_marko_marko_component = {}; -playground_index_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { - render_tag_js_default()(app_layout_index_marko, { - "title": "Try online", - "footer": false, - "discord": false, - "renderBody": out => { - render_tag_js_default()(playground_marko, {}, out, _componentDef, "1"); - } - }, out, _componentDef, "0"); - out.w(""); -}, { - t: playground_index_marko_marko_componentType, - i: true -}, playground_index_marko_marko_component); -;// ./playground/index.marko?server-entry - -const playground_index_marko_server_entry_marko_componentType = "gufdGSuf", - playground_index_marko_server_entry_marko_template = (0,index_js_namespaceObject.t)(playground_index_marko_server_entry_marko_componentType); -/* harmony default export */ const playground_index_marko_server_entry = (playground_index_marko_server_entry_marko_template); - - - -const playground_index_marko_server_entry_crossOriginAttr = new URL(__webpack_require__.p, "file:").protocol === "file:" ? "" : " crossorigin"; -function playground_index_marko_server_entry_renderAssets(out) { - const $global = out.global; - const entries = $global.___entries; - $global.___entries = undefined; - if (entries) { - const buildName = $global.buildName; - const nonce = $global.cspNonce; - const nonceAttr = nonce ? ` nonce=${JSON.stringify(nonce)}` : ""; - const written = $global.___writtenAssets || ($global.___writtenAssets = new Set()); - let scripts = ""; - let styles = ""; - for (const entry of entries) { - const assets = index_js_manifest.getAssets(entry, buildName); - if (assets.js) { - for (const href of assets.js) { - if (!written.has(href)) { - written.add(href); - scripts += ``; - } - } - } - if (assets.css) { - for (const href of assets.css) { - if (!written.has(href)) { - written.add(href); - styles += ``; - } - } - } - } - out.write(scripts + styles); - } -} - - - - - -const playground_index_marko_server_entry_marko_component = {}; -playground_index_marko_server_entry_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { - out.global.___renderAssets = playground_index_marko_server_entry_renderAssets; - (out.global.___entries || (out.global.___entries = [])).push("playground_mdf-"); - render_tag_js_default()((_flush_here_and_after_js_default()), { - "renderBody": out => { - const outAlias = out; - outAlias.global.___renderAssets && outAlias.global.___renderAssets(outAlias); - } - }, out, _componentDef, "0"); - render_tag_js_default()(playground_index_marko, input, out, _componentDef, "1"); - render_tag_js_default()((init_components_tag_js_default()), {}, out, _componentDef, "2"); - render_tag_js_default()((reorderer_renderer_js_default()), {}, out, _componentDef, "3"); -}, { - t: playground_index_marko_server_entry_marko_componentType, - i: true -}, playground_index_marko_server_entry_marko_component); -;// ./try-online-new/index.marko - -const try_online_new_index_marko_marko_componentType = "kokUincl", - try_online_new_index_marko_marko_template = (0,index_js_namespaceObject.t)(try_online_new_index_marko_marko_componentType); -/* harmony default export */ const try_online_new_index_marko = (try_online_new_index_marko_marko_template); - -const try_online_new_index_marko_marko_component = {}; -try_online_new_index_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { - out.w(""); -}, { - t: try_online_new_index_marko_marko_componentType, - i: true -}, try_online_new_index_marko_marko_component); -;// ./try-online-new/index.marko?server-entry - -const try_online_new_index_marko_server_entry_marko_componentType = "jBxauMAl", - try_online_new_index_marko_server_entry_marko_template = (0,index_js_namespaceObject.t)(try_online_new_index_marko_server_entry_marko_componentType); -/* harmony default export */ const try_online_new_index_marko_server_entry = (try_online_new_index_marko_server_entry_marko_template); - - - -const try_online_new_index_marko_server_entry_crossOriginAttr = new URL(__webpack_require__.p, "file:").protocol === "file:" ? "" : " crossorigin"; -function try_online_new_index_marko_server_entry_renderAssets(out) { - const $global = out.global; - const entries = $global.___entries; - $global.___entries = undefined; - if (entries) { - const buildName = $global.buildName; - const nonce = $global.cspNonce; - const nonceAttr = nonce ? ` nonce=${JSON.stringify(nonce)}` : ""; - const written = $global.___writtenAssets || ($global.___writtenAssets = new Set()); - let scripts = ""; - let styles = ""; - for (const entry of entries) { - const assets = index_js_manifest.getAssets(entry, buildName); - if (assets.js) { - for (const href of assets.js) { - if (!written.has(href)) { - written.add(href); - scripts += ``; - } - } - } - if (assets.css) { - for (const href of assets.css) { - if (!written.has(href)) { - written.add(href); - styles += ``; - } - } - } - } - out.write(scripts + styles); - } -} - - - - - -const try_online_new_index_marko_server_entry_marko_component = {}; -try_online_new_index_marko_server_entry_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { - out.global.___renderAssets = try_online_new_index_marko_server_entry_renderAssets; - (out.global.___entries || (out.global.___entries = [])).push("try-online-new_1yH9"); - render_tag_js_default()((_flush_here_and_after_js_default()), { - "renderBody": out => { - const outAlias = out; - outAlias.global.___renderAssets && outAlias.global.___renderAssets(outAlias); - } - }, out, _componentDef, "0"); - render_tag_js_default()(try_online_new_index_marko, input, out, _componentDef, "1"); - render_tag_js_default()((init_components_tag_js_default()), {}, out, _componentDef, "2"); - render_tag_js_default()((reorderer_renderer_js_default()), {}, out, _componentDef, "3"); -}, { - t: try_online_new_index_marko_server_entry_marko_componentType, - i: true -}, try_online_new_index_marko_server_entry_marko_component); -;// ../../node_modules/@marko-tags/subscribe/index.marko - -const subscribe_index_marko_marko_componentType = "DI$EjOwk", - subscribe_index_marko_marko_template = (0,index_js_namespaceObject.t)(subscribe_index_marko_marko_componentType); -/* harmony default export */ const subscribe_index_marko = (subscribe_index_marko_marko_template); - -const subscribe_index_marko_marko_component = { - onMount() { - this.listen(this.input); - }, - onInput(input) { - if (this.target && this.target !== input.to) { - this.onDestroy(); - this.listen(input); - } - }, - onDestroy() { - this.subscription.removeAllListeners(); - }, - listen(input) { - var target = this.target = input.to; - var subscription = this.subscription = this.subscribeTo(target); - var events = input.__events; - var len = events.length; - for (var i = 0; i < len; i += 2) { - var method = events[i]; - var name = events[i + 1]; - subscription[method](name, this.emit.bind(this, name)); - } - } -}; -subscribe_index_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) {}, { - t: subscribe_index_marko_marko_componentType -}, subscribe_index_marko_marko_component); -;// ./try-online/components/loader/index.marko +;// ./index/index.marko -const loader_index_marko_marko_componentType = "YfGHQdzh", - loader_index_marko_marko_template = (0,index_js_namespaceObject.t)(loader_index_marko_marko_componentType); -/* harmony default export */ const loader_index_marko = (loader_index_marko_marko_template); +const index_index_marko_marko_componentType = "riZjSFCe", + index_index_marko_marko_template = (0,index_js_namespaceObject.t)(index_index_marko_marko_componentType); +/* harmony default export */ const index_index_marko = (index_index_marko_marko_template); -const loader_index_marko_marko_component = { - onCreate() { - this.state = { - component: undefined, - show: false - }; - }, - async onMount() { - const rootComponent = false && (0); - await rootComponent.loading; - this.state.component = rootComponent; - this.checkIfLargeEnough(); - }, - checkIfLargeEnough() { - var windowSize = document.body.innerWidth || document.body.clientWidth; - this.state.show = windowSize > 1000; - } -}; -loader_index_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { - if (state.component) { - if (state.show) { - dynamic_tag_js_default()(out, state.component, () => ({ - "examples": input.examples - }), null, null, null, _componentDef, "0"); - } else { - render_tag_js_default()(subscribe_index_marko, { - "to": false && 0, - "__events": ["on", "resize"] - }, out, _componentDef, "1", [["resize", "checkIfLargeEnough", false]]); - out.w("

Screen width too small

Please increase the window size or rotate to load.

If you are on a mobile phone, please open on a desktop

View Docs

"); - } - } else { - out.w("
"); - } -}, { - t: loader_index_marko_marko_componentType -}, loader_index_marko_marko_component); -;// ./try-online/index.marko -const try_online_index_marko_marko_componentType = "hnzzKbLg", - try_online_index_marko_marko_template = (0,index_js_namespaceObject.t)(try_online_index_marko_marko_componentType); -/* harmony default export */ const try_online_index_marko = (try_online_index_marko_marko_template); -const try_online_index_marko_marko_component = {}; -try_online_index_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { + + +const index_index_marko_marko_component = {}; +index_index_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { render_tag_js_default()(app_layout_index_marko, { - "title": "Try online", - "footer": false, - "discord": false, + "v6": input.v6, + "class": "home", "renderBody": out => { - render_tag_js_default()(loader_index_marko, {}, out, _componentDef, "1"); + render_tag_js_default()(home_hero_index_marko, {}, out, _componentDef, "1"); + render_tag_js_default()(home_features_index_marko, {}, out, _componentDef, "2"); + render_tag_js_default()(home_language_index_marko, { + "v6": input.v6 + }, out, _componentDef, "3"); + render_tag_js_default()(home_streaming_index_marko, {}, out, _componentDef, "4"); + render_tag_js_default()(home_hydration_index_marko, {}, out, _componentDef, "5"); + render_tag_js_default()(home_performance_index_marko, {}, out, _componentDef, "6"); + render_tag_js_default()(home_tooling_index_marko, {}, out, _componentDef, "7"); + render_tag_js_default()(home_community_index_marko, {}, out, _componentDef, "8"); } }, out, _componentDef, "0"); }, { - t: try_online_index_marko_marko_componentType, + t: index_index_marko_marko_componentType, i: true -}, try_online_index_marko_marko_component); -;// ./try-online/index.marko?server-entry +}, index_index_marko_marko_component); +;// ./index/index.marko?server-entry -const try_online_index_marko_server_entry_marko_componentType = "xQvoHnzm", - try_online_index_marko_server_entry_marko_template = (0,index_js_namespaceObject.t)(try_online_index_marko_server_entry_marko_componentType); -/* harmony default export */ const try_online_index_marko_server_entry = (try_online_index_marko_server_entry_marko_template); +const index_index_marko_server_entry_marko_componentType = "oHUNYdtc", + index_index_marko_server_entry_marko_template = (0,index_js_namespaceObject.t)(index_index_marko_server_entry_marko_componentType); +/* harmony default export */ const index_index_marko_server_entry = (index_index_marko_server_entry_marko_template); -const try_online_index_marko_server_entry_crossOriginAttr = new URL(__webpack_require__.p, "file:").protocol === "file:" ? "" : " crossorigin"; -function try_online_index_marko_server_entry_renderAssets(out) { +const index_index_marko_server_entry_crossOriginAttr = new URL(__webpack_require__.p, "file:").protocol === "file:" ? "" : " crossorigin"; +function index_index_marko_server_entry_renderAssets(out) { const $global = out.global; const entries = $global.___entries; $global.___entries = undefined; @@ -1945,7 +1774,7 @@ function try_online_index_marko_server_entry_renderAssets(out) { for (const href of assets.js) { if (!written.has(href)) { written.add(href); - scripts += ``; + scripts += ``; } } } @@ -1966,158 +1795,92 @@ function try_online_index_marko_server_entry_renderAssets(out) { -const try_online_index_marko_server_entry_marko_component = {}; -try_online_index_marko_server_entry_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { - out.global.___renderAssets = try_online_index_marko_server_entry_renderAssets; - (out.global.___entries || (out.global.___entries = [])).push("try-online_gkPN"); +const index_index_marko_server_entry_marko_component = {}; +index_index_marko_server_entry_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { + out.global.___renderAssets = index_index_marko_server_entry_renderAssets; + (out.global.___entries || (out.global.___entries = [])).push("index_WEBG"); render_tag_js_default()((_flush_here_and_after_js_default()), { "renderBody": out => { const outAlias = out; outAlias.global.___renderAssets && outAlias.global.___renderAssets(outAlias); } }, out, _componentDef, "0"); - render_tag_js_default()(try_online_index_marko, input, out, _componentDef, "1"); + render_tag_js_default()(index_index_marko, input, out, _componentDef, "1"); render_tag_js_default()((init_components_tag_js_default()), {}, out, _componentDef, "2"); render_tag_js_default()((reorderer_renderer_js_default()), {}, out, _componentDef, "3"); }, { - t: try_online_index_marko_server_entry_marko_componentType, + t: index_index_marko_server_entry_marko_componentType, i: true -}, try_online_index_marko_server_entry_marko_component); -;// ./index/components/home-hero/marko-text.svg -/* harmony default export */ const marko_text = (__webpack_require__.p + "7443bd32.svg"); -;// ../logos/github.svg -/* harmony default export */ const github = (__webpack_require__.p + "0bc571bc.svg"); -;// ./index/components/home-hero/components/github-link/index.marko - -const github_link_index_marko_marko_componentType = "ZLItxxri", - github_link_index_marko_marko_template = (0,index_js_namespaceObject.t)(github_link_index_marko_marko_componentType); -/* harmony default export */ const github_link_index_marko = (github_link_index_marko_marko_template); - - - - -const github_link_index_marko_marko_component = {}; -github_link_index_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { - out.w(`GitHub`); -}, { - t: github_link_index_marko_marko_componentType, - s: true -}, github_link_index_marko_marko_component); -;// ./index/components/home-hero/index.marko - -const home_hero_index_marko_marko_componentType = "zOb$ETAb", - home_hero_index_marko_marko_template = (0,index_js_namespaceObject.t)(home_hero_index_marko_marko_componentType); -/* harmony default export */ const home_hero_index_marko = (home_hero_index_marko_marko_template); - - - - - - - - -const home_hero_index_marko_marko_component = {}; -home_hero_index_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { - out.w(`
"); -}, { - t: home_hero_index_marko_marko_componentType, - s: true -}, home_hero_index_marko_marko_component); -;// ./index/components/home-features/index.marko - -const home_features_index_marko_marko_componentType = "qRU$xLeb", - home_features_index_marko_marko_template = (0,index_js_namespaceObject.t)(home_features_index_marko_marko_componentType); -/* harmony default export */ const home_features_index_marko = (home_features_index_marko_marko_template); +}, index_index_marko_server_entry_marko_component); +;// external "@marko/tags-api-preview/dist/transform/cached-values" +const cached_values_namespaceObject = require("@marko/tags-api-preview/dist/transform/cached-values"); +;// external "@marko/tags-api-preview/dist/components/return" +const return_namespaceObject = require("@marko/tags-api-preview/dist/components/return"); +var return_default = /*#__PURE__*/__webpack_require__.n(return_namespaceObject); +;// external "lz-string" +const external_lz_string_namespaceObject = require("lz-string"); +;// ./playground/components/hash-value.marko -const home_features_index_marko_marko_component = {}; -home_features_index_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { - out.w("

Familiar

If you know HTML, CSS, and Javascript, you know Marko

Performant

Streaming, partial hydration, an optimizing compiler, & a small runtime

Scalable

Start with simple HTML templates and add powerful components as needed

Trusted

Marko is powering high-traffic websites like ebay.com

"); -}, { - t: home_features_index_marko_marko_componentType, - i: true -}, home_features_index_marko_marko_component); -;// ./index/components/home-language/components/counter-tags.marko +const hash_value_marko_marko_componentType = "iu_vYbKl", + hash_value_marko_marko_template = (0,index_js_namespaceObject.t)(hash_value_marko_marko_componentType); +/* harmony default export */ const hash_value_marko = (hash_value_marko_marko_template); -const counter_tags_marko_marko_componentType = "jwtsId_c", - counter_tags_marko_marko_template = (0,index_js_namespaceObject.t)(counter_tags_marko_marko_componentType); -/* harmony default export */ const counter_tags_marko = (counter_tags_marko_marko_template); +function getInitialValue() { + try { + if (false) {} + } catch (e) { + console.error(e); + } +} -const counter_tags_marko_marko_component = { +const hash_value_marko_marko_component = { onCreate() { this.state = {}; } }; -counter_tags_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component2, state, $global) { +hash_value_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component2, state, $global) { var _component = _component2, _state = state; - let count = 0; - out.w(``); + const { + value: defaultValue + } = input; + let value = getInitialValue() || defaultValue; + input._return && input._return({ + "value": value, + "valueChange": (0,cached_values_namespaceObject.cache)((0,cached_values_namespaceObject.cached)(_component, []) || (_ => value = _)) + }, 1); }, { - t: counter_tags_marko_marko_componentType -}, counter_tags_marko_marko_component); -;// ./index/components/home-language/components/counter-example/index.marko - -const counter_example_index_marko_marko_componentType = "bqxM_lge", - counter_example_index_marko_marko_template = (0,index_js_namespaceObject.t)(counter_example_index_marko_marko_componentType); -/* harmony default export */ const counter_example_index_marko = (counter_example_index_marko_marko_template); + t: hash_value_marko_marko_componentType +}, hash_value_marko_marko_component); +;// external "@marko/tags-api-preview/dist/util/replace-assignments" +const replace_assignments_namespaceObject = require("@marko/tags-api-preview/dist/util/replace-assignments"); +var replace_assignments_default = /*#__PURE__*/__webpack_require__.n(replace_assignments_namespaceObject); +;// external "@marko/tags-api-preview/dist/transform/native-tag-var" +const native_tag_var_namespaceObject = require("@marko/tags-api-preview/dist/transform/native-tag-var"); +var native_tag_var_default = /*#__PURE__*/__webpack_require__.n(native_tag_var_namespaceObject); +;// ../../node_modules/@marko/tags-api-preview/dist/components/_instance/index.marko +const _instance_index_marko_marko_componentType = "ZcXvQUMl", + _instance_index_marko_marko_template = (0,index_js_namespaceObject.t)(_instance_index_marko_marko_componentType); +/* harmony default export */ const _instance_index_marko = (_instance_index_marko_marko_template); -const counter_example_index_marko_marko_component = { +const _instance_index_marko_marko_component = { onCreate() { - this.state = { - count: 0 - }; - }, - increment() { - this.state.count++; + this.state = {}; } }; -counter_example_index_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { - out.w(`
${(0,escape_xml_js_namespaceObject.x)(state.count)}
`); -}, { - t: counter_example_index_marko_marko_componentType -}, counter_example_index_marko_marko_component); -// EXTERNAL MODULE: ../components/heading/getAnchorName.js -var getAnchorName = __webpack_require__(272); -var getAnchorName_default = /*#__PURE__*/__webpack_require__.n(getAnchorName); -;// ../components/heading/index.marko - -const heading_index_marko_marko_componentType = "m$Yyhouk", - heading_index_marko_marko_template = (0,index_js_namespaceObject.t)(heading_index_marko_marko_componentType); -/* harmony default export */ const heading_index_marko = (heading_index_marko_marko_template); - - - - - - -const heading_index_marko_marko_component = {}; -heading_index_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { - var className = input['class']; - var text = input.text; - var anchorName = input.anchorName || getAnchorName_default()(text, out); - dynamic_tag_js_default()(out, input.tag, () => ({ - "class": ['heading', className] - }), out => { - out.w(``); - if (text) { - out.w((0,escape_xml_js_namespaceObject.x)(text)); - } else { - dynamic_tag_js_default()(out, input.renderBody, null, null, null, null, _componentDef, "3"); - } - }, null, null, _componentDef, "0"); +_instance_index_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { + var componentDef = _componentDef; + input.renderBody(out, componentDef, _component, state); }, { - t: heading_index_marko_marko_componentType, - i: true -}, heading_index_marko_marko_component); -;// ./index/components/home-feature-block/index.marko + t: _instance_index_marko_marko_componentType +}, _instance_index_marko_marko_component); +;// ../components/repl/components/file-tabs.marko -const home_feature_block_index_marko_marko_componentType = "TxbG_krh", - home_feature_block_index_marko_marko_template = (0,index_js_namespaceObject.t)(home_feature_block_index_marko_marko_componentType); -/* harmony default export */ const home_feature_block_index_marko = (home_feature_block_index_marko_marko_template); +const file_tabs_marko_marko_componentType = "JtPBPdcm", + file_tabs_marko_marko_template = (0,index_js_namespaceObject.t)(file_tabs_marko_marko_componentType); +/* harmony default export */ const file_tabs_marko = (file_tabs_marko_marko_template); @@ -2125,497 +1888,716 @@ const home_feature_block_index_marko_marko_componentType = "TxbG_krh", -const home_feature_block_index_marko_marko_component = {}; -home_feature_block_index_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { - out.w(`
`); - render_tag_js_default()(heading_index_marko, { - "tag": "h1", - "class": "home-feature-block-title", - ...input.title - }, out, _componentDef, "3"); - out.w("
"); - dynamic_tag_js_default()(out, input.content, null, null, null, null, _componentDef, "5"); - out.w(`
`); - dynamic_tag_js_default()(out, input.visual, null, null, null, null, _componentDef, "7"); - out.w("
"); - if (input.action) { - out.w(`
${(0,escape_xml_js_namespaceObject.x)(input.action.text || "Learn More")}
`); + + +const file_tabs_marko_marko_component = { + onCreate() { + this.state = {}; + } +}; +file_tabs_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component4, state, $global) { + var _component = _component4, + _state = state; + const { + "selectedIndexChange": _selectedIndexChange, + "filesChange": _filesChange, + files: externalFiles, + selectedIndex: externalSelected + } = input; + let files = externalFiles; + let selectedIndex = externalSelected; + const selectedFile = files[selectedIndex]; + out.w("
"); + { + let nextId = 1; + let _index = 0; + for (const file of of_fallback_js_default()(files)) { + let index = _index++; + const _keyScope = `[${index}]`; + render_tag_js_default()(_instance_index_marko, { + "renderBody": (out, _nestedComponentDef, _component2, _state2) => { + var _componentDef = _nestedComponentDef, + _component4 = _component2; + let editing = false; + const selected = selectedFile === file; + const mutable = index > 0; + out.w(``); + if (!editing || !selected || !mutable) { + out.w((0,escape_xml_js_namespaceObject.x)(file.name)); + } else { + render_tag_js_default()(_instance_index_marko, { + "renderBody": (out, _nestedComponentDef2, _component3, _state3) => { + var _componentDef = _nestedComponentDef2, + _component4 = _component3; + let name = file.name; + const finishRename = (0,cached_values_namespaceObject.cache)((0,cached_values_namespaceObject.cached)(_component3, [name, files]) || function () { + const modifiedFile = { + ...file, + name, + path: file.path.replace(file.name, name) + }; + files = [...files.slice(0, index), modifiedFile, ...files.slice(index + 1)]; + editing = false; + }); + const nameInput = native_tag_var_default()(_component3, "0"); + out.w(``); + } + }, out, _componentDef, "3" + _keyScope); + } + if (mutable) { + out.w(""); + } + out.w("
"); + } + }, out, _componentDef, "1" + _keyScope); + } + out.w(""); } out.w("
"); - dynamic_tag_js_default()(out, input.breakout, null, null, null, null, _componentDef, "10"); - out.w(""); }, { - t: home_feature_block_index_marko_marko_componentType, + t: file_tabs_marko_marko_componentType +}, file_tabs_marko_marko_component); +;// ../components/repl/components/pane.marko + +const pane_marko_marko_componentType = "YdDerxpd", + pane_marko_marko_template = (0,index_js_namespaceObject.t)(pane_marko_marko_componentType); +/* harmony default export */ const pane_marko = (pane_marko_marko_template); + + +const pane_marko_marko_component = {}; +pane_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { + const { + actions, + body + } = input; + out.w("
"); + dynamic_tag_js_default()(out, actions.renderBody, null, null, null, null, _componentDef, "2"); + out.w("
"); + dynamic_tag_js_default()(out, body.renderBody, null, null, null, null, _componentDef, "5"); + out.w("
"); +}, { + t: pane_marko_marko_componentType, i: true -}, home_feature_block_index_marko_marko_component); -;// ./index/components/home-language/index.marko +}, pane_marko_marko_component); +;// ../components/repl/components/controllable-select.marko -const home_language_index_marko_marko_componentType = "fEFMinFc", - home_language_index_marko_marko_template = (0,index_js_namespaceObject.t)(home_language_index_marko_marko_componentType); -/* harmony default export */ const home_language_index_marko = (home_language_index_marko_marko_template); +const controllable_select_marko_marko_componentType = "edcMGKVi", + controllable_select_marko_marko_template = (0,index_js_namespaceObject.t)(controllable_select_marko_marko_componentType); +/* harmony default export */ const controllable_select_marko = (controllable_select_marko_marko_template); -const home_language_index_marko_marko_component = {}; -home_language_index_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { - render_tag_js_default()(home_feature_block_index_marko, (0,attr_tag_js_namespaceObject.i)(() => { - (0,attr_tag_js_namespaceObject.a)("title", { - "text": "HTML Reimagined", - "anchorName": "language" - }); - (0,attr_tag_js_namespaceObject.a)("content", { - "renderBody": out => { - out.w("

Marko is HTML re-imagined as a language for building dynamic and reactive user interfaces. Just about any valid HTML is valid Marko, but Marko extends the HTML language to allow building modern applications in a declarative way.

"); - } - }); - (0,attr_tag_js_namespaceObject.a)("visual", { - "class": "home-language__examples", - "renderBody": out => { - if (input.v6) { - out.w("
"); - render_tag_js_default()(counter_tags_marko, {}, out, _componentDef, "5"); - out.w("
<!doctype html>\n<html>\n    <head>\n        <title>Count with Marko</title>\n    </head>\n    <body>\n        <let/count=0/>\n        <button onClick() { count++ }>\n            ${count}\n        </button>\n    </body>\n</html>\n
"); - } else { - out.w("
<!doctype html>\n<html>\n<head>\n    <title>Hello Marko</title>\n</head>\n<body>\n    <h1>My favorite colors</h1>\n    <ul>\n        <for|color| of=[\"red\", \"green\", \"blue\"]>\n            <li style=`color:${color}`>\n                ${color.toUpperCase()}\n            </li>\n        </for>\n    </ul>\n    <shared-footer/>\n</body>\n</html>\n
HTML Templates, Custom Tags, & Javascript Expressions
"); - render_tag_js_default()(counter_example_index_marko, {}, out, _componentDef, "12"); - out.w("
class {\n  onCreate() {\n    this.state = { count: 0 };\n  }\n  increment() {\n    this.state.count++;\n  }\n}\n<div>${state.count}</div>\n<button on-click(\"increment\")>\n  Click me!\n</button>\n
Interactive Logic & Reactive Values
"); - } - } - }); - }, { - "class": "home-language" - }), out, _componentDef, "0"); +const controllable_select_marko_marko_component = { + onCreate() { + this.state = {}; + } +}; +controllable_select_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component2, state, $global) { + var _component = _component2, + _state = state; + const { + value, + valueChange, + renderBody, + class: className + } = input; + const el = native_tag_var_default()(_component, "0"); + out.w(``); + dynamic_tag_js_default()(out, renderBody, null, null, null, null, _componentDef, "0"); + out.w(""); }, { - t: home_language_index_marko_marko_componentType, - i: true -}, home_language_index_marko_marko_component); -;// ./index/components/home-demo-page/product.png -/* harmony default export */ const product = (__webpack_require__.p + "2ff006d2.png"); -;// ./index/components/home-demo-page/x.svg -/* harmony default export */ const x = (__webpack_require__.p + "886b7024.svg"); -;// external "marko/dist/runtime/helpers/style-value.js" -const style_value_js_namespaceObject = require("marko/dist/runtime/helpers/style-value.js"); -var style_value_js_default = /*#__PURE__*/__webpack_require__.n(style_value_js_namespaceObject); -;// ./index/components/home-demo-page/index.marko + t: controllable_select_marko_marko_componentType +}, controllable_select_marko_marko_component); +;// external "@marko/tags-api-preview/dist/translate/native-tag-handlers" +const native_tag_handlers_namespaceObject = require("@marko/tags-api-preview/dist/translate/native-tag-handlers"); +var native_tag_handlers_default = /*#__PURE__*/__webpack_require__.n(native_tag_handlers_namespaceObject); +;// external "marko/dist/runtime/html/helpers/attrs.js" +const attrs_js_namespaceObject = require("marko/dist/runtime/html/helpers/attrs.js"); +var attrs_js_default = /*#__PURE__*/__webpack_require__.n(attrs_js_namespaceObject); +;// ../components/repl/components/playground-link.marko -const home_demo_page_index_marko_marko_componentType = "pYOALFJk", - home_demo_page_index_marko_marko_template = (0,index_js_namespaceObject.t)(home_demo_page_index_marko_marko_componentType); -/* harmony default export */ const home_demo_page_index_marko = (home_demo_page_index_marko_marko_template); +const playground_link_marko_marko_componentType = "fLRwaABg", + playground_link_marko_marko_template = (0,index_js_namespaceObject.t)(playground_link_marko_marko_componentType); +/* harmony default export */ const playground_link_marko = (playground_link_marko_marko_template); +const playground_link_marko_marko_component = {}; +playground_link_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { + const { + files, + ...attrs + } = input; + var _meta = {}; + out.w(`Open in playground \u2197`); +}, { + t: playground_link_marko_marko_componentType, + i: true +}, playground_link_marko_marko_component); +;// ../components/repl/components/match-media.marko +const match_media_marko_marko_componentType = "aEQdEE_f", + match_media_marko_marko_template = (0,index_js_namespaceObject.t)(match_media_marko_marko_componentType); +/* harmony default export */ const match_media_marko = (match_media_marko_marko_template); -const home_demo_page_index_marko_marko_component = {}; -home_demo_page_index_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { - const progress = input.buffered ? Math.floor(input.progress / 0.9) : input.progress / 0.9; - out.w(`
`); - if (input.progress >= 0) { - out.w(`
`); - } - out.w(`
Cart (0)
Google Home - $79
Add to Cart
Hands-free help around the house. Google Home is a smart speaker with the Google Assistant built in. So whenever you need help, it's by your side
\u2605\u2605\u2605\u2605\u2606
Cool gadget Google has created a nice device that provides music and information by voice control. The microphone is very good and will usually pick up commands from across the room. The speakers sound surprisingly good for such a small device. I wish it had tone control though.
\u2605\u2605\u2605\u2605\u2605
Incredible sound profile! Easy setup, great sound for any room size. Adjustable bass and treble. Currently have two paired up for better whole house sound.
About
Security
Policies
Help
Sitemap
`); - if (input.buffered || input.hydrateAll) { - out.w(`
`); - } else { - out.w(`
`); + +const match_media_marko_marko_component = { + onCreate() { + this.state = {}; } - out.w("
"); +}; +match_media_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component2, state, $global) { + var _component = _component2, + _state = state; + const { + value: query, + fallback + } = input; + let isMatch = false ? 0 : fallback; + input._return && input._return({ + "value": isMatch + }, 1); }, { - t: home_demo_page_index_marko_marko_componentType, - i: true -}, home_demo_page_index_marko_marko_component); -;// ./index/components/home-streaming/components/scroll-locked-stream-example/index.marko + t: match_media_marko_marko_componentType +}, match_media_marko_marko_component); +;// ../components/repl/components/resizable-panes.marko -const scroll_locked_stream_example_index_marko_marko_componentType = "RQwDtLcd", - scroll_locked_stream_example_index_marko_marko_template = (0,index_js_namespaceObject.t)(scroll_locked_stream_example_index_marko_marko_componentType); -/* harmony default export */ const scroll_locked_stream_example_index_marko = (scroll_locked_stream_example_index_marko_marko_template); +const resizable_panes_marko_marko_componentType = "H_lRXCBe", + resizable_panes_marko_marko_template = (0,index_js_namespaceObject.t)(resizable_panes_marko_marko_componentType); +/* harmony default export */ const resizable_panes_marko = (resizable_panes_marko_marko_template); -const scroll_locked_stream_example_index_marko_marko_component = { + + + + + + + +const resizable_panes_marko_marko_component = { onCreate() { - this.state = { - progress: 0.1 - }; - }, - onMount() { - this.observer = new IntersectionObserver(entries => { - if (entries[0].intersectionRatio <= 0) { - this.cleanProgress(); - } else { - this.initProgress(); - } - }); - this.observer.observe(this.getEl("root")); - }, - onDestroy() { - this.cleanProgress(); - this.observer.disconnect(); - }, - initProgress() { - const updateProgress = () => { - this.state.progress = (this.state.progress + 0.004) % 1.5; - this.frame = requestAnimationFrame(updateProgress); - }; - this.frame = requestAnimationFrame(updateProgress); - }, - cleanProgress() { - cancelAnimationFrame(this.frame); + this.state = {}; } }; -scroll_locked_stream_example_index_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { - out.w(``); - render_tag_js_default()(home_demo_page_index_marko, { - "progress": state.progress, - "buffered": true, - "label": "Buffered pages don't show content as it loads" +resizable_panes_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component3, state, $global) { + var _component = _component3, + _state = state; + const { + left, + right + } = input; + let editorSize = 0.5; + let resizing = false; + var _matchMediaReturn = return_default()(_component); + render_tag_js_default()(match_media_marko, { + "value": "(max-aspect-ratio: 1/1)", + "_return": _matchMediaReturn }, out, _componentDef, "0"); - render_tag_js_default()(home_demo_page_index_marko, { - "progress": state.progress, - "label": "Streaming pages show content incrementally", - "class": "scroll-locked-progressive" - }, out, _componentDef, "1"); - out.w("
"); + const { + value: isVertical + } = _matchMediaReturn(); + const container = native_tag_var_default()(_component, "0"); + out.w(``); + var _meta = {}; + out.w(``); + dynamic_tag_js_default()(out, left.renderBody, null, null, null, null, _componentDef, "2"); + out.w("
"); + var _meta2 = {}; + out.w(``); + dynamic_tag_js_default()(out, right.renderBody, null, null, null, null, _componentDef, "6"); + out.w("
"); + if (resizing) { + render_tag_js_default()(_instance_index_marko, { + "renderBody": (out, _nestedComponentDef, _component2, _state2) => { + var _componentDef = _nestedComponentDef, + _component3 = _component2; + } + }, out, _componentDef, "7"); + } }, { - t: scroll_locked_stream_example_index_marko_marko_componentType -}, scroll_locked_stream_example_index_marko_marko_component); -;// ./index/components/home-streaming/index.marko + t: resizable_panes_marko_marko_componentType +}, resizable_panes_marko_marko_component); +;// ../components/repl/index.marko -const home_streaming_index_marko_marko_componentType = "opQEgCpi", - home_streaming_index_marko_marko_template = (0,index_js_namespaceObject.t)(home_streaming_index_marko_marko_componentType); -/* harmony default export */ const home_streaming_index_marko = (home_streaming_index_marko_marko_template); +const repl_index_marko_marko_componentType = "rtapnbhf", + repl_index_marko_marko_template = (0,index_js_namespaceObject.t)(repl_index_marko_marko_componentType); +/* harmony default export */ const repl_index_marko = (repl_index_marko_marko_template); -const home_streaming_index_marko_marko_component = {}; -home_streaming_index_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { - render_tag_js_default()(home_feature_block_index_marko, (0,attr_tag_js_namespaceObject.i)(() => { - (0,attr_tag_js_namespaceObject.a)("title", { - "text": "Progressive Rendering", - "anchorName": "streaming" - }); - (0,attr_tag_js_namespaceObject.a)("content", { + + + + + + + +const repl_index_marko_marko_component = { + onCreate() { + this.state = {}; + } +}; +repl_index_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component7, state, $global) { + var _component = _component7, + _state = state; + const { + "filesChange": _filesChange, + getCompilerOptions, + files + } = input; + let selectedIndex = 0; + let previewType = "preview"; + let debounce = false; + const selectedFile = files[selectedIndex]; + render_tag_js_default()(resizable_panes_marko, (0,attr_tag_js_namespaceObject.i)(() => { + (0,attr_tag_js_namespaceObject.a)("left", { + "class": "editor-container", "renderBody": out => { - out.w("

Marko streams content to your users as soon as it\u2019s ready. No waiting for client side JavaScript bundles or data requests to start rendering. HTML, assets, and images are loaded as soon as possible with asynchronous data loading in as it completes.

"); + render_tag_js_default()(pane_marko, (0,attr_tag_js_namespaceObject.i)(() => { + (0,attr_tag_js_namespaceObject.a)("actions", { + "renderBody": out => { + render_tag_js_default()(_instance_index_marko, { + "renderBody": (out, _nestedComponentDef, _component2, _state2) => { + var _componentDef = _nestedComponentDef, + _component7 = _component2; + render_tag_js_default()(file_tabs_marko, { + "files": files, + "filesChange": _filesChange, + "selectedIndex": selectedIndex, + "selectedIndexChange": (0,cached_values_namespaceObject.cache)((0,cached_values_namespaceObject.cached)(_component2, []) || (_ => selectedIndex = _)) + }, out, _componentDef, "3"); + } + }, out, _componentDef, "2"); + } + }); + (0,attr_tag_js_namespaceObject.a)("body", { + "renderBody": out => { + render_tag_js_default()(_instance_index_marko, { + "renderBody": (out, _nestedComponentDef2, _component3, _state3) => { + var _componentDef = _nestedComponentDef2, + _component7 = _component3; + let activeEditor = null; + if (activeEditor) { + render_tag_js_default()(_instance_index_marko, { + "renderBody": (out, _nestedComponentDef3, _component4, _state4) => { + var _componentDef = _nestedComponentDef3, + _component7 = _component4; + dynamic_tag_js_default()(out, activeEditor, () => ({ + "value": selectedFile.content, + "filename": selectedFile.path, + "valueChange": (0,cached_values_namespaceObject.cache)((0,cached_values_namespaceObject.cached)(_component4, [selectedFile, files, selectedIndex]) || function (content) { + const modifiedFile = { + ...selectedFile, + content + }; + replace_assignments_default()(_filesChange, [...files.slice(0, selectedIndex), modifiedFile, ...files.slice(selectedIndex + 1)]); + debounce = true; + }) + }), null, null, null, _componentDef, "6"); + } + }, out, _componentDef, "5"); + } + } + }, out, _componentDef, "4"); + } + }); + }), out, _componentDef, "1"); } }); - (0,attr_tag_js_namespaceObject.a)("visual", { + (0,attr_tag_js_namespaceObject.a)("right", { "renderBody": out => { - render_tag_js_default()(scroll_locked_stream_example_index_marko, { - "class": "home-streaming-example" - }, out, _componentDef, "2"); + render_tag_js_default()(pane_marko, (0,attr_tag_js_namespaceObject.i)(() => { + (0,attr_tag_js_namespaceObject.a)("actions", { + "renderBody": out => { + render_tag_js_default()(_instance_index_marko, { + "renderBody": (out, _nestedComponentDef4, _component5, _state5) => { + var _componentDef = _nestedComponentDef4, + _component7 = _component5; + render_tag_js_default()(controllable_select_marko, { + "value": previewType, + "valueChange": (0,cached_values_namespaceObject.cache)((0,cached_values_namespaceObject.cached)(_component5, []) || function (value) { + previewType = value; + debounce = false; + }), + "class": "preview-select", + "renderBody": out => { + out.w(""); + } + }, out, _componentDef, "9"); + render_tag_js_default()(playground_link_marko, { + "files": files + }, out, _componentDef, "13"); + } + }, out, _componentDef, "8"); + } + }); + (0,attr_tag_js_namespaceObject.a)("body", { + "renderBody": out => { + render_tag_js_default()(_instance_index_marko, { + "renderBody": (out, _nestedComponentDef5, _component6, _state6) => { + var _componentDef = _nestedComponentDef5, + _component7 = _component6; + let preview = null; + dynamic_tag_js_default()(out, preview, () => ({ + "type": previewType, + "files": files, + "selectedFile": selectedFile, + "getCompilerOptions": getCompilerOptions, + "debounce": debounce + }), null, null, null, _componentDef, "15"); + } + }, out, _componentDef, "14"); + } + }); + }), out, _componentDef, "7"); } }); - (0,attr_tag_js_namespaceObject.a)("action", { - "href": "https://dev.to/ryansolid/server-rendering-in-javascript-optimizing-performance-1jnk" - }); - }, { - "align": "left", - "class": "home-streaming" }), out, _componentDef, "0"); }, { - t: home_streaming_index_marko_marko_componentType, - i: true -}, home_streaming_index_marko_marko_component); -;// ./index/components/home-hydration/index.marko - -const home_hydration_index_marko_marko_componentType = "NpXSyNze", - home_hydration_index_marko_marko_template = (0,index_js_namespaceObject.t)(home_hydration_index_marko_marko_componentType); -/* harmony default export */ const home_hydration_index_marko = (home_hydration_index_marko_marko_template); + t: repl_index_marko_marko_componentType +}, repl_index_marko_marko_component); +;// ./playground/components/playground.marko +const playground_marko_marko_componentType = "HUU$Znhn", + playground_marko_marko_template = (0,index_js_namespaceObject.t)(playground_marko_marko_componentType); +/* harmony default export */ const playground_marko = (playground_marko_marko_template); -const home_hydration_index_marko_marko_component = {}; -home_hydration_index_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { - render_tag_js_default()(home_feature_block_index_marko, (0,attr_tag_js_namespaceObject.i)(() => { - (0,attr_tag_js_namespaceObject.a)("title", { - "text": "Code Elimination", - "anchorName": "hydration" - }); - (0,attr_tag_js_namespaceObject.a)("content", { - "renderBody": out => { - out.w("

Marko only sends the code for interactive components to the browser. Its compiler automatically detects which components only need to be rendered on the server. This means less to download and less to execute. Your users can enjoy top tier performance regardless of their devices or networks.

"); - } - }); - (0,attr_tag_js_namespaceObject.a)("visual", { - "renderBody": out => { - render_tag_js_default()(home_demo_page_index_marko, { - "hydrateAll": true, - "label": "Traditional hydration sends and re-excutes the code for all components", - "class": "home-hydration-example" - }, out, _componentDef, "2"); - render_tag_js_default()(home_demo_page_index_marko, { - "hydratePartial": true, - "label": "Marko's hydration only sends the code for interactive components", - "class": "home-hydration-example" - }, out, _componentDef, "3"); - } - }); - (0,attr_tag_js_namespaceObject.a)("action", { - "href": "https://medium.com/@mlrawlings/maybe-you-dont-need-that-spa-f2c659bc7fec" - }); - }, { - "align": "right", - "class": "home-hydration" - }), out, _componentDef, "0"); -}, { - t: home_hydration_index_marko_marko_componentType, - i: true -}, home_hydration_index_marko_marko_component); -;// ./index/components/home-performance/arrow.svg -/* harmony default export */ const arrow = (__webpack_require__.p + "7c1cc740.svg"); -;// ./index/components/home-performance/index.marko -const home_performance_index_marko_marko_componentType = "zumXQlzg", - home_performance_index_marko_marko_template = (0,index_js_namespaceObject.t)(home_performance_index_marko_marko_componentType); -/* harmony default export */ const home_performance_index_marko = (home_performance_index_marko_marko_template); +const playground_marko_marko_component = { + onCreate() { + this.state = {}; + } +}; +playground_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component2, state, $global) { + var _component = _component2, + _state = state; + var _hashValueReturn = return_default()(_component); + render_tag_js_default()(hash_value_marko, { + "value": (0,cached_values_namespaceObject.cache)((0,cached_values_namespaceObject.cached)(_component, []) || [{ + name: "index.marko", + path: "/components/index.marko", + content: "\n" + }]), + "_return": _hashValueReturn + }, out, _componentDef, "0"); + const { + "valueChange": _valueChange, + value: files + } = _hashValueReturn(); + render_tag_js_default()(repl_index_marko, { + "files": files, + "filesChange": _valueChange + }, out, _componentDef, "1"); +}, { + t: playground_marko_marko_componentType +}, playground_marko_marko_component); +;// ./playground/index.marko +const playground_index_marko_marko_componentType = "MHuPCuWh", + playground_index_marko_marko_template = (0,index_js_namespaceObject.t)(playground_index_marko_marko_componentType); +/* harmony default export */ const playground_index_marko = (playground_index_marko_marko_template); -const home_performance_index_marko_marko_component = {}; -home_performance_index_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { - render_tag_js_default()(home_feature_block_index_marko, (0,attr_tag_js_namespaceObject.i)(() => { - (0,attr_tag_js_namespaceObject.a)("title", { - "text": "Tailored Performance", - "anchorName": "performance" - }); - (0,attr_tag_js_namespaceObject.a)("content", { - "renderBody": out => { - out.w("

Marko's compiler generates code tailored to where it is going to run. You write your code once and it is optimized for both the server and browser. This is especially apparent on the server where Marko is several times faster than other popular solutions.

"); - } - }); - (0,attr_tag_js_namespaceObject.a)("visual", { - "renderBody": out => { - out.w(``); - } - }); - (0,attr_tag_js_namespaceObject.a)("action", { - "href": "https://github.com/marko-js/isomorphic-ui-benchmarks", - "text": "See the Benchmarks" - }); - }, { - "class": "home-performance" - }), out, _componentDef, "0"); +const playground_index_marko_marko_component = {}; +playground_index_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { + render_tag_js_default()(app_layout_index_marko, { + "title": "Try online", + "footer": false, + "discord": false, + "renderBody": out => { + render_tag_js_default()(playground_marko, {}, out, _componentDef, "1"); + } + }, out, _componentDef, "0"); + out.w(""); }, { - t: home_performance_index_marko_marko_componentType, + t: playground_index_marko_marko_componentType, i: true -}, home_performance_index_marko_marko_component); -;// ./index/components/home-tooling/screen.png -/* harmony default export */ const screen = (__webpack_require__.p + "92c4e05e.png"); -;// ./index/components/home-tooling/index.marko - -const home_tooling_index_marko_marko_componentType = "ZYtbGNjl", - home_tooling_index_marko_marko_template = (0,index_js_namespaceObject.t)(home_tooling_index_marko_marko_componentType); -/* harmony default export */ const home_tooling_index_marko = (home_tooling_index_marko_marko_template); - - +}, playground_index_marko_marko_component); +;// ./playground/index.marko?server-entry +const playground_index_marko_server_entry_marko_componentType = "gufdGSuf", + playground_index_marko_server_entry_marko_template = (0,index_js_namespaceObject.t)(playground_index_marko_server_entry_marko_componentType); +/* harmony default export */ const playground_index_marko_server_entry = (playground_index_marko_server_entry_marko_template); -const home_tooling_index_marko_marko_component = {}; -home_tooling_index_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { - render_tag_js_default()(home_feature_block_index_marko, (0,attr_tag_js_namespaceObject.i)(() => { - (0,attr_tag_js_namespaceObject.a)("title", { - "text": "Editor Support", - "anchorName": "tooling" - }); - (0,attr_tag_js_namespaceObject.a)("content", { - "renderBody": out => { - out.w("

Marko provides first-class support for the VSCode editor including syntax highlighting, Autocompletion, Hyperclick to quickly jump to referenced files, and Pretty printing to keep your code readable.

Community plugins also provide syntax highlighting for Sublime, Atom, Webstorm & others!

"); +const playground_index_marko_server_entry_crossOriginAttr = new URL(__webpack_require__.p, "file:").protocol === "file:" ? "" : " crossorigin"; +function playground_index_marko_server_entry_renderAssets(out) { + const $global = out.global; + const entries = $global.___entries; + $global.___entries = undefined; + if (entries) { + const buildName = $global.buildName; + const nonce = $global.cspNonce; + const nonceAttr = nonce ? ` nonce=${JSON.stringify(nonce)}` : ""; + const written = $global.___writtenAssets || ($global.___writtenAssets = new Set()); + let scripts = ""; + let styles = ""; + for (const entry of entries) { + const assets = index_js_manifest.getAssets(entry, buildName); + if (assets.js) { + for (const href of assets.js) { + if (!written.has(href)) { + written.add(href); + scripts += ``; + } + } } - }); - (0,attr_tag_js_namespaceObject.a)("visual", { - "class": "home-tooling__screenshot-window", - "renderBody": out => { - out.w(`
`); + if (assets.css) { + for (const href of assets.css) { + if (!written.has(href)) { + written.add(href); + styles += ``; + } + } } - }); - (0,attr_tag_js_namespaceObject.a)("action", { - "href": "/docs/editor-plugins", - "text": "View editor plugins" - }); - }, { - "align": "right", - "class": "home-tooling" - }), out, _componentDef, "0"); -}, { - t: home_tooling_index_marko_marko_componentType, - i: true -}, home_tooling_index_marko_marko_component); -// EXTERNAL MODULE: external "gh-got" -var external_gh_got_ = __webpack_require__(724); -var external_gh_got_default = /*#__PURE__*/__webpack_require__.n(external_gh_got_); -;// ../logos/stackoverflow.svg -/* harmony default export */ const stackoverflow = (__webpack_require__.p + "0bfc2ee7.svg"); -;// ../logos/twitter.svg -/* harmony default export */ const twitter = (__webpack_require__.p + "82b09e37.svg"); -;// external "marko/dist/core-tags/core/await/renderer.js" -const await_renderer_js_namespaceObject = require("marko/dist/core-tags/core/await/renderer.js"); -var await_renderer_js_default = /*#__PURE__*/__webpack_require__.n(await_renderer_js_namespaceObject); -;// ./index/components/home-community/index.marko - -const home_community_index_marko_marko_componentType = "rsiRtNhi", - home_community_index_marko_marko_template = (0,index_js_namespaceObject.t)(home_community_index_marko_marko_componentType); -/* harmony default export */ const home_community_index_marko = (home_community_index_marko_marko_template); - - + } + out.write(scripts + styles); + } +} +const playground_index_marko_server_entry_marko_component = {}; +playground_index_marko_server_entry_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { + out.global.___renderAssets = playground_index_marko_server_entry_renderAssets; + (out.global.___entries || (out.global.___entries = [])).push("playground_mdf-"); + render_tag_js_default()((_flush_here_and_after_js_default()), { + "renderBody": out => { + const outAlias = out; + outAlias.global.___renderAssets && outAlias.global.___renderAssets(outAlias); + } + }, out, _componentDef, "0"); + render_tag_js_default()(playground_index_marko, input, out, _componentDef, "1"); + render_tag_js_default()((init_components_tag_js_default()), {}, out, _componentDef, "2"); + render_tag_js_default()((reorderer_renderer_js_default()), {}, out, _componentDef, "3"); +}, { + t: playground_index_marko_server_entry_marko_componentType, + i: true +}, playground_index_marko_server_entry_marko_component); +;// ./try-online-new/index.marko +const try_online_new_index_marko_marko_componentType = "kokUincl", + try_online_new_index_marko_marko_template = (0,index_js_namespaceObject.t)(try_online_new_index_marko_marko_componentType); +/* harmony default export */ const try_online_new_index_marko = (try_online_new_index_marko_marko_template); +const try_online_new_index_marko_marko_component = {}; +try_online_new_index_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { + out.w(""); +}, { + t: try_online_new_index_marko_marko_componentType, + i: true +}, try_online_new_index_marko_marko_component); +;// ./try-online-new/index.marko?server-entry +const try_online_new_index_marko_server_entry_marko_componentType = "jBxauMAl", + try_online_new_index_marko_server_entry_marko_template = (0,index_js_namespaceObject.t)(try_online_new_index_marko_server_entry_marko_componentType); +/* harmony default export */ const try_online_new_index_marko_server_entry = (try_online_new_index_marko_server_entry_marko_template); -const home_community_index_marko_marko_component = {}; -home_community_index_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { - render_tag_js_default()(home_feature_block_index_marko, (0,attr_tag_js_namespaceObject.i)(() => { - (0,attr_tag_js_namespaceObject.a)("title", { - "text": "Join the Community", - "anchorName": "community", - "class": "home-community__title" - }); - (0,attr_tag_js_namespaceObject.a)("content", { - "renderBody": out => { - out.w("

Need help? Want to contribute? Get involved in the Marko Community!

"); - } - }); - (0,attr_tag_js_namespaceObject.a)("visual", { - "renderBody": out => { - out.w(`
Ask & answer StackOverflow questions with the marko tag
Hang out in our Discord server, ask questions, & discuss project direction
Tweet to @MarkoDevTeam or with the #markojs hashtag
Browse the code, open issues, & make pull requests on the GitHub repo
`); +const try_online_new_index_marko_server_entry_crossOriginAttr = new URL(__webpack_require__.p, "file:").protocol === "file:" ? "" : " crossorigin"; +function try_online_new_index_marko_server_entry_renderAssets(out) { + const $global = out.global; + const entries = $global.___entries; + $global.___entries = undefined; + if (entries) { + const buildName = $global.buildName; + const nonce = $global.cspNonce; + const nonceAttr = nonce ? ` nonce=${JSON.stringify(nonce)}` : ""; + const written = $global.___writtenAssets || ($global.___writtenAssets = new Set()); + let scripts = ""; + let styles = ""; + for (const entry of entries) { + const assets = index_js_manifest.getAssets(entry, buildName); + if (assets.js) { + for (const href of assets.js) { + if (!written.has(href)) { + written.add(href); + scripts += ``; + } + } } - }); - (0,attr_tag_js_namespaceObject.a)("breakout", { - "renderBody": out => { - out.w("
"); - render_tag_js_default()((await_renderer_js_default()), (0,attr_tag_js_namespaceObject.i)(() => { - (0,attr_tag_js_namespaceObject.a)("then", { - "renderBody": (out, { - body - }) => { - let _keyValue = 0; - for (const contributor of of_fallback_js_default()(body)) { - const _keyScope = `[${_keyValue++}]`; - out.w(``); - } - } - }); - (0,attr_tag_js_namespaceObject.a)("catch", {}); - }, { - "_provider": external_gh_got_default()('/repos/marko-js/marko/contributors?per_page=100'), - "_name": "ghGot('/repos/marko-js/marko/contributors?per_page=100')" - }), out, _componentDef, "25"); - out.w("
"); + if (assets.css) { + for (const href of assets.css) { + if (!written.has(href)) { + written.add(href); + styles += ``; + } + } } - }); - }, { - "colors": ["#fff"] - }), out, _componentDef, "0"); -}, { - t: home_community_index_marko_marko_componentType, - i: true -}, home_community_index_marko_marko_component); -;// ./index/index.marko + } + out.write(scripts + styles); + } +} -const index_index_marko_marko_componentType = "riZjSFCe", - index_index_marko_marko_template = (0,index_js_namespaceObject.t)(index_index_marko_marko_componentType); -/* harmony default export */ const index_index_marko = (index_index_marko_marko_template); +const try_online_new_index_marko_server_entry_marko_component = {}; +try_online_new_index_marko_server_entry_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { + out.global.___renderAssets = try_online_new_index_marko_server_entry_renderAssets; + (out.global.___entries || (out.global.___entries = [])).push("try-online-new_1yH9"); + render_tag_js_default()((_flush_here_and_after_js_default()), { + "renderBody": out => { + const outAlias = out; + outAlias.global.___renderAssets && outAlias.global.___renderAssets(outAlias); + } + }, out, _componentDef, "0"); + render_tag_js_default()(try_online_new_index_marko, input, out, _componentDef, "1"); + render_tag_js_default()((init_components_tag_js_default()), {}, out, _componentDef, "2"); + render_tag_js_default()((reorderer_renderer_js_default()), {}, out, _componentDef, "3"); +}, { + t: try_online_new_index_marko_server_entry_marko_componentType, + i: true +}, try_online_new_index_marko_server_entry_marko_component); +;// ../../node_modules/@marko-tags/subscribe/index.marko +const subscribe_index_marko_marko_componentType = "DI$EjOwk", + subscribe_index_marko_marko_template = (0,index_js_namespaceObject.t)(subscribe_index_marko_marko_componentType); +/* harmony default export */ const subscribe_index_marko = (subscribe_index_marko_marko_template); +const subscribe_index_marko_marko_component = { + onMount() { + this.listen(this.input); + }, + onInput(input) { + if (this.target && this.target !== input.to) { + this.onDestroy(); + this.listen(input); + } + }, + onDestroy() { + this.subscription.removeAllListeners(); + }, + listen(input) { + var target = this.target = input.to; + var subscription = this.subscription = this.subscribeTo(target); + var events = input.__events; + var len = events.length; + for (var i = 0; i < len; i += 2) { + var method = events[i]; + var name = events[i + 1]; + subscription[method](name, this.emit.bind(this, name)); + } + } +}; +subscribe_index_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) {}, { + t: subscribe_index_marko_marko_componentType +}, subscribe_index_marko_marko_component); +;// ./try-online/components/loader/index.marko +const loader_index_marko_marko_componentType = "YfGHQdzh", + loader_index_marko_marko_template = (0,index_js_namespaceObject.t)(loader_index_marko_marko_componentType); +/* harmony default export */ const loader_index_marko = (loader_index_marko_marko_template); -const index_index_marko_marko_component = {}; -index_index_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { - render_tag_js_default()(app_layout_index_marko, { - "v6": input.v6, - "class": "home", - "renderBody": out => { - render_tag_js_default()(home_hero_index_marko, {}, out, _componentDef, "1"); - render_tag_js_default()(home_features_index_marko, {}, out, _componentDef, "2"); - render_tag_js_default()(home_language_index_marko, { - "v6": input.v6 - }, out, _componentDef, "3"); - render_tag_js_default()(home_streaming_index_marko, {}, out, _componentDef, "4"); - render_tag_js_default()(home_hydration_index_marko, {}, out, _componentDef, "5"); - render_tag_js_default()(home_performance_index_marko, {}, out, _componentDef, "6"); - render_tag_js_default()(home_tooling_index_marko, {}, out, _componentDef, "7"); - render_tag_js_default()(home_community_index_marko, {}, out, _componentDef, "8"); +const loader_index_marko_marko_component = { + onCreate() { + this.state = { + component: undefined, + show: false + }; + }, + async onMount() { + const rootComponent = false && (0); + await rootComponent.loading; + this.state.component = rootComponent; + this.checkIfLargeEnough(); + }, + checkIfLargeEnough() { + var windowSize = document.body.innerWidth || document.body.clientWidth; + this.state.show = windowSize > 1000; + } +}; +loader_index_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { + if (state.component) { + if (state.show) { + dynamic_tag_js_default()(out, state.component, () => ({ + "examples": input.examples + }), null, null, null, _componentDef, "0"); + } else { + render_tag_js_default()(subscribe_index_marko, { + "to": false && 0, + "__events": ["on", "resize"] + }, out, _componentDef, "1", [["resize", "checkIfLargeEnough", false]]); + out.w("

Screen width too small

Please increase the window size or rotate to load.

If you are on a mobile phone, please open on a desktop

View Docs

"); } - }, out, _componentDef, "0"); + } else { + out.w("
"); + } }, { - t: index_index_marko_marko_componentType, - i: true -}, index_index_marko_marko_component); -;// ./v6/index.marko + t: loader_index_marko_marko_componentType +}, loader_index_marko_marko_component); +;// ./try-online/index.marko -const v6_index_marko_marko_componentType = "hbaVTqcf", - v6_index_marko_marko_template = (0,index_js_namespaceObject.t)(v6_index_marko_marko_componentType); -/* harmony default export */ const v6_index_marko = (v6_index_marko_marko_template); +const try_online_index_marko_marko_componentType = "hnzzKbLg", + try_online_index_marko_marko_template = (0,index_js_namespaceObject.t)(try_online_index_marko_marko_componentType); +/* harmony default export */ const try_online_index_marko = (try_online_index_marko_marko_template); -const v6_index_marko_marko_component = {}; -v6_index_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { - render_tag_js_default()(index_index_marko, { - "v6": true +const try_online_index_marko_marko_component = {}; +try_online_index_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { + render_tag_js_default()(app_layout_index_marko, { + "title": "Try online", + "footer": false, + "discord": false, + "renderBody": out => { + render_tag_js_default()(loader_index_marko, {}, out, _componentDef, "1"); + } }, out, _componentDef, "0"); }, { - t: v6_index_marko_marko_componentType, + t: try_online_index_marko_marko_componentType, i: true -}, v6_index_marko_marko_component); -;// ./v6/index.marko?server-entry +}, try_online_index_marko_marko_component); +;// ./try-online/index.marko?server-entry -const v6_index_marko_server_entry_marko_componentType = "IYYObaXi", - v6_index_marko_server_entry_marko_template = (0,index_js_namespaceObject.t)(v6_index_marko_server_entry_marko_componentType); -/* harmony default export */ const v6_index_marko_server_entry = (v6_index_marko_server_entry_marko_template); +const try_online_index_marko_server_entry_marko_componentType = "xQvoHnzm", + try_online_index_marko_server_entry_marko_template = (0,index_js_namespaceObject.t)(try_online_index_marko_server_entry_marko_componentType); +/* harmony default export */ const try_online_index_marko_server_entry = (try_online_index_marko_server_entry_marko_template); -const v6_index_marko_server_entry_crossOriginAttr = new URL(__webpack_require__.p, "file:").protocol === "file:" ? "" : " crossorigin"; -function v6_index_marko_server_entry_renderAssets(out) { +const try_online_index_marko_server_entry_crossOriginAttr = new URL(__webpack_require__.p, "file:").protocol === "file:" ? "" : " crossorigin"; +function try_online_index_marko_server_entry_renderAssets(out) { const $global = out.global; const entries = $global.___entries; $global.___entries = undefined; @@ -2632,7 +2614,7 @@ function v6_index_marko_server_entry_renderAssets(out) { for (const href of assets.js) { if (!written.has(href)) { written.add(href); - scripts += ``; + scripts += ``; } } } @@ -2653,33 +2635,51 @@ function v6_index_marko_server_entry_renderAssets(out) { -const v6_index_marko_server_entry_marko_component = {}; -v6_index_marko_server_entry_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { - out.global.___renderAssets = v6_index_marko_server_entry_renderAssets; - (out.global.___entries || (out.global.___entries = [])).push("v6_YkD7"); +const try_online_index_marko_server_entry_marko_component = {}; +try_online_index_marko_server_entry_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { + out.global.___renderAssets = try_online_index_marko_server_entry_renderAssets; + (out.global.___entries || (out.global.___entries = [])).push("try-online_gkPN"); render_tag_js_default()((_flush_here_and_after_js_default()), { "renderBody": out => { const outAlias = out; outAlias.global.___renderAssets && outAlias.global.___renderAssets(outAlias); } }, out, _componentDef, "0"); - render_tag_js_default()(v6_index_marko, input, out, _componentDef, "1"); - render_tag_js_default()((init_components_tag_js_default()), {}, out, _componentDef, "2"); - render_tag_js_default()((reorderer_renderer_js_default()), {}, out, _componentDef, "3"); + render_tag_js_default()(try_online_index_marko, input, out, _componentDef, "1"); + render_tag_js_default()((init_components_tag_js_default()), {}, out, _componentDef, "2"); + render_tag_js_default()((reorderer_renderer_js_default()), {}, out, _componentDef, "3"); +}, { + t: try_online_index_marko_server_entry_marko_componentType, + i: true +}, try_online_index_marko_server_entry_marko_component); +;// ./v6/index.marko + +const v6_index_marko_marko_componentType = "hbaVTqcf", + v6_index_marko_marko_template = (0,index_js_namespaceObject.t)(v6_index_marko_marko_componentType); +/* harmony default export */ const v6_index_marko = (v6_index_marko_marko_template); + + + + +const v6_index_marko_marko_component = {}; +v6_index_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { + render_tag_js_default()(index_index_marko, { + "v6": true + }, out, _componentDef, "0"); }, { - t: v6_index_marko_server_entry_marko_componentType, + t: v6_index_marko_marko_componentType, i: true -}, v6_index_marko_server_entry_marko_component); -;// ./index/index.marko?server-entry +}, v6_index_marko_marko_component); +;// ./v6/index.marko?server-entry -const index_index_marko_server_entry_marko_componentType = "oHUNYdtc", - index_index_marko_server_entry_marko_template = (0,index_js_namespaceObject.t)(index_index_marko_server_entry_marko_componentType); -/* harmony default export */ const index_index_marko_server_entry = (index_index_marko_server_entry_marko_template); +const v6_index_marko_server_entry_marko_componentType = "IYYObaXi", + v6_index_marko_server_entry_marko_template = (0,index_js_namespaceObject.t)(v6_index_marko_server_entry_marko_componentType); +/* harmony default export */ const v6_index_marko_server_entry = (v6_index_marko_server_entry_marko_template); -const index_index_marko_server_entry_crossOriginAttr = new URL(__webpack_require__.p, "file:").protocol === "file:" ? "" : " crossorigin"; -function index_index_marko_server_entry_renderAssets(out) { +const v6_index_marko_server_entry_crossOriginAttr = new URL(__webpack_require__.p, "file:").protocol === "file:" ? "" : " crossorigin"; +function v6_index_marko_server_entry_renderAssets(out) { const $global = out.global; const entries = $global.___entries; $global.___entries = undefined; @@ -2696,7 +2696,7 @@ function index_index_marko_server_entry_renderAssets(out) { for (const href of assets.js) { if (!written.has(href)) { written.add(href); - scripts += ``; + scripts += ``; } } } @@ -2717,23 +2717,23 @@ function index_index_marko_server_entry_renderAssets(out) { -const index_index_marko_server_entry_marko_component = {}; -index_index_marko_server_entry_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { - out.global.___renderAssets = index_index_marko_server_entry_renderAssets; - (out.global.___entries || (out.global.___entries = [])).push("index_WEBG"); +const v6_index_marko_server_entry_marko_component = {}; +v6_index_marko_server_entry_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { + out.global.___renderAssets = v6_index_marko_server_entry_renderAssets; + (out.global.___entries || (out.global.___entries = [])).push("v6_YkD7"); render_tag_js_default()((_flush_here_and_after_js_default()), { "renderBody": out => { const outAlias = out; outAlias.global.___renderAssets && outAlias.global.___renderAssets(outAlias); } }, out, _componentDef, "0"); - render_tag_js_default()(index_index_marko, input, out, _componentDef, "1"); + render_tag_js_default()(v6_index_marko, input, out, _componentDef, "1"); render_tag_js_default()((init_components_tag_js_default()), {}, out, _componentDef, "2"); render_tag_js_default()((reorderer_renderer_js_default()), {}, out, _componentDef, "3"); }, { - t: index_index_marko_server_entry_marko_componentType, + t: v6_index_marko_server_entry_marko_componentType, i: true -}, index_index_marko_server_entry_marko_component); +}, v6_index_marko_server_entry_marko_component); ;// ../components/code-block-marko/index.marko const code_block_marko_index_marko_marko_componentType = "wHhdTqje", @@ -4790,46 +4790,261 @@ function _name_index_marko_server_entry_renderAssets(out) { -const _name_index_marko_server_entry_marko_component = {}; -_name_index_marko_server_entry_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { - out.global.___renderAssets = _name_index_marko_server_entry_renderAssets; - (out.global.___entries || (out.global.___entries = [])).push(":name_z0HT"); - render_tag_js_default()((_flush_here_and_after_js_default()), { +const _name_index_marko_server_entry_marko_component = {}; +_name_index_marko_server_entry_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { + out.global.___renderAssets = _name_index_marko_server_entry_renderAssets; + (out.global.___entries || (out.global.___entries = [])).push(":name_z0HT"); + render_tag_js_default()((_flush_here_and_after_js_default()), { + "renderBody": out => { + const outAlias = out; + outAlias.global.___renderAssets && outAlias.global.___renderAssets(outAlias); + } + }, out, _componentDef, "0"); + render_tag_js_default()(_name_index_marko, input, out, _componentDef, "1"); + render_tag_js_default()((init_components_tag_js_default()), {}, out, _componentDef, "2"); + render_tag_js_default()((reorderer_renderer_js_default()), {}, out, _componentDef, "3"); +}, { + t: _name_index_marko_server_entry_marko_componentType, + i: true +}, _name_index_marko_server_entry_marko_component); +;// ./docs/v6/index.marko + +const docs_v6_index_marko_marko_componentType = "AMmYdPFl", + docs_v6_index_marko_marko_template = (0,index_js_namespaceObject.t)(docs_v6_index_marko_marko_componentType); +/* harmony default export */ const docs_v6_index_marko = (docs_v6_index_marko_marko_template); + +const docs_v6_index_marko_marko_component = {}; +docs_v6_index_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { + out.w(""); +}, { + t: docs_v6_index_marko_marko_componentType, + i: true +}, docs_v6_index_marko_marko_component); +;// ./docs/v6/index.marko?server-entry + +const docs_v6_index_marko_server_entry_marko_componentType = "N_UbfMue", + docs_v6_index_marko_server_entry_marko_template = (0,index_js_namespaceObject.t)(docs_v6_index_marko_server_entry_marko_componentType); +/* harmony default export */ const docs_v6_index_marko_server_entry = (docs_v6_index_marko_server_entry_marko_template); + + + +const docs_v6_index_marko_server_entry_crossOriginAttr = new URL(__webpack_require__.p, "file:").protocol === "file:" ? "" : " crossorigin"; +function docs_v6_index_marko_server_entry_renderAssets(out) { + const $global = out.global; + const entries = $global.___entries; + $global.___entries = undefined; + if (entries) { + const buildName = $global.buildName; + const nonce = $global.cspNonce; + const nonceAttr = nonce ? ` nonce=${JSON.stringify(nonce)}` : ""; + const written = $global.___writtenAssets || ($global.___writtenAssets = new Set()); + let scripts = ""; + let styles = ""; + for (const entry of entries) { + const assets = index_js_manifest.getAssets(entry, buildName); + if (assets.js) { + for (const href of assets.js) { + if (!written.has(href)) { + written.add(href); + scripts += ``; + } + } + } + if (assets.css) { + for (const href of assets.css) { + if (!written.has(href)) { + written.add(href); + styles += ``; + } + } + } + } + out.write(scripts + styles); + } +} + + + + + +const docs_v6_index_marko_server_entry_marko_component = {}; +docs_v6_index_marko_server_entry_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { + out.global.___renderAssets = docs_v6_index_marko_server_entry_renderAssets; + (out.global.___entries || (out.global.___entries = [])).push("v6_4cho"); + render_tag_js_default()((_flush_here_and_after_js_default()), { + "renderBody": out => { + const outAlias = out; + outAlias.global.___renderAssets && outAlias.global.___renderAssets(outAlias); + } + }, out, _componentDef, "0"); + render_tag_js_default()(docs_v6_index_marko, input, out, _componentDef, "1"); + render_tag_js_default()((init_components_tag_js_default()), {}, out, _componentDef, "2"); + render_tag_js_default()((reorderer_renderer_js_default()), {}, out, _componentDef, "3"); +}, { + t: docs_v6_index_marko_server_entry_marko_componentType, + i: true +}, docs_v6_index_marko_server_entry_marko_component); +;// ./playground/v6/index.marko + +const playground_v6_index_marko_marko_componentType = "XvQifyhn", + playground_v6_index_marko_marko_template = (0,index_js_namespaceObject.t)(playground_v6_index_marko_marko_componentType); +/* harmony default export */ const playground_v6_index_marko = (playground_v6_index_marko_marko_template); + +const playground_v6_index_marko_marko_component = {}; +playground_v6_index_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { + out.w(""); +}, { + t: playground_v6_index_marko_marko_componentType, + i: true +}, playground_v6_index_marko_marko_component); +;// ./playground/v6/index.marko?server-entry + +const playground_v6_index_marko_server_entry_marko_componentType = "FrpMAZmh", + playground_v6_index_marko_server_entry_marko_template = (0,index_js_namespaceObject.t)(playground_v6_index_marko_server_entry_marko_componentType); +/* harmony default export */ const playground_v6_index_marko_server_entry = (playground_v6_index_marko_server_entry_marko_template); + + + +const playground_v6_index_marko_server_entry_crossOriginAttr = new URL(__webpack_require__.p, "file:").protocol === "file:" ? "" : " crossorigin"; +function playground_v6_index_marko_server_entry_renderAssets(out) { + const $global = out.global; + const entries = $global.___entries; + $global.___entries = undefined; + if (entries) { + const buildName = $global.buildName; + const nonce = $global.cspNonce; + const nonceAttr = nonce ? ` nonce=${JSON.stringify(nonce)}` : ""; + const written = $global.___writtenAssets || ($global.___writtenAssets = new Set()); + let scripts = ""; + let styles = ""; + for (const entry of entries) { + const assets = index_js_manifest.getAssets(entry, buildName); + if (assets.js) { + for (const href of assets.js) { + if (!written.has(href)) { + written.add(href); + scripts += ``; + } + } + } + if (assets.css) { + for (const href of assets.css) { + if (!written.has(href)) { + written.add(href); + styles += ``; + } + } + } + } + out.write(scripts + styles); + } +} + + + + + +const playground_v6_index_marko_server_entry_marko_component = {}; +playground_v6_index_marko_server_entry_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { + out.global.___renderAssets = playground_v6_index_marko_server_entry_renderAssets; + (out.global.___entries || (out.global.___entries = [])).push("v6_--pM"); + render_tag_js_default()((_flush_here_and_after_js_default()), { + "renderBody": out => { + const outAlias = out; + outAlias.global.___renderAssets && outAlias.global.___renderAssets(outAlias); + } + }, out, _componentDef, "0"); + render_tag_js_default()(playground_v6_index_marko, input, out, _componentDef, "1"); + render_tag_js_default()((init_components_tag_js_default()), {}, out, _componentDef, "2"); + render_tag_js_default()((reorderer_renderer_js_default()), {}, out, _componentDef, "3"); +}, { + t: playground_v6_index_marko_server_entry_marko_componentType, + i: true +}, playground_v6_index_marko_server_entry_marko_component); +;// external "@marko/translator-tags" +const translator_tags_namespaceObject = require("@marko/translator-tags"); +;// ./v6/playground/components/playground-6.marko + +const playground_6_marko_marko_componentType = "TrmYoaCc", + playground_6_marko_marko_template = (0,index_js_namespaceObject.t)(playground_6_marko_marko_componentType); +/* harmony default export */ const playground_6_marko = (playground_6_marko_marko_template); + + + + + + + + +const playground_6_marko_marko_component = { + onCreate() { + this.state = {}; + } +}; +playground_6_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component2, state, $global) { + var _component = _component2, + _state = state; + var _HashValueReturn = return_default()(_component); + render_tag_js_default()(hash_value_marko, { + "value": (0,cached_values_namespaceObject.cache)((0,cached_values_namespaceObject.cached)(_component, []) || [{ + name: "index.marko", + path: "/components/index.marko", + content: "\n" + }]), + "_return": _HashValueReturn + }, out, _componentDef, "0"); + const { + "valueChange": _valueChange, + value: files + } = _HashValueReturn(); + render_tag_js_default()(repl_index_marko, { + "getCompilerOptions": (0,cached_values_namespaceObject.cache)((0,cached_values_namespaceObject.cached)(_component, []) || function () { + return { + translator: translator_tags_namespaceObject, + optimize: false + }; + }), + "files": files, + "filesChange": _valueChange + }, out, _componentDef, "1"); +}, { + t: playground_6_marko_marko_componentType +}, playground_6_marko_marko_component); +;// ./v6/playground/index.marko + +const v6_playground_index_marko_marko_componentType = "EefpJQab", + v6_playground_index_marko_marko_template = (0,index_js_namespaceObject.t)(v6_playground_index_marko_marko_componentType); +/* harmony default export */ const v6_playground_index_marko = (v6_playground_index_marko_marko_template); + + + + +const v6_playground_index_marko_marko_component = {}; +v6_playground_index_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { + render_tag_js_default()(app_layout_index_marko, { + "title": "Try online", + "footer": false, + "discord": false, + "v6": true, "renderBody": out => { - const outAlias = out; - outAlias.global.___renderAssets && outAlias.global.___renderAssets(outAlias); + render_tag_js_default()(playground_6_marko, {}, out, _componentDef, "1"); } }, out, _componentDef, "0"); - render_tag_js_default()(_name_index_marko, input, out, _componentDef, "1"); - render_tag_js_default()((init_components_tag_js_default()), {}, out, _componentDef, "2"); - render_tag_js_default()((reorderer_renderer_js_default()), {}, out, _componentDef, "3"); -}, { - t: _name_index_marko_server_entry_marko_componentType, - i: true -}, _name_index_marko_server_entry_marko_component); -;// ./docs/v6/index.marko - -const docs_v6_index_marko_marko_componentType = "AMmYdPFl", - docs_v6_index_marko_marko_template = (0,index_js_namespaceObject.t)(docs_v6_index_marko_marko_componentType); -/* harmony default export */ const docs_v6_index_marko = (docs_v6_index_marko_marko_template); - -const docs_v6_index_marko_marko_component = {}; -docs_v6_index_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { - out.w(""); + out.w(""); }, { - t: docs_v6_index_marko_marko_componentType, + t: v6_playground_index_marko_marko_componentType, i: true -}, docs_v6_index_marko_marko_component); -;// ./docs/v6/index.marko?server-entry +}, v6_playground_index_marko_marko_component); +;// ./v6/playground/index.marko?server-entry -const docs_v6_index_marko_server_entry_marko_componentType = "N_UbfMue", - docs_v6_index_marko_server_entry_marko_template = (0,index_js_namespaceObject.t)(docs_v6_index_marko_server_entry_marko_componentType); -/* harmony default export */ const docs_v6_index_marko_server_entry = (docs_v6_index_marko_server_entry_marko_template); +const v6_playground_index_marko_server_entry_marko_componentType = "UBSvwuej", + v6_playground_index_marko_server_entry_marko_template = (0,index_js_namespaceObject.t)(v6_playground_index_marko_server_entry_marko_componentType); +/* harmony default export */ const v6_playground_index_marko_server_entry = (v6_playground_index_marko_server_entry_marko_template); -const docs_v6_index_marko_server_entry_crossOriginAttr = new URL(__webpack_require__.p, "file:").protocol === "file:" ? "" : " crossorigin"; -function docs_v6_index_marko_server_entry_renderAssets(out) { +const v6_playground_index_marko_server_entry_crossOriginAttr = new URL(__webpack_require__.p, "file:").protocol === "file:" ? "" : " crossorigin"; +function v6_playground_index_marko_server_entry_renderAssets(out) { const $global = out.global; const entries = $global.___entries; $global.___entries = undefined; @@ -4846,7 +5061,7 @@ function docs_v6_index_marko_server_entry_renderAssets(out) { for (const href of assets.js) { if (!written.has(href)) { written.add(href); - scripts += ``; + scripts += ``; } } } @@ -4867,46 +5082,106 @@ function docs_v6_index_marko_server_entry_renderAssets(out) { -const docs_v6_index_marko_server_entry_marko_component = {}; -docs_v6_index_marko_server_entry_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { - out.global.___renderAssets = docs_v6_index_marko_server_entry_renderAssets; - (out.global.___entries || (out.global.___entries = [])).push("v6_4cho"); +const v6_playground_index_marko_server_entry_marko_component = {}; +v6_playground_index_marko_server_entry_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { + out.global.___renderAssets = v6_playground_index_marko_server_entry_renderAssets; + (out.global.___entries || (out.global.___entries = [])).push("playground_E8TY"); render_tag_js_default()((_flush_here_and_after_js_default()), { "renderBody": out => { const outAlias = out; outAlias.global.___renderAssets && outAlias.global.___renderAssets(outAlias); } }, out, _componentDef, "0"); - render_tag_js_default()(docs_v6_index_marko, input, out, _componentDef, "1"); + render_tag_js_default()(v6_playground_index_marko, input, out, _componentDef, "1"); render_tag_js_default()((init_components_tag_js_default()), {}, out, _componentDef, "2"); render_tag_js_default()((reorderer_renderer_js_default()), {}, out, _componentDef, "3"); }, { - t: docs_v6_index_marko_server_entry_marko_componentType, + t: v6_playground_index_marko_server_entry_marko_componentType, i: true -}, docs_v6_index_marko_server_entry_marko_component); -;// ./playground/v6/index.marko +}, v6_playground_index_marko_server_entry_marko_component); +;// ./v6/tutorials/tutorials.js +/* harmony default export */ const tutorials = ({ + loops: { + title: 'Loops', + description: 'Loops are a way to repeat a block of code multiple times.', + level: 'beginner', + time: '5 minutes', + category: 'basics', + steps: [{ + title: 'For ... of', + content: 'The for tag with an of attribute is used to loop through an array.', + before: [{ + name: "index.marko", + path: "/components/index.marko", + content: "
    \n
  • One
  • \n
  • Two
  • \n
  • Three
  • \n
" + }], + after: [{ + name: "index.marko", + path: "/components/index.marko", + content: `
    \n \n
  • \${text}
  • \n \n
` + }] + }, { + title: 'For ... in', + content: 'The for tag with an in attribute is used to loop through an object\'s keys.', + before: [{ + name: "index.marko", + path: "/components/index.marko", + content: `
    \n
  • One: 1
  • \n
  • Two: 2
  • \n
  • Three: 3
  • \n
` + }], + after: [{ + name: "index.marko", + path: "/components/index.marko", + content: `
    \n \n
  • \${key}: \${value}
  • \n \n
` + }] + }] + } +}); +;// ./v6/tutorials/index.marko -const playground_v6_index_marko_marko_componentType = "XvQifyhn", - playground_v6_index_marko_marko_template = (0,index_js_namespaceObject.t)(playground_v6_index_marko_marko_componentType); -/* harmony default export */ const playground_v6_index_marko = (playground_v6_index_marko_marko_template); +const tutorials_index_marko_marko_componentType = "EdRjBJGi", + tutorials_index_marko_marko_template = (0,index_js_namespaceObject.t)(tutorials_index_marko_marko_componentType); +/* harmony default export */ const tutorials_index_marko = (tutorials_index_marko_marko_template); -const playground_v6_index_marko_marko_component = {}; -playground_v6_index_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { - out.w(""); + + + + + +const tutorials_index_marko_marko_component = {}; +tutorials_index_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { + render_tag_js_default()(app_layout_index_marko, { + "title": "Tutorials", + "footer": false, + "discord": false, + "v6": true, + "renderBody": out => { + out.w("

Tutorials

"); + for (const name in tutorials) { + const { + title, + description, + level, + time + } = tutorials[name]; + const _keyScope = `[${name}]`; + out.w(`${(0,escape_xml_js_namespaceObject.x)(title)}${(0,escape_xml_js_namespaceObject.x)(description)}${(0,escape_xml_js_namespaceObject.x)(level)}${(0,escape_xml_js_namespaceObject.x)(time)}`); + } + } + }, out, _componentDef, "0"); }, { - t: playground_v6_index_marko_marko_componentType, + t: tutorials_index_marko_marko_componentType, i: true -}, playground_v6_index_marko_marko_component); -;// ./playground/v6/index.marko?server-entry +}, tutorials_index_marko_marko_component); +;// ./v6/tutorials/index.marko?server-entry -const playground_v6_index_marko_server_entry_marko_componentType = "FrpMAZmh", - playground_v6_index_marko_server_entry_marko_template = (0,index_js_namespaceObject.t)(playground_v6_index_marko_server_entry_marko_componentType); -/* harmony default export */ const playground_v6_index_marko_server_entry = (playground_v6_index_marko_server_entry_marko_template); +const tutorials_index_marko_server_entry_marko_componentType = "toXd_ZKb", + tutorials_index_marko_server_entry_marko_template = (0,index_js_namespaceObject.t)(tutorials_index_marko_server_entry_marko_componentType); +/* harmony default export */ const tutorials_index_marko_server_entry = (tutorials_index_marko_server_entry_marko_template); -const playground_v6_index_marko_server_entry_crossOriginAttr = new URL(__webpack_require__.p, "file:").protocol === "file:" ? "" : " crossorigin"; -function playground_v6_index_marko_server_entry_renderAssets(out) { +const tutorials_index_marko_server_entry_crossOriginAttr = new URL(__webpack_require__.p, "file:").protocol === "file:" ? "" : " crossorigin"; +function tutorials_index_marko_server_entry_renderAssets(out) { const $global = out.global; const entries = $global.___entries; $global.___entries = undefined; @@ -4923,7 +5198,7 @@ function playground_v6_index_marko_server_entry_renderAssets(out) { for (const href of assets.js) { if (!written.has(href)) { written.add(href); - scripts += ``; + scripts += ``; } } } @@ -4944,23 +5219,23 @@ function playground_v6_index_marko_server_entry_renderAssets(out) { -const playground_v6_index_marko_server_entry_marko_component = {}; -playground_v6_index_marko_server_entry_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { - out.global.___renderAssets = playground_v6_index_marko_server_entry_renderAssets; - (out.global.___entries || (out.global.___entries = [])).push("v6_--pM"); +const tutorials_index_marko_server_entry_marko_component = {}; +tutorials_index_marko_server_entry_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { + out.global.___renderAssets = tutorials_index_marko_server_entry_renderAssets; + (out.global.___entries || (out.global.___entries = [])).push("tutorials_p6eY"); render_tag_js_default()((_flush_here_and_after_js_default()), { "renderBody": out => { const outAlias = out; outAlias.global.___renderAssets && outAlias.global.___renderAssets(outAlias); } }, out, _componentDef, "0"); - render_tag_js_default()(playground_v6_index_marko, input, out, _componentDef, "1"); + render_tag_js_default()(tutorials_index_marko, input, out, _componentDef, "1"); render_tag_js_default()((init_components_tag_js_default()), {}, out, _componentDef, "2"); render_tag_js_default()((reorderer_renderer_js_default()), {}, out, _componentDef, "3"); }, { - t: playground_v6_index_marko_server_entry_marko_componentType, + t: tutorials_index_marko_server_entry_marko_componentType, i: true -}, playground_v6_index_marko_server_entry_marko_component); +}, tutorials_index_marko_server_entry_marko_component); ;// ./v6/docs/index.marko const docs_index_marko_marko_componentType = "pgT$CsEc", @@ -5038,90 +5313,29 @@ docs_index_marko_server_entry_marko_template._ = renderer_js_default()(function t: docs_index_marko_server_entry_marko_componentType, i: true }, docs_index_marko_server_entry_marko_component); -;// external "@marko/translator-tags" -const translator_tags_namespaceObject = require("@marko/translator-tags"); -;// ./v6/playground/components/playground-6.marko - -const playground_6_marko_marko_componentType = "TrmYoaCc", - playground_6_marko_marko_template = (0,index_js_namespaceObject.t)(playground_6_marko_marko_componentType); -/* harmony default export */ const playground_6_marko = (playground_6_marko_marko_template); - - - - - - - - -const playground_6_marko_marko_component = { - onCreate() { - this.state = {}; - } -}; -playground_6_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component2, state, $global) { - var _component = _component2, - _state = state; - var _HashValueReturn = return_default()(_component); - render_tag_js_default()(hash_value_marko, { - "value": (0,cached_values_namespaceObject.cache)((0,cached_values_namespaceObject.cached)(_component, []) || [{ - name: "index.marko", - path: "/components/index.marko", - content: "\n" - }]), - "_return": _HashValueReturn - }, out, _componentDef, "0"); - const { - "valueChange": _valueChange, - value: files - } = _HashValueReturn(); - render_tag_js_default()(repl_index_marko, { - "getCompilerOptions": (0,cached_values_namespaceObject.cache)((0,cached_values_namespaceObject.cached)(_component, []) || function () { - return { - translator: translator_tags_namespaceObject, - optimize: false - }; - }), - "files": files, - "filesChange": _valueChange - }, out, _componentDef, "1"); -}, { - t: playground_6_marko_marko_componentType -}, playground_6_marko_marko_component); -;// ./v6/playground/index.marko - -const v6_playground_index_marko_marko_componentType = "EefpJQab", - v6_playground_index_marko_marko_template = (0,index_js_namespaceObject.t)(v6_playground_index_marko_marko_componentType); -/* harmony default export */ const v6_playground_index_marko = (v6_playground_index_marko_marko_template); - - +;// ./docs/v6/:name/index.marko +const v6_name_index_marko_marko_componentType = "sUSJIumd", + v6_name_index_marko_marko_template = (0,index_js_namespaceObject.t)(v6_name_index_marko_marko_componentType); +/* harmony default export */ const v6_name_index_marko = (v6_name_index_marko_marko_template); -const v6_playground_index_marko_marko_component = {}; -v6_playground_index_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { - render_tag_js_default()(app_layout_index_marko, { - "title": "Try online", - "footer": false, - "discord": false, - "v6": true, - "renderBody": out => { - render_tag_js_default()(playground_6_marko, {}, out, _componentDef, "1"); - } - }, out, _componentDef, "0"); - out.w(""); +const v6_name_index_marko_marko_component = {}; +v6_name_index_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { + out.w(""); }, { - t: v6_playground_index_marko_marko_componentType, + t: v6_name_index_marko_marko_componentType, i: true -}, v6_playground_index_marko_marko_component); -;// ./v6/playground/index.marko?server-entry +}, v6_name_index_marko_marko_component); +;// ./docs/v6/:name/index.marko?server-entry -const v6_playground_index_marko_server_entry_marko_componentType = "UBSvwuej", - v6_playground_index_marko_server_entry_marko_template = (0,index_js_namespaceObject.t)(v6_playground_index_marko_server_entry_marko_componentType); -/* harmony default export */ const v6_playground_index_marko_server_entry = (v6_playground_index_marko_server_entry_marko_template); +const v6_name_index_marko_server_entry_marko_componentType = "zltsaKQf", + v6_name_index_marko_server_entry_marko_template = (0,index_js_namespaceObject.t)(v6_name_index_marko_server_entry_marko_componentType); +/* harmony default export */ const v6_name_index_marko_server_entry = (v6_name_index_marko_server_entry_marko_template); -const v6_playground_index_marko_server_entry_crossOriginAttr = new URL(__webpack_require__.p, "file:").protocol === "file:" ? "" : " crossorigin"; -function v6_playground_index_marko_server_entry_renderAssets(out) { +const v6_name_index_marko_server_entry_crossOriginAttr = new URL(__webpack_require__.p, "file:").protocol === "file:" ? "" : " crossorigin"; +function v6_name_index_marko_server_entry_renderAssets(out) { const $global = out.global; const entries = $global.___entries; $global.___entries = undefined; @@ -5138,7 +5352,7 @@ function v6_playground_index_marko_server_entry_renderAssets(out) { for (const href of assets.js) { if (!written.has(href)) { written.add(href); - scripts += ``; + scripts += ``; } } } @@ -5159,106 +5373,102 @@ function v6_playground_index_marko_server_entry_renderAssets(out) { -const v6_playground_index_marko_server_entry_marko_component = {}; -v6_playground_index_marko_server_entry_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { - out.global.___renderAssets = v6_playground_index_marko_server_entry_renderAssets; - (out.global.___entries || (out.global.___entries = [])).push("playground_E8TY"); +const v6_name_index_marko_server_entry_marko_component = {}; +v6_name_index_marko_server_entry_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { + out.global.___renderAssets = v6_name_index_marko_server_entry_renderAssets; + (out.global.___entries || (out.global.___entries = [])).push(":name_Puth"); render_tag_js_default()((_flush_here_and_after_js_default()), { "renderBody": out => { const outAlias = out; outAlias.global.___renderAssets && outAlias.global.___renderAssets(outAlias); } }, out, _componentDef, "0"); - render_tag_js_default()(v6_playground_index_marko, input, out, _componentDef, "1"); + render_tag_js_default()(v6_name_index_marko, input, out, _componentDef, "1"); render_tag_js_default()((init_components_tag_js_default()), {}, out, _componentDef, "2"); render_tag_js_default()((reorderer_renderer_js_default()), {}, out, _componentDef, "3"); }, { - t: v6_playground_index_marko_server_entry_marko_componentType, + t: v6_name_index_marko_server_entry_marko_componentType, i: true -}, v6_playground_index_marko_server_entry_marko_component); -;// ./v6/tutorials/tutorials.js -/* harmony default export */ const tutorials = ({ - loops: { - title: 'Loops', - description: 'Loops are a way to repeat a block of code multiple times.', - level: 'beginner', - time: '5 minutes', - category: 'basics', - steps: [{ - title: 'For ... of', - content: 'The for tag with an of attribute is used to loop through an array.', - before: [{ - name: "index.marko", - path: "/components/index.marko", - content: "
    \n
  • One
  • \n
  • Two
  • \n
  • Three
  • \n
" - }], - after: [{ - name: "index.marko", - path: "/components/index.marko", - content: `
    \n \n
  • \${text}
  • \n \n
` - }] - }, { - title: 'For ... in', - content: 'The for tag with an in attribute is used to loop through an object\'s keys.', - before: [{ - name: "index.marko", - path: "/components/index.marko", - content: `
    \n
  • One: 1
  • \n
  • Two: 2
  • \n
  • Three: 3
  • \n
` - }], - after: [{ - name: "index.marko", - path: "/components/index.marko", - content: `
    \n \n
  • \${key}: \${value}
  • \n \n
` - }] - }] - } -}); -;// ./v6/tutorials/index.marko +}, v6_name_index_marko_server_entry_marko_component); +;// ./v6/tutorials/:name/components/tutorial.marko -const tutorials_index_marko_marko_componentType = "EdRjBJGi", - tutorials_index_marko_marko_template = (0,index_js_namespaceObject.t)(tutorials_index_marko_marko_componentType); -/* harmony default export */ const tutorials_index_marko = (tutorials_index_marko_marko_template); +const tutorial_marko_marko_componentType = "wuKnSKQd", + tutorial_marko_marko_template = (0,index_js_namespaceObject.t)(tutorial_marko_marko_componentType); +/* harmony default export */ const tutorial_marko = (tutorial_marko_marko_template); -const tutorials_index_marko_marko_component = {}; -tutorials_index_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { + +const tutorial_marko_marko_component = { + onCreate() { + this.state = {}; + } +}; +tutorial_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component2, state, $global) { + var _component = _component2, + _state = state; + const { + tutorial + } = input; + let stepNumber = 0; + const totalSteps = tutorial.steps.length; + const step = tutorial.steps[stepNumber]; + const setStep = (0,cached_values_namespaceObject.cache)((0,cached_values_namespaceObject.cached)(_component, [tutorial["steps"]]) || function (number) { + stepNumber = number; + files = tutorial.steps[number].before; + }); + let files = step.before; + out.w(`
${(0,escape_xml_js_namespaceObject.x)(tutorial.title)}Step ${(0,escape_xml_js_namespaceObject.x)(stepNumber + 1)}/${(0,escape_xml_js_namespaceObject.x)(totalSteps)}PrevNext

${(0,escape_xml_js_namespaceObject.x)(step.title)}

${to_string_js_default()(step.content)}
SolveReset
`); + render_tag_js_default()(repl_index_marko, { + "files": files, + "filesChange": (0,cached_values_namespaceObject.cache)((0,cached_values_namespaceObject.cached)(_component, []) || (_ => files = _)) + }, out, _componentDef, "12"); + out.w("
"); +}, { + t: tutorial_marko_marko_componentType +}, tutorial_marko_marko_component); +;// ./v6/tutorials/:name/index.marko + +const tutorials_name_index_marko_marko_componentType = "LaKxeARl", + tutorials_name_index_marko_marko_template = (0,index_js_namespaceObject.t)(tutorials_name_index_marko_marko_componentType); +/* harmony default export */ const tutorials_name_index_marko = (tutorials_name_index_marko_marko_template); + + + + + +const tutorials_name_index_marko_marko_component = {}; +tutorials_name_index_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { + const { + params + } = input; render_tag_js_default()(app_layout_index_marko, { - "title": "Tutorials", + "title": tutorials[params.name].title, "footer": false, "discord": false, - "v6": true, "renderBody": out => { - out.w("

Tutorials

"); - for (const name in tutorials) { - const { - title, - description, - level, - time - } = tutorials[name]; - const _keyScope = `[${name}]`; - out.w(`${(0,escape_xml_js_namespaceObject.x)(title)}${(0,escape_xml_js_namespaceObject.x)(description)}${(0,escape_xml_js_namespaceObject.x)(level)}${(0,escape_xml_js_namespaceObject.x)(time)}`); - } + render_tag_js_default()(tutorial_marko, { + "tutorial": tutorials[params.name] + }, out, _componentDef, "1"); } }, out, _componentDef, "0"); }, { - t: tutorials_index_marko_marko_componentType, + t: tutorials_name_index_marko_marko_componentType, i: true -}, tutorials_index_marko_marko_component); -;// ./v6/tutorials/index.marko?server-entry +}, tutorials_name_index_marko_marko_component); +;// ./v6/tutorials/:name/index.marko?server-entry -const tutorials_index_marko_server_entry_marko_componentType = "toXd_ZKb", - tutorials_index_marko_server_entry_marko_template = (0,index_js_namespaceObject.t)(tutorials_index_marko_server_entry_marko_componentType); -/* harmony default export */ const tutorials_index_marko_server_entry = (tutorials_index_marko_server_entry_marko_template); +const tutorials_name_index_marko_server_entry_marko_componentType = "yQHdQhNi", + tutorials_name_index_marko_server_entry_marko_template = (0,index_js_namespaceObject.t)(tutorials_name_index_marko_server_entry_marko_componentType); +/* harmony default export */ const tutorials_name_index_marko_server_entry = (tutorials_name_index_marko_server_entry_marko_template); -const tutorials_index_marko_server_entry_crossOriginAttr = new URL(__webpack_require__.p, "file:").protocol === "file:" ? "" : " crossorigin"; -function tutorials_index_marko_server_entry_renderAssets(out) { +const tutorials_name_index_marko_server_entry_crossOriginAttr = new URL(__webpack_require__.p, "file:").protocol === "file:" ? "" : " crossorigin"; +function tutorials_name_index_marko_server_entry_renderAssets(out) { const $global = out.global; const entries = $global.___entries; $global.___entries = undefined; @@ -5275,7 +5485,7 @@ function tutorials_index_marko_server_entry_renderAssets(out) { for (const href of assets.js) { if (!written.has(href)) { written.add(href); - scripts += ``; + scripts += ``; } } } @@ -5296,46 +5506,105 @@ function tutorials_index_marko_server_entry_renderAssets(out) { -const tutorials_index_marko_server_entry_marko_component = {}; -tutorials_index_marko_server_entry_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { - out.global.___renderAssets = tutorials_index_marko_server_entry_renderAssets; - (out.global.___entries || (out.global.___entries = [])).push("tutorials_p6eY"); +const tutorials_name_index_marko_server_entry_marko_component = {}; +tutorials_name_index_marko_server_entry_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { + out.global.___renderAssets = tutorials_name_index_marko_server_entry_renderAssets; + (out.global.___entries || (out.global.___entries = [])).push(":name_5gMv"); render_tag_js_default()((_flush_here_and_after_js_default()), { "renderBody": out => { const outAlias = out; outAlias.global.___renderAssets && outAlias.global.___renderAssets(outAlias); } }, out, _componentDef, "0"); - render_tag_js_default()(tutorials_index_marko, input, out, _componentDef, "1"); + render_tag_js_default()(tutorials_name_index_marko, input, out, _componentDef, "1"); render_tag_js_default()((init_components_tag_js_default()), {}, out, _componentDef, "2"); render_tag_js_default()((reorderer_renderer_js_default()), {}, out, _componentDef, "3"); }, { - t: tutorials_index_marko_server_entry_marko_componentType, + t: tutorials_name_index_marko_server_entry_marko_componentType, i: true -}, tutorials_index_marko_server_entry_marko_component); -;// ./docs/v6/:name/index.marko +}, tutorials_name_index_marko_server_entry_marko_component); +;// ./v6/examples/[name]/index.marko -const v6_name_index_marko_marko_componentType = "sUSJIumd", - v6_name_index_marko_marko_template = (0,index_js_namespaceObject.t)(v6_name_index_marko_marko_componentType); -/* harmony default export */ const v6_name_index_marko = (v6_name_index_marko_marko_template); +const examples_name_index_marko_marko_componentType = "QqsBIzdb", + examples_name_index_marko_marko_template = (0,index_js_namespaceObject.t)(examples_name_index_marko_marko_componentType); +/* harmony default export */ const examples_name_index_marko = (examples_name_index_marko_marko_template); +const examples = { + "counter": { + "title": "Counter", + "description": "A simple counter", + files: [{ + name: "index.marko", + path: "/components/index.marko", + content: "\n" + }] + }, + "hello-world": { + "title": "Hello World", + "description": "A simple hello world example", + files: [{ + name: "index.marko", + path: "/components/index.marko", + content: "

Hello World

" + }] + }, + "loop": { + "title": "Loops and Lists", + "description": "A simple loop example", + files: [{ + name: "index.marko", + path: "/components/index.marko", + content: "\n
    \n \n
  • ${item}
  • \n \n
\n" + }] + } +}; -const v6_name_index_marko_marko_component = {}; -v6_name_index_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { - out.w(""); + + + + + +const examples_name_index_marko_marko_component = {}; +examples_name_index_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { + const { + params + } = input; + const currentExample = examples[params.name]; + render_tag_js_default()(app_layout_index_marko, { + "title": currentExample?.title, + "footer": false, + "discord": false, + "v6": true, + "renderBody": out => { + out.w("
"); + for (const name in examples) { + const { + title, + description + } = examples[name]; + const _keyScope = `[${name}]`; + out.w(`${(0,escape_xml_js_namespaceObject.x)(title)}${(0,escape_xml_js_namespaceObject.x)(description)}`); + } + out.w("
"); + render_tag_js_default()(repl_index_marko, { + "files": currentExample?.files || [] + }, out, _componentDef, "6"); + out.w("
"); + } + }, out, _componentDef, "0"); }, { - t: v6_name_index_marko_marko_componentType, + t: examples_name_index_marko_marko_componentType, i: true -}, v6_name_index_marko_marko_component); -;// ./docs/v6/:name/index.marko?server-entry +}, examples_name_index_marko_marko_component); +;// ./v6/examples/[name]/index.marko?server-entry -const v6_name_index_marko_server_entry_marko_componentType = "zltsaKQf", - v6_name_index_marko_server_entry_marko_template = (0,index_js_namespaceObject.t)(v6_name_index_marko_server_entry_marko_componentType); -/* harmony default export */ const v6_name_index_marko_server_entry = (v6_name_index_marko_server_entry_marko_template); +const examples_name_index_marko_server_entry_marko_componentType = "ReYAiJik", + examples_name_index_marko_server_entry_marko_template = (0,index_js_namespaceObject.t)(examples_name_index_marko_server_entry_marko_componentType); +/* harmony default export */ const examples_name_index_marko_server_entry = (examples_name_index_marko_server_entry_marko_template); -const v6_name_index_marko_server_entry_crossOriginAttr = new URL(__webpack_require__.p, "file:").protocol === "file:" ? "" : " crossorigin"; -function v6_name_index_marko_server_entry_renderAssets(out) { +const examples_name_index_marko_server_entry_crossOriginAttr = new URL(__webpack_require__.p, "file:").protocol === "file:" ? "" : " crossorigin"; +function examples_name_index_marko_server_entry_renderAssets(out) { const $global = out.global; const entries = $global.___entries; $global.___entries = undefined; @@ -5352,7 +5621,7 @@ function v6_name_index_marko_server_entry_renderAssets(out) { for (const href of assets.js) { if (!written.has(href)) { written.add(href); - scripts += ``; + scripts += ``; } } } @@ -5373,23 +5642,23 @@ function v6_name_index_marko_server_entry_renderAssets(out) { -const v6_name_index_marko_server_entry_marko_component = {}; -v6_name_index_marko_server_entry_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { - out.global.___renderAssets = v6_name_index_marko_server_entry_renderAssets; - (out.global.___entries || (out.global.___entries = [])).push(":name_Puth"); +const examples_name_index_marko_server_entry_marko_component = {}; +examples_name_index_marko_server_entry_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { + out.global.___renderAssets = examples_name_index_marko_server_entry_renderAssets; + (out.global.___entries || (out.global.___entries = [])).push("[name]_FLzY"); render_tag_js_default()((_flush_here_and_after_js_default()), { "renderBody": out => { const outAlias = out; outAlias.global.___renderAssets && outAlias.global.___renderAssets(outAlias); } }, out, _componentDef, "0"); - render_tag_js_default()(v6_name_index_marko, input, out, _componentDef, "1"); + render_tag_js_default()(examples_name_index_marko, input, out, _componentDef, "1"); render_tag_js_default()((init_components_tag_js_default()), {}, out, _componentDef, "2"); render_tag_js_default()((reorderer_renderer_js_default()), {}, out, _componentDef, "3"); }, { - t: v6_name_index_marko_server_entry_marko_componentType, + t: examples_name_index_marko_server_entry_marko_componentType, i: true -}, v6_name_index_marko_server_entry_marko_component); +}, examples_name_index_marko_server_entry_marko_component); ;// ./v6/docs/markdown/components.md const components_marko_componentType = "cmLanQjg", @@ -5577,483 +5846,233 @@ language_marko_template._ = renderer_js_default()(function (input, out, _compone out.w("

Concise Mode

"); render_tag_js_default()(code_block_marko_index_marko_server_entry, { "html": "
div\n  h1.title -- Hello World!\n
", - "concise": "
div\n  h1.title -- Hello World!\n
" - }, out, _componentDef, "36"); - out.w("

TIP
Concise Mode is entirely optional. You can choose the style that best suits your preferences and project needs. You can toggle between the two syntax modes in this documentation using the switch icon located at the top right corner of all Marko code blocks.

Supercharging HTML

While Marko embraces HTML, it doesn't stop there. Marko extends HTML with dynamic features that make building modern web applications a breeze. We'll cover these in the upcoming sections.

"); -}, { - t: language_marko_componentType, - i: true -}, language_marko_component); -;// ./v6/docs/markdown/lists.md - -const lists_marko_componentType = "mmDLAhAf", - lists_marko_template = (0,index_js_namespaceObject.t)(lists_marko_componentType); -/* harmony default export */ const lists = (lists_marko_template); - -toc_registry.set("../pages/v6/docs/markdown/lists.md", ""); -const lists_title = "Lists in Marko"; - - - -const lists_marko_component = {}; -lists_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { - out.w("

Lists in Marko

<for of>: Iterating Over Arrays

The most common use case for <for> is iterating over arrays. The of attribute specifies the array you want to loop through.

"); - render_tag_js_default()(code_block_marko_index_marko_server_entry, { - "html": "
<ul>\n  <for|item, index| of=items by=\"id\">\n    <li>(${index}) Item ID: ${item.id}, Name: ${item.name}</li>\n  </for>\n</ul>\n
", - "concise": "
ul\n  for|item, index| of=items by=\"id\"\n    li -- (${index}) Item ID: ${item.id}, Name: ${item.name}\n
" - }, out, _componentDef, "11"); - out.w("

In this example:

  • items is the array we're iterating over.
  • The syntax |item, index| introduces Tag Parameters available to the body of the <for> tag.
    • the item parameter is the current item from the items array
    • the index parameter is the current index of the items array
  • by="id" specifies that the id property of each item should be used as the key.

Importance of Keys

Keys play a crucial role in efficiently updating the DOM when the data in a list changes. They help Marko identify:

  • Which items have been added to the list.
  • Which items have been removed from the list.
  • Which items have changed their position or content.

Using unique and stable keys ensures that Marko can make precise updates to the DOM, improving performance and preventing unexpected behavior.

  • by as a String: When iterating over arrays, you often want to use a unique identifier from your data as the key. You can do this by providing a string to the by attribute, like by="id" in the example above. Marko will then use the value of the id property on each item as the key.

  • by as a Function: For more complex scenarios, you can provide a function to the by attribute. This function will be called for each item in the array, and it should return a unique key for that item. The function receives the iterated item as the first parameter, and the index as the second.

CAUTION
<for of> defaults to using the array index as the key if you don't specify the by attribute. While this might seem convenient, it can lead to problems:

  • Reordering Issues: If the order of items in the array changes, Marko might incorrectly reuse DOM elements based on their index, leading to unexpected behavior and potentially losing any component state associated with the reused element.
  • Performance Degradation: Inserting or deleting items at the beginning of a list can cause every subsequent item to be re-rendered, even if they haven't changed.

Other <for> types

<for in>

You can also use <for in> to iterate over the properties of an object:

"); - render_tag_js_default()(code_block_marko_index_marko_server_entry, { - "html": "
<ul>\n  <for|key, value| in=myObject>\n    <li>${key}: ${value}</li>\n  </for>\n</ul>\n
", - "concise": "
ul\n  for|key, value| in=myObject\n    li -- ${key}: ${value}\n
" - }, out, _componentDef, "75"); - out.w("

In this case:

  • myObject is the object whose properties we're iterating over.
  • key will hold the name of each property.
  • value will hold the value of each property.

[!NOTE] > <for in> will default the key to the property name, which is often what you want, so it may not be necessary to specify a by attribute for the <for in> usage.

<for from to>: Iterating Over Number Ranges

The <for> tag can also generate number sequences, which is useful for creating things like numbered lists or grids:

"); - render_tag_js_default()(code_block_marko_index_marko_server_entry, { - "html": "
<ul>\n  <for|num| from=1 to=5 step=1>\n    <li>Item ${num}</li>\n  </for>\n</ul>\n
", - "concise": "
ul\n  for|num| from=1 to=5 step=1\n    li -- Item ${num}\n
" - }, out, _componentDef, "95"); - out.w("
  • from=1, to=5, and step=1 define the starting number, ending number (inclusive), and increment, respectively.
"); -}, { - t: lists_marko_componentType, - i: true -}, lists_marko_component); -;// ./v6/docs/markdown/setup.md - -const setup_marko_componentType = "rsEgZyyk", - setup_marko_template = (0,index_js_namespaceObject.t)(setup_marko_componentType); -/* harmony default export */ const setup = (setup_marko_template); - -toc_registry.set("../pages/v6/docs/markdown/setup.md", ""); -const setup_title = "Setup"; - -const setup_marko_component = {}; -setup_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { - out.w("

Setup

Marko Playground

The fastest way to try out Marko without installing anything is with the Marko Playground. It's an online interactive environment where you can write Marko code and see the results in real-time.

In the Playground, you'll find a simple counter example. Go ahead and edit the code, and watch the output update instantly!

Local Development with Marko Run

To set up a local development environment, Marko Run is recommended as it makes this process quick and easy.

Prerequisites

  • Node.js: Marko requires Node.js to be installed on your system. Download the latest LTS version from the official website: https://nodejs.org/
  • npm (or yarn): Node.js comes bundled with npm (Node Package Manager), but you can also use yarn if you prefer.

1. Creating a new Project

Once you have Node.js and npm (or yarn) installed, open your terminal (command prompt or PowerShell) and run the following command:

npm init marko\n

This cli will guide you through creating a new project.

2. Basic Marko Run Commands

After creating a Marko Run project, navigate to your project directory and use the following commands:

  • marko-run dev: Start a development server with live reload (your changes will automatically appear in the browser).
  • marko-run build: Build a production-ready version of your app.
  • marko-run preview: Preview a production build locally.

3. Enhancing Your Workflow with Editor Plugins (Optional)

Editor plugins can significantly improve your development experience by providing features like:

  • Syntax highlighting: Makes your Marko code more readable.
  • Code completion (IntelliSense): Helps you write code faster with suggestions and autocompletion.
  • Error checking (linting): Catches potential errors in your code early on.

Recommended Plugins

  • VS Code: the official editor plugin from the marketplace
  • Other Editors: setup instructions to use the Marko language server in various other editors
"); -}, { - t: setup_marko_componentType, - i: true -}, setup_marko_component); -;// ./v6/docs/markdown/state.md - -const markdown_state_marko_componentType = "KKNNFEaj", - markdown_state_marko_template = (0,index_js_namespaceObject.t)(markdown_state_marko_componentType); -/* harmony default export */ const markdown_state = (markdown_state_marko_template); - -toc_registry.set("../pages/v6/docs/markdown/state.md", ""); -const markdown_state_title = "State & Derived State"; - - - -const markdown_state_marko_component = {}; -markdown_state_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { - out.w("

State & Derived State

Marko's reactive system makes it easy to manage your application's data and keep your user interface in sync with any changes. The key to this reactivity is how Marko tracks state.

State with <let>

In Marko, the <let> tag is used to declare state variables. These variables represent the data that can change over time, affecting how your components render and behave.

"); - render_tag_js_default()(code_block_marko_index_marko_server_entry, { - "html": "
<let/count=0/>\n
", - "concise": "
let/count=0\n
" - }, out, _componentDef, "11"); - out.w("

This line of code declares a state variable named count and initializes it to 0.

NOTE
The variable name is defined after the / in the tag. This is known as a Tag Variable and is a way for a tag to provide data to the rest of the template. Any tag can declare Tag Variables using this syntax.

You can access the value of a state variable just like any other variable in your template.

"); - render_tag_js_default()(code_block_marko_index_marko_server_entry, { - "html": "
<div>The current count is: ${count}</div>\n
", - "concise": "
div -- The current count is: ${count}\n
" - }, out, _componentDef, "22"); - out.w("

Updating State

To update a state variable, you reassign a new value to the tag variable. When you do, Marko will automatically re-render the component and any other parts of the UI that depend on the state that changed.

"); - render_tag_js_default()(code_block_marko_index_marko_server_entry, { - "html": "
<button onClick() { count = count + 1; }>\n  Increment\n</button>\n
", - "concise": "
button onClick() {\n  count = count + 1;\n}\n  -- Increment\n
" - }, out, _componentDef, "27"); - out.w("

IMPORTANT
State variables are immutable by default, which means you can't mutate their values. For example if you need to add an item to an array, prefer array = array.concat(newItem) (which updates the state to a new array containing the additional item) to array.push(newItem) (which mutates the array).

Derived State with <const>

The <const> tag is used to create derived state. It works similarly to <let> in that it defines a Tag Variable after the /, but the value is computed from other values. Marko automatically re-computes the value whenever any of its dependencies change.

"); - render_tag_js_default()(code_block_marko_index_marko_server_entry, { - "html": "
<let/firstName=\"Luke\"/>\n<let/lastName=\"Edwards\"/>\n\n<const/fullName=`${firstName} ${lastName}`/>\n\n<div>Hello, ${fullName}!</div>\n
", - "concise": "
let/firstName=\"Luke\"\nlet/lastName=\"Edwards\"\n\nconst/fullName=`${firstName} ${lastName}`\n\ndiv -- Hello, ${fullName}!\n
" - }, out, _componentDef, "43"); - out.w("

In this example, fullName is derived from the values of firstName and lastName. Whenever either firstName or lastName changes, Marko automatically updates fullName, ensuring the UI is always consistent with the latest state.

"); -}, { - t: markdown_state_marko_componentType, - i: true -}, markdown_state_marko_component); -;// ./v6/docs/markdown/styles.md - -const markdown_styles_marko_componentType = "bmbaMTHh", - markdown_styles_marko_template = (0,index_js_namespaceObject.t)(markdown_styles_marko_componentType); -/* harmony default export */ const markdown_styles = (markdown_styles_marko_template); - -toc_registry.set("../pages/v6/docs/markdown/styles.md", ""); -const markdown_styles_title = "Styles in Marko"; - - - -const markdown_styles_marko_component = {}; -markdown_styles_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { - out.w("

Styles in Marko

This section explains the different ways to style your Marko components, from simple inline styles to powerful techniques like CSS Modules for organized and maintainable stylesheets.

Basic Styling Options

1. Internal Styles with <style> Tags

You can add CSS styles directly within your Marko components using the <style> tag. Just like in HTML, styles defined within a <style> tag will apply to the HTML elements within that component.

Here's a simple example:

"); - render_tag_js_default()(code_block_marko_index_marko_server_entry, { - "html": "
<style>\n  .message {\n    background-color: lightblue;\n    padding: 10px;\n    border-radius: 5px;\n  }\n</style>\n\n<div class=\"message\">\n  This is a styled message!\n</div>\n
", - "concise": "
style\n  --\n  .message {\n    background-color: lightblue;\n    padding: 10px;\n    border-radius: 5px;\n  }\n  --\n\ndiv.message -- This is a styled message!\n
" - }, out, _componentDef, "16"); - out.w("

Note: Styles defined within <style> tags have global scope by default. This means that they could potentially affect the styling of other components in your application.

2. Inline Styles

For simple, element-specific styling, you can use inline styles directly on HTML elements using the style attribute. The value of the style attribute should be a JavaScript string containing CSS property-value pairs.

Here's an example:

"); - render_tag_js_default()(code_block_marko_index_marko_server_entry, { - "html": "
<p style=\"color: blue; font-size: 16px;\">\n  This is a paragraph with blue text.\n</p>\n
", - "concise": "
p style=\"color: blue; font-size: 16px;\" -- This is a paragraph with blue text.\n
" - }, out, _componentDef, "29"); - out.w("

Recommendation: Inline styles are generally best suited for simple styling or for dynamically applying styles based on component state or props. For more complex or reusable styles, it's better to use internal or external stylesheets.

External Stylesheets

You can keep your CSS organized in separate files and link them to your Marko components. This approach is generally recommended for larger applications or when you want to reuse styles across multiple components.

Autodiscovered Stylesheets

Marko makes it incredibly easy to include CSS stylesheets. By default, Marko will automatically look for a stylesheet with the same name as your component file (but with a .css extension) and include it.

For example, if you have a component file named profile-card.marko, Marko will automatically load the styles from a profile-card.css file in the same directory.

Importing Stylesheets

You can also import stylesheets explicitly using the import statement. This gives you more control over the loading order of your stylesheets and is useful for importing styles from node modules.

Here's an example:

"); - render_tag_js_default()(code_block_marko_index_marko_server_entry, { - "html": "
import \"./styles/global.css\"; // Importing a stylesheet from a relative path\n\n<div>This content has styles from the imported stylesheet.</div>\n
", - "concise": "
import \"./styles/global.css\"; // Importing a stylesheet from a relative path\n\ndiv -- This content has styles from the imported stylesheet.\n
" - }, out, _componentDef, "51"); - out.w("

Note: Similar to styles defined in <style> tags, styles from external stylesheets also have global scope by default. This means they could potentially affect other parts of your application.

Scoping with CSS Modules

To prevent style conflicts and ensure that your CSS styles are applied specifically to the intended components, Marko supports CSS Modules. CSS Modules allow you to write modular and reusable CSS without worrying about naming collisions or unintended side effects. With CSS Modules, class names in your CSS files are scoped locally by default, which means they won't clash with class names in other parts of your application. This is especially beneficial when working with component-based architectures, as it promotes true style encapsulation.

CSS Modules with <style> Tags

You can use CSS Modules directly within <style> tags in your Marko components. To do this, you'll use a tag variable with the <style> tag, like this:

"); - render_tag_js_default()(code_block_marko_index_marko_server_entry, { - "html": "
<style/styles>\n  .message {\n    background-color: lightblue;\n    padding: 10px;\n    border-radius: 5px;\n  }\n</style>\n\n<div class=styles.message>\n  This is a styled message!\n</div>\n
", - "concise": "
style/styles\n  --\n  .message {\n    background-color: lightblue;\n    padding: 10px;\n    border-radius: 5px;\n  }\n  --\n\ndiv class=styles.message -- This is a styled message!\n
" - }, out, _componentDef, "69"); - out.w("

The styles variable (you can name it anything) now acts as an object that holds the locally scoped class names from your CSS. By using styles.message, you ensure that this style is applied only to the intended element within this component.

CSS Modules with External Stylesheets

To use CSS modules with external stylesheets, you need to import the stylesheet using an alias and access the class names as properties of that alias. Most bundlers (like Webpack and Rollup) have built-in support for CSS modules and you only need to name your css files with the .module.css extension. For example, given the file styles/button.module.css:

"); - render_tag_js_default()(code_block_marko_index_marko_server_entry, { - "html": "
import styles from \"./styles/button.module.css\";\n\n<button class=styles.primary>\n  Submit\n</button>\n
", - "concise": "
import styles from \"./styles/button.module.css\";\n\nbutton class=styles.primary -- Submit\n
" - }, out, _componentDef, "79"); - out.w("

In this example, styles.primary will contain a unique class name generated by the CSS Modules system, preventing any styling conflicts.

Preprocessors (Optional)

Marko can be used with CSS preprocessors like Sass, Less, and Stylus. However, the setup for preprocessors is typically handled by your build tools rather than Marko itself. Most modern JavaScript bundlers provide plugins or loaders to integrate with CSS preprocessors.

If you'd like to use a CSS preprocessor with your Marko project, consult the documentation for your chosen bundler (like Webpack or Rollup) on how to set it up.

"); -}, { - t: markdown_styles_marko_componentType, - i: true -}, markdown_styles_marko_component); -;// ./v6/docs/:name/document-lookup.js - - - - - - - - - - - - - -const document_lookup_documentLookup = {}; -const document_lookup_docsByRepo = { - "marko-js/website": { - trim: "", - docs: { - "../markdown/components.md": components_namespaceObject, - "../markdown/conditionals.md": conditionals_namespaceObject, - "../markdown/events.md": markdown_events_namespaceObject, - "../markdown/javascript.md": javascript_namespaceObject, - "../markdown/language.md": language_namespaceObject, - "../markdown/lists.md": lists_namespaceObject, - "../markdown/setup.md": setup_namespaceObject, - "../markdown/state.md": markdown_state_namespaceObject, - "../markdown/styles.md": markdown_styles_namespaceObject - } - } -}; -Object.keys(document_lookup_docsByRepo).forEach(repo => { - const { - trim, - prefix = "", - docs - } = document_lookup_docsByRepo[repo]; - Object.keys(docs).forEach(filePath => { - const slug = document_lookup_fileNameToSlug(filePath); - const doc = docs[filePath]; - const repoPath = filePath.replace(trim, prefix); - document_lookup_documentLookup[slug] = { - repo, - repoPath, - template: doc.default, - title: doc.title, - toc: toc_registry.get(filePath) - }; - }); -}); -function document_lookup_fileNameToSlug(file) { - let slug; - do { - slug = external_path_default().basename(file, ".md"); - file = external_path_default().dirname(file); - } while (slug === "README"); - return slug; -} -structure_json_default().forEach(doc => { - addOverviewDoc(doc); - function addOverviewDoc(doc, parentSlug) { - const { - title, - docs - } = doc; - const titleSlug = format_slug_default()(title); - docs.forEach(childDoc => { - if (typeof childDoc === "object") { - addOverviewDoc(childDoc, titleSlug); - } - }); - let docName; - if (parentSlug) { - docName = `${parentSlug}-${titleSlug}-overview`; - } else { - docName = `${titleSlug}-overview`; - } - document_lookup_documentLookup[docName] = { - overview: true, - title, - docs - }; - } -}); -/* harmony default export */ const _name_document_lookup = (document_lookup_documentLookup); -;// ./v6/docs/:name/index.marko - -const docs_name_index_marko_marko_componentType = "qroBBNJb", - docs_name_index_marko_marko_template = (0,index_js_namespaceObject.t)(docs_name_index_marko_marko_componentType); -/* harmony default export */ const docs_name_index_marko = (docs_name_index_marko_marko_template); - - - - - - - - + "concise": "
div\n  h1.title -- Hello World!\n
" + }, out, _componentDef, "36"); + out.w("

TIP
Concise Mode is entirely optional. You can choose the style that best suits your preferences and project needs. You can toggle between the two syntax modes in this documentation using the switch icon located at the top right corner of all Marko code blocks.

Supercharging HTML

While Marko embraces HTML, it doesn't stop there. Marko extends HTML with dynamic features that make building modern web applications a breeze. We'll cover these in the upcoming sections.

"); +}, { + t: language_marko_componentType, + i: true +}, language_marko_component); +;// ./v6/docs/markdown/lists.md +const lists_marko_componentType = "mmDLAhAf", + lists_marko_template = (0,index_js_namespaceObject.t)(lists_marko_componentType); +/* harmony default export */ const lists = (lists_marko_template); +toc_registry.set("../pages/v6/docs/markdown/lists.md", ""); +const lists_title = "Lists in Marko"; -const docs_name_index_marko_marko_component = {}; -docs_name_index_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { - const { - params - } = input; - const doc = _name_document_lookup[params.name]; - render_tag_js_default()(app_layout_index_marko, { - "title": doc.title, - "currentDoc": params.name, - "toc": doc.toc, - "footer": false, - "v6": true, - "class": "docs", - "renderBody": out => { - out.w("
"); - if (!doc.overview) { - dynamic_tag_js_default()(out, doc.template, null, null, null, null, _componentDef, "4"); - render_tag_js_default()(edit_on_github_index_marko, doc, out, _componentDef, "5"); - render_tag_js_default()(contributors_index_marko, doc, out, _componentDef, "6"); - } else { - render_tag_js_default()(document_overview_index_marko, doc, out, _componentDef, "7"); - } - render_tag_js_default()(app_footer_index_marko, { - "class": "doc-footer" - }, out, _componentDef, "8"); - out.w("
"); - } - }, out, _componentDef, "0"); +const lists_marko_component = {}; +lists_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { + out.w("

Lists in Marko

<for of>: Iterating Over Arrays

The most common use case for <for> is iterating over arrays. The of attribute specifies the array you want to loop through.

"); + render_tag_js_default()(code_block_marko_index_marko_server_entry, { + "html": "
<ul>\n  <for|item, index| of=items by=\"id\">\n    <li>(${index}) Item ID: ${item.id}, Name: ${item.name}</li>\n  </for>\n</ul>\n
", + "concise": "
ul\n  for|item, index| of=items by=\"id\"\n    li -- (${index}) Item ID: ${item.id}, Name: ${item.name}\n
" + }, out, _componentDef, "11"); + out.w("

In this example:

  • items is the array we're iterating over.
  • The syntax |item, index| introduces Tag Parameters available to the body of the <for> tag.
    • the item parameter is the current item from the items array
    • the index parameter is the current index of the items array
  • by="id" specifies that the id property of each item should be used as the key.

Importance of Keys

Keys play a crucial role in efficiently updating the DOM when the data in a list changes. They help Marko identify:

  • Which items have been added to the list.
  • Which items have been removed from the list.
  • Which items have changed their position or content.

Using unique and stable keys ensures that Marko can make precise updates to the DOM, improving performance and preventing unexpected behavior.

  • by as a String: When iterating over arrays, you often want to use a unique identifier from your data as the key. You can do this by providing a string to the by attribute, like by="id" in the example above. Marko will then use the value of the id property on each item as the key.

  • by as a Function: For more complex scenarios, you can provide a function to the by attribute. This function will be called for each item in the array, and it should return a unique key for that item. The function receives the iterated item as the first parameter, and the index as the second.

CAUTION
<for of> defaults to using the array index as the key if you don't specify the by attribute. While this might seem convenient, it can lead to problems:

  • Reordering Issues: If the order of items in the array changes, Marko might incorrectly reuse DOM elements based on their index, leading to unexpected behavior and potentially losing any component state associated with the reused element.
  • Performance Degradation: Inserting or deleting items at the beginning of a list can cause every subsequent item to be re-rendered, even if they haven't changed.

Other <for> types

<for in>

You can also use <for in> to iterate over the properties of an object:

"); + render_tag_js_default()(code_block_marko_index_marko_server_entry, { + "html": "
<ul>\n  <for|key, value| in=myObject>\n    <li>${key}: ${value}</li>\n  </for>\n</ul>\n
", + "concise": "
ul\n  for|key, value| in=myObject\n    li -- ${key}: ${value}\n
" + }, out, _componentDef, "75"); + out.w("

In this case:

  • myObject is the object whose properties we're iterating over.
  • key will hold the name of each property.
  • value will hold the value of each property.

[!NOTE] > <for in> will default the key to the property name, which is often what you want, so it may not be necessary to specify a by attribute for the <for in> usage.

<for from to>: Iterating Over Number Ranges

The <for> tag can also generate number sequences, which is useful for creating things like numbered lists or grids:

"); + render_tag_js_default()(code_block_marko_index_marko_server_entry, { + "html": "
<ul>\n  <for|num| from=1 to=5 step=1>\n    <li>Item ${num}</li>\n  </for>\n</ul>\n
", + "concise": "
ul\n  for|num| from=1 to=5 step=1\n    li -- Item ${num}\n
" + }, out, _componentDef, "95"); + out.w("
  • from=1, to=5, and step=1 define the starting number, ending number (inclusive), and increment, respectively.
"); }, { - t: docs_name_index_marko_marko_componentType, + t: lists_marko_componentType, i: true -}, docs_name_index_marko_marko_component); -;// ./v6/docs/:name/index.marko?server-entry - -const docs_name_index_marko_server_entry_marko_componentType = "RJzypcyb", - docs_name_index_marko_server_entry_marko_template = (0,index_js_namespaceObject.t)(docs_name_index_marko_server_entry_marko_componentType); -/* harmony default export */ const docs_name_index_marko_server_entry = (docs_name_index_marko_server_entry_marko_template); +}, lists_marko_component); +;// ./v6/docs/markdown/setup.md +const setup_marko_componentType = "rsEgZyyk", + setup_marko_template = (0,index_js_namespaceObject.t)(setup_marko_componentType); +/* harmony default export */ const setup = (setup_marko_template); +toc_registry.set("../pages/v6/docs/markdown/setup.md", ""); +const setup_title = "Setup"; -const docs_name_index_marko_server_entry_crossOriginAttr = new URL(__webpack_require__.p, "file:").protocol === "file:" ? "" : " crossorigin"; -function docs_name_index_marko_server_entry_renderAssets(out) { - const $global = out.global; - const entries = $global.___entries; - $global.___entries = undefined; - if (entries) { - const buildName = $global.buildName; - const nonce = $global.cspNonce; - const nonceAttr = nonce ? ` nonce=${JSON.stringify(nonce)}` : ""; - const written = $global.___writtenAssets || ($global.___writtenAssets = new Set()); - let scripts = ""; - let styles = ""; - for (const entry of entries) { - const assets = index_js_manifest.getAssets(entry, buildName); - if (assets.js) { - for (const href of assets.js) { - if (!written.has(href)) { - written.add(href); - scripts += ``; - } - } - } - if (assets.css) { - for (const href of assets.css) { - if (!written.has(href)) { - written.add(href); - styles += ``; - } - } - } - } - out.write(scripts + styles); - } -} +const setup_marko_component = {}; +setup_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { + out.w("

Setup

Marko Playground

The fastest way to try out Marko without installing anything is with the Marko Playground. It's an online interactive environment where you can write Marko code and see the results in real-time.

In the Playground, you'll find a simple counter example. Go ahead and edit the code, and watch the output update instantly!

Local Development with Marko Run

To set up a local development environment, Marko Run is recommended as it makes this process quick and easy.

Prerequisites

  • Node.js: Marko requires Node.js to be installed on your system. Download the latest LTS version from the official website: https://nodejs.org/
  • npm (or yarn): Node.js comes bundled with npm (Node Package Manager), but you can also use yarn if you prefer.

1. Creating a new Project

Once you have Node.js and npm (or yarn) installed, open your terminal (command prompt or PowerShell) and run the following command:

npm init marko\n

This cli will guide you through creating a new project.

2. Basic Marko Run Commands

After creating a Marko Run project, navigate to your project directory and use the following commands:

  • marko-run dev: Start a development server with live reload (your changes will automatically appear in the browser).
  • marko-run build: Build a production-ready version of your app.
  • marko-run preview: Preview a production build locally.

3. Enhancing Your Workflow with Editor Plugins (Optional)

Editor plugins can significantly improve your development experience by providing features like:

  • Syntax highlighting: Makes your Marko code more readable.
  • Code completion (IntelliSense): Helps you write code faster with suggestions and autocompletion.
  • Error checking (linting): Catches potential errors in your code early on.

Recommended Plugins

  • VS Code: the official editor plugin from the marketplace
  • Other Editors: setup instructions to use the Marko language server in various other editors
"); +}, { + t: setup_marko_componentType, + i: true +}, setup_marko_component); +;// ./v6/docs/markdown/state.md +const markdown_state_marko_componentType = "KKNNFEaj", + markdown_state_marko_template = (0,index_js_namespaceObject.t)(markdown_state_marko_componentType); +/* harmony default export */ const markdown_state = (markdown_state_marko_template); +toc_registry.set("../pages/v6/docs/markdown/state.md", ""); +const markdown_state_title = "State & Derived State"; -const docs_name_index_marko_server_entry_marko_component = {}; -docs_name_index_marko_server_entry_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { - out.global.___renderAssets = docs_name_index_marko_server_entry_renderAssets; - (out.global.___entries || (out.global.___entries = [])).push(":name_IGBa"); - render_tag_js_default()((_flush_here_and_after_js_default()), { - "renderBody": out => { - const outAlias = out; - outAlias.global.___renderAssets && outAlias.global.___renderAssets(outAlias); - } - }, out, _componentDef, "0"); - render_tag_js_default()(docs_name_index_marko, input, out, _componentDef, "1"); - render_tag_js_default()((init_components_tag_js_default()), {}, out, _componentDef, "2"); - render_tag_js_default()((reorderer_renderer_js_default()), {}, out, _componentDef, "3"); +const markdown_state_marko_component = {}; +markdown_state_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { + out.w("

State & Derived State

Marko's reactive system makes it easy to manage your application's data and keep your user interface in sync with any changes. The key to this reactivity is how Marko tracks state.

State with <let>

In Marko, the <let> tag is used to declare state variables. These variables represent the data that can change over time, affecting how your components render and behave.

"); + render_tag_js_default()(code_block_marko_index_marko_server_entry, { + "html": "
<let/count=0/>\n
", + "concise": "
let/count=0\n
" + }, out, _componentDef, "11"); + out.w("

This line of code declares a state variable named count and initializes it to 0.

NOTE
The variable name is defined after the / in the tag. This is known as a Tag Variable and is a way for a tag to provide data to the rest of the template. Any tag can declare Tag Variables using this syntax.

You can access the value of a state variable just like any other variable in your template.

"); + render_tag_js_default()(code_block_marko_index_marko_server_entry, { + "html": "
<div>The current count is: ${count}</div>\n
", + "concise": "
div -- The current count is: ${count}\n
" + }, out, _componentDef, "22"); + out.w("

Updating State

To update a state variable, you reassign a new value to the tag variable. When you do, Marko will automatically re-render the component and any other parts of the UI that depend on the state that changed.

"); + render_tag_js_default()(code_block_marko_index_marko_server_entry, { + "html": "
<button onClick() { count = count + 1; }>\n  Increment\n</button>\n
", + "concise": "
button onClick() {\n  count = count + 1;\n}\n  -- Increment\n
" + }, out, _componentDef, "27"); + out.w("

IMPORTANT
State variables are immutable by default, which means you can't mutate their values. For example if you need to add an item to an array, prefer array = array.concat(newItem) (which updates the state to a new array containing the additional item) to array.push(newItem) (which mutates the array).

Derived State with <const>

The <const> tag is used to create derived state. It works similarly to <let> in that it defines a Tag Variable after the /, but the value is computed from other values. Marko automatically re-computes the value whenever any of its dependencies change.

"); + render_tag_js_default()(code_block_marko_index_marko_server_entry, { + "html": "
<let/firstName=\"Luke\"/>\n<let/lastName=\"Edwards\"/>\n\n<const/fullName=`${firstName} ${lastName}`/>\n\n<div>Hello, ${fullName}!</div>\n
", + "concise": "
let/firstName=\"Luke\"\nlet/lastName=\"Edwards\"\n\nconst/fullName=`${firstName} ${lastName}`\n\ndiv -- Hello, ${fullName}!\n
" + }, out, _componentDef, "43"); + out.w("

In this example, fullName is derived from the values of firstName and lastName. Whenever either firstName or lastName changes, Marko automatically updates fullName, ensuring the UI is always consistent with the latest state.

"); }, { - t: docs_name_index_marko_server_entry_marko_componentType, + t: markdown_state_marko_componentType, i: true -}, docs_name_index_marko_server_entry_marko_component); -;// ./v6/examples/[name]/index.marko - -const examples_name_index_marko_marko_componentType = "QqsBIzdb", - examples_name_index_marko_marko_template = (0,index_js_namespaceObject.t)(examples_name_index_marko_marko_componentType); -/* harmony default export */ const examples_name_index_marko = (examples_name_index_marko_marko_template); -const examples = { - "counter": { - "title": "Counter", - "description": "A simple counter", - files: [{ - name: "index.marko", - path: "/components/index.marko", - content: "\n" - }] - }, - "hello-world": { - "title": "Hello World", - "description": "A simple hello world example", - files: [{ - name: "index.marko", - path: "/components/index.marko", - content: "

Hello World

" - }] - }, - "loop": { - "title": "Loops and Lists", - "description": "A simple loop example", - files: [{ - name: "index.marko", - path: "/components/index.marko", - content: "\n
    \n \n
  • ${item}
  • \n \n
\n" - }] - } -}; - +}, markdown_state_marko_component); +;// ./v6/docs/markdown/styles.md +const markdown_styles_marko_componentType = "bmbaMTHh", + markdown_styles_marko_template = (0,index_js_namespaceObject.t)(markdown_styles_marko_componentType); +/* harmony default export */ const markdown_styles = (markdown_styles_marko_template); +toc_registry.set("../pages/v6/docs/markdown/styles.md", ""); +const markdown_styles_title = "Styles in Marko"; -const examples_name_index_marko_marko_component = {}; -examples_name_index_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { - const { - params - } = input; - const currentExample = examples[params.name]; - render_tag_js_default()(app_layout_index_marko, { - "title": currentExample?.title, - "footer": false, - "discord": false, - "v6": true, - "renderBody": out => { - out.w("
"); - for (const name in examples) { - const { - title, - description - } = examples[name]; - const _keyScope = `[${name}]`; - out.w(`${(0,escape_xml_js_namespaceObject.x)(title)}${(0,escape_xml_js_namespaceObject.x)(description)}`); - } - out.w("
"); - render_tag_js_default()(repl_index_marko, { - "files": currentExample?.files || [] - }, out, _componentDef, "6"); - out.w("
"); - } - }, out, _componentDef, "0"); +const markdown_styles_marko_component = {}; +markdown_styles_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { + out.w("

Styles in Marko

This section explains the different ways to style your Marko components, from simple inline styles to powerful techniques like CSS Modules for organized and maintainable stylesheets.

Basic Styling Options

1. Internal Styles with <style> Tags

You can add CSS styles directly within your Marko components using the <style> tag. Just like in HTML, styles defined within a <style> tag will apply to the HTML elements within that component.

Here's a simple example:

"); + render_tag_js_default()(code_block_marko_index_marko_server_entry, { + "html": "
<style>\n  .message {\n    background-color: lightblue;\n    padding: 10px;\n    border-radius: 5px;\n  }\n</style>\n\n<div class=\"message\">\n  This is a styled message!\n</div>\n
", + "concise": "
style\n  --\n  .message {\n    background-color: lightblue;\n    padding: 10px;\n    border-radius: 5px;\n  }\n  --\n\ndiv.message -- This is a styled message!\n
" + }, out, _componentDef, "16"); + out.w("

Note: Styles defined within <style> tags have global scope by default. This means that they could potentially affect the styling of other components in your application.

2. Inline Styles

For simple, element-specific styling, you can use inline styles directly on HTML elements using the style attribute. The value of the style attribute should be a JavaScript string containing CSS property-value pairs.

Here's an example:

"); + render_tag_js_default()(code_block_marko_index_marko_server_entry, { + "html": "
<p style=\"color: blue; font-size: 16px;\">\n  This is a paragraph with blue text.\n</p>\n
", + "concise": "
p style=\"color: blue; font-size: 16px;\" -- This is a paragraph with blue text.\n
" + }, out, _componentDef, "29"); + out.w("

Recommendation: Inline styles are generally best suited for simple styling or for dynamically applying styles based on component state or props. For more complex or reusable styles, it's better to use internal or external stylesheets.

External Stylesheets

You can keep your CSS organized in separate files and link them to your Marko components. This approach is generally recommended for larger applications or when you want to reuse styles across multiple components.

Autodiscovered Stylesheets

Marko makes it incredibly easy to include CSS stylesheets. By default, Marko will automatically look for a stylesheet with the same name as your component file (but with a .css extension) and include it.

For example, if you have a component file named profile-card.marko, Marko will automatically load the styles from a profile-card.css file in the same directory.

Importing Stylesheets

You can also import stylesheets explicitly using the import statement. This gives you more control over the loading order of your stylesheets and is useful for importing styles from node modules.

Here's an example:

"); + render_tag_js_default()(code_block_marko_index_marko_server_entry, { + "html": "
import \"./styles/global.css\"; // Importing a stylesheet from a relative path\n\n<div>This content has styles from the imported stylesheet.</div>\n
", + "concise": "
import \"./styles/global.css\"; // Importing a stylesheet from a relative path\n\ndiv -- This content has styles from the imported stylesheet.\n
" + }, out, _componentDef, "51"); + out.w("

Note: Similar to styles defined in <style> tags, styles from external stylesheets also have global scope by default. This means they could potentially affect other parts of your application.

Scoping with CSS Modules

To prevent style conflicts and ensure that your CSS styles are applied specifically to the intended components, Marko supports CSS Modules. CSS Modules allow you to write modular and reusable CSS without worrying about naming collisions or unintended side effects. With CSS Modules, class names in your CSS files are scoped locally by default, which means they won't clash with class names in other parts of your application. This is especially beneficial when working with component-based architectures, as it promotes true style encapsulation.

CSS Modules with <style> Tags

You can use CSS Modules directly within <style> tags in your Marko components. To do this, you'll use a tag variable with the <style> tag, like this:

"); + render_tag_js_default()(code_block_marko_index_marko_server_entry, { + "html": "
<style/styles>\n  .message {\n    background-color: lightblue;\n    padding: 10px;\n    border-radius: 5px;\n  }\n</style>\n\n<div class=styles.message>\n  This is a styled message!\n</div>\n
", + "concise": "
style/styles\n  --\n  .message {\n    background-color: lightblue;\n    padding: 10px;\n    border-radius: 5px;\n  }\n  --\n\ndiv class=styles.message -- This is a styled message!\n
" + }, out, _componentDef, "69"); + out.w("

The styles variable (you can name it anything) now acts as an object that holds the locally scoped class names from your CSS. By using styles.message, you ensure that this style is applied only to the intended element within this component.

CSS Modules with External Stylesheets

To use CSS modules with external stylesheets, you need to import the stylesheet using an alias and access the class names as properties of that alias. Most bundlers (like Webpack and Rollup) have built-in support for CSS modules and you only need to name your css files with the .module.css extension. For example, given the file styles/button.module.css:

"); + render_tag_js_default()(code_block_marko_index_marko_server_entry, { + "html": "
import styles from \"./styles/button.module.css\";\n\n<button class=styles.primary>\n  Submit\n</button>\n
", + "concise": "
import styles from \"./styles/button.module.css\";\n\nbutton class=styles.primary -- Submit\n
" + }, out, _componentDef, "79"); + out.w("

In this example, styles.primary will contain a unique class name generated by the CSS Modules system, preventing any styling conflicts.

Preprocessors (Optional)

Marko can be used with CSS preprocessors like Sass, Less, and Stylus. However, the setup for preprocessors is typically handled by your build tools rather than Marko itself. Most modern JavaScript bundlers provide plugins or loaders to integrate with CSS preprocessors.

If you'd like to use a CSS preprocessor with your Marko project, consult the documentation for your chosen bundler (like Webpack or Rollup) on how to set it up.

"); }, { - t: examples_name_index_marko_marko_componentType, + t: markdown_styles_marko_componentType, i: true -}, examples_name_index_marko_marko_component); -;// ./v6/examples/[name]/index.marko?server-entry +}, markdown_styles_marko_component); +;// ./v6/docs/:name/document-lookup.js -const examples_name_index_marko_server_entry_marko_componentType = "ReYAiJik", - examples_name_index_marko_server_entry_marko_template = (0,index_js_namespaceObject.t)(examples_name_index_marko_server_entry_marko_componentType); -/* harmony default export */ const examples_name_index_marko_server_entry = (examples_name_index_marko_server_entry_marko_template); -const examples_name_index_marko_server_entry_crossOriginAttr = new URL(__webpack_require__.p, "file:").protocol === "file:" ? "" : " crossorigin"; -function examples_name_index_marko_server_entry_renderAssets(out) { - const $global = out.global; - const entries = $global.___entries; - $global.___entries = undefined; - if (entries) { - const buildName = $global.buildName; - const nonce = $global.cspNonce; - const nonceAttr = nonce ? ` nonce=${JSON.stringify(nonce)}` : ""; - const written = $global.___writtenAssets || ($global.___writtenAssets = new Set()); - let scripts = ""; - let styles = ""; - for (const entry of entries) { - const assets = index_js_manifest.getAssets(entry, buildName); - if (assets.js) { - for (const href of assets.js) { - if (!written.has(href)) { - written.add(href); - scripts += ``; - } - } - } - if (assets.css) { - for (const href of assets.css) { - if (!written.has(href)) { - written.add(href); - styles += ``; - } - } - } - } - out.write(scripts + styles); - } -} -const examples_name_index_marko_server_entry_marko_component = {}; -examples_name_index_marko_server_entry_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { - out.global.___renderAssets = examples_name_index_marko_server_entry_renderAssets; - (out.global.___entries || (out.global.___entries = [])).push("[name]_FLzY"); - render_tag_js_default()((_flush_here_and_after_js_default()), { - "renderBody": out => { - const outAlias = out; - outAlias.global.___renderAssets && outAlias.global.___renderAssets(outAlias); + + + + +const document_lookup_documentLookup = {}; +const document_lookup_docsByRepo = { + "marko-js/website": { + trim: "", + docs: { + "../markdown/components.md": components_namespaceObject, + "../markdown/conditionals.md": conditionals_namespaceObject, + "../markdown/events.md": markdown_events_namespaceObject, + "../markdown/javascript.md": javascript_namespaceObject, + "../markdown/language.md": language_namespaceObject, + "../markdown/lists.md": lists_namespaceObject, + "../markdown/setup.md": setup_namespaceObject, + "../markdown/state.md": markdown_state_namespaceObject, + "../markdown/styles.md": markdown_styles_namespaceObject } - }, out, _componentDef, "0"); - render_tag_js_default()(examples_name_index_marko, input, out, _componentDef, "1"); - render_tag_js_default()((init_components_tag_js_default()), {}, out, _componentDef, "2"); - render_tag_js_default()((reorderer_renderer_js_default()), {}, out, _componentDef, "3"); -}, { - t: examples_name_index_marko_server_entry_marko_componentType, - i: true -}, examples_name_index_marko_server_entry_marko_component); -;// ./v6/tutorials/:name/components/tutorial.marko + } +}; +Object.keys(document_lookup_docsByRepo).forEach(repo => { + const { + trim, + prefix = "", + docs + } = document_lookup_docsByRepo[repo]; + Object.keys(docs).forEach(filePath => { + const slug = document_lookup_fileNameToSlug(filePath); + const doc = docs[filePath]; + const repoPath = filePath.replace(trim, prefix); + document_lookup_documentLookup[slug] = { + repo, + repoPath, + template: doc.default, + title: doc.title, + toc: toc_registry.get(filePath) + }; + }); +}); +function document_lookup_fileNameToSlug(file) { + let slug; + do { + slug = external_path_default().basename(file, ".md"); + file = external_path_default().dirname(file); + } while (slug === "README"); + return slug; +} +structure_json_default().forEach(doc => { + addOverviewDoc(doc); + function addOverviewDoc(doc, parentSlug) { + const { + title, + docs + } = doc; + const titleSlug = format_slug_default()(title); + docs.forEach(childDoc => { + if (typeof childDoc === "object") { + addOverviewDoc(childDoc, titleSlug); + } + }); + let docName; + if (parentSlug) { + docName = `${parentSlug}-${titleSlug}-overview`; + } else { + docName = `${titleSlug}-overview`; + } + document_lookup_documentLookup[docName] = { + overview: true, + title, + docs + }; + } +}); +/* harmony default export */ const _name_document_lookup = (document_lookup_documentLookup); +;// ./v6/docs/:name/index.marko -const tutorial_marko_marko_componentType = "wuKnSKQd", - tutorial_marko_marko_template = (0,index_js_namespaceObject.t)(tutorial_marko_marko_componentType); -/* harmony default export */ const tutorial_marko = (tutorial_marko_marko_template); +const docs_name_index_marko_marko_componentType = "qroBBNJb", + docs_name_index_marko_marko_template = (0,index_js_namespaceObject.t)(docs_name_index_marko_marko_componentType); +/* harmony default export */ const docs_name_index_marko = (docs_name_index_marko_marko_template); @@ -6061,73 +6080,54 @@ const tutorial_marko_marko_componentType = "wuKnSKQd", -const tutorial_marko_marko_component = { - onCreate() { - this.state = {}; - } -}; -tutorial_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component2, state, $global) { - var _component = _component2, - _state = state; - const { - tutorial - } = input; - let stepNumber = 0; - const totalSteps = tutorial.steps.length; - const step = tutorial.steps[stepNumber]; - const setStep = (0,cached_values_namespaceObject.cache)((0,cached_values_namespaceObject.cached)(_component, [tutorial["steps"]]) || function (number) { - stepNumber = number; - files = tutorial.steps[number].before; - }); - let files = step.before; - out.w(`
${(0,escape_xml_js_namespaceObject.x)(tutorial.title)}Step ${(0,escape_xml_js_namespaceObject.x)(stepNumber + 1)}/${(0,escape_xml_js_namespaceObject.x)(totalSteps)}PrevNext

${(0,escape_xml_js_namespaceObject.x)(step.title)}

${to_string_js_default()(step.content)}
SolveReset
`); - render_tag_js_default()(repl_index_marko, { - "files": files, - "filesChange": (0,cached_values_namespaceObject.cache)((0,cached_values_namespaceObject.cached)(_component, []) || (_ => files = _)) - }, out, _componentDef, "12"); - out.w("
"); -}, { - t: tutorial_marko_marko_componentType -}, tutorial_marko_marko_component); -;// ./v6/tutorials/:name/index.marko -const tutorials_name_index_marko_marko_componentType = "LaKxeARl", - tutorials_name_index_marko_marko_template = (0,index_js_namespaceObject.t)(tutorials_name_index_marko_marko_componentType); -/* harmony default export */ const tutorials_name_index_marko = (tutorials_name_index_marko_marko_template); -const tutorials_name_index_marko_marko_component = {}; -tutorials_name_index_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { +const docs_name_index_marko_marko_component = {}; +docs_name_index_marko_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { const { params } = input; + const doc = _name_document_lookup[params.name]; render_tag_js_default()(app_layout_index_marko, { - "title": tutorials[params.name].title, + "title": doc.title, + "currentDoc": params.name, + "toc": doc.toc, "footer": false, - "discord": false, + "v6": true, + "class": "docs", "renderBody": out => { - render_tag_js_default()(tutorial_marko, { - "tutorial": tutorials[params.name] - }, out, _componentDef, "1"); + out.w("
"); + if (!doc.overview) { + dynamic_tag_js_default()(out, doc.template, null, null, null, null, _componentDef, "4"); + render_tag_js_default()(edit_on_github_index_marko, doc, out, _componentDef, "5"); + render_tag_js_default()(contributors_index_marko, doc, out, _componentDef, "6"); + } else { + render_tag_js_default()(document_overview_index_marko, doc, out, _componentDef, "7"); + } + render_tag_js_default()(app_footer_index_marko, { + "class": "doc-footer" + }, out, _componentDef, "8"); + out.w("
"); } }, out, _componentDef, "0"); }, { - t: tutorials_name_index_marko_marko_componentType, + t: docs_name_index_marko_marko_componentType, i: true -}, tutorials_name_index_marko_marko_component); -;// ./v6/tutorials/:name/index.marko?server-entry +}, docs_name_index_marko_marko_component); +;// ./v6/docs/:name/index.marko?server-entry -const tutorials_name_index_marko_server_entry_marko_componentType = "yQHdQhNi", - tutorials_name_index_marko_server_entry_marko_template = (0,index_js_namespaceObject.t)(tutorials_name_index_marko_server_entry_marko_componentType); -/* harmony default export */ const tutorials_name_index_marko_server_entry = (tutorials_name_index_marko_server_entry_marko_template); +const docs_name_index_marko_server_entry_marko_componentType = "RJzypcyb", + docs_name_index_marko_server_entry_marko_template = (0,index_js_namespaceObject.t)(docs_name_index_marko_server_entry_marko_componentType); +/* harmony default export */ const docs_name_index_marko_server_entry = (docs_name_index_marko_server_entry_marko_template); -const tutorials_name_index_marko_server_entry_crossOriginAttr = new URL(__webpack_require__.p, "file:").protocol === "file:" ? "" : " crossorigin"; -function tutorials_name_index_marko_server_entry_renderAssets(out) { +const docs_name_index_marko_server_entry_crossOriginAttr = new URL(__webpack_require__.p, "file:").protocol === "file:" ? "" : " crossorigin"; +function docs_name_index_marko_server_entry_renderAssets(out) { const $global = out.global; const entries = $global.___entries; $global.___entries = undefined; @@ -6144,7 +6144,7 @@ function tutorials_name_index_marko_server_entry_renderAssets(out) { for (const href of assets.js) { if (!written.has(href)) { written.add(href); - scripts += ``; + scripts += ``; } } } @@ -6165,23 +6165,23 @@ function tutorials_name_index_marko_server_entry_renderAssets(out) { -const tutorials_name_index_marko_server_entry_marko_component = {}; -tutorials_name_index_marko_server_entry_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { - out.global.___renderAssets = tutorials_name_index_marko_server_entry_renderAssets; - (out.global.___entries || (out.global.___entries = [])).push(":name_5gMv"); +const docs_name_index_marko_server_entry_marko_component = {}; +docs_name_index_marko_server_entry_marko_template._ = renderer_js_default()(function (input, out, _componentDef, _component, state, $global) { + out.global.___renderAssets = docs_name_index_marko_server_entry_renderAssets; + (out.global.___entries || (out.global.___entries = [])).push(":name_IGBa"); render_tag_js_default()((_flush_here_and_after_js_default()), { "renderBody": out => { const outAlias = out; outAlias.global.___renderAssets && outAlias.global.___renderAssets(outAlias); } }, out, _componentDef, "0"); - render_tag_js_default()(tutorials_name_index_marko, input, out, _componentDef, "1"); + render_tag_js_default()(docs_name_index_marko, input, out, _componentDef, "1"); render_tag_js_default()((init_components_tag_js_default()), {}, out, _componentDef, "2"); render_tag_js_default()((reorderer_renderer_js_default()), {}, out, _componentDef, "3"); }, { - t: tutorials_name_index_marko_server_entry_marko_componentType, + t: docs_name_index_marko_server_entry_marko_componentType, i: true -}, tutorials_name_index_marko_server_entry_marko_component); +}, docs_name_index_marko_server_entry_marko_component); ;// ../../node_modules/webpack-inject-plugin/dist/webpack-inject-plugin.loader.js?id=webpack-inject-module-2! @@ -6232,33 +6232,33 @@ function getRoute(url) { return { params, template:examples_name_index_marko_server_entry }; } } else {} - } else if (part_1 === "tutorials") { + } else if (part_1 === "docs") { const part_2 = pathParts[2]; if (part_2 === undefined) { - return { params, template:tutorials_index_marko_server_entry }; + return { params, template:docs_index_marko_server_entry }; } else if (true) { params["name"] = part_2; const part_3 = pathParts[3]; if (part_3 === undefined) { - return { params, template:tutorials_name_index_marko_server_entry }; + return { params, template:docs_name_index_marko_server_entry }; } } - } else if (part_1 === "playground") { - const part_2 = pathParts[2]; - if (part_2 === undefined) { - return { params, template:v6_playground_index_marko_server_entry }; - } - } else if (part_1 === "docs") { + } else if (part_1 === "tutorials") { const part_2 = pathParts[2]; if (part_2 === undefined) { - return { params, template:docs_index_marko_server_entry }; + return { params, template:tutorials_index_marko_server_entry }; } else if (true) { params["name"] = part_2; const part_3 = pathParts[3]; if (part_3 === undefined) { - return { params, template:docs_name_index_marko_server_entry }; + return { params, template:tutorials_name_index_marko_server_entry }; } } + } else if (part_1 === "playground") { + const part_2 = pathParts[2]; + if (part_2 === undefined) { + return { params, template:v6_playground_index_marko_server_entry }; + } } } else if (part_0 === "try-online") { const part_1 = pathParts[1]; @@ -6372,4 +6372,4 @@ exports.routes = routes; module.exports = __webpack_exports__; /******/ })() ; -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWlkZGxld2FyZS5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFJQTtBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7Ozs7QUNkQTtBQUVBO0FBQ0E7QUFFQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBRUE7QUFFQTtBQUNBO0FBR0E7QUFDQTtBQUdBO0FBQ0E7Ozs7Ozs7QUNsQ0E7QUFRQTtBQUNBO0FBRUE7QUFDQTtBQUVBO0FBQ0E7QUFHQTtBQUNBO0FBR0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBOzs7Ozs7O0FDekNBO0FBQ0E7QUFJQTs7Ozs7Ozs7QUNMQTs7Ozs7Ozs7QUNBQTs7Ozs7Ozs7QUNBQTs7Ozs7Ozs7QUNBQTs7Ozs7O0FDQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7O0FDdkJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7O0FDUEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7QUNQQTs7Ozs7QUNBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7QUNOQTs7Ozs7OztBQ0FBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ0hBOztBQ0FBOztBQ0FBOztBQ0FBOztBQ0FBOztBQ0FBOztBQ0FBOzs7QUNBQTs7O0FDQUE7OztBQ0FBOzs7QUNBQTs7O0FDQUE7OztBQ0FBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNxRUE7QUFBQTtBQUFBO0FBQUE7QUFTQTtBQUFBO0FBQUE7QUFBQTtBQUdBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBS0E7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUFBO0FBSUE7QUFBQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBS0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUNoSEE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBOztBQ0FBOzs7Ozs7O0FGQUE7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQ0E7QUFHQTtBQUFBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFFQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTs7Ozs7Ozs7O0FHNURBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUNBO0FBR0E7QUFBQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBRUE7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7O0FDNURBOztBQ0FBOzs7QUNBQTs7Ozs7O0FDQUE7QUFFQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFDQTtBQUFBO0FBc0JBO0FBQUE7QUFBQTtBQUFBO0FBQUE7O0FDbkNBOzs7QUNBQTs7Ozs7Ozs7O0FDQ0E7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBQUE7O0FDUEE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ0FBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFDQTtBQUlBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFFQTtBQUFBO0FBQUE7QUFRQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBR0E7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFLQTtBQUFBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQWVBO0FBQ0E7QUFBQTtBQVdBO0FBQUE7QUFBQTtBQUFBO0FBR0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBOztBQ2pFQTs7QUNBQTs7Ozs7Ozs7Ozs7QUNBQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBRUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNSQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUNGQTs7O0FDQUE7OztBQ0FBOzs7Ozs7O0FDQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFGQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7Ozs7Ozs7Ozs7O0FDSEE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFVQTtBQUFBO0FBQUE7QUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNYQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFVQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFHQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBb0JBO0FBQUE7QUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUMxQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBVUE7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBS0E7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU9BO0FBQUE7QUFBQTtBQUFBO0FBR0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQ0E7QUFFQTtBQUNBO0FBQUE7QUFDQTtBQUxBO0FBTUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVlBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQUE7QUFBQTtBQUVBO0FBQUE7QUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDaEZBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFKQTtBQUtBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBOztBQ0xBOzs7Ozs7Ozs7O0FDQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUNBQTs7QUNBQTs7Ozs7Ozs7OztBQ0FBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Ozs7Ozs7Ozs7Ozs7OztBQ0FBO0FBZ0JBO0FBQ0E7QUFBQTtBQVdBO0FBQUE7QUFPQTtBQUdBO0FBQUE7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7O0FDeENBOzs7Ozs7Ozs7OztBQ0FBOzs7QUNBQTs7Ozs7O0FDQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBR0E7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUdBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7QUNSQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBRUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUVBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBRUE7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUlBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBR0E7QUFBQTtBQUZBO0FBSUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFPQTtBQUFBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7O0FDdkVBOztBQ0FBOztBQ0FBOzs7Ozs7Ozs7Ozs7OztBQ0FBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Ozs7Ozs7Ozs7QUNBQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQ0E7QUFBQTtBQVNBO0FBQUE7QUFBQTtBQUFBOztBQ1pBOzs7Ozs7Ozs7OztBQzRDQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7QUM1Q0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBT0E7QUFDQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBMEJBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFBQTtBQU9BO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQUE7QUFFQTtBQUNBO0FBQUE7QUFHQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Ozs7Ozs7Ozs7OztBQzVEQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFBQTtBQUFBO0FBR0E7QUFBQTtBQUFBO0FBQUE7QUFBQTs7Ozs7O0FBSkE7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQ0E7QUFHQTtBQUFBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFFQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTs7Ozs7Ozs7O0FDNURBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUNBO0FBR0E7QUFBQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBRUE7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Ozs7Ozs7O0FDM0RBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTs7Ozs7Ozs7Ozs7QUN6QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBR0E7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBR0E7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUFBO0FBSEE7QUFnQkE7QUFBQTtBQUZBO0FBQUE7QUFBQTs7Ozs7Ozs7Ozs7O0FDcENBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFBQTs7Ozs7O0FBRkE7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQ0E7QUFHQTtBQUFBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFFQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUM1REE7O0FDQUE7Ozs7Ozs7Ozs7OztBQ0FBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBQTtBQXNCQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Ozs7Ozs7OztBQ3RCQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7Ozs7Ozs7Ozs7O0FDQUE7QUFDQTtBQUFBO0FBQUE7QUFBQTs7Ozs7Ozs7O0FDQUE7QUFDQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFBQTs7Ozs7Ozs7O0FDUkE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQ0E7QUFDQTtBQW1DQTtBQUFBO0FBQUE7QUFDQTtBQUdBO0FBQ0E7QUFBQTtBQUdBO0FBQUE7QUFGQTtBQUlBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7Ozs7Ozs7Ozs7QUNqREE7QUFHQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUFBO0FBSUE7QUFBQTtBQUVBO0FBQ0E7QUFBQTtBQUtBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7Ozs7Ozs7OztBQ25CQTtBQUFBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFJQTtBQUNBO0FBQ0E7QUFHQTtBQUFBO0FBQUE7QUFvQkE7QUErQkE7QUFBQTtBQUFBO0FBakNBO0FBQUE7QUFBQTtBQUFBO0FBOUJBO0FBaUZBO0FBQUE7QUFBQTtBQUFBOztBQ2pGQTs7QUNBQTs7QUNBQTs7Ozs7Ozs7Ozs7Ozs7OztBQ3dOQTtBQUVBO0FBQ0E7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUtBO0FBQUE7QUFDQTtBQUFBO0FBT0E7QUFBQTtBQVNBO0FBQUE7QUFTQTtBQUFBO0FBUUE7QUFDQTtBQUFBO0FBT0E7QUFBQTtBQUZBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Ozs7Ozs7Ozs7OztBQzNRQTtBQUNBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBZUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFJQTtBQUNBO0FBQUE7QUFBQTtBQUdBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7Ozs7Ozs7Ozs7OztBQ2pEQTtBQUFBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFHQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQVJBO0FBQUE7QUFTQTtBQUFBO0FBQUE7QUFBQTs7Ozs7Ozs7Ozs7OztBQ1RBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUdBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFUQTtBQUFBO0FBVUE7QUFBQTtBQUFBO0FBQUE7O0FDVkE7Ozs7Ozs7Ozs7Ozs7O0FDQUE7QUFBQTtBQUFBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBR0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQTJEQTtBQUFBO0FBQUE7QUFBQTtBQWpFQTtBQWtFQTtBQUFBO0FBQUE7QUFBQTs7QUNsRUE7Ozs7Ozs7Ozs7Ozs7O0FDQUE7QUFBQTtBQUFBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBV0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBU0E7QUFBQTtBQUFBO0FBQUE7QUF4QkE7QUFBQTtBQXlCQTtBQUFBO0FBQUE7QUFBQTs7Ozs7QUN6QkE7O0FDQUE7O0FDQUE7Ozs7Ozs7QUNBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUdBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUE0QkE7QUFDQTtBQUFBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFIQTtBQUFBO0FBU0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQTVDQTtBQStDQTtBQUFBO0FBQUE7QUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ2pEQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7QUNUQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7Ozs7O0FBRkE7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQ0E7QUFHQTtBQUFBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFFQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTs7Ozs7O0FENURBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUNBO0FBR0E7QUFBQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBRUE7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Ozs7Ozs7Ozs7O0FFNURBO0FBQUE7QUFDQTtBQURBO0FBQUE7QUFBQTtBQUFBOztBQ0FBOzs7Ozs7QURBQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBS0E7QUFDQTtBQUdBO0FBQUE7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUVBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7QUU1REE7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUF3Q0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFpREE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQWdCQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBWUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVdBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFlQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBd0JBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Ozs7OztBQ2hMQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQWFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBU0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBS0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBVUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7Ozs7O0FDcEZBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBY0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUdBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFTQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFHQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBS0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFpQkE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBOztBQzdEQTs7Ozs7O0FDQUE7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBb0JBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBR0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVdBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFtQkE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVdBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFXQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBU0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVdBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFHQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1BO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBV0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUdBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBUUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBdUdBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUF3TUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQXNCQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7Ozs7O0FDN2RBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7O0FDSkE7Ozs7OztBQ0FBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQXNHQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBbUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Ozs7OztBQzdJQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFRQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQWFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFHQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBR0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUdBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFHQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Ozs7OztBQ3JDQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUdBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7QUNwQkE7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFHQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFVQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQXVDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBR0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Ozs7OztBQ3JHQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFHQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBR0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUdBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFHQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBNkJBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFPQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Ozs7OztBQ3hEQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7QUNKQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBR0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7QUNsQ0E7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7Ozs7O0FDSkE7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFZQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7QUNoQkE7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFZQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBR0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFHQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Ozs7OztBQzNCQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7QUNKQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7QUNKQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7QUNKQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQW1CQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7QUN2QkE7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7Ozs7O0FDSkE7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7Ozs7O0FDSkE7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUE4QkE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQTZJQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBUUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQWdCQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBUUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUdBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQWFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBR0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQTBCQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUdBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFZQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7QUM3UkE7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7QUNUQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUEySkE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7Ozs7O0FDektBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBZ0RBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7QUMxREE7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBR0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFpQkE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7Ozs7O0FDN0JBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7QUNOQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFRQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVdBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUdBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBS0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFTQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQWNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBU0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFRQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1BO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBR0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBT0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFPQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7Ozs7O0FDM0tBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7O0FDSkE7O0FDQUE7O0FDQUE7Ozs7OztBQ0FBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFvQkE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBR0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBZ0VBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFHQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBR0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBR0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7QUNoSkE7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7Ozs7O0FDSkE7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFXQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7QUNmQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQXdDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBV0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQWdCQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBWUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQXFCQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ3hHQTtBQUNBO0FBRUE7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUdBO0FBQ0E7QUFFQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBRUE7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7O0FDN0VBOzs7Ozs7Ozs7Ozs7QUNBQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7Ozs7QUNBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBMENBO0FBQUE7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBY0E7QUFDQTtBQUFBO0FBS0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUF0QkE7QUFBQTtBQThCQTtBQUFBO0FBQUE7QUFBQTs7Ozs7O0FDMUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUNBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUdBO0FBQUE7QUFGQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBT0E7QUFBQTtBQUFBO0FBQUE7Ozs7OztBQ25CQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFDQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBR0E7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7QUF0QkE7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQ0E7QUFHQTtBQUFBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFFQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTs7Ozs7Ozs7O0FDNURBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUNBO0FBR0E7QUFBQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBRUE7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Ozs7Ozs7OztBQzVEQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBS0E7QUFDQTtBQUdBO0FBQUE7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUVBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7Ozs7QUM1REE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQ0E7QUFHQTtBQUFBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFFQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUM1REE7Ozs7OztBQ0FBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBRUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBUEE7QUFRQTtBQUFBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUFBQTs7Ozs7Ozs7Ozs7O0FDbkJBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUdBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Ozs7OztBQUpBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUNBO0FBR0E7QUFBQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBRUE7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7O0FDNURBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTs7Ozs7O0FDdENBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQVNBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7QUFkQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBS0E7QUFDQTtBQUdBO0FBQUE7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUVBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7Ozs7QUM1REE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQ0E7QUFHQTtBQUFBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFFQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTs7Ozs7O0FDNURBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQW1CQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7Ozs7O0FDakNBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQXVCQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBR0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFVQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7QUM5Q0E7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFHQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7QUNmQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUdBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBR0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Ozs7OztBQ2hCQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU9BO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7Ozs7O0FDbkJBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQThCQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBU0E7QUFBQTtBQUFBO0FBQUE7QUFBQTs7Ozs7O0FDN0NBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Ozs7OztBQ0pBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBR0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBR0E7QUFBQTtBQUFBO0FBQUE7QUFBQTs7Ozs7O0FDaEJBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFPQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUdBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Ozs7Ozs7Ozs7O0FDMUJBO0FBQ0E7QUFFQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFFQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTs7Ozs7O0FDdEVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUNBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUdBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFBQTs7Ozs7O0FBekJBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUNBO0FBR0E7QUFBQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBRUE7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Ozs7OztBQzVEQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUNBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFNQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFBQTs7Ozs7O0FBN0NBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUNBO0FBR0E7QUFBQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBRUE7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQzVEQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFBQTtBQUNBO0FBRUE7QUF5QkE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7Ozs7O0FDbENBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFBQTs7Ozs7O0FBTkE7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQ0E7QUFHQTtBQUFBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFFQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUM1REE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7OztBQzVIQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VzIjpbIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvY29tcG9uZW50cy9oZWFkaW5nL2dldEFuY2hvck5hbWUuanMiLCIvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL3BhZ2VzL2RvY3MvY29tcG9uZW50cy9jb250cmlidXRvcnMvZ2V0LWNvbnRyaWJ1dG9ycy5qcyIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvdXRpbHMvY3JlYXRlLW92ZXJ2aWV3LXRyZWUuanMiLCIvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL3V0aWxzL2Zvcm1hdC1zbHVnLmpzIiwiZXh0ZXJuYWwgY29tbW9uanMgXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2ludGVyb3BSZXF1aXJlRGVmYXVsdFwiIiwiZXh0ZXJuYWwgY29tbW9uanMgXCJjb25uZWN0LWd6aXAtc3RhdGljXCIiLCJleHRlcm5hbCBjb21tb25qcyBcImdoLWdvdFwiIiwiZXh0ZXJuYWwgbm9kZS1jb21tb25qcyBcInBhdGhcIiIsIndlYnBhY2svYm9vdHN0cmFwIiwid2VicGFjay9ydW50aW1lL2NvbXBhdCBnZXQgZGVmYXVsdCBleHBvcnQiLCJ3ZWJwYWNrL3J1bnRpbWUvZGVmaW5lIHByb3BlcnR5IGdldHRlcnMiLCJ3ZWJwYWNrL3J1bnRpbWUvaGFzT3duUHJvcGVydHkgc2hvcnRoYW5kIiwid2VicGFjay9ydW50aW1lL21ha2UgbmFtZXNwYWNlIG9iamVjdCIsIndlYnBhY2svcnVudGltZS9wdWJsaWNQYXRoIiwiIiwiZXh0ZXJuYWwgY29tbW9uanMgXCJtYXJrby9kaXN0L3J1bnRpbWUvaHRtbC9pbmRleC5qc1wiIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL25vZGVfbW9kdWxlcy9AbWFya28vYnVpbGQvZGlzdC9maWxlcy9wYXJlbnQtZGlyLnBuZyIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9ub2RlX21vZHVsZXMvQG1hcmtvL2J1aWxkL2Rpc3QvZmlsZXMvZGlyLnBuZyIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9ub2RlX21vZHVsZXMvQG1hcmtvL2J1aWxkL2Rpc3QvZmlsZXMvZmlsZS5wbmciLCJleHRlcm5hbCBjb21tb25qcyBcIm1hcmtvL2Rpc3QvcnVudGltZS9odG1sL2hlbHBlcnMvZXNjYXBlLXhtbC5qc1wiIiwiZXh0ZXJuYWwgY29tbW9uanMgXCJtYXJrby9kaXN0L3J1bnRpbWUvaHRtbC9oZWxwZXJzL2VzY2FwZS1xdW90ZXMuanNcIiIsImV4dGVybmFsIGNvbW1vbmpzIFwibWFya28vZGlzdC9ydW50aW1lL2hlbHBlcnMvb2YtZmFsbGJhY2suanNcIiIsImV4dGVybmFsIGNvbW1vbmpzIFwibWFya28vZGlzdC9ydW50aW1lL2h0bWwvaGVscGVycy9hdHRyLmpzXCIiLCJleHRlcm5hbCBjb21tb25qcyBcIm1hcmtvL2Rpc3QvY29yZS10YWdzL2NvbXBvbmVudHMvaW5pdC1jb21wb25lbnRzLXRhZy5qc1wiIiwiZXh0ZXJuYWwgY29tbW9uanMgXCJtYXJrby9kaXN0L3J1bnRpbWUvaGVscGVycy9yZW5kZXItdGFnLmpzXCIiLCJleHRlcm5hbCBjb21tb25qcyBcIm1hcmtvL2Rpc3QvY29yZS10YWdzL2NvcmUvYXdhaXQvcmVvcmRlcmVyLXJlbmRlcmVyLmpzXCIiLCJleHRlcm5hbCBjb21tb25qcyBcIm1hcmtvL2Rpc3QvY29yZS10YWdzL2NvbXBvbmVudHMvcHJlZmVycmVkLXNjcmlwdC1sb2NhdGlvbi10YWcuanNcIiIsImV4dGVybmFsIGNvbW1vbmpzIFwibWFya28vZGlzdC9ydW50aW1lL2NvbXBvbmVudHMvcmVuZGVyZXIuanNcIiIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9ub2RlX21vZHVsZXMvQG1hcmtvL2J1aWxkL2Rpc3QvZmlsZXMvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvbm9kZV9tb2R1bGVzL0BtYXJrby9idWlsZC9kaXN0L2ZpbGVzL2Rpci1pbmRleC5tYXJrbyIsIj9tYW5pZmVzdCIsImV4dGVybmFsIGNvbW1vbmpzIFwibWFya28vZGlzdC9jb3JlLXRhZ3MvY29yZS9fX2ZsdXNoX2hlcmVfYW5kX2FmdGVyX18uanNcIiIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvcGFnZXMvZG9jcy9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvcGFnZXMvZG9jcy9pbmRleC5tYXJrbyIsImV4dGVybmFsIGNvbW1vbmpzIFwiQG1hcmtvL3RhZ3MtYXBpLXByZXZpZXcvZGlzdC90cmFuc2Zvcm0vY2FjaGVkLXZhbHVlc1wiIiwiZXh0ZXJuYWwgY29tbW9uanMgXCJAbWFya28vdGFncy1hcGktcHJldmlldy9kaXN0L2NvbXBvbmVudHMvcmV0dXJuXCIiLCJleHRlcm5hbCBjb21tb25qcyBcImx6LXN0cmluZ1wiIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9wYWdlcy9wbGF5Z3JvdW5kL2NvbXBvbmVudHMvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL3BhZ2VzL3BsYXlncm91bmQvY29tcG9uZW50cy9oYXNoLXZhbHVlLm1hcmtvIiwiZXh0ZXJuYWwgY29tbW9uanMgXCJAbWFya28vdGFncy1hcGktcHJldmlldy9kaXN0L3V0aWwvcmVwbGFjZS1hc3NpZ25tZW50c1wiIiwiZXh0ZXJuYWwgY29tbW9uanMgXCJAbWFya28vdGFncy1hcGktcHJldmlldy9kaXN0L3RyYW5zZm9ybS9uYXRpdmUtdGFnLXZhclwiIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL25vZGVfbW9kdWxlcy9AbWFya28vdGFncy1hcGktcHJldmlldy9kaXN0L2NvbXBvbmVudHMvX2luc3RhbmNlL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL25vZGVfbW9kdWxlcy9AbWFya28vdGFncy1hcGktcHJldmlldy9kaXN0L2NvbXBvbmVudHMvX2luc3RhbmNlL2luZGV4Lm1hcmtvIiwiZXh0ZXJuYWwgY29tbW9uanMgXCJtYXJrby9kaXN0L3J1bnRpbWUvaGVscGVycy9jbGFzcy12YWx1ZS5qc1wiIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9jb21wb25lbnRzL3JlcGwvY29tcG9uZW50cy9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvY29tcG9uZW50cy9yZXBsL2NvbXBvbmVudHMvZmlsZS10YWJzLm1hcmtvIiwiZXh0ZXJuYWwgY29tbW9uanMgXCJtYXJrby9kaXN0L3J1bnRpbWUvaGVscGVycy9hdHRyLXRhZy5qc1wiIiwiZXh0ZXJuYWwgY29tbW9uanMgXCJtYXJrby9kaXN0L3J1bnRpbWUvaGVscGVycy9keW5hbWljLXRhZy5qc1wiIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9jb21wb25lbnRzL3JlcGwvY29tcG9uZW50cy9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvY29tcG9uZW50cy9yZXBsL2NvbXBvbmVudHMvcGFuZS5tYXJrbyIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvY29tcG9uZW50cy9yZXBsL2NvbXBvbmVudHMvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL2NvbXBvbmVudHMvcmVwbC9jb21wb25lbnRzL2NvbnRyb2xsYWJsZS1zZWxlY3QubWFya28iLCJleHRlcm5hbCBjb21tb25qcyBcIkBtYXJrby90YWdzLWFwaS1wcmV2aWV3L2Rpc3QvdHJhbnNsYXRlL25hdGl2ZS10YWctaGFuZGxlcnNcIiIsImV4dGVybmFsIGNvbW1vbmpzIFwibWFya28vZGlzdC9ydW50aW1lL2h0bWwvaGVscGVycy9kYXRhLW1hcmtvLmpzXCIiLCJleHRlcm5hbCBjb21tb25qcyBcIm1hcmtvL2Rpc3QvcnVudGltZS9odG1sL2hlbHBlcnMvYXR0cnMuanNcIiIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvY29tcG9uZW50cy9yZXBsL2NvbXBvbmVudHMvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL2NvbXBvbmVudHMvcmVwbC9jb21wb25lbnRzL3BsYXlncm91bmQtbGluay5tYXJrbyIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvY29tcG9uZW50cy9yZXBsL2NvbXBvbmVudHMvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL2NvbXBvbmVudHMvcmVwbC9jb21wb25lbnRzL21hdGNoLW1lZGlhLm1hcmtvIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9jb21wb25lbnRzL3JlcGwvY29tcG9uZW50cy9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvY29tcG9uZW50cy9yZXBsL2NvbXBvbmVudHMvcmVzaXphYmxlLXBhbmVzLm1hcmtvIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9jb21wb25lbnRzL3JlcGwvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL2NvbXBvbmVudHMvcmVwbC9pbmRleC5tYXJrbyIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvcGFnZXMvcGxheWdyb3VuZC9jb21wb25lbnRzL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9wYWdlcy9wbGF5Z3JvdW5kL2NvbXBvbmVudHMvcGxheWdyb3VuZC5tYXJrbyIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvY29tcG9uZW50cy9hcHAtbGF5b3V0L2Zhdmljb24ucG5nIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9jb21wb25lbnRzL2FwcC1sYXlvdXQvY29tcG9uZW50cy9za2lwLWxpbmsvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL2NvbXBvbmVudHMvYXBwLWxheW91dC9jb21wb25lbnRzL3NraXAtbGluay9pbmRleC5tYXJrbyIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvbG9nb3MvbWFya28uc3ZnIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9sb2dvcy9tYXJrby11d3UucG5nIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9jb21wb25lbnRzL2FwcC1sYXlvdXQvY29tcG9uZW50cy9sYXlvdXQtc2VhcmNoL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9jb21wb25lbnRzL2FwcC1sYXlvdXQvY29tcG9uZW50cy9sYXlvdXQtc2VhcmNoL2luZGV4Lm1hcmtvIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9jb21wb25lbnRzL2FwcC1sYXlvdXQvY29tcG9uZW50cy9sYXlvdXQtaGVhZGVyL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9jb21wb25lbnRzL2FwcC1sYXlvdXQvY29tcG9uZW50cy9sYXlvdXQtaGVhZGVyL2luZGV4Lm1hcmtvIiwiZXh0ZXJuYWwgY29tbW9uanMgXCJtYXJrby9kb2NzL3N0cnVjdHVyZS5qc29uXCIiLCJleHRlcm5hbCBjb21tb25qcyBcIm1hcmtvL2Rpc3QvcnVudGltZS9oZWxwZXJzL3RvLXN0cmluZy5qc1wiIiwiZXh0ZXJuYWwgY29tbW9uanMgXCJtYXJrby9wYWNrYWdlLmpzb25cIiIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvY29tcG9uZW50cy9hcHAtbGF5b3V0L2NvbXBvbmVudHMvbGF5b3V0LXNpZGViYXIvY29tcG9uZW50cy92ZXJzaW9uLXN3aXRjaGVyL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9jb21wb25lbnRzL2FwcC1sYXlvdXQvY29tcG9uZW50cy9sYXlvdXQtc2lkZWJhci9jb21wb25lbnRzL3ZlcnNpb24tc3dpdGNoZXIvaW5kZXgubWFya28iLCIvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL2NvbXBvbmVudHMvYXBwLWxheW91dC9jb21wb25lbnRzL2xheW91dC1zaWRlYmFyL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9jb21wb25lbnRzL2FwcC1sYXlvdXQvY29tcG9uZW50cy9sYXlvdXQtc2lkZWJhci9pbmRleC5tYXJrbyIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvY29tcG9uZW50cy9hcHAtZm9vdGVyL29wZW5qc2Yuc3ZnIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9jb21wb25lbnRzL2FwcC1mb290ZXIvb3NpLnN2ZyIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvY29tcG9uZW50cy9hcHAtZm9vdGVyL2ViYXkuc3ZnIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9jb21wb25lbnRzL2FwcC1mb290ZXIvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL2NvbXBvbmVudHMvYXBwLWZvb3Rlci9pbmRleC5tYXJrbyIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvY29tcG9uZW50cy9hcHAtbGF5b3V0L2NvbXBvbmVudHMvZ29vZ2xlLWFuYWx5dGljcy9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvY29tcG9uZW50cy9hcHAtbGF5b3V0L2NvbXBvbmVudHMvZ29vZ2xlLWFuYWx5dGljcy9pbmRleC5tYXJrbyIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvbG9nb3MvZGlzY29yZC5zdmciLCIvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL2NvbXBvbmVudHMvZGlzY29yZC1saW5rL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9jb21wb25lbnRzL2Rpc2NvcmQtbGluay9pbmRleC5tYXJrbyIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvY29tcG9uZW50cy9hcHAtbGF5b3V0L1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9jb21wb25lbnRzL2FwcC1sYXlvdXQvaW5kZXgubWFya28iLCIvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL3BhZ2VzL3BsYXlncm91bmQvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL3BhZ2VzL3BsYXlncm91bmQvaW5kZXgubWFya28iLCIvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL3BhZ2VzL3RyeS1vbmxpbmUtbmV3L1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9wYWdlcy90cnktb25saW5lLW5ldy9pbmRleC5tYXJrbyIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9ub2RlX21vZHVsZXMvQG1hcmtvLXRhZ3Mvc3Vic2NyaWJlL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL25vZGVfbW9kdWxlcy9AbWFya28tdGFncy9zdWJzY3JpYmUvaW5kZXgubWFya28iLCIvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL3BhZ2VzL3RyeS1vbmxpbmUvY29tcG9uZW50cy9sb2FkZXIvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL3BhZ2VzL3RyeS1vbmxpbmUvY29tcG9uZW50cy9sb2FkZXIvaW5kZXgubWFya28iLCIvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL3BhZ2VzL3RyeS1vbmxpbmUvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL3BhZ2VzL3RyeS1vbmxpbmUvaW5kZXgubWFya28iLCIvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL3BhZ2VzL2luZGV4L2NvbXBvbmVudHMvaG9tZS1oZXJvL21hcmtvLXRleHQuc3ZnIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9sb2dvcy9naXRodWIuc3ZnIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9wYWdlcy9pbmRleC9jb21wb25lbnRzL2hvbWUtaGVyby9jb21wb25lbnRzL2dpdGh1Yi1saW5rL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9wYWdlcy9pbmRleC9jb21wb25lbnRzL2hvbWUtaGVyby9jb21wb25lbnRzL2dpdGh1Yi1saW5rL2luZGV4Lm1hcmtvIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9wYWdlcy9pbmRleC9jb21wb25lbnRzL2hvbWUtaGVyby9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvcGFnZXMvaW5kZXgvY29tcG9uZW50cy9ob21lLWhlcm8vaW5kZXgubWFya28iLCIvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL3BhZ2VzL2luZGV4L2NvbXBvbmVudHMvaG9tZS1mZWF0dXJlcy9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvcGFnZXMvaW5kZXgvY29tcG9uZW50cy9ob21lLWZlYXR1cmVzL2luZGV4Lm1hcmtvIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9wYWdlcy9pbmRleC9jb21wb25lbnRzL2hvbWUtbGFuZ3VhZ2UvY29tcG9uZW50cy9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvcGFnZXMvaW5kZXgvY29tcG9uZW50cy9ob21lLWxhbmd1YWdlL2NvbXBvbmVudHMvY291bnRlci10YWdzLm1hcmtvIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9wYWdlcy9pbmRleC9jb21wb25lbnRzL2hvbWUtbGFuZ3VhZ2UvY29tcG9uZW50cy9jb3VudGVyLWV4YW1wbGUvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL3BhZ2VzL2luZGV4L2NvbXBvbmVudHMvaG9tZS1sYW5ndWFnZS9jb21wb25lbnRzL2NvdW50ZXItZXhhbXBsZS9pbmRleC5tYXJrbyIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvY29tcG9uZW50cy9oZWFkaW5nL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9jb21wb25lbnRzL2hlYWRpbmcvaW5kZXgubWFya28iLCIvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL3BhZ2VzL2luZGV4L2NvbXBvbmVudHMvaG9tZS1mZWF0dXJlLWJsb2NrL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9wYWdlcy9pbmRleC9jb21wb25lbnRzL2hvbWUtZmVhdHVyZS1ibG9jay9pbmRleC5tYXJrbyIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvcGFnZXMvaW5kZXgvY29tcG9uZW50cy9ob21lLWxhbmd1YWdlL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9wYWdlcy9pbmRleC9jb21wb25lbnRzL2hvbWUtbGFuZ3VhZ2UvaW5kZXgubWFya28iLCIvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL3BhZ2VzL2luZGV4L2NvbXBvbmVudHMvaG9tZS1kZW1vLXBhZ2UvcHJvZHVjdC5wbmciLCIvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL3BhZ2VzL2luZGV4L2NvbXBvbmVudHMvaG9tZS1kZW1vLXBhZ2UveC5zdmciLCJleHRlcm5hbCBjb21tb25qcyBcIm1hcmtvL2Rpc3QvcnVudGltZS9oZWxwZXJzL3N0eWxlLXZhbHVlLmpzXCIiLCIvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL3BhZ2VzL2luZGV4L2NvbXBvbmVudHMvaG9tZS1kZW1vLXBhZ2UvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL3BhZ2VzL2luZGV4L2NvbXBvbmVudHMvaG9tZS1kZW1vLXBhZ2UvaW5kZXgubWFya28iLCIvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL3BhZ2VzL2luZGV4L2NvbXBvbmVudHMvaG9tZS1zdHJlYW1pbmcvY29tcG9uZW50cy9zY3JvbGwtbG9ja2VkLXN0cmVhbS1leGFtcGxlL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9wYWdlcy9pbmRleC9jb21wb25lbnRzL2hvbWUtc3RyZWFtaW5nL2NvbXBvbmVudHMvc2Nyb2xsLWxvY2tlZC1zdHJlYW0tZXhhbXBsZS9pbmRleC5tYXJrbyIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvcGFnZXMvaW5kZXgvY29tcG9uZW50cy9ob21lLXN0cmVhbWluZy9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvcGFnZXMvaW5kZXgvY29tcG9uZW50cy9ob21lLXN0cmVhbWluZy9pbmRleC5tYXJrbyIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvcGFnZXMvaW5kZXgvY29tcG9uZW50cy9ob21lLWh5ZHJhdGlvbi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvcGFnZXMvaW5kZXgvY29tcG9uZW50cy9ob21lLWh5ZHJhdGlvbi9pbmRleC5tYXJrbyIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvcGFnZXMvaW5kZXgvY29tcG9uZW50cy9ob21lLXBlcmZvcm1hbmNlL2Fycm93LnN2ZyIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvcGFnZXMvaW5kZXgvY29tcG9uZW50cy9ob21lLXBlcmZvcm1hbmNlL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9wYWdlcy9pbmRleC9jb21wb25lbnRzL2hvbWUtcGVyZm9ybWFuY2UvaW5kZXgubWFya28iLCIvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL3BhZ2VzL2luZGV4L2NvbXBvbmVudHMvaG9tZS10b29saW5nL3NjcmVlbi5wbmciLCIvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL3BhZ2VzL2luZGV4L2NvbXBvbmVudHMvaG9tZS10b29saW5nL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9wYWdlcy9pbmRleC9jb21wb25lbnRzL2hvbWUtdG9vbGluZy9pbmRleC5tYXJrbyIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvbG9nb3Mvc3RhY2tvdmVyZmxvdy5zdmciLCIvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL2xvZ29zL3R3aXR0ZXIuc3ZnIiwiZXh0ZXJuYWwgY29tbW9uanMgXCJtYXJrby9kaXN0L2NvcmUtdGFncy9jb3JlL2F3YWl0L3JlbmRlcmVyLmpzXCIiLCIvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL3BhZ2VzL2luZGV4L2NvbXBvbmVudHMvaG9tZS1jb21tdW5pdHkvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL3BhZ2VzL2luZGV4L2NvbXBvbmVudHMvaG9tZS1jb21tdW5pdHkvaW5kZXgubWFya28iLCIvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL3BhZ2VzL2luZGV4L1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9wYWdlcy9pbmRleC9pbmRleC5tYXJrbyIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvcGFnZXMvdjYvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL3BhZ2VzL3Y2L2luZGV4Lm1hcmtvIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9jb21wb25lbnRzL2NvZGUtYmxvY2stbWFya28vVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL2NvbXBvbmVudHMvY29kZS1ibG9jay1tYXJrby9pbmRleC5tYXJrbyIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvdXRpbHMvdG9jLXJlZ2lzdHJ5LmpzIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL2V4YW1wbGVzL2V4YW1wbGVzL2NvbG9yLXBpY2tlci9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9leGFtcGxlcy9leGFtcGxlcy9jb2xvci1waWNrZXIvUkVBRE1FLm1kIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL25vZGVfbW9kdWxlcy9tYXJrby9kb2NzL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL25vZGVfbW9kdWxlcy9tYXJrby9kb2NzLzEwLWF3ZXNvbWUtbWFya28tZmVhdHVyZXMubWQiLCIvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvbm9kZV9tb2R1bGVzL21hcmtvL2RvY3MvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvbm9kZV9tb2R1bGVzL21hcmtvL2RvY3MvYm9keS1jb250ZW50Lm1kIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL25vZGVfbW9kdWxlcy9tYXJrby9kb2NzL2NvbXBvbmVudC1kaWFncmFtLnN2ZyIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9ub2RlX21vZHVsZXMvbWFya28vZG9jcy9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9ub2RlX21vZHVsZXMvbWFya28vZG9jcy9jbGFzcy1jb21wb25lbnRzLm1kIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL25vZGVfbW9kdWxlcy9tYXJrby9kb2NzL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL25vZGVfbW9kdWxlcy9tYXJrby9kb2NzL2Nsb3VkZmxhcmUtd29ya2Vycy5tZCIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9ub2RlX21vZHVsZXMvbWFya28vZG9jcy9jb21waWxlci1ob29rcy5wbmciLCIvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvbm9kZV9tb2R1bGVzL21hcmtvL2RvY3MvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvbm9kZV9tb2R1bGVzL21hcmtvL2RvY3MvY29tcGlsZXIubWQiLCIvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvbm9kZV9tb2R1bGVzL21hcmtvL2RvY3MvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvbm9kZV9tb2R1bGVzL21hcmtvL2RvY3MvY29uY2lzZS5tZCIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9ub2RlX21vZHVsZXMvbWFya28vZG9jcy9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9ub2RlX21vZHVsZXMvbWFya28vZG9jcy9jb25kaXRpb25hbHMtYW5kLWxpc3RzLm1kIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL25vZGVfbW9kdWxlcy9tYXJrby9kb2NzL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL25vZGVfbW9kdWxlcy9tYXJrby9kb2NzL2NvcmUtdGFncy5tZCIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9ub2RlX21vZHVsZXMvbWFya28vZG9jcy9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9ub2RlX21vZHVsZXMvbWFya28vZG9jcy9jdXN0b20tdGFncy5tZCIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9ub2RlX21vZHVsZXMvbWFya28vZG9jcy9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9ub2RlX21vZHVsZXMvbWFya28vZG9jcy9lZGl0b3ItcGx1Z2lucy5tZCIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9ub2RlX21vZHVsZXMvbWFya28vZG9jcy9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9ub2RlX21vZHVsZXMvbWFya28vZG9jcy9ldmVudHMubWQiLCIvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvbm9kZV9tb2R1bGVzL21hcmtvL2RvY3MvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvbm9kZV9tb2R1bGVzL21hcmtvL2RvY3MvZXhwcmVzcy5tZCIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9ub2RlX21vZHVsZXMvbWFya28vZG9jcy9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9ub2RlX21vZHVsZXMvbWFya28vZG9jcy9mYXN0aWZ5Lm1kIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL25vZGVfbW9kdWxlcy9tYXJrby9kb2NzL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL25vZGVfbW9kdWxlcy9tYXJrby9kb2NzL2dldHRpbmctc3RhcnRlZC5tZCIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9ub2RlX21vZHVsZXMvbWFya28vZG9jcy9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9ub2RlX21vZHVsZXMvbWFya28vZG9jcy9odHRwLm1kIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL25vZGVfbW9kdWxlcy9tYXJrby9kb2NzL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL25vZGVfbW9kdWxlcy9tYXJrby9kb2NzL2luc3RhbGxpbmcubWQiLCIvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvbm9kZV9tb2R1bGVzL21hcmtvL2RvY3MvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvbm9kZV9tb2R1bGVzL21hcmtvL2RvY3Mva29hLm1kIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL25vZGVfbW9kdWxlcy9tYXJrby9kb2NzL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL25vZGVfbW9kdWxlcy9tYXJrby9kb2NzL2xhc3NvLm1kIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL25vZGVfbW9kdWxlcy9tYXJrby9kb2NzL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL25vZGVfbW9kdWxlcy9tYXJrby9kb2NzL21hcmtvLTUtdXBncmFkZS5tZCIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9ub2RlX21vZHVsZXMvbWFya28vZG9jcy9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9ub2RlX21vZHVsZXMvbWFya28vZG9jcy9tYXJrby1qc29uLm1kIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL25vZGVfbW9kdWxlcy9tYXJrby9kb2NzL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL25vZGVfbW9kdWxlcy9tYXJrby9kb2NzL21hcmtvLXZzLXJlYWN0Lm1kIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL25vZGVfbW9kdWxlcy9tYXJrby9kb2NzL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL25vZGVfbW9kdWxlcy9tYXJrby9kb2NzL3JlZHV4Lm1kIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL25vZGVfbW9kdWxlcy9tYXJrby9kb2NzL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL25vZGVfbW9kdWxlcy9tYXJrby9kb2NzL3JlbmRlcmluZy5tZCIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9ub2RlX21vZHVsZXMvbWFya28vZG9jcy9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9ub2RlX21vZHVsZXMvbWFya28vZG9jcy9yb2xsdXAubWQiLCIvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvbm9kZV9tb2R1bGVzL21hcmtvL2RvY3MvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvbm9kZV9tb2R1bGVzL21hcmtvL2RvY3Mvc3RhdGUubWQiLCIvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvbm9kZV9tb2R1bGVzL21hcmtvL2RvY3MvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvbm9kZV9tb2R1bGVzL21hcmtvL2RvY3Mvc3R5bGVzLm1kIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL25vZGVfbW9kdWxlcy9tYXJrby9kb2NzL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL25vZGVfbW9kdWxlcy9tYXJrby9kb2NzL3N5bnRheC5tZCIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9ub2RlX21vZHVsZXMvbWFya28vZG9jcy9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9ub2RlX21vZHVsZXMvbWFya28vZG9jcy90cm91Ymxlc2hvb3Rpbmctc3RyZWFtaW5nLm1kIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL25vZGVfbW9kdWxlcy9tYXJrby9kb2NzL2ljb25zL21hcmtvLnN2ZyIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9ub2RlX21vZHVsZXMvbWFya28vZG9jcy9pY29ucy90cy5zdmciLCIvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvbm9kZV9tb2R1bGVzL21hcmtvL2RvY3MvaWNvbnMvanMuc3ZnIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL25vZGVfbW9kdWxlcy9tYXJrby9kb2NzL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL25vZGVfbW9kdWxlcy9tYXJrby9kb2NzL3R5cGVzY3JpcHQubWQiLCIvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvbm9kZV9tb2R1bGVzL21hcmtvL2RvY3MvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvbm9kZV9tb2R1bGVzL21hcmtvL2RvY3Mvdml0ZS5tZCIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9ub2RlX21vZHVsZXMvbWFya28vZG9jcy9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9ub2RlX21vZHVsZXMvbWFya28vZG9jcy93ZWJwYWNrLm1kIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL25vZGVfbW9kdWxlcy9tYXJrby9kb2NzL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL25vZGVfbW9kdWxlcy9tYXJrby9kb2NzL3doeS1pcy1tYXJrby1mYXN0Lm1kIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9wYWdlcy9kb2NzLzpuYW1lL2RvY3VtZW50LWxvb2t1cC5qcyIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvcGFnZXMvZG9jcy9jb21wb25lbnRzL2VkaXQtb24tZ2l0aHViL2dpdGh1Yi5zdmciLCIvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL3BhZ2VzL2RvY3MvY29tcG9uZW50cy9lZGl0LW9uLWdpdGh1Yi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvcGFnZXMvZG9jcy9jb21wb25lbnRzL2VkaXQtb24tZ2l0aHViL2luZGV4Lm1hcmtvIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9wYWdlcy9kb2NzL2NvbXBvbmVudHMvY29udHJpYnV0b3JzL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9wYWdlcy9kb2NzL2NvbXBvbmVudHMvY29udHJpYnV0b3JzL2luZGV4Lm1hcmtvIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9wYWdlcy9kb2NzL2NvbXBvbmVudHMvZG9jdW1lbnQtb3ZlcnZpZXcvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL3BhZ2VzL2RvY3MvY29tcG9uZW50cy9kb2N1bWVudC1vdmVydmlldy9pbmRleC5tYXJrbyIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvcGFnZXMvZG9jcy86bmFtZS9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvcGFnZXMvZG9jcy86bmFtZS9pbmRleC5tYXJrbyIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvcGFnZXMvZG9jcy92Ni9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvcGFnZXMvZG9jcy92Ni9pbmRleC5tYXJrbyIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvcGFnZXMvcGxheWdyb3VuZC92Ni9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvcGFnZXMvcGxheWdyb3VuZC92Ni9pbmRleC5tYXJrbyIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvcGFnZXMvdjYvZG9jcy9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvcGFnZXMvdjYvZG9jcy9pbmRleC5tYXJrbyIsImV4dGVybmFsIGNvbW1vbmpzIFwiQG1hcmtvL3RyYW5zbGF0b3ItdGFnc1wiIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9wYWdlcy92Ni9wbGF5Z3JvdW5kL2NvbXBvbmVudHMvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL3BhZ2VzL3Y2L3BsYXlncm91bmQvY29tcG9uZW50cy9wbGF5Z3JvdW5kLTYubWFya28iLCIvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL3BhZ2VzL3Y2L3BsYXlncm91bmQvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL3BhZ2VzL3Y2L3BsYXlncm91bmQvaW5kZXgubWFya28iLCIvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL3BhZ2VzL3Y2L3R1dG9yaWFscy90dXRvcmlhbHMuanMiLCIvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL3BhZ2VzL3Y2L3R1dG9yaWFscy9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvcGFnZXMvdjYvdHV0b3JpYWxzL2luZGV4Lm1hcmtvIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9wYWdlcy9kb2NzL3Y2LzpuYW1lL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9wYWdlcy9kb2NzL3Y2LzpuYW1lL2luZGV4Lm1hcmtvIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9wYWdlcy92Ni9kb2NzL21hcmtkb3duL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9wYWdlcy92Ni9kb2NzL21hcmtkb3duL2NvbXBvbmVudHMubWQiLCIvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL3BhZ2VzL3Y2L2RvY3MvbWFya2Rvd24vVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL3BhZ2VzL3Y2L2RvY3MvbWFya2Rvd24vY29uZGl0aW9uYWxzLm1kIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9wYWdlcy92Ni9kb2NzL21hcmtkb3duL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9wYWdlcy92Ni9kb2NzL21hcmtkb3duL2V2ZW50cy5tZCIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvcGFnZXMvdjYvZG9jcy9tYXJrZG93bi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvcGFnZXMvdjYvZG9jcy9tYXJrZG93bi9qYXZhc2NyaXB0Lm1kIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9wYWdlcy92Ni9kb2NzL21hcmtkb3duL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9wYWdlcy92Ni9kb2NzL21hcmtkb3duL2xhbmd1YWdlLm1kIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9wYWdlcy92Ni9kb2NzL21hcmtkb3duL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9wYWdlcy92Ni9kb2NzL21hcmtkb3duL2xpc3RzLm1kIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9wYWdlcy92Ni9kb2NzL21hcmtkb3duL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9wYWdlcy92Ni9kb2NzL21hcmtkb3duL3NldHVwLm1kIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9wYWdlcy92Ni9kb2NzL21hcmtkb3duL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9wYWdlcy92Ni9kb2NzL21hcmtkb3duL3N0YXRlLm1kIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9wYWdlcy92Ni9kb2NzL21hcmtkb3duL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9wYWdlcy92Ni9kb2NzL21hcmtkb3duL3N0eWxlcy5tZCIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvcGFnZXMvdjYvZG9jcy86bmFtZS9kb2N1bWVudC1sb29rdXAuanMiLCIvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL3BhZ2VzL3Y2L2RvY3MvOm5hbWUvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL3BhZ2VzL3Y2L2RvY3MvOm5hbWUvaW5kZXgubWFya28iLCIvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL3BhZ2VzL3Y2L2V4YW1wbGVzL1tuYW1lXS9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvcGFnZXMvdjYvZXhhbXBsZXMvW25hbWVdL2luZGV4Lm1hcmtvIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9wYWdlcy92Ni90dXRvcmlhbHMvOm5hbWUvY29tcG9uZW50cy9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvcGFnZXMvdjYvdHV0b3JpYWxzLzpuYW1lL2NvbXBvbmVudHMvdHV0b3JpYWwubWFya28iLCIvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL3BhZ2VzL3Y2L3R1dG9yaWFscy86bmFtZS9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvcGFnZXMvdjYvdHV0b3JpYWxzLzpuYW1lL2luZGV4Lm1hcmtvIiwid2VicGFjazovLy8/ODUzZiIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9ub2RlX21vZHVsZXMvQG1hcmtvL2J1aWxkL2Rpc3QvZmlsZXMvbWlkZGxld2FyZS5qcyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ== \ No newline at end of file +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWlkZGxld2FyZS5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFJQTtBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7Ozs7QUNkQTtBQUVBO0FBQ0E7QUFFQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBRUE7QUFFQTtBQUNBO0FBR0E7QUFDQTtBQUdBO0FBQ0E7Ozs7Ozs7QUNsQ0E7QUFRQTtBQUNBO0FBRUE7QUFDQTtBQUVBO0FBQ0E7QUFHQTtBQUNBO0FBR0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBOzs7Ozs7O0FDekNBO0FBQ0E7QUFJQTs7Ozs7Ozs7QUNMQTs7Ozs7Ozs7QUNBQTs7Ozs7Ozs7QUNBQTs7Ozs7Ozs7QUNBQTs7Ozs7O0FDQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7O0FDdkJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7O0FDUEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7QUNQQTs7Ozs7QUNBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7QUNOQTs7Ozs7OztBQ0FBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ0hBOztBQ0FBOztBQ0FBOztBQ0FBOztBQ0FBOztBQ0FBOztBQ0FBOzs7QUNBQTs7O0FDQUE7OztBQ0FBOzs7QUNBQTs7O0FDQUE7OztBQ0FBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNxRUE7QUFBQTtBQUFBO0FBQUE7QUFTQTtBQUFBO0FBQUE7QUFBQTtBQUdBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBS0E7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUFBO0FBSUE7QUFBQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBS0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUNoSEE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBOztBQ0FBOzs7Ozs7O0FGQUE7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQ0E7QUFHQTtBQUFBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFFQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTs7Ozs7Ozs7O0FHNURBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUNBO0FBR0E7QUFBQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBRUE7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7O0FDNURBOztBQ0FBOztBQ0FBOztBQ0FBOzs7QUNBQTs7Ozs7Ozs7Ozs7O0FDQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7Ozs7Ozs7Ozs7Ozs7OztBQ0FBO0FBc0JBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7Ozs7Ozs7O0FDdEJBO0FBQUE7QUFBQTtBQUFBO0FBQUE7O0FDQUE7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBQTtBQUNBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7Ozs7QUNBQTtBQUNBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUFBOzs7OztBQ1JBOzs7Ozs7O0FDQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQ0E7QUFDQTtBQW1DQTtBQUFBO0FBQUE7QUFDQTtBQUdBO0FBQ0E7QUFBQTtBQUdBO0FBQUE7QUFGQTtBQUlBO0FBQUE7QUFBQTtBQUFBOztBQ2pEQTs7Ozs7Ozs7Ozs7Ozs7OztBQ0FBO0FBR0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFBQTtBQUlBO0FBQUE7QUFFQTtBQUNBO0FBQUE7QUFLQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7Ozs7Ozs7Ozs7Ozs7QUNuQkE7QUFBQTtBQUFBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBSUE7QUFDQTtBQUNBO0FBR0E7QUFBQTtBQUFBO0FBb0JBO0FBK0JBO0FBQUE7QUFBQTtBQWpDQTtBQUFBO0FBQUE7QUFBQTtBQTlCQTtBQWlGQTtBQUFBO0FBQUE7QUFBQTs7QUNqRkE7O0FDQUE7O0FDQUE7Ozs7Ozs7Ozs7Ozs7Ozs7QUN3TkE7QUFFQTtBQUNBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBQ0E7QUFBQTtBQU9BO0FBQUE7QUFTQTtBQUFBO0FBU0E7QUFBQTtBQVFBO0FBQ0E7QUFBQTtBQU9BO0FBQUE7QUFGQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7Ozs7Ozs7QUMzUUE7QUFDQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQWVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBSUE7QUFDQTtBQUFBO0FBQUE7QUFHQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Ozs7Ozs7Ozs7Ozs7QUNqREE7QUFBQTtBQUFBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBR0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFSQTtBQUFBO0FBU0E7QUFBQTtBQUFBO0FBQUE7Ozs7Ozs7Ozs7Ozs7QUNUQTtBQUFBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFHQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBVEE7QUFBQTtBQVVBO0FBQUE7QUFBQTtBQUFBOztBQ1ZBOzs7Ozs7Ozs7Ozs7OztBQ0FBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUdBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUEyREE7QUFBQTtBQUFBO0FBQUE7QUFqRUE7QUFrRUE7QUFBQTtBQUFBO0FBQUE7O0FDbEVBOzs7Ozs7Ozs7Ozs7OztBQ0FBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVdBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVNBO0FBQUE7QUFBQTtBQUFBO0FBeEJBO0FBQUE7QUF5QkE7QUFBQTtBQUFBO0FBQUE7Ozs7O0FDekJBOztBQ0FBOztBQ0FBOztBQ0FBOzs7Ozs7O0FDQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFHQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBNEJBO0FBQ0E7QUFBQTtBQUFBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBSEE7QUFBQTtBQVNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUE1Q0E7QUErQ0E7QUFBQTtBQUFBO0FBQUE7O0FDakRBOzs7Ozs7Ozs7O0FDQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7Ozs7Ozs7OztBQ0FBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Ozs7Ozs7Ozs7Ozs7OztBQ0FBO0FBZ0JBO0FBQ0E7QUFBQTtBQVdBO0FBQUE7QUFPQTtBQUdBO0FBQUE7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7O0FDeENBOzs7Ozs7Ozs7OztBQ0FBOzs7QUNBQTs7Ozs7O0FDQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBR0E7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUdBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7QUNSQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBRUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUVBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBRUE7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUlBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBR0E7QUFBQTtBQUZBO0FBSUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFPQTtBQUFBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7O0FDdkVBOztBQ0FBOztBQ0FBOzs7Ozs7Ozs7Ozs7OztBQ0FBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Ozs7Ozs7Ozs7QUNBQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQ0E7QUFBQTtBQVNBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7Ozs7OztBQ2dDQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7QUM1Q0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBT0E7QUFDQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBMEJBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFBQTtBQU9BO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQUE7QUFFQTtBQUNBO0FBQUE7QUFHQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUM1REE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFBQTs7Ozs7O0FBVEE7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQ0E7QUFHQTtBQUFBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFFQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUM1REE7O0FDQUE7OztBQ0FBOzs7Ozs7QUNBQTtBQUVBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFzQkE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUNuQ0E7OztBQ0FBOzs7Ozs7Ozs7QUNDQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNQQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQ0E7QUFJQTtBQUFBO0FBQUE7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBRUE7QUFBQTtBQUFBO0FBUUE7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUdBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBS0E7QUFBQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFlQTtBQUNBO0FBQUE7QUFXQTtBQUFBO0FBQUE7QUFBQTtBQUdBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7Ozs7Ozs7OztBQ2pFQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBRUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNSQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUNGQTs7O0FDQUE7Ozs7Ozs7QUNBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUZBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7QUNIQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFBQTtBQVVBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ1hBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQVVBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFBQTtBQUdBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFvQkE7QUFBQTtBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQzFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFVQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFLQTtBQUFBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBT0E7QUFBQTtBQUFBO0FBQUE7QUFHQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQUE7QUFDQTtBQUVBO0FBQ0E7QUFBQTtBQUNBO0FBTEE7QUFNQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBWUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBS0E7QUFBQTtBQUFBO0FBRUE7QUFBQTtBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNoRkE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUpBO0FBS0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Ozs7Ozs7Ozs7OztBQ0xBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFHQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7QUFKQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBS0E7QUFDQTtBQUdBO0FBQUE7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUVBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7Ozs7QUM1REE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQ0E7QUFHQTtBQUFBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFFQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTs7Ozs7Ozs7QUMzREE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7Ozs7OztBQ3pCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFHQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFHQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFIQTtBQWdCQTtBQUFBO0FBRkE7QUFBQTtBQUFBOzs7Ozs7Ozs7Ozs7QUNwQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7QUFGQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBS0E7QUFDQTtBQUdBO0FBQUE7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUVBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7QUM1REE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Ozs7OztBQUZBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUNBO0FBR0E7QUFBQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBRUE7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Ozs7Ozs7Ozs7O0FDNURBO0FBQUE7QUFDQTtBQURBO0FBQUE7QUFBQTtBQUFBOztBQ0FBOzs7Ozs7QURBQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBS0E7QUFDQTtBQUdBO0FBQUE7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUVBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7QUU1REE7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUF3Q0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFpREE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQWdCQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBWUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVdBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFlQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBd0JBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Ozs7OztBQ2hMQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQWFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBU0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBS0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBVUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7Ozs7O0FDcEZBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBY0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUdBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFTQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFHQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBS0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFpQkE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBOztBQzdEQTs7Ozs7O0FDQUE7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBb0JBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBR0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVdBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFtQkE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVdBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFXQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBU0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVdBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFHQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1BO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBV0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUdBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBUUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBdUdBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUF3TUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQXNCQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7Ozs7O0FDN2RBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7O0FDSkE7Ozs7OztBQ0FBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQXNHQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBbUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Ozs7OztBQzdJQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFRQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQWFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFHQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBR0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUdBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFHQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Ozs7OztBQ3JDQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUdBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7QUNwQkE7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFHQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFVQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQXVDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBR0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Ozs7OztBQ3JHQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFHQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBR0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUdBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFHQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBNkJBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFPQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Ozs7OztBQ3hEQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7QUNKQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBR0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7QUNsQ0E7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7Ozs7O0FDSkE7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFZQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7QUNoQkE7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFZQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBR0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFHQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Ozs7OztBQzNCQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7QUNKQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7QUNKQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7QUNKQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQW1CQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7QUN2QkE7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7Ozs7O0FDSkE7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7Ozs7O0FDSkE7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUE4QkE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQTZJQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBUUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQWdCQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBUUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUdBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQWFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBR0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQTBCQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUdBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFZQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7QUM3UkE7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7QUNUQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUEySkE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7Ozs7O0FDektBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBZ0RBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7QUMxREE7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBR0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFpQkE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7Ozs7O0FDN0JBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7QUNOQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFRQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVdBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUdBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBS0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFTQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQWNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBU0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFRQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1BO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBR0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBT0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFPQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7Ozs7O0FDM0tBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7O0FDSkE7O0FDQUE7O0FDQUE7Ozs7OztBQ0FBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFvQkE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBR0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBZ0VBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFHQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBR0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBR0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7QUNoSkE7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7Ozs7O0FDSkE7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFXQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7QUNmQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQXdDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBV0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQWdCQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBWUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQXFCQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ3hHQTtBQUNBO0FBRUE7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUdBO0FBQ0E7QUFFQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBRUE7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7O0FDN0VBOzs7Ozs7Ozs7Ozs7QUNBQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7Ozs7QUNBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBMENBO0FBQUE7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBY0E7QUFDQTtBQUFBO0FBS0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUF0QkE7QUFBQTtBQThCQTtBQUFBO0FBQUE7QUFBQTs7Ozs7O0FDMUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUNBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUdBO0FBQUE7QUFGQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBT0E7QUFBQTtBQUFBO0FBQUE7Ozs7OztBQ25CQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFDQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBR0E7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7QUF0QkE7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQ0E7QUFHQTtBQUFBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFFQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTs7Ozs7Ozs7O0FDNURBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUNBO0FBR0E7QUFBQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBRUE7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Ozs7Ozs7OztBQzVEQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBS0E7QUFDQTtBQUdBO0FBQUE7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUVBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBOztBQzVEQTs7Ozs7O0FDQUE7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQUE7QUFFQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFQQTtBQVFBO0FBQUE7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUFBOzs7Ozs7Ozs7Ozs7QUNuQkE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFBQTtBQUFBO0FBR0E7QUFBQTtBQUFBO0FBQUE7QUFBQTs7Ozs7O0FBSkE7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQ0E7QUFHQTtBQUFBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFFQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUM1REE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBOzs7Ozs7QUN0Q0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBU0E7QUFBQTtBQUFBO0FBQUE7Ozs7OztBQWRBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUNBO0FBR0E7QUFBQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBRUE7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Ozs7Ozs7OztBQzVEQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBS0E7QUFDQTtBQUdBO0FBQUE7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUVBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7Ozs7QUM1REE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQ0E7QUFHQTtBQUFBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFFQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDNURBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUFBO0FBQ0E7QUFFQTtBQXlCQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7QUNsQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7QUFOQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBS0E7QUFDQTtBQUdBO0FBQUE7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUVBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7QUM1REE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFDQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFBQTtBQUFBO0FBTUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBQUE7Ozs7OztBQTdDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBS0E7QUFDQTtBQUdBO0FBQUE7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUVBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7QUM1REE7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBbUJBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1BO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7QUNqQ0E7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBdUJBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFHQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Ozs7OztBQzlDQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUdBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Ozs7OztBQ2ZBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBR0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFHQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7Ozs7O0FDaEJBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBT0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1BO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7QUNuQkE7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBOEJBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFTQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7QUM3Q0E7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7Ozs7O0FDSkE7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFHQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFHQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7QUNoQkE7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU9BO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBR0E7QUFBQTtBQUFBO0FBQUE7QUFBQTs7Ozs7Ozs7Ozs7QUMxQkE7QUFDQTtBQUVBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUVBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBOzs7Ozs7QUN0RUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFBQTtBQUFBO0FBQ0E7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBR0E7QUFBQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7QUF6QkE7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQ0E7QUFHQTtBQUFBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFFQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUM1REE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7OztBQzVIQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VzIjpbIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvY29tcG9uZW50cy9oZWFkaW5nL2dldEFuY2hvck5hbWUuanMiLCIvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL3BhZ2VzL2RvY3MvY29tcG9uZW50cy9jb250cmlidXRvcnMvZ2V0LWNvbnRyaWJ1dG9ycy5qcyIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvdXRpbHMvY3JlYXRlLW92ZXJ2aWV3LXRyZWUuanMiLCIvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL3V0aWxzL2Zvcm1hdC1zbHVnLmpzIiwiZXh0ZXJuYWwgY29tbW9uanMgXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2ludGVyb3BSZXF1aXJlRGVmYXVsdFwiIiwiZXh0ZXJuYWwgY29tbW9uanMgXCJjb25uZWN0LWd6aXAtc3RhdGljXCIiLCJleHRlcm5hbCBjb21tb25qcyBcImdoLWdvdFwiIiwiZXh0ZXJuYWwgbm9kZS1jb21tb25qcyBcInBhdGhcIiIsIndlYnBhY2svYm9vdHN0cmFwIiwid2VicGFjay9ydW50aW1lL2NvbXBhdCBnZXQgZGVmYXVsdCBleHBvcnQiLCJ3ZWJwYWNrL3J1bnRpbWUvZGVmaW5lIHByb3BlcnR5IGdldHRlcnMiLCJ3ZWJwYWNrL3J1bnRpbWUvaGFzT3duUHJvcGVydHkgc2hvcnRoYW5kIiwid2VicGFjay9ydW50aW1lL21ha2UgbmFtZXNwYWNlIG9iamVjdCIsIndlYnBhY2svcnVudGltZS9wdWJsaWNQYXRoIiwiIiwiZXh0ZXJuYWwgY29tbW9uanMgXCJtYXJrby9kaXN0L3J1bnRpbWUvaHRtbC9pbmRleC5qc1wiIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL25vZGVfbW9kdWxlcy9AbWFya28vYnVpbGQvZGlzdC9maWxlcy9wYXJlbnQtZGlyLnBuZyIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9ub2RlX21vZHVsZXMvQG1hcmtvL2J1aWxkL2Rpc3QvZmlsZXMvZGlyLnBuZyIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9ub2RlX21vZHVsZXMvQG1hcmtvL2J1aWxkL2Rpc3QvZmlsZXMvZmlsZS5wbmciLCJleHRlcm5hbCBjb21tb25qcyBcIm1hcmtvL2Rpc3QvcnVudGltZS9odG1sL2hlbHBlcnMvZXNjYXBlLXhtbC5qc1wiIiwiZXh0ZXJuYWwgY29tbW9uanMgXCJtYXJrby9kaXN0L3J1bnRpbWUvaHRtbC9oZWxwZXJzL2VzY2FwZS1xdW90ZXMuanNcIiIsImV4dGVybmFsIGNvbW1vbmpzIFwibWFya28vZGlzdC9ydW50aW1lL2hlbHBlcnMvb2YtZmFsbGJhY2suanNcIiIsImV4dGVybmFsIGNvbW1vbmpzIFwibWFya28vZGlzdC9ydW50aW1lL2h0bWwvaGVscGVycy9hdHRyLmpzXCIiLCJleHRlcm5hbCBjb21tb25qcyBcIm1hcmtvL2Rpc3QvY29yZS10YWdzL2NvbXBvbmVudHMvaW5pdC1jb21wb25lbnRzLXRhZy5qc1wiIiwiZXh0ZXJuYWwgY29tbW9uanMgXCJtYXJrby9kaXN0L3J1bnRpbWUvaGVscGVycy9yZW5kZXItdGFnLmpzXCIiLCJleHRlcm5hbCBjb21tb25qcyBcIm1hcmtvL2Rpc3QvY29yZS10YWdzL2NvcmUvYXdhaXQvcmVvcmRlcmVyLXJlbmRlcmVyLmpzXCIiLCJleHRlcm5hbCBjb21tb25qcyBcIm1hcmtvL2Rpc3QvY29yZS10YWdzL2NvbXBvbmVudHMvcHJlZmVycmVkLXNjcmlwdC1sb2NhdGlvbi10YWcuanNcIiIsImV4dGVybmFsIGNvbW1vbmpzIFwibWFya28vZGlzdC9ydW50aW1lL2NvbXBvbmVudHMvcmVuZGVyZXIuanNcIiIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9ub2RlX21vZHVsZXMvQG1hcmtvL2J1aWxkL2Rpc3QvZmlsZXMvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvbm9kZV9tb2R1bGVzL0BtYXJrby9idWlsZC9kaXN0L2ZpbGVzL2Rpci1pbmRleC5tYXJrbyIsIj9tYW5pZmVzdCIsImV4dGVybmFsIGNvbW1vbmpzIFwibWFya28vZGlzdC9jb3JlLXRhZ3MvY29yZS9fX2ZsdXNoX2hlcmVfYW5kX2FmdGVyX18uanNcIiIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvcGFnZXMvZG9jcy9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvcGFnZXMvZG9jcy9pbmRleC5tYXJrbyIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvbG9nb3MvbWFya28uc3ZnIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9wYWdlcy9pbmRleC9jb21wb25lbnRzL2hvbWUtaGVyby9tYXJrby10ZXh0LnN2ZyIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvbG9nb3MvbWFya28tdXd1LnBuZyIsImV4dGVybmFsIGNvbW1vbmpzIFwibWFya28vZGlzdC9ydW50aW1lL2h0bWwvaGVscGVycy9kYXRhLW1hcmtvLmpzXCIiLCIvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL2xvZ29zL2dpdGh1Yi5zdmciLCIvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL3BhZ2VzL2luZGV4L2NvbXBvbmVudHMvaG9tZS1oZXJvL2NvbXBvbmVudHMvZ2l0aHViLWxpbmsvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL3BhZ2VzL2luZGV4L2NvbXBvbmVudHMvaG9tZS1oZXJvL2NvbXBvbmVudHMvZ2l0aHViLWxpbmsvaW5kZXgubWFya28iLCIvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL3BhZ2VzL2luZGV4L2NvbXBvbmVudHMvaG9tZS1oZXJvL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9wYWdlcy9pbmRleC9jb21wb25lbnRzL2hvbWUtaGVyby9pbmRleC5tYXJrbyIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvcGFnZXMvaW5kZXgvY29tcG9uZW50cy9ob21lLWZlYXR1cmVzL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9wYWdlcy9pbmRleC9jb21wb25lbnRzL2hvbWUtZmVhdHVyZXMvaW5kZXgubWFya28iLCJleHRlcm5hbCBjb21tb25qcyBcIm1hcmtvL2Rpc3QvcnVudGltZS9oZWxwZXJzL2F0dHItdGFnLmpzXCIiLCIvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL3BhZ2VzL2luZGV4L2NvbXBvbmVudHMvaG9tZS1sYW5ndWFnZS9jb21wb25lbnRzL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9wYWdlcy9pbmRleC9jb21wb25lbnRzL2hvbWUtbGFuZ3VhZ2UvY29tcG9uZW50cy9jb3VudGVyLXRhZ3MubWFya28iLCIvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL3BhZ2VzL2luZGV4L2NvbXBvbmVudHMvaG9tZS1sYW5ndWFnZS9jb21wb25lbnRzL2NvdW50ZXItZXhhbXBsZS9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvcGFnZXMvaW5kZXgvY29tcG9uZW50cy9ob21lLWxhbmd1YWdlL2NvbXBvbmVudHMvY291bnRlci1leGFtcGxlL2luZGV4Lm1hcmtvIiwiZXh0ZXJuYWwgY29tbW9uanMgXCJtYXJrby9kaXN0L3J1bnRpbWUvaGVscGVycy9keW5hbWljLXRhZy5qc1wiIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9jb21wb25lbnRzL2hlYWRpbmcvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL2NvbXBvbmVudHMvaGVhZGluZy9pbmRleC5tYXJrbyIsImV4dGVybmFsIGNvbW1vbmpzIFwibWFya28vZGlzdC9ydW50aW1lL2hlbHBlcnMvY2xhc3MtdmFsdWUuanNcIiIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvcGFnZXMvaW5kZXgvY29tcG9uZW50cy9ob21lLWZlYXR1cmUtYmxvY2svVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL3BhZ2VzL2luZGV4L2NvbXBvbmVudHMvaG9tZS1mZWF0dXJlLWJsb2NrL2luZGV4Lm1hcmtvIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9wYWdlcy9pbmRleC9jb21wb25lbnRzL2hvbWUtbGFuZ3VhZ2UvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL3BhZ2VzL2luZGV4L2NvbXBvbmVudHMvaG9tZS1sYW5ndWFnZS9pbmRleC5tYXJrbyIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvcGFnZXMvaW5kZXgvY29tcG9uZW50cy9ob21lLWRlbW8tcGFnZS9wcm9kdWN0LnBuZyIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvcGFnZXMvaW5kZXgvY29tcG9uZW50cy9ob21lLWRlbW8tcGFnZS94LnN2ZyIsImV4dGVybmFsIGNvbW1vbmpzIFwibWFya28vZGlzdC9ydW50aW1lL2hlbHBlcnMvc3R5bGUtdmFsdWUuanNcIiIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvcGFnZXMvaW5kZXgvY29tcG9uZW50cy9ob21lLWRlbW8tcGFnZS9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvcGFnZXMvaW5kZXgvY29tcG9uZW50cy9ob21lLWRlbW8tcGFnZS9pbmRleC5tYXJrbyIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvcGFnZXMvaW5kZXgvY29tcG9uZW50cy9ob21lLXN0cmVhbWluZy9jb21wb25lbnRzL3Njcm9sbC1sb2NrZWQtc3RyZWFtLWV4YW1wbGUvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL3BhZ2VzL2luZGV4L2NvbXBvbmVudHMvaG9tZS1zdHJlYW1pbmcvY29tcG9uZW50cy9zY3JvbGwtbG9ja2VkLXN0cmVhbS1leGFtcGxlL2luZGV4Lm1hcmtvIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9wYWdlcy9pbmRleC9jb21wb25lbnRzL2hvbWUtc3RyZWFtaW5nL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9wYWdlcy9pbmRleC9jb21wb25lbnRzL2hvbWUtc3RyZWFtaW5nL2luZGV4Lm1hcmtvIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9wYWdlcy9pbmRleC9jb21wb25lbnRzL2hvbWUtaHlkcmF0aW9uL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9wYWdlcy9pbmRleC9jb21wb25lbnRzL2hvbWUtaHlkcmF0aW9uL2luZGV4Lm1hcmtvIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9wYWdlcy9pbmRleC9jb21wb25lbnRzL2hvbWUtcGVyZm9ybWFuY2UvYXJyb3cuc3ZnIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9wYWdlcy9pbmRleC9jb21wb25lbnRzL2hvbWUtcGVyZm9ybWFuY2UvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL3BhZ2VzL2luZGV4L2NvbXBvbmVudHMvaG9tZS1wZXJmb3JtYW5jZS9pbmRleC5tYXJrbyIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvcGFnZXMvaW5kZXgvY29tcG9uZW50cy9ob21lLXRvb2xpbmcvc2NyZWVuLnBuZyIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvcGFnZXMvaW5kZXgvY29tcG9uZW50cy9ob21lLXRvb2xpbmcvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL3BhZ2VzL2luZGV4L2NvbXBvbmVudHMvaG9tZS10b29saW5nL2luZGV4Lm1hcmtvIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9sb2dvcy9zdGFja292ZXJmbG93LnN2ZyIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvbG9nb3MvZGlzY29yZC5zdmciLCIvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL2xvZ29zL3R3aXR0ZXIuc3ZnIiwiZXh0ZXJuYWwgY29tbW9uanMgXCJtYXJrby9kaXN0L2NvcmUtdGFncy9jb3JlL2F3YWl0L3JlbmRlcmVyLmpzXCIiLCIvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL3BhZ2VzL2luZGV4L2NvbXBvbmVudHMvaG9tZS1jb21tdW5pdHkvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL3BhZ2VzL2luZGV4L2NvbXBvbmVudHMvaG9tZS1jb21tdW5pdHkvaW5kZXgubWFya28iLCIvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL2NvbXBvbmVudHMvYXBwLWxheW91dC9mYXZpY29uLnBuZyIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvY29tcG9uZW50cy9hcHAtbGF5b3V0L2NvbXBvbmVudHMvc2tpcC1saW5rL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9jb21wb25lbnRzL2FwcC1sYXlvdXQvY29tcG9uZW50cy9za2lwLWxpbmsvaW5kZXgubWFya28iLCIvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL2NvbXBvbmVudHMvYXBwLWxheW91dC9jb21wb25lbnRzL2xheW91dC1zZWFyY2gvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL2NvbXBvbmVudHMvYXBwLWxheW91dC9jb21wb25lbnRzL2xheW91dC1zZWFyY2gvaW5kZXgubWFya28iLCIvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL2NvbXBvbmVudHMvYXBwLWxheW91dC9jb21wb25lbnRzL2xheW91dC1oZWFkZXIvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL2NvbXBvbmVudHMvYXBwLWxheW91dC9jb21wb25lbnRzL2xheW91dC1oZWFkZXIvaW5kZXgubWFya28iLCJleHRlcm5hbCBjb21tb25qcyBcIm1hcmtvL2RvY3Mvc3RydWN0dXJlLmpzb25cIiIsImV4dGVybmFsIGNvbW1vbmpzIFwibWFya28vZGlzdC9ydW50aW1lL2hlbHBlcnMvdG8tc3RyaW5nLmpzXCIiLCJleHRlcm5hbCBjb21tb25qcyBcIm1hcmtvL3BhY2thZ2UuanNvblwiIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9jb21wb25lbnRzL2FwcC1sYXlvdXQvY29tcG9uZW50cy9sYXlvdXQtc2lkZWJhci9jb21wb25lbnRzL3ZlcnNpb24tc3dpdGNoZXIvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL2NvbXBvbmVudHMvYXBwLWxheW91dC9jb21wb25lbnRzL2xheW91dC1zaWRlYmFyL2NvbXBvbmVudHMvdmVyc2lvbi1zd2l0Y2hlci9pbmRleC5tYXJrbyIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvY29tcG9uZW50cy9hcHAtbGF5b3V0L2NvbXBvbmVudHMvbGF5b3V0LXNpZGViYXIvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL2NvbXBvbmVudHMvYXBwLWxheW91dC9jb21wb25lbnRzL2xheW91dC1zaWRlYmFyL2luZGV4Lm1hcmtvIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9jb21wb25lbnRzL2FwcC1mb290ZXIvb3BlbmpzZi5zdmciLCIvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL2NvbXBvbmVudHMvYXBwLWZvb3Rlci9vc2kuc3ZnIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9jb21wb25lbnRzL2FwcC1mb290ZXIvZWJheS5zdmciLCIvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL2NvbXBvbmVudHMvYXBwLWZvb3Rlci9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvY29tcG9uZW50cy9hcHAtZm9vdGVyL2luZGV4Lm1hcmtvIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9jb21wb25lbnRzL2FwcC1sYXlvdXQvY29tcG9uZW50cy9nb29nbGUtYW5hbHl0aWNzL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9jb21wb25lbnRzL2FwcC1sYXlvdXQvY29tcG9uZW50cy9nb29nbGUtYW5hbHl0aWNzL2luZGV4Lm1hcmtvIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9jb21wb25lbnRzL2Rpc2NvcmQtbGluay9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvY29tcG9uZW50cy9kaXNjb3JkLWxpbmsvaW5kZXgubWFya28iLCIvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL2NvbXBvbmVudHMvYXBwLWxheW91dC9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvY29tcG9uZW50cy9hcHAtbGF5b3V0L2luZGV4Lm1hcmtvIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9wYWdlcy9pbmRleC9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvcGFnZXMvaW5kZXgvaW5kZXgubWFya28iLCJleHRlcm5hbCBjb21tb25qcyBcIkBtYXJrby90YWdzLWFwaS1wcmV2aWV3L2Rpc3QvdHJhbnNmb3JtL2NhY2hlZC12YWx1ZXNcIiIsImV4dGVybmFsIGNvbW1vbmpzIFwiQG1hcmtvL3RhZ3MtYXBpLXByZXZpZXcvZGlzdC9jb21wb25lbnRzL3JldHVyblwiIiwiZXh0ZXJuYWwgY29tbW9uanMgXCJsei1zdHJpbmdcIiIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvcGFnZXMvcGxheWdyb3VuZC9jb21wb25lbnRzL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9wYWdlcy9wbGF5Z3JvdW5kL2NvbXBvbmVudHMvaGFzaC12YWx1ZS5tYXJrbyIsImV4dGVybmFsIGNvbW1vbmpzIFwiQG1hcmtvL3RhZ3MtYXBpLXByZXZpZXcvZGlzdC91dGlsL3JlcGxhY2UtYXNzaWdubWVudHNcIiIsImV4dGVybmFsIGNvbW1vbmpzIFwiQG1hcmtvL3RhZ3MtYXBpLXByZXZpZXcvZGlzdC90cmFuc2Zvcm0vbmF0aXZlLXRhZy12YXJcIiIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9ub2RlX21vZHVsZXMvQG1hcmtvL3RhZ3MtYXBpLXByZXZpZXcvZGlzdC9jb21wb25lbnRzL19pbnN0YW5jZS9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9ub2RlX21vZHVsZXMvQG1hcmtvL3RhZ3MtYXBpLXByZXZpZXcvZGlzdC9jb21wb25lbnRzL19pbnN0YW5jZS9pbmRleC5tYXJrbyIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvY29tcG9uZW50cy9yZXBsL2NvbXBvbmVudHMvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL2NvbXBvbmVudHMvcmVwbC9jb21wb25lbnRzL2ZpbGUtdGFicy5tYXJrbyIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvY29tcG9uZW50cy9yZXBsL2NvbXBvbmVudHMvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL2NvbXBvbmVudHMvcmVwbC9jb21wb25lbnRzL3BhbmUubWFya28iLCIvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL2NvbXBvbmVudHMvcmVwbC9jb21wb25lbnRzL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9jb21wb25lbnRzL3JlcGwvY29tcG9uZW50cy9jb250cm9sbGFibGUtc2VsZWN0Lm1hcmtvIiwiZXh0ZXJuYWwgY29tbW9uanMgXCJAbWFya28vdGFncy1hcGktcHJldmlldy9kaXN0L3RyYW5zbGF0ZS9uYXRpdmUtdGFnLWhhbmRsZXJzXCIiLCJleHRlcm5hbCBjb21tb25qcyBcIm1hcmtvL2Rpc3QvcnVudGltZS9odG1sL2hlbHBlcnMvYXR0cnMuanNcIiIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvY29tcG9uZW50cy9yZXBsL2NvbXBvbmVudHMvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL2NvbXBvbmVudHMvcmVwbC9jb21wb25lbnRzL3BsYXlncm91bmQtbGluay5tYXJrbyIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvY29tcG9uZW50cy9yZXBsL2NvbXBvbmVudHMvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL2NvbXBvbmVudHMvcmVwbC9jb21wb25lbnRzL21hdGNoLW1lZGlhLm1hcmtvIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9jb21wb25lbnRzL3JlcGwvY29tcG9uZW50cy9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvY29tcG9uZW50cy9yZXBsL2NvbXBvbmVudHMvcmVzaXphYmxlLXBhbmVzLm1hcmtvIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9jb21wb25lbnRzL3JlcGwvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL2NvbXBvbmVudHMvcmVwbC9pbmRleC5tYXJrbyIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvcGFnZXMvcGxheWdyb3VuZC9jb21wb25lbnRzL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9wYWdlcy9wbGF5Z3JvdW5kL2NvbXBvbmVudHMvcGxheWdyb3VuZC5tYXJrbyIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvcGFnZXMvcGxheWdyb3VuZC9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvcGFnZXMvcGxheWdyb3VuZC9pbmRleC5tYXJrbyIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvcGFnZXMvdHJ5LW9ubGluZS1uZXcvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL3BhZ2VzL3RyeS1vbmxpbmUtbmV3L2luZGV4Lm1hcmtvIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL25vZGVfbW9kdWxlcy9AbWFya28tdGFncy9zdWJzY3JpYmUvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvbm9kZV9tb2R1bGVzL0BtYXJrby10YWdzL3N1YnNjcmliZS9pbmRleC5tYXJrbyIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvcGFnZXMvdHJ5LW9ubGluZS9jb21wb25lbnRzL2xvYWRlci9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvcGFnZXMvdHJ5LW9ubGluZS9jb21wb25lbnRzL2xvYWRlci9pbmRleC5tYXJrbyIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvcGFnZXMvdHJ5LW9ubGluZS9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvcGFnZXMvdHJ5LW9ubGluZS9pbmRleC5tYXJrbyIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvcGFnZXMvdjYvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL3BhZ2VzL3Y2L2luZGV4Lm1hcmtvIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9jb21wb25lbnRzL2NvZGUtYmxvY2stbWFya28vVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL2NvbXBvbmVudHMvY29kZS1ibG9jay1tYXJrby9pbmRleC5tYXJrbyIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvdXRpbHMvdG9jLXJlZ2lzdHJ5LmpzIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL2V4YW1wbGVzL2V4YW1wbGVzL2NvbG9yLXBpY2tlci9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9leGFtcGxlcy9leGFtcGxlcy9jb2xvci1waWNrZXIvUkVBRE1FLm1kIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL25vZGVfbW9kdWxlcy9tYXJrby9kb2NzL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL25vZGVfbW9kdWxlcy9tYXJrby9kb2NzLzEwLWF3ZXNvbWUtbWFya28tZmVhdHVyZXMubWQiLCIvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvbm9kZV9tb2R1bGVzL21hcmtvL2RvY3MvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvbm9kZV9tb2R1bGVzL21hcmtvL2RvY3MvYm9keS1jb250ZW50Lm1kIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL25vZGVfbW9kdWxlcy9tYXJrby9kb2NzL2NvbXBvbmVudC1kaWFncmFtLnN2ZyIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9ub2RlX21vZHVsZXMvbWFya28vZG9jcy9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9ub2RlX21vZHVsZXMvbWFya28vZG9jcy9jbGFzcy1jb21wb25lbnRzLm1kIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL25vZGVfbW9kdWxlcy9tYXJrby9kb2NzL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL25vZGVfbW9kdWxlcy9tYXJrby9kb2NzL2Nsb3VkZmxhcmUtd29ya2Vycy5tZCIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9ub2RlX21vZHVsZXMvbWFya28vZG9jcy9jb21waWxlci1ob29rcy5wbmciLCIvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvbm9kZV9tb2R1bGVzL21hcmtvL2RvY3MvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvbm9kZV9tb2R1bGVzL21hcmtvL2RvY3MvY29tcGlsZXIubWQiLCIvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvbm9kZV9tb2R1bGVzL21hcmtvL2RvY3MvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvbm9kZV9tb2R1bGVzL21hcmtvL2RvY3MvY29uY2lzZS5tZCIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9ub2RlX21vZHVsZXMvbWFya28vZG9jcy9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9ub2RlX21vZHVsZXMvbWFya28vZG9jcy9jb25kaXRpb25hbHMtYW5kLWxpc3RzLm1kIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL25vZGVfbW9kdWxlcy9tYXJrby9kb2NzL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL25vZGVfbW9kdWxlcy9tYXJrby9kb2NzL2NvcmUtdGFncy5tZCIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9ub2RlX21vZHVsZXMvbWFya28vZG9jcy9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9ub2RlX21vZHVsZXMvbWFya28vZG9jcy9jdXN0b20tdGFncy5tZCIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9ub2RlX21vZHVsZXMvbWFya28vZG9jcy9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9ub2RlX21vZHVsZXMvbWFya28vZG9jcy9lZGl0b3ItcGx1Z2lucy5tZCIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9ub2RlX21vZHVsZXMvbWFya28vZG9jcy9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9ub2RlX21vZHVsZXMvbWFya28vZG9jcy9ldmVudHMubWQiLCIvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvbm9kZV9tb2R1bGVzL21hcmtvL2RvY3MvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvbm9kZV9tb2R1bGVzL21hcmtvL2RvY3MvZXhwcmVzcy5tZCIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9ub2RlX21vZHVsZXMvbWFya28vZG9jcy9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9ub2RlX21vZHVsZXMvbWFya28vZG9jcy9mYXN0aWZ5Lm1kIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL25vZGVfbW9kdWxlcy9tYXJrby9kb2NzL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL25vZGVfbW9kdWxlcy9tYXJrby9kb2NzL2dldHRpbmctc3RhcnRlZC5tZCIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9ub2RlX21vZHVsZXMvbWFya28vZG9jcy9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9ub2RlX21vZHVsZXMvbWFya28vZG9jcy9odHRwLm1kIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL25vZGVfbW9kdWxlcy9tYXJrby9kb2NzL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL25vZGVfbW9kdWxlcy9tYXJrby9kb2NzL2luc3RhbGxpbmcubWQiLCIvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvbm9kZV9tb2R1bGVzL21hcmtvL2RvY3MvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvbm9kZV9tb2R1bGVzL21hcmtvL2RvY3Mva29hLm1kIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL25vZGVfbW9kdWxlcy9tYXJrby9kb2NzL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL25vZGVfbW9kdWxlcy9tYXJrby9kb2NzL2xhc3NvLm1kIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL25vZGVfbW9kdWxlcy9tYXJrby9kb2NzL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL25vZGVfbW9kdWxlcy9tYXJrby9kb2NzL21hcmtvLTUtdXBncmFkZS5tZCIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9ub2RlX21vZHVsZXMvbWFya28vZG9jcy9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9ub2RlX21vZHVsZXMvbWFya28vZG9jcy9tYXJrby1qc29uLm1kIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL25vZGVfbW9kdWxlcy9tYXJrby9kb2NzL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL25vZGVfbW9kdWxlcy9tYXJrby9kb2NzL21hcmtvLXZzLXJlYWN0Lm1kIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL25vZGVfbW9kdWxlcy9tYXJrby9kb2NzL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL25vZGVfbW9kdWxlcy9tYXJrby9kb2NzL3JlZHV4Lm1kIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL25vZGVfbW9kdWxlcy9tYXJrby9kb2NzL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL25vZGVfbW9kdWxlcy9tYXJrby9kb2NzL3JlbmRlcmluZy5tZCIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9ub2RlX21vZHVsZXMvbWFya28vZG9jcy9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9ub2RlX21vZHVsZXMvbWFya28vZG9jcy9yb2xsdXAubWQiLCIvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvbm9kZV9tb2R1bGVzL21hcmtvL2RvY3MvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvbm9kZV9tb2R1bGVzL21hcmtvL2RvY3Mvc3RhdGUubWQiLCIvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvbm9kZV9tb2R1bGVzL21hcmtvL2RvY3MvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvbm9kZV9tb2R1bGVzL21hcmtvL2RvY3Mvc3R5bGVzLm1kIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL25vZGVfbW9kdWxlcy9tYXJrby9kb2NzL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL25vZGVfbW9kdWxlcy9tYXJrby9kb2NzL3N5bnRheC5tZCIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9ub2RlX21vZHVsZXMvbWFya28vZG9jcy9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9ub2RlX21vZHVsZXMvbWFya28vZG9jcy90cm91Ymxlc2hvb3Rpbmctc3RyZWFtaW5nLm1kIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL25vZGVfbW9kdWxlcy9tYXJrby9kb2NzL2ljb25zL21hcmtvLnN2ZyIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9ub2RlX21vZHVsZXMvbWFya28vZG9jcy9pY29ucy90cy5zdmciLCIvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvbm9kZV9tb2R1bGVzL21hcmtvL2RvY3MvaWNvbnMvanMuc3ZnIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL25vZGVfbW9kdWxlcy9tYXJrby9kb2NzL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL25vZGVfbW9kdWxlcy9tYXJrby9kb2NzL3R5cGVzY3JpcHQubWQiLCIvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvbm9kZV9tb2R1bGVzL21hcmtvL2RvY3MvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvbm9kZV9tb2R1bGVzL21hcmtvL2RvY3Mvdml0ZS5tZCIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9ub2RlX21vZHVsZXMvbWFya28vZG9jcy9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9ub2RlX21vZHVsZXMvbWFya28vZG9jcy93ZWJwYWNrLm1kIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL25vZGVfbW9kdWxlcy9tYXJrby9kb2NzL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL25vZGVfbW9kdWxlcy9tYXJrby9kb2NzL3doeS1pcy1tYXJrby1mYXN0Lm1kIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9wYWdlcy9kb2NzLzpuYW1lL2RvY3VtZW50LWxvb2t1cC5qcyIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvcGFnZXMvZG9jcy9jb21wb25lbnRzL2VkaXQtb24tZ2l0aHViL2dpdGh1Yi5zdmciLCIvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL3BhZ2VzL2RvY3MvY29tcG9uZW50cy9lZGl0LW9uLWdpdGh1Yi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvcGFnZXMvZG9jcy9jb21wb25lbnRzL2VkaXQtb24tZ2l0aHViL2luZGV4Lm1hcmtvIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9wYWdlcy9kb2NzL2NvbXBvbmVudHMvY29udHJpYnV0b3JzL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9wYWdlcy9kb2NzL2NvbXBvbmVudHMvY29udHJpYnV0b3JzL2luZGV4Lm1hcmtvIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9wYWdlcy9kb2NzL2NvbXBvbmVudHMvZG9jdW1lbnQtb3ZlcnZpZXcvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL3BhZ2VzL2RvY3MvY29tcG9uZW50cy9kb2N1bWVudC1vdmVydmlldy9pbmRleC5tYXJrbyIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvcGFnZXMvZG9jcy86bmFtZS9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvcGFnZXMvZG9jcy86bmFtZS9pbmRleC5tYXJrbyIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvcGFnZXMvZG9jcy92Ni9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvcGFnZXMvZG9jcy92Ni9pbmRleC5tYXJrbyIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvcGFnZXMvcGxheWdyb3VuZC92Ni9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvcGFnZXMvcGxheWdyb3VuZC92Ni9pbmRleC5tYXJrbyIsImV4dGVybmFsIGNvbW1vbmpzIFwiQG1hcmtvL3RyYW5zbGF0b3ItdGFnc1wiIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9wYWdlcy92Ni9wbGF5Z3JvdW5kL2NvbXBvbmVudHMvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL3BhZ2VzL3Y2L3BsYXlncm91bmQvY29tcG9uZW50cy9wbGF5Z3JvdW5kLTYubWFya28iLCIvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL3BhZ2VzL3Y2L3BsYXlncm91bmQvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL3BhZ2VzL3Y2L3BsYXlncm91bmQvaW5kZXgubWFya28iLCIvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL3BhZ2VzL3Y2L3R1dG9yaWFscy90dXRvcmlhbHMuanMiLCIvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL3BhZ2VzL3Y2L3R1dG9yaWFscy9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvcGFnZXMvdjYvdHV0b3JpYWxzL2luZGV4Lm1hcmtvIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9wYWdlcy92Ni9kb2NzL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9wYWdlcy92Ni9kb2NzL2luZGV4Lm1hcmtvIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9wYWdlcy9kb2NzL3Y2LzpuYW1lL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9wYWdlcy9kb2NzL3Y2LzpuYW1lL2luZGV4Lm1hcmtvIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9wYWdlcy92Ni90dXRvcmlhbHMvOm5hbWUvY29tcG9uZW50cy9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvcGFnZXMvdjYvdHV0b3JpYWxzLzpuYW1lL2NvbXBvbmVudHMvdHV0b3JpYWwubWFya28iLCIvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL3BhZ2VzL3Y2L3R1dG9yaWFscy86bmFtZS9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvcGFnZXMvdjYvdHV0b3JpYWxzLzpuYW1lL2luZGV4Lm1hcmtvIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9wYWdlcy92Ni9leGFtcGxlcy9bbmFtZV0vVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL3BhZ2VzL3Y2L2V4YW1wbGVzL1tuYW1lXS9pbmRleC5tYXJrbyIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvcGFnZXMvdjYvZG9jcy9tYXJrZG93bi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvcGFnZXMvdjYvZG9jcy9tYXJrZG93bi9jb21wb25lbnRzLm1kIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9wYWdlcy92Ni9kb2NzL21hcmtkb3duL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9wYWdlcy92Ni9kb2NzL21hcmtkb3duL2NvbmRpdGlvbmFscy5tZCIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvcGFnZXMvdjYvZG9jcy9tYXJrZG93bi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvcGFnZXMvdjYvZG9jcy9tYXJrZG93bi9ldmVudHMubWQiLCIvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL3BhZ2VzL3Y2L2RvY3MvbWFya2Rvd24vVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL3BhZ2VzL3Y2L2RvY3MvbWFya2Rvd24vamF2YXNjcmlwdC5tZCIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvcGFnZXMvdjYvZG9jcy9tYXJrZG93bi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvcGFnZXMvdjYvZG9jcy9tYXJrZG93bi9sYW5ndWFnZS5tZCIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvcGFnZXMvdjYvZG9jcy9tYXJrZG93bi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvcGFnZXMvdjYvZG9jcy9tYXJrZG93bi9saXN0cy5tZCIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvcGFnZXMvdjYvZG9jcy9tYXJrZG93bi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvcGFnZXMvdjYvZG9jcy9tYXJrZG93bi9zZXR1cC5tZCIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvcGFnZXMvdjYvZG9jcy9tYXJrZG93bi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvcGFnZXMvdjYvZG9jcy9tYXJrZG93bi9zdGF0ZS5tZCIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvcGFnZXMvdjYvZG9jcy9tYXJrZG93bi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9zcmMvcGFnZXMvdjYvZG9jcy9tYXJrZG93bi9zdHlsZXMubWQiLCIvVXNlcnMvZHBpZXJjZXkvZGV2L21hcmtvLWpzL3dlYnNpdGUvc3JjL3BhZ2VzL3Y2L2RvY3MvOm5hbWUvZG9jdW1lbnQtbG9va3VwLmpzIiwiL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9wYWdlcy92Ni9kb2NzLzpuYW1lL1VzZXJzL2RwaWVyY2V5L2Rldi9tYXJrby1qcy93ZWJzaXRlL3NyYy9wYWdlcy92Ni9kb2NzLzpuYW1lL2luZGV4Lm1hcmtvIiwid2VicGFjazovLy8/ODUzZiIsIi9Vc2Vycy9kcGllcmNleS9kZXYvbWFya28tanMvd2Vic2l0ZS9ub2RlX21vZHVsZXMvQG1hcmtvL2J1aWxkL2Rpc3QvZmlsZXMvbWlkZGxld2FyZS5qcyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ== \ No newline at end of file diff --git a/playground/index.html b/playground/index.html index 2b6b5ee0..adc9fe0a 100644 --- a/playground/index.html +++ b/playground/index.html @@ -16,7 +16,7 @@ } else { delete localStorage.uwu; } -
index.marko
Open in playground
index.marko
Open in playground
\ No newline at end of file diff --git a/try-online/index.html b/try-online/index.html index c5ad5892..debee124 100644 --- a/try-online/index.html +++ b/try-online/index.html @@ -16,7 +16,7 @@ } else { delete localStorage.uwu; } -

Components in Marko

Components are the building blocks of Marko applications. They allow you to break down your user interface into independent, reusable pieces, which makes your code more organized, maintainable, and scalable. Think of components like specialized HTML elements that you can define yourself.

Introduction to Components

In Marko, a component is simply a Marko template file (.marko) that represents a self-contained piece of your UI. Components encapsulate their own HTML and JavaScript logic, making them easy to reason about and reuse throughout your project.

The Benefits of Components

  • Reusability: Write a component once, and use it anywhere you need that functionality. This saves you time and effort and keeps your code consistent.
  • Maintainability: Components break down complex UIs and logic into smaller, more manageable chunks. This makes your code easier to understand, debug, and update.
  • Organization: Components promote a modular architecture, making your project's structure cleaner and more scalable as it grows.

Creating Your First Component

Let's create a simple "Profile Card" component:

  1. Create a components Directory: Inside your Marko project, create a folder named components. This is where we'll place our component files.

  2. Create the Component File: Inside the components directory, create a file named profile-card.marko.

  3. Write the Component Code: Add the following code to profile-card.marko:

    <div>
    +    

    Components in Marko

    Components are the building blocks of Marko applications. They allow you to break down your user interface into independent, reusable pieces, which makes your code more organized, maintainable, and scalable. Think of components like specialized HTML elements that you can define yourself.

    Introduction to Components

    In Marko, a component is simply a Marko template file (.marko) that represents a self-contained piece of your UI. Components encapsulate their own HTML and JavaScript logic, making them easy to reason about and reuse throughout your project.

    The Benefits of Components

    • Reusability: Write a component once, and use it anywhere you need that functionality. This saves you time and effort and keeps your code consistent.
    • Maintainability: Components break down complex UIs and logic into smaller, more manageable chunks. This makes your code easier to understand, debug, and update.
    • Organization: Components promote a modular architecture, making your project's structure cleaner and more scalable as it grows.

    Creating Your First Component

    Let's create a simple "Profile Card" component:

    1. Create a components Directory: Inside your Marko project, create a folder named components. This is where we'll place our component files.

    2. Create the Component File: Inside the components directory, create a file named profile-card.marko.

    3. Write the Component Code: Add the following code to profile-card.marko:

      <div>
         <h2>Alice</h2>
         <p>Web Developer</p>
       </div>
      diff --git a/v6/docs/conditionals/index.html b/v6/docs/conditionals/index.html
      index 567f12d2..9eed3b3e 100644
      --- a/v6/docs/conditionals/index.html
      +++ b/v6/docs/conditionals/index.html
      @@ -16,7 +16,7 @@
             } else {
               delete localStorage.uwu;
             }
      -    

      Conditionals in Marko

      Conditionals are essential for building dynamic user interfaces. They allow you to control which parts of your UI are displayed based on data, user interactions, or other conditions. Marko provides powerful and intuitive tags for handling conditional rendering in your templates.

      <if>, <else-if>, and <else>

      The <if>, <else-if>, and <else> tags in Marko work similarly to their JavaScript counterparts, allowing you to conditionally render blocks of HTML based on expressions that evaluate to truthy or falsy values.

      Here's a basic example:

      <if=user.isLoggedIn>
      +    

      Conditionals in Marko

      Conditionals are essential for building dynamic user interfaces. They allow you to control which parts of your UI are displayed based on data, user interactions, or other conditions. Marko provides powerful and intuitive tags for handling conditional rendering in your templates.

      <if>, <else-if>, and <else>

      The <if>, <else-if>, and <else> tags in Marko work similarly to their JavaScript counterparts, allowing you to conditionally render blocks of HTML based on expressions that evaluate to truthy or falsy values.

      Here's a basic example:

      <if=user.isLoggedIn>
         <p>Welcome back, ${user.name}!</p>
       </if>
       <else>
      diff --git a/v6/docs/events/index.html b/v6/docs/events/index.html
      index e361949f..13a043fa 100644
      --- a/v6/docs/events/index.html
      +++ b/v6/docs/events/index.html
      @@ -16,7 +16,7 @@
             } else {
               delete localStorage.uwu;
             }
      -    

      Events in Marko

      Events are essential for building interactive user interfaces. They allow your Marko components to react to user actions, like clicks, form submissions, mouse movements, and more. Marko provides a simple and intuitive way to handle events, making it easy to create dynamic and responsive web applications.

      DOM Events

      Marko components can directly listen to native DOM events on HTML elements. To attach an event listener, you pass functions directly as the values of special event handler attributes that start with on.

      <button onClick() { alert("Button Clicked!"); }>
      +    

      Events in Marko

      Events are essential for building interactive user interfaces. They allow your Marko components to react to user actions, like clicks, form submissions, mouse movements, and more. Marko provides a simple and intuitive way to handle events, making it easy to create dynamic and responsive web applications.

      DOM Events

      Marko components can directly listen to native DOM events on HTML elements. To attach an event listener, you pass functions directly as the values of special event handler attributes that start with on.

      <button onClick() { alert("Button Clicked!"); }>
         Click Me!
       </button>
       
      button onClick() {
      diff --git a/v6/docs/index.html b/v6/docs/index.html
      index 28101f02..d171c490 100644
      --- a/v6/docs/index.html
      +++ b/v6/docs/index.html
      @@ -1 +1 @@
      -
      \ No newline at end of file
      +
      \ No newline at end of file
      diff --git a/v6/docs/javascript/index.html b/v6/docs/javascript/index.html
      index f568d20d..2e335302 100644
      --- a/v6/docs/javascript/index.html
      +++ b/v6/docs/javascript/index.html
      @@ -16,7 +16,7 @@
             } else {
               delete localStorage.uwu;
             }
      -    

      JavaScript in Marko

      One of Marko's core strengths is its seamless integration with JavaScript. You can directly embed JavaScript expressions, use variables, and call functions within your Marko templates.

      Dynamic Content

      Marko makes it easy to inject dynamic values and logic directly into your HTML using embedded JavaScript expressions. Wrap your JavaScript code in ${} (similar to template literals), and Marko will evaluate it and render the result.

      <p>The current date is: ${new Date().toLocaleDateString()}</p>
      +    

      JavaScript in Marko

      One of Marko's core strengths is its seamless integration with JavaScript. You can directly embed JavaScript expressions, use variables, and call functions within your Marko templates.

      Dynamic Content

      Marko makes it easy to inject dynamic values and logic directly into your HTML using embedded JavaScript expressions. Wrap your JavaScript code in ${} (similar to template literals), and Marko will evaluate it and render the result.

      <p>The current date is: ${new Date().toLocaleDateString()}</p>
       
       <div>${user.isLoggedIn ? "Welcome back, " + user.name : "Please log in."}</div>
       
      p -- The current date is: ${new Date().toLocaleDateString()}
      diff --git a/v6/docs/language/index.html b/v6/docs/language/index.html
      index 25a18648..d03f3fe8 100644
      --- a/v6/docs/language/index.html
      +++ b/v6/docs/language/index.html
      @@ -16,7 +16,7 @@
             } else {
               delete localStorage.uwu;
             }
      -    

      The Marko Language

      Marko is a powerful and intuitive language for building dynamic and reactive user interfaces. One of the best things about Marko is that it builds upon the familiar foundations of HTML and JavaScript, making it incredibly easy to learn for web developers.

      Familiar Foundation

      If you know HTML, you already have a head start in Marko! A large part of Marko is based directly on HTML. In fact, most valid HTML code can be compiled by Marko without any changes.

      Take a look at this simple "Hello World" example in both HTML and Marko:

      HTML (index.html)

      <!DOCTYPE html>
      +    

      The Marko Language

      Marko is a powerful and intuitive language for building dynamic and reactive user interfaces. One of the best things about Marko is that it builds upon the familiar foundations of HTML and JavaScript, making it incredibly easy to learn for web developers.

      Familiar Foundation

      If you know HTML, you already have a head start in Marko! A large part of Marko is based directly on HTML. In fact, most valid HTML code can be compiled by Marko without any changes.

      Take a look at this simple "Hello World" example in both HTML and Marko:

      HTML (index.html)

      <!DOCTYPE html>
       <html>
         <head>
           <title>Hello World</title>
      diff --git a/v6/docs/lists/index.html b/v6/docs/lists/index.html
      index fa4909cc..195a9b74 100644
      --- a/v6/docs/lists/index.html
      +++ b/v6/docs/lists/index.html
      @@ -16,7 +16,7 @@
             } else {
               delete localStorage.uwu;
             }
      -    

      Lists in Marko

      <for of>: Iterating Over Arrays

      The most common use case for <for> is iterating over arrays. The of attribute specifies the array you want to loop through.

      <ul>
      +    

      Lists in Marko

      <for of>: Iterating Over Arrays

      The most common use case for <for> is iterating over arrays. The of attribute specifies the array you want to loop through.

      <ul>
         <for|item, index| of=items by="id">
           <li>(${index}) Item ID: ${item.id}, Name: ${item.name}</li>
         </for>
      diff --git a/v6/docs/setup/index.html b/v6/docs/setup/index.html
      index 5c4d9840..86e63b2e 100644
      --- a/v6/docs/setup/index.html
      +++ b/v6/docs/setup/index.html
      @@ -16,7 +16,7 @@
             } else {
               delete localStorage.uwu;
             }
      -    

      Setup

      Marko Playground

      The fastest way to try out Marko without installing anything is with the Marko Playground. It's an online interactive environment where you can write Marko code and see the results in real-time.

      In the Playground, you'll find a simple counter example. Go ahead and edit the code, and watch the output update instantly!

      Local Development with Marko Run

      To set up a local development environment, Marko Run is recommended as it makes this process quick and easy.

      Prerequisites

      • Node.js: Marko requires Node.js to be installed on your system. Download the latest LTS version from the official website: https://nodejs.org/
      • npm (or yarn): Node.js comes bundled with npm (Node Package Manager), but you can also use yarn if you prefer.

      1. Creating a new Project

      Once you have Node.js and npm (or yarn) installed, open your terminal (command prompt or PowerShell) and run the following command:

      npm init marko
      +    

      Setup

      Marko Playground

      The fastest way to try out Marko without installing anything is with the Marko Playground. It's an online interactive environment where you can write Marko code and see the results in real-time.

      In the Playground, you'll find a simple counter example. Go ahead and edit the code, and watch the output update instantly!

      Local Development with Marko Run

      To set up a local development environment, Marko Run is recommended as it makes this process quick and easy.

      Prerequisites

      • Node.js: Marko requires Node.js to be installed on your system. Download the latest LTS version from the official website: https://nodejs.org/
      • npm (or yarn): Node.js comes bundled with npm (Node Package Manager), but you can also use yarn if you prefer.

      1. Creating a new Project

      Once you have Node.js and npm (or yarn) installed, open your terminal (command prompt or PowerShell) and run the following command:

      npm init marko
       

      This cli will guide you through creating a new project.

      2. Basic Marko Run Commands

      After creating a Marko Run project, navigate to your project directory and use the following commands:

      • marko-run dev: Start a development server with live reload (your changes will automatically appear in the browser).
      • marko-run build: Build a production-ready version of your app.
      • marko-run preview: Preview a production build locally.

      3. Enhancing Your Workflow with Editor Plugins (Optional)

      Editor plugins can significantly improve your development experience by providing features like:

      • Syntax highlighting: Makes your Marko code more readable.
      • Code completion (IntelliSense): Helps you write code faster with suggestions and autocompletion.
      • Error checking (linting): Catches potential errors in your code early on.

      Recommended Plugins

      • VS Code: the official editor plugin from the marketplace
      • Other Editors: setup instructions to use the Marko language server in various other editors
      EDIT on GitHub

      Contributors

      Helpful? You can thank these awesome people! You can also edit this doc if you see any issues or want to improve it.

      State & Derived State

      Marko's reactive system makes it easy to manage your application's data and keep your user interface in sync with any changes. The key to this reactivity is how Marko tracks state.

      State with <let>

      In Marko, the <let> tag is used to declare state variables. These variables represent the data that can change over time, affecting how your components render and behave.

      <let/count=0/>
      +    

      State & Derived State

      Marko's reactive system makes it easy to manage your application's data and keep your user interface in sync with any changes. The key to this reactivity is how Marko tracks state.

      State with <let>

      In Marko, the <let> tag is used to declare state variables. These variables represent the data that can change over time, affecting how your components render and behave.

      <let/count=0/>
       
      let/count=0
       

      This line of code declares a state variable named count and initializes it to 0.

      NOTE
      The variable name is defined after the / in the tag. This is known as a Tag Variable and is a way for a tag to provide data to the rest of the template. Any tag can declare Tag Variables using this syntax.

      You can access the value of a state variable just like any other variable in your template.

      <div>The current count is: ${count}</div>
       
      div -- The current count is: ${count}
      diff --git a/v6/docs/styles/index.html b/v6/docs/styles/index.html
      index 08d4cc33..57adcd30 100644
      --- a/v6/docs/styles/index.html
      +++ b/v6/docs/styles/index.html
      @@ -16,7 +16,7 @@
             } else {
               delete localStorage.uwu;
             }
      -    

      Styles in Marko

      This section explains the different ways to style your Marko components, from simple inline styles to powerful techniques like CSS Modules for organized and maintainable stylesheets.

      Basic Styling Options

      1. Internal Styles with <style> Tags

      You can add CSS styles directly within your Marko components using the <style> tag. Just like in HTML, styles defined within a <style> tag will apply to the HTML elements within that component.

      Here's a simple example:

      <style>
      +    

      Styles in Marko

      This section explains the different ways to style your Marko components, from simple inline styles to powerful techniques like CSS Modules for organized and maintainable stylesheets.

      Basic Styling Options

      1. Internal Styles with <style> Tags

      You can add CSS styles directly within your Marko components using the <style> tag. Just like in HTML, styles defined within a <style> tag will apply to the HTML elements within that component.

      Here's a simple example:

      <style>
         .message {
           background-color: lightblue;
           padding: 10px;
      diff --git a/v6/examples/[name]/index.html b/v6/examples/[name]/index.html
      index 620ac0f0..c33dde22 100644
      --- a/v6/examples/[name]/index.html
      +++ b/v6/examples/[name]/index.html
      @@ -16,7 +16,7 @@
             } else {
               delete localStorage.uwu;
             }
      -    
      MarkoMarko

      A declarative, HTML-based language
      that makes building web apps fun

      Familiar

      If you know HTML, CSS, and Javascript, you know Marko

      Performant

      Streaming, partial hydration, an optimizing compiler, & a small runtime

      Scalable

      Start with simple HTML templates and add powerful components as needed

      Trusted

      Marko is powering high-traffic websites like ebay.com

      HTML Reimagined

      Marko is HTML re-imagined as a language for building dynamic and reactive user interfaces. Just about any valid HTML is valid Marko, but Marko extends the HTML language to allow building modern applications in a declarative way.

      <!doctype html>
      +    
      MarkoMarko

      A declarative, HTML-based language
      that makes building web apps fun

      Familiar

      If you know HTML, CSS, and Javascript, you know Marko

      Performant

      Streaming, partial hydration, an optimizing compiler, & a small runtime

      Scalable

      Start with simple HTML templates and add powerful components as needed

      Trusted

      Marko is powering high-traffic websites like ebay.com

      HTML Reimagined

      Marko is HTML re-imagined as a language for building dynamic and reactive user interfaces. Just about any valid HTML is valid Marko, but Marko extends the HTML language to allow building modern applications in a declarative way.

      <!doctype html>
       <html>
           <head>
               <title>Count with Marko</title>
      diff --git a/v6/playground/index.html b/v6/playground/index.html
      index 51f1ba00..2303c3ce 100644
      --- a/v6/playground/index.html
      +++ b/v6/playground/index.html
      @@ -16,7 +16,7 @@
             } else {
               delete localStorage.uwu;
             }
      -    
      index.marko
      Open in playground
      index.marko
      Open in playground

      Tutorials

      LoopsLoops are a way to repeat a block of code multiple times.beginner5 minutes

      Tutorials

      LoopsLoops are a way to repeat a block of code multiple times.beginner5 minutes